소스 검색

fix 关闭

he2802 3 년 전
부모
커밋
c99c592591

+ 10 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/order/OrderGoodsController.java

@@ -112,6 +112,16 @@ public class OrderGoodsController extends BaseController {
         return toAjax(iOrderGoodsService.updateByEditBo(bo) ? 1 : 0);
     }
 
+    /**
+     * 关闭订单商品
+     */
+    @ApiOperation("关闭订单商品")
+    @PreAuthorize("@ss.hasPermi('system:goods:edit')")
+    @Log(title = "关闭订单商品", businessType = BusinessType.UPDATE)
+    @PostMapping("/closeOrderGoods")
+    public AjaxResult<Void> closeOrderGoods(@RequestBody OrderGoodsEditBo bo) {
+        return toAjax(iOrderGoodsService.closeOrderGoods(bo) ? 1 : 0);
+    }
 
 
     /**

+ 16 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderGoodsServiceImpl.java

@@ -31,6 +31,8 @@ import com.zhongzheng.modules.order.service.IOrderService;
 import com.zhongzheng.modules.order.vo.OrderGoodsVo;
 import com.zhongzheng.modules.order.vo.OrderListVo;
 import com.zhongzheng.modules.order.vo.OrderVo;
+import com.zhongzheng.modules.user.bo.UserExamGoodsQueryBo;
+import com.zhongzheng.modules.user.service.IUserExamGoodsService;
 import io.swagger.models.auth.In;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -70,6 +72,9 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
     @Autowired
     private IClassGradeGoodsService iClassGradeGoodsService;
 
+    @Autowired
+    private IUserExamGoodsService iUserExamGoodsService;
+
 
     @Override
     public OrderGoodsVo queryById(Long orderGoodsId) {
@@ -139,9 +144,6 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
         }
         //关闭订单
         if(bo.getStatus()==0){
-            orderGoods.setStatus(bo.getStatus());
-            orderGoods.setUpdateTime(DateUtils.getNowTime());
-            updateById(orderGoods);
             GoodsVo goodsVo = iGoodsService.selectDetail(orderGoods.getGoodsId());
             if(goodsVo.getGoodsType()==1){
                 //视频商品
@@ -157,7 +159,17 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
                 //题库商品
 
             }
-
+            if(goodsVo.getGoodsType()==3||goodsVo.getGoodsType()==4){
+                //补考
+                UserExamGoodsQueryBo examGoodsQueryBo = new UserExamGoodsQueryBo();
+                examGoodsQueryBo.setOrderGoodsId(orderGoods.getOrderGoodsId());
+                if(!iUserExamGoodsService.canRefund(examGoodsQueryBo)){
+                    throw new CustomException("补考次数/前培次数已经被使用,不符号关闭条件");
+                }
+            }
+            orderGoods.setStatus(bo.getStatus());
+            orderGoods.setUpdateTime(DateUtils.getNowTime());
+            updateById(orderGoods);
         }
         return true;
     }

+ 13 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -1173,8 +1173,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             int locakStudentNum = iClassGradeUserTempService.count(lqwLock);
             //预留0空位避免超人数
             if ((classGradeVo.getStudentUpper() - studentNum - locakStudentNum) > 0) {
-                //班级还有剩位,直接锁定班级
-                return lockGrade(orderGoodsId, gradeId, userId, goodsId, orderSn);
+                ClassGradeUser gradeUser = iClassGradeUserService.getOne(new LambdaQueryWrapper<ClassGradeUser>().eq(ClassGradeUser::getGradeId, gradeId)
+                        .eq(ClassGradeUser::getUserId, userId));
+                //不在此班级内
+                if(Validator.isEmpty(gradeUser)){
+                    //班级还有剩位,直接锁定班级
+                    return lockGrade(orderGoodsId, gradeId, userId, goodsId, orderSn);
+                }
             }
         }
         //无指定班级或者指定班级已满
@@ -1195,7 +1200,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 //有空位则进入班级
                 gradeId = classGradeVo.getGradeId();
                 //班级还有剩位,直接锁定班级
-                return lockGrade(orderGoodsId, gradeId, userId, goodsId, orderSn);
+                ClassGradeUser gradeUser = iClassGradeUserService.getOne(new LambdaQueryWrapper<ClassGradeUser>().eq(ClassGradeUser::getGradeId, gradeId)
+                        .eq(ClassGradeUser::getUserId, userId));
+                //不在此班级内
+                if(Validator.isEmpty(gradeUser)){
+                    return lockGrade(orderGoodsId, gradeId, userId, goodsId, orderSn);
+                }
             }
         }
 

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserExamGoodsServiceImpl.java

@@ -64,6 +64,7 @@ public class UserExamGoodsServiceImpl extends ServiceImpl<UserExamGoodsMapper, U
         lqw.eq(bo.getGoodsId() != null, UserExamGoods::getGoodsId, bo.getGoodsId());
         lqw.eq(bo.getExamNumber() != null, UserExamGoods::getExamNumber, bo.getExamNumber());
         lqw.eq(bo.getDoNumber() != null, UserExamGoods::getDoNumber, bo.getDoNumber());
+        lqw.orderByDesc(UserExamGoods::getUserExamGoodsId); //最后排第一个
         return entity2Vo(this.list(lqw));
     }
 

+ 2 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/wx/service/impl/WxPayServiceImpl.java

@@ -507,7 +507,7 @@ public class WxPayServiceImpl implements IWxPayService {
             userExamGoodsQueryBo.setGoodsId(goodsVo.getMakeGoodsId());
             List<UserExamGoodsVo> userExamGoodsVos = userExamGoodsService.queryList(userExamGoodsQueryBo);
             if (!CollectionUtils.isEmpty(userExamGoodsVos)) {
-                UserExamGoodsVo userExamGoodsVo = userExamGoodsVos.get(0);
+                UserExamGoodsVo userExamGoodsVo = userExamGoodsVos.get(0);//取最后即最新一条
                 UserExamGoodsSupplementAddBo userExamGoodsSupplementAddBo = new UserExamGoodsSupplementAddBo();
                 userExamGoodsSupplementAddBo.setGoodsId(goodsVo.getGoodsId());
                 userExamGoodsSupplementAddBo.setUserExamGoodsId(userExamGoodsVo.getUserExamGoodsId());
@@ -528,7 +528,7 @@ public class WxPayServiceImpl implements IWxPayService {
             userExamGoodsQueryBo.setGoodsId(goodsVo.getMakeGoodsId());
             List<UserExamGoodsVo> userExamGoodsVos = userExamGoodsService.queryList(userExamGoodsQueryBo);
             if (!CollectionUtils.isEmpty(userExamGoodsVos)) {
-                UserExamGoodsVo userExamGoodsVo = userExamGoodsVos.get(0);
+                UserExamGoodsVo userExamGoodsVo = userExamGoodsVos.get(0);//取最后即最新一条
                 UserExamGoodsSupplementAddBo userExamGoodsSupplementAddBo = new UserExamGoodsSupplementAddBo();
                 userExamGoodsSupplementAddBo.setGoodsId(goodsVo.getGoodsId());
                 userExamGoodsSupplementAddBo.setUserExamGoodsId(userExamGoodsVo.getUserExamGoodsId());

+ 1 - 1
zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeMapper.xml

@@ -241,7 +241,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             AND d.goods_name  like concat('%', #{searchKey}, '%')
             ) >0)
         </if>
-        <if test="classStatus != null and classStatus !='' ">
+        <if test="classStatus != null  ">
             AND g.class_status =  #{classStatus}
         </if>
         <if test="className != null and className !='' ">