change 4 лет назад
Родитель
Сommit
3feb4ff0d3

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/mapper/ExamNumberMapper.java

@@ -16,4 +16,8 @@ import java.util.List;
 public interface ExamNumberMapper extends BaseMapper<ExamNumber> {
 
     List<ExamNumberVo> ListExamNumber(ExamNumberQueryBo bo);
+
+    Integer selectExam(Long goodsId);
+
+    Integer selectApply(Long goodsId);
 }

+ 5 - 18
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamNumberServiceImpl.java

@@ -132,28 +132,15 @@ public class ExamNumberServiceImpl extends ServiceImpl<ExamNumberMapper, ExamNum
             examNumberGoodsService.remove(lqw);
             for (Long goodsId : bo.getGoodsId()) {
                 if (bo.getStatus() == 1) {
-                    ExamNumberQueryBo examNumberQueryBo = new ExamNumberQueryBo();
-                    List<Integer> status = new ArrayList<>();
-                    status.add(1);
-                    examNumberQueryBo.setStatus(status);
-                    examNumberQueryBo.setGoodsId(goodsId);
-                    List<ExamNumberVo> examNumberVos = baseMapper.ListExamNumber(examNumberQueryBo);
-                    if (CollectionUtils.isNotEmpty(examNumberVos)) {
+                    Integer integer = baseMapper.selectExam(goodsId);
+                    if (integer > 0) {
                         throw new IllegalArgumentException("当前商品已启用考次配置,不可开启,请重新创建新的配置考试次数和前培次数商品");
                     }
                 }
                 if (bo.getStatus() == -1 || bo.getStatus()==1){
-                    ExamNumberGoodsQueryBo examNumberGoodsQueryBo = new ExamNumberGoodsQueryBo();
-                    List<Integer> status = new ArrayList<>();
-                    status.add(1);
-                    examNumberGoodsQueryBo.setGoodsId(goodsId);
-                    List<ExamNumberGoodsVo> examNumberGoodsVos = examApplyMapper.listGoods(examNumberGoodsQueryBo);
-                    if (CollectionUtils.isNotEmpty(examNumberGoodsVos)){
-                        for (ExamNumberGoodsVo examNumberGoodsVo : examNumberGoodsVos) {
-                            if (examNumberGoodsVo.getGoodsStatus() == 0){
-                                throw new IllegalArgumentException("当前商品已启用考试安排,不可开启或关闭");
-                            }
-                        }
+                    Integer integer = baseMapper.selectApply(goodsId);
+                    if (integer > 0) {
+                        throw new IllegalArgumentException("当前商品已启用考试安排,不可开启");
                     }
                 }
                 ExamNumberGoodsAddBo examNumberGoodsAddBo = new ExamNumberGoodsAddBo();

+ 7 - 7
zhongzheng-system/src/main/resources/mapper/modules/exam/ExamNumberGoodsMapper.xml

@@ -41,15 +41,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="listGoods" parameterType="com.zhongzheng.modules.exam.bo.ExamNumberQueryBo" resultMap="ExamNumberGoodsVoResult">
         SELECT
-            goods_id,
-            goods_name,
-            CODE,
-            stand_price,
-            (case WHEN (SELECT COUNT(en.exam_number_id) FROM exam_number en LEFT JOIN exam_number_goods eng on en.exam_number_id =eng.exam_number_id where 1=1 and eng.goods_id = g.goods_id and en.status =1) >0 then 0 ELSE 1 end) as goods_status
+        goods_id,
+        goods_name,
+        CODE,
+        stand_price,
+        (case WHEN (SELECT COUNT(en.exam_number_id) FROM exam_number en LEFT JOIN exam_number_goods eng on en.exam_number_id =eng.exam_number_id where 1=1 and eng.goods_id = g.goods_id and en.status =1) >0 or ( SELECT COUNT( ea.apply_id ) FROM exam_apply ea LEFT JOIN exam_apply_goods eag ON ea.apply_id = eag.apply_id WHERE 1 = 1 AND eag.goods_id = g.goods_id AND ea.`status` = 1) > 0 then 0 ELSE 1 end) as goods_status
         FROM
-            goods g
+        goods g
         WHERE
-            1 = 1
+        1 = 1
         and g.status in(1)
         <if test="businessId != null and businessId != ''">
           and g.business_id = #{businessId}

+ 23 - 0
zhongzheng-system/src/main/resources/mapper/modules/exam/ExamNumberMapper.xml

@@ -52,4 +52,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </if>
         order by en.create_time desc
     </select>
+
+    <select id="selectExam" parameterType="map" resultType="integer">
+        SELECT
+            COUNT( en.exam_number_id )
+        FROM
+            exam_number en
+                LEFT JOIN exam_number_goods eng ON en.exam_number_id = eng.exam_number_id
+        WHERE
+            1 = 1
+          AND eng.goods_id = #{goodsId}
+          AND en.STATUS =1
+    </select>
+
+    <select id="selectApply" parameterType="map" resultType="integer">
+        SELECT
+            COUNT(ea.apply_id)
+        FROM
+            exam_apply ea
+                LEFT JOIN exam_apply_goods eag ON ea.apply_id = eag.apply_id
+        where 1=1
+          and eag.goods_id =#{goodsId}
+          and ea.`status`=1
+    </select>
 </mapper>