Commit e179ad94 authored by 任国军's avatar 任国军

fix act bug

parent 5c4d5a80
Pipeline #27667 passed with stage
in 15 seconds
......@@ -17,6 +17,7 @@ module.exports = app => {
institution_id: INTEGER,
h5_promote_success_url: STRING,
h5_promote_middle_url: STRING,
type: INTEGER,
title: STRING,
content: STRING,
selected_image: STRING,
......
......@@ -380,7 +380,7 @@ class OptionService extends Service {
async getActImageList() {
const { ctx } = this;
const giftList = await ctx.classModel.CourseActImage.findAll({ where: { status: 1, is_deleted: 0 }, attributes: [ 'id', 'selected_image', 'unselected_image' ], order: [[ 'sort', 'asc' ]] });
const giftList = await ctx.classModel.CourseActImage.findAll({ where: { status: 1, is_deleted: 0 }, attributes: [ 'id', 'selected_image', 'unselected_image', 'type' ], order: [[ 'sort', 'asc' ]] });
const ret = {
list: giftList,
};
......
......@@ -622,12 +622,28 @@ class UserService extends Service {
// 获取用户的礼品列表
async getUserActImageList() {
const { ctx } = this;
const userImageList = await ctx.classModel.CourseUserActImage.findAll({ where: { user_uuid: ctx.userUuid, status: 1, is_deleted: 0 } });
const userUuid = ctx.userUuid;
// const userImageList = await ctx.classModel.CourseUserActImage.findAll({ where: { user_uuid: ctx.userUuid, status: 1, is_deleted: 0 } });
const imageList = await ctx.classModel.CourseActImage.findAll({ where: { id: { $in: R.pluck('image_id', userImageList) } }, attributes: [ 'id', 'selected_image', 'unselected_image', 'title', 'content', 'h5_promote_success_url' ] });
const ret = {
list: imageList,
};
// const imageList = await ctx.classModel.CourseActImage.findAll({ where: { id: { $in: R.pluck('image_id', userImageList) } }, attributes: [ 'id', 'selected_image', 'unselected_image', 'title', 'content', 'h5_promote_success_url' ] });
// const ret = {
// list: imageList,
// };
const userActImage = await ctx.classModel.CourseUserActImage.findOne({ where: { user_uuid: userUuid, status: 1, is_deleted: 0 } });
if (ctx.isEmpty(userActImage)) {
return {};
}
const actInfo = await ctx.classModel.CourseActImage.findOne({ where: { id: userActImage.image_id }, attributes: [ 'id', 'selected_image', 'unselected_image', 'title', 'content', 'h5_promote_success_url', 'class_id', 'type' ], raw: true });
if (ctx.isEmpty(actInfo)) {
return {};
}
const order = await ctx.classModel.V5.CourseUserOrder.findOne({ where: { user_uuid: userUuid, type: 3, status: 1, class_id: actInfo.class_id, is_deleted: 0 } });
const ret = actInfo;
ret.order_no = ctx.isEmpty(order) ? '' : order.order_no;
ret.redeem = ctx.isEmpty(order) ? '' : order.redeem;
return ret;
}
......@@ -659,23 +675,6 @@ class UserService extends Service {
ctx.failed('课程已下线');
}
// 判断是否有兑换码
let redeem = '';
if (actInfo.type === 2) {
const redeemCode = await ctx.classModel.V5.CourseRedeemCode.findOne({ where: { class_id: actInfo.class_id, status: 1, is_used: 0, is_deleted: 0 } });
if (ctx.isEmpty(redeemCode)) {
ctx.failed('兑换码不足');
}
await ctx.classModel.V5.CourseRedeemCode.update({ is_used: 1, user_uuid: userUuid, used_time: moment().format('YYYY-MM-DD HH:mm:ss') }, { id: redeemCode.id });
redeem = redeemCode.code;
} else if (actInfo.type === 3) {
const redeemCode = await ctx.classModel.V5.CourseV5InstitutionRedeemCode.findOne({ where: { class_id: actInfo.class_id, status: 1, is_used: 0, is_deleted: 0 } });
if (ctx.isEmpty(redeemCode)) {
ctx.failed('兑换码不足');
}
await ctx.classModel.V5.CourseV5InstitutionRedeemCode.update({ is_used: 1, user_uuid: userUuid, used_time: moment().format('YYYY-MM-DD HH:mm:ss') }, { id: redeemCode.id });
redeem = redeemCode.code;
}
// 生成订单
const orderNo = '11' + moment().format('YYYYMMDDHHmmSS') + await this.getRandomNumber(6);
const order = {
......@@ -685,7 +684,7 @@ class UserService extends Service {
class_id: actInfo.class_id,
pay: 0,
pay_time: moment().format('YYYY-MM-DD HH:mm:ss'),
redeem,
columns: '{}',
status: ctx.isEmpty(institutionInfo.pay_column) && classInfo.has_address === 0 ? 1 : 0,
};
await ctx.classModel.V5.CourseUserOrder.create(order);
......@@ -728,14 +727,20 @@ class UserService extends Service {
async updateUserOrder(input) {
const { ctx } = this;
const orderNo = input.order_no || '';
const columns = input.columns || '';
const columns = input.columns || '{}';
const id = input.id || 0;
const userUuid = ctx.userUuid;
const order = await ctx.classModel.V5.CourseUserOrder.findOne({ where: { order_no: orderNo, is_deleted: 0 } });
if (ctx.isEmpty(order)) {
ctx.failed('订单不存在');
}
const actInfo = await ctx.classModel.CourseActImage.findOne({ where: { id, status: 1, is_deleted: 0 } });
if (ctx.isEmpty(actInfo)) {
ctx.failed('该礼包已失效');
}
const classInfo = await ctx.classModel.V5.CourseV5Class.findOne({ where: { id: order.class_id, status: 1, is_deleted: 0 }, attributes: [ 'has_address' ] });
// 获取用户地址
......@@ -748,7 +753,25 @@ class UserService extends Service {
address = JSON.stringify(address);
}
await ctx.classModel.V5.CourseUserOrder.update({ address, columns, status: 1 }, { where: { id: order.id } });
// 判断是否有兑换码
let redeem = '';
if (actInfo.type === 2) {
const redeemCode = await ctx.classModel.V5.CourseRedeemCode.findOne({ where: { class_id: actInfo.class_id, status: 1, is_used: 0, is_deleted: 0 }, raw: true });
if (ctx.isEmpty(redeemCode)) {
ctx.failed('兑换码不足');
}
await ctx.classModel.V5.CourseRedeemCode.update({ is_used: 1, user_uuid: userUuid, used_time: moment().format('YYYY-MM-DD HH:mm:ss') }, { where: { id: redeemCode.id } });
redeem = redeemCode.code;
} else if (actInfo.type === 3) {
const redeemCode = await ctx.classModel.V5.CourseV5InstitutionRedeemCode.findOne({ where: { class_id: actInfo.class_id, status: 1, is_used: 0, is_deleted: 0 }, raw: true });
if (ctx.isEmpty(redeemCode)) {
ctx.failed('兑换码不足');
}
await ctx.classModel.V5.CourseV5InstitutionRedeemCode.update({ is_used: 1, user_uuid: userUuid, used_time: moment().format('YYYY-MM-DD HH:mm:ss') }, { where: { id: redeemCode.id } });
redeem = redeemCode.code;
}
await ctx.classModel.V5.CourseUserOrder.update({ address, columns, redeem, status: 1 }, { where: { id: order.id } });
await ctx.classModel.CourseUserActImage.findOrCreate({ where: { user_uuid: ctx.userUuid, image_id: id, status: 1, is_deleted: 0 }, defaults: { user_uuid: ctx.userUuid, image_id: id } });
const ret = {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment