lrf 2 vuotta sitten
vanhempi
commit
2e878e4dd7
2 muutettua tiedostoa jossa 40 lisäystä ja 18 poistoa
  1. 38 17
      app/service/business/lessonStudent.js
  2. 2 1
      app/service/business/payOrder.js

+ 38 - 17
app/service/business/lessonStudent.js

@@ -101,23 +101,44 @@ class LessonStudentService extends CrudService {
       await data.save();
       return;
     }
-    // 正常交钱的课,将 pay_id 的status 修改为 -3, 同时触发修改这条数据,但是没有退款;
-    await payOrderService.update({ _id: data.pay_id }, { status: '-3' });
-    const payOrder = await payOrderModel.findById(data.pay_id);
-    // 再生成账单记录
-    const obj = _.pick(payOrder, [ 'school_id', 'payer_role', 'payer_id', 'pay_for', 'from_id', 'money' ]);
-    obj.pay_id = data.pay_id;
-    obj.type = '2';
-    obj.is_pay = '1';
-    obj.time = moment().format('YYYY-MM-DD HH:mm:ss');
-    await billModel.create(obj);
-    // 再将钱返回给余额
-    let relation;
-    const { payer_role, payer_id, school_id } = payOrder;
-    if (payer_role === 'Student') relation = await this.rssModel.findOne({ student_id: payer_id, school_id });
-    else if (payer_role === 'Coach') relation = await this.rcsModel.findOne({ coach_id: payer_id, school_id });
-    relation.money = _.get(relation, 'money', 0) + _.get(obj, 'money', 0);
-    await relation.save();
+    // 交钱退课的
+    if (data.pay_id) {
+      // 正常交钱的课,将 pay_id 的status 修改为 -3, 同时触发修改这条数据,但是没有退款;
+      await payOrderService.update({ _id: data.pay_id }, { status: '-3' });
+      const payOrder = await payOrderModel.findById(data.pay_id);
+      // 再生成账单记录
+      const obj = _.pick(payOrder, [ 'school_id', 'payer_role', 'payer_id', 'pay_for', 'from_id', 'money' ]);
+      obj.pay_id = data.pay_id;
+      obj.type = '2';
+      obj.is_pay = '1';
+      obj.time = moment().format('YYYY-MM-DD HH:mm:ss');
+      await billModel.create(obj);
+      // 再将钱返回给余额
+      let relation;
+      const { payer_role, payer_id, school_id } = payOrder;
+      if (payer_role === 'Student') relation = await this.rssModel.findOne({ student_id: payer_id, school_id });
+      else if (payer_role === 'Coach') relation = await this.rcsModel.findOne({ coach_id: payer_id, school_id });
+      relation.money = _.get(relation, 'money', 0) + _.get(obj, 'money', 0);
+      await relation.save();
+    } else {
+      // 从余额付款,退回余额
+      const obj = {
+        school_id: data.school_id,
+        payer_id: student_id,
+        payer_role: 'Student',
+        pay_for: 'lessonStudent',
+        from_id: data._id,
+        type: '2',
+        is_pay: '1',
+        time: moment().format('YYYY-MM-DD HH:mm:ss'),
+        money: data.money,
+      };
+      await billModel.create(obj);
+      const relation = await this.rssModel.findOne({ student_id, school_id: data.school_id });
+      relation.money = _.get(relation, 'money', 0) + _.get(obj, 'money', 0);
+      await relation.save();
+    }
+
 
   }
 }

+ 2 - 1
app/service/business/payOrder.js

@@ -64,7 +64,8 @@ class PayOrderService extends CrudService {
         // 余额需要扣除本次支付的费用
         relation.money = surplus - money;
         await relation.save();
-        return false;
+        // 前端生成报名数据
+        return { data, next: false };
       } catch (error) {
         // 抓取数据库创建和修改的异常,
         // 如果 billData没有值,说明是创建消费记录时发生的错误,不需要做回滚处理;如果有值,那就删除