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 => { ...@@ -17,6 +17,7 @@ module.exports = app => {
institution_id: INTEGER, institution_id: INTEGER,
h5_promote_success_url: STRING, h5_promote_success_url: STRING,
h5_promote_middle_url: STRING, h5_promote_middle_url: STRING,
type: INTEGER,
title: STRING, title: STRING,
content: STRING, content: STRING,
selected_image: STRING, selected_image: STRING,
......
...@@ -380,7 +380,7 @@ class OptionService extends Service { ...@@ -380,7 +380,7 @@ class OptionService extends Service {
async getActImageList() { async getActImageList() {
const { ctx } = this; 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 = { const ret = {
list: giftList, list: giftList,
}; };
......
...@@ -622,12 +622,28 @@ class UserService extends Service { ...@@ -622,12 +622,28 @@ class UserService extends Service {
// 获取用户的礼品列表 // 获取用户的礼品列表
async getUserActImageList() { async getUserActImageList() {
const { ctx } = this; 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 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 = { // const ret = {
list: imageList, // 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; return ret;
} }
...@@ -659,23 +675,6 @@ class UserService extends Service { ...@@ -659,23 +675,6 @@ class UserService extends Service {
ctx.failed('课程已下线'); 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 orderNo = '11' + moment().format('YYYYMMDDHHmmSS') + await this.getRandomNumber(6);
const order = { const order = {
...@@ -685,7 +684,7 @@ class UserService extends Service { ...@@ -685,7 +684,7 @@ class UserService extends Service {
class_id: actInfo.class_id, class_id: actInfo.class_id,
pay: 0, pay: 0,
pay_time: moment().format('YYYY-MM-DD HH:mm:ss'), pay_time: moment().format('YYYY-MM-DD HH:mm:ss'),
redeem, columns: '{}',
status: ctx.isEmpty(institutionInfo.pay_column) && classInfo.has_address === 0 ? 1 : 0, status: ctx.isEmpty(institutionInfo.pay_column) && classInfo.has_address === 0 ? 1 : 0,
}; };
await ctx.classModel.V5.CourseUserOrder.create(order); await ctx.classModel.V5.CourseUserOrder.create(order);
...@@ -728,14 +727,20 @@ class UserService extends Service { ...@@ -728,14 +727,20 @@ class UserService extends Service {
async updateUserOrder(input) { async updateUserOrder(input) {
const { ctx } = this; const { ctx } = this;
const orderNo = input.order_no || ''; const orderNo = input.order_no || '';
const columns = input.columns || ''; const columns = input.columns || '{}';
const id = input.id || 0; const id = input.id || 0;
const userUuid = ctx.userUuid;
const order = await ctx.classModel.V5.CourseUserOrder.findOne({ where: { order_no: orderNo, is_deleted: 0 } }); const order = await ctx.classModel.V5.CourseUserOrder.findOne({ where: { order_no: orderNo, is_deleted: 0 } });
if (ctx.isEmpty(order)) { if (ctx.isEmpty(order)) {
ctx.failed('订单不存在'); 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' ] }); 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 { ...@@ -748,7 +753,25 @@ class UserService extends Service {
address = JSON.stringify(address); 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 } }); 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 = { 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