yangdamao hace 11 meses
padre
commit
c2c091e37d

+ 5 - 1
zhongzheng-admin/src/main/java/com/zhongzheng/controller/grade/ClassGradeController.java

@@ -902,6 +902,10 @@ public class ClassGradeController extends BaseController {
         return util.exportExcel(exportVos, goodsVo.getGoodsName());
     }
 
-
+    @ApiOperation("关闭班级订单")
+    @PostMapping("/off/order")
+    public AjaxResult<Integer> offGradeOrder(OffGradeOrder bo) {
+        return AjaxResult.success(iClassGradeService.offGradeOrder(bo));
+    }
 
 }

+ 14 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/OffGradeOrder.java

@@ -0,0 +1,14 @@
+package com.zhongzheng.modules.grade.bo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class OffGradeOrder implements Serializable {
+
+    private Long gradeId;
+
+    private Long userId;
+
+}

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/IClassGradeService.java

@@ -121,4 +121,6 @@ public interface IClassGradeService extends IService<ClassGrade> {
 	void openOfficialSaveGrade(ClassGradeOpenBo bo);
 
     List<ClassBusinessVo> getBusinessClassList(ClassBusinessQuery query);
+
+	Integer offGradeOrder(OffGradeOrder bo);
 }

+ 44 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeServiceImpl.java

@@ -44,6 +44,8 @@ import com.zhongzheng.modules.inform.service.IInformRemindService;
 import com.zhongzheng.modules.inform.service.IInformUserService;
 import com.zhongzheng.modules.inform.vo.InformRemindBusinessVo;
 import com.zhongzheng.modules.inform.vo.InformRemindVo;
+import com.zhongzheng.modules.order.bo.OrderGoodsEditBo;
+import com.zhongzheng.modules.order.domain.Order;
 import com.zhongzheng.modules.order.domain.OrderGoods;
 import com.zhongzheng.modules.order.mapper.OrderMapper;
 import com.zhongzheng.modules.order.service.IOrderGoodsService;
@@ -2002,6 +2004,48 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
         return result;
     }
 
+    @Override
+    public Integer offGradeOrder(OffGradeOrder bo) {
+        ClassGrade classGrade = getById(bo.getGradeId());
+        if (ObjectUtils.isNull(classGrade)){
+            throw new CustomException("班级信息获取有误");
+        }
+
+        List<ClassGradeUser> list = iClassGradeUserService.list(new LambdaQueryWrapper<ClassGradeUser>()
+                .eq(ClassGradeUser::getGradeId, bo.getGradeId())
+                .eq(ObjectUtils.isNotNull(bo.getUserId()), ClassGradeUser::getUserId, bo.getUserId())
+                .eq(ClassGradeUser::getStatus, 1));
+        if (CollectionUtils.isEmpty(list)){
+            return 0;
+        }
+
+        list.forEach(x -> {
+            OrderGoods orderGoods = iOrderGoodsService.getById(x.getOrderGoodsId());
+            Order order = orderMapper.selectOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderSn, orderGoods.getOrderSn()));
+            if (ObjectUtils.isNull(order)){
+                return;
+            }
+            if (ObjectUtils.isNotNull(order.getInputOrderSn())){
+                //线下
+                OrderGoodsEditBo editBo = new OrderGoodsEditBo();
+                editBo.setOrderGoodsId(x.getOrderGoodsId());
+                editBo.setStatus(0);
+                editBo.setCloseReason("班级更换新课程");
+                iOrderGoodsService.closeOrderGoods(editBo);
+            }else {
+                //线上
+                orderGoods.setStatus(0);
+                orderGoods.setCloseReason("班级更换新课程");
+                orderGoods.setUpdateTime(DateUtils.getNowTime());
+                iOrderGoodsService.updateById(orderGoods);
+                x.setStatus(0);
+                x.setUpdateTime(DateUtils.getNowTime());
+                iClassGradeUserService.updateById(x);
+            }
+        });
+        return 0;
+    }
+
     //创建预开班班级
     private void creatClass(List<Long> goodsIds, Long tenantId, String code) {
         goodsIds.forEach(goodsId -> {