he2802 2 年之前
父節點
當前提交
c294f530b0
共有 17 個文件被更改,包括 153 次插入52 次删除
  1. 0 13
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/order/OrderController.java
  2. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/mapper/GoodsMapper.java
  3. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/IGoodsService.java
  4. 4 3
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsServiceImpl.java
  5. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/mapper/ClassGradeGoodsMapper.java
  6. 6 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/mapper/ClassGradeMapper.java
  7. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/IClassGradeGoodsService.java
  8. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeGoodsServiceImpl.java
  9. 12 13
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeServiceImpl.java
  10. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/OrderAddBo.java
  11. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/domain/OrderGoods.java
  12. 61 3
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java
  13. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopOldOrderAddBo.java
  14. 2 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/wx/service/impl/WxPayServiceImpl.java
  15. 13 13
      zhongzheng-system/src/main/resources/mapper/modules/goods/GoodsMapper.xml
  16. 7 3
      zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeGoodsMapper.xml
  17. 29 0
      zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeMapper.xml

+ 0 - 13
zhongzheng-admin/src/main/java/com/zhongzheng/controller/order/OrderController.java

@@ -151,19 +151,6 @@ public class OrderController extends BaseController {
     @PostMapping("/inputOrder")
     public AjaxResult addInputOrder(@RequestBody OrderAddBo bo) {
         LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
-        if (ObjectUtils.isNotNull(bo.getOpenQuestionSign()) && bo.getOpenQuestionSign() == 1){
-            //新B端外部题库开通
-            QuestionOpenBo questionOpenBo = new QuestionOpenBo();
-            questionOpenBo.setCreateSysUserId(loginUser.getUser().getUserId());
-            questionOpenBo.setCreateBy(SecurityUtils.getUsername());
-            questionOpenBo.setGoodsId(bo.getGoodsList().get(0).getGoodsId());
-            UserSubscribe userSubscribe = iUserSubscribeService.getOne(new LambdaQueryWrapper<UserSubscribe>()
-                    .eq(UserSubscribe::getUserId, bo.getUserId())
-                    .eq(UserSubscribe::getOrderGoodsId, bo.getGoodsList().get(0).getSubOrderGoodsId())
-                    .last("limit 1"));
-            questionOpenBo.setUserSubscribeIds(Arrays.asList(userSubscribe.getSubscribeId()));
-            return AjaxResult.success(iOrderService.questionGoodsOpen(questionOpenBo));
-        }
         if(Validator.isEmpty(bo.getCreateUsername())){
             bo.setCreateSysUserId(loginUser.getUser().getUserId());
             bo.setCreateBy(SecurityUtils.getUsername());

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/mapper/GoodsMapper.java

@@ -98,5 +98,5 @@ public interface GoodsMapper extends BaseMapper<Goods> {
     List<ReplenishExamVo> getReplenishExam(ReplenishExamBo bo);
 
     @InterceptorIgnore(tenantLine = "true")
-    List<Goods> getRelevanceGoodsNoTenant(Goods g);
+    List<Goods> getRelevanceGoodsNoTenant(@Param("businessName") String businessName,@Param("majName")String majName,@Param("goodsId")Long goodsId);
 }

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/IGoodsService.java

@@ -157,5 +157,5 @@ public interface IGoodsService extends IService<Goods> {
 
 	List<ReplenishExamVo> getReplenishExam(ReplenishExamBo bo);
 
-	List<Goods> getRelevanceGoodsNoTenant(Goods g);
+	List<Goods> getRelevanceGoodsNoTenant(String businessName,String majName,Long goodsId);
 }

+ 4 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsServiceImpl.java

@@ -635,7 +635,8 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
             if (ObjectUtils.isNotNull(tenant.getSevenClass()) && tenant.getSevenClass() == 1){
                 //多机构使用祥粤七大员班级
                 Goods g = getById(goodsId);
-                List<Goods> list = baseMapper.getRelevanceGoodsNoTenant(g);
+                Major major = iMajorService.getById(g.getMajorId());
+                List<Goods> list = baseMapper.getRelevanceGoodsNoTenant(businessName,major.getCategoryName(),g.getGoodsId());
                 if (CollectionUtils.isNotEmpty(list)){
                     Long relGoodsId = list.stream().findFirst().get().getGoodsId();
                     List<ClassGradeGoods> classGradeList = iClassGradeGoodsService
@@ -5189,8 +5190,8 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
     }
 
     @Override
-    public List<Goods> getRelevanceGoodsNoTenant(Goods g) {
-        return baseMapper.getRelevanceGoodsNoTenant(g);
+    public List<Goods> getRelevanceGoodsNoTenant(String businessName,String majName,Long goodsId) {
+        return baseMapper.getRelevanceGoodsNoTenant(businessName, majName, goodsId);
     }
 
     private void updateHandoutsId(Long goodsId, Long tenantId, Long handoutsId) {

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/mapper/ClassGradeGoodsMapper.java

@@ -21,4 +21,7 @@ public interface ClassGradeGoodsMapper extends BaseMapper<ClassGradeGoods> {
 
     @InterceptorIgnore(tenantLine = "true")
     List<ClassGradeGoods> getClassNoTenant(@Param("goodsIds")List<Long> goodsIds);
+
+    @InterceptorIgnore(tenantLine = "true")
+    ClassGradeGoods getOneNoTenant(@Param("gradeId") Long gradeId);
 }

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/mapper/ClassGradeMapper.java

@@ -99,4 +99,10 @@ public interface ClassGradeMapper extends BaseMapper<ClassGrade> {
 
     @InterceptorIgnore(tenantLine = "true")
     List<ClassGrade> listByIdsNoTenant(List<Long> ids);
+
+    @InterceptorIgnore(tenantLine = "true")
+    List<ClassGrade> getListNoTenant(@Param("sevenCode") String sevenCode,@Param("gradeId") Long gradeId);
+
+    @InterceptorIgnore(tenantLine = "true")
+    void updateByIdNoTenant(ClassGrade update);
 }

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

@@ -55,4 +55,6 @@ public interface IClassGradeGoodsService extends IService<ClassGradeGoods> {
 	List<ClassGradeGoods> getClassGradeByIds(List<Long> goodsIds);
 
     List<ClassGradeGoods> getClassNoTenant(List<Long> collect);
+
+    ClassGradeGoods getOneNoTenant(Long gradeId);
 }

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeGoodsServiceImpl.java

@@ -112,4 +112,9 @@ public class ClassGradeGoodsServiceImpl extends ServiceImpl<ClassGradeGoodsMappe
     public List<ClassGradeGoods> getClassNoTenant(List<Long> goodsIds) {
         return baseMapper.getClassNoTenant(goodsIds);
     }
+
+    @Override
+    public ClassGradeGoods getOneNoTenant(Long gradeId) {
+        return baseMapper.getOneNoTenant(gradeId);
+    }
 }

+ 12 - 13
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeServiceImpl.java

@@ -607,24 +607,18 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
         }
         this.updateById(update);
         if (fullName.contains("继续教育") && fullName.contains("施工现场专业人员") && StringUtils.isNotBlank(classGradeVo.getSevenCode())){
-            List<ClassGrade> list = list(new LambdaQueryWrapper<ClassGrade>()
-                    .eq(ClassGrade::getSevenCode, classGradeVo.getSevenCode())
-                    .ne(ClassGrade::getGradeId,update.getGradeId()));
+            List<ClassGrade> list = baseMapper.getListNoTenant(classGradeVo.getSevenCode(),update.getGradeId());
             if (CollectionUtils.isNotEmpty(list)){
                 List<ClassGrade> collect = list.stream().filter(item -> {
-                    ClassGradeGoods classGradeGoods = iClassGradeGoodsService
-                            .getOne(new LambdaQueryWrapper<ClassGradeGoods>()
-                                    .eq(ClassGradeGoods::getGradeId, item.getGradeId())
-                                    .last("limit 1"));
-                    Goods goodsOne = iGoodsService.getById(classGradeGoods.getGoodsId());
+                    ClassGradeGoods classGradeGoods = iClassGradeGoodsService.getOneNoTenant(item.getGradeId());
+                    Goods goodsOne = iGoodsService.getGoodsByIdNotTenant(classGradeGoods.getGoodsId());
                     return StringUtils.isNotBlank(goodsOne.getSevenYear()) && !Arrays.asList("2021", "2022").contains(goodsOne.getSevenYear());
                 }).collect(Collectors.toList());
                 if (CollectionUtils.isNotEmpty(collect)){
-                    List<ClassGrade> collect1 = list.stream().map(item -> {
+                    list.forEach(item ->{
                         update.setGradeId(item.getGradeId());
-                        return update;
-                    }).collect(Collectors.toList());
-                    updateBatchById(collect1);
+                        updateByIdNoTenant(update);
+                    });
                 }
             }
         }
@@ -677,6 +671,10 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
         return true;
     }
 
+    private void updateByIdNoTenant(ClassGrade update) {
+        baseMapper.updateByIdNoTenant(update);
+    }
+
     private void sendClassSMS(ClassGradeVo classGradeVo) {
         InformRemindVo informRemindVo = informRemindService.queryByName("二建继教开班提醒");
         if (CollectionUtils.isEmpty(classGradeVo.getGoodsList())) {
@@ -1228,7 +1226,8 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
     private Integer getClassUserNumAll(Long gradeId) {
         Integer numAll = 0;
         ClassGradeVo gradeVo = queryById(gradeId);
-        if (Validator.isNotEmpty(gradeVo) && Validator.isNotEmpty(gradeVo.getOfficialName())) {
+        if (Validator.isNotEmpty(gradeVo)
+                && Validator.isNotEmpty(gradeVo.getOfficialName()) && Validator.isEmpty(gradeVo.getSevenCode())) {
             ClassGradeQueryBo queryBo = new ClassGradeQueryBo();
             queryBo.setOfficialName(gradeVo.getOfficialName());
             Integer peopleNum = queryOfficialGradeCount(queryBo);

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/OrderAddBo.java

@@ -109,6 +109,6 @@ public class OrderAddBo {
     /** 培训计划ID */
     @ApiModelProperty("计划ID")
     private Integer planId;
-    @ApiModelProperty("新B端题库开通标识")
+    @ApiModelProperty("新B端考试订单标识:1题库开通 2补冲考是标识")
     private Integer openQuestionSign;
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/domain/OrderGoods.java

@@ -108,5 +108,8 @@ private static final long serialVersionUID=1L;
     @TableField(exist = false)
     private Long subOrderGoodsId;
 
+    @TableField(exist = false)
+    @ApiModelProperty("新B端考试订单标识:1题库开通 2补冲考是标识")
+    private Integer openQuestionSign;
 
 }

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

@@ -691,6 +691,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             if (ObjectUtils.isNotNull(g.getSubOrderGoodsId())){
                 //补充考试次数订单商品ID
                 orderGoods.setSubOrderGoodsId(g.getSubOrderGoodsId());
+                orderGoods.setOpenQuestionSign(bo.getOpenQuestionSign());
             }
             //订单标准价格不计算优惠
             totalPrice = totalPrice.add(goods.getStandPrice());
@@ -857,7 +858,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         iWxPayService.joinLockGrade(order.getOrderSn(), orderGoods.getGoodsId(), orderGoods.getOrderGoodsId());
         //商品是否关联第三方题库商品
         Goods goods = iGoodsService.getById(orderGoods.getGoodsId());
-        if (ObjectUtils.isNotNull(goods.getQuestionGoodsId())){
+        if (ObjectUtils.isNotNull(orderGoods.getOpenQuestionSign()) && orderGoods.getOpenQuestionSign() == 1){
+            //开通题库
+            questionHandleTwo(orderGoods,goods);
+        }else if (ObjectUtils.isNotNull(goods.getQuestionGoodsId())){
             questionGoodsHandle(orderGoods,goods);
         }
 //        //商品是否有活动模考
@@ -905,6 +909,58 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         iGoodsQuestionRelService.save(rel);
     }
 
+
+    private void questionHandleTwo(OrderGoods orderGoods,Goods goods) {
+        //第三方题库商品
+        Goods questionGoods = iGoodsService.getById(goods.getGoodsId());
+        if (ObjectUtils.isNull(questionGoods) || questionGoods.getGoodsType() != 9){
+            //商品类型不符合
+            return;
+        }
+        //添加第三方关联记录
+        QuestionMerchant merchant = iQuestionMerchantService.getById(questionGoods.getQuestionMerchantId());
+        if (ObjectUtils.isNull(merchant)){
+            //商家不存在
+            return;
+        }
+        //服务有效期
+        OrderGoods orderGoodsTwo = setQuestionServiceTimeTwo(orderGoods, orderGoods.getSubOrderGoodsId());
+        iOrderGoodsService.updateById(orderGoodsTwo);
+
+        GoodsQuestionRel rel = new GoodsQuestionRel();
+        rel.setOrderGoodsId(orderGoodsTwo.getOrderGoodsId());
+        rel.setQuestionGoodsId(orderGoods.getGoodsId());
+        rel.setQsOrderGoodsId(orderGoods.getOrderGoodsId());
+        rel.setStatus(1);
+        rel.setQuestionDoNum(merchant.getDoNum());
+        rel.setCreateTime(DateUtils.getNowTime());
+        rel.setUpdateTime(DateUtils.getNowTime());
+        iGoodsQuestionRelService.save(rel);
+    }
+
+    private OrderGoods setQuestionServiceTimeTwo(OrderGoods add,Long subOrderGoodsId) {
+        Order one = getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderSn, add.getOrderSn()));
+        if (Objects.isNull(one)){
+            return null;
+        }
+        UserSubscribe subscribe = iUserSubscribeService.getOne(new LambdaQueryWrapper<UserSubscribe>()
+                .eq(UserSubscribe::getUserId, one.getUserId())
+                .eq(UserSubscribe::getOrderGoodsId, subOrderGoodsId)
+                .eq(UserSubscribe::getSubscribeStatus, 1)
+                .eq(UserSubscribe::getExamStatus,0)
+                .last("limit 1"));
+        if (ObjectUtils.isNull(subscribe)){
+            return add;
+        }
+        //考试日期
+        Long examTime = subscribe.getApplySiteExamTime();
+        //前推8天
+        Long dayBefore = DateUtils.getDayBefore(examTime, 8);
+        add.setServiceStartTime(dayBefore);
+        add.setServiceEndTime(examTime);
+        return add;
+    }
+
     private OrderGoods setQuestionServiceTime(OrderGoods add,OrderGoods orderGoods) {
         Order one = getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderSn, orderGoods.getOrderSn()));
         if (Objects.isNull(one)){
@@ -2394,7 +2450,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 //七大员继教
                 classGrade.setStudentUpper(ClassGrade.INIT_UPPER3); //上限1000
                 String sevenYear = goods.getSevenYear();
-                if (!Arrays.asList("2021,2022").contains(sevenYear)){
+                if (!Arrays.asList("2021","2022").contains(sevenYear)){
                     //班级绑定学员资料推送和学时推送
                     List<ClassGradeInterface> list = iClassGradeInterfaceService.list(new LambdaQueryWrapper<ClassGradeInterface>()
                             .eq(ClassGradeInterface::getStatus, 1)
@@ -2544,7 +2600,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
     private String getSevenCodeNoTenant(Long goodsId) {
         Goods g = iGoodsService.getById(goodsId);
-        List<Goods> list = iGoodsService.getRelevanceGoodsNoTenant(g);
+        String businessName = iGoodsService.getGoodsBusinessName(g.getGoodsId());
+        Major major = iMajorService.getById(g.getMajorId());
+        List<Goods> list = iGoodsService.getRelevanceGoodsNoTenant(businessName,major.getCategoryName(),g.getGoodsId());
         if (CollectionUtils.isNotEmpty(list)){
             List<ClassGradeGoods> classGradeList = iClassGradeGoodsService
                     .getClassNoTenant(list.stream().map(Goods::getGoodsId).collect(Collectors.toList()));

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopOldOrderAddBo.java

@@ -191,4 +191,7 @@ public class TopOldOrderAddBo {
 
     @ApiModelProperty("财务备注")
     private String financeRemark;
+
+    @ApiModelProperty("新B端订单审核标识:1需要 0不需要")
+    private Integer checkSign;
 }

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

@@ -1081,7 +1081,8 @@ public class WxPayServiceImpl implements IWxPayService {
         }
         //增加考试次数
         if (goodsVo.getGoodsType().equals(3)) {
-            if (ObjectUtils.isNotNull(goodsVo.getUnifySign()) && goodsVo.getUnifySign() == 1 && ObjectUtils.isNotNull(g.getSubOrderGoodsId())){
+            if (ObjectUtils.isNotNull(goodsVo.getUnifySign()) && goodsVo.getUnifySign() == 1
+                    && ObjectUtils.isNotNull(g.getSubOrderGoodsId())){
                 //统一补考商品标识 补充考试次数
                 UserExamGoods examGoods = userExamGoodsService
                         .getOne(new LambdaQueryWrapper<UserExamGoods>()

+ 13 - 13
zhongzheng-system/src/main/resources/mapper/modules/goods/GoodsMapper.xml

@@ -837,22 +837,22 @@
           AND tenant_id = #{tenantId}
     </select>
 
-    <select id="getRelevanceGoodsNoTenant" parameterType="com.zhongzheng.modules.goods.domain.Goods" resultType="com.zhongzheng.modules.goods.domain.Goods">
+    <select id="getRelevanceGoodsNoTenant" parameterType="map" resultType="com.zhongzheng.modules.goods.domain.Goods">
         SELECT
-            *
+            g.*
         FROM
-            goods
+            goods g
+                LEFT JOIN course_education_type cet ON g.education_type_id = cet.id
+                LEFT JOIN course_project_type cpt ON g.project_id = cpt.id
+                LEFT JOIN course_business cb ON g.business_id = cb.id
+                LEFT JOIN major m ON g.major_id = m.id
         WHERE
-            education_type_id = #{educationTypeId}
-          AND project_id = #{projectId}
-          AND business_id = #{businessId}
-          <if test="majorId != null and majorId != ''">
-              AND major_id = #{majorId}
-          </if>
-          AND subject_ids = #{subjectIds}
-          AND `status` = 1
-          AND goods_status = 1
-          AND goods_id != #{goodsId}
+            g.`status` = 1
+          AND g.goods_status = 1
+          AND INSTR(#{businessName}, cet.education_name)
+          AND INSTR(#{businessName}, cpt.project_name)
+          AND INSTR(#{majName}, m.category_name)
+          AND g.goods_id != #{goodsId}
     </select>
 
     <select id="queryGoodsByTenant" parameterType="map" resultType="com.zhongzheng.modules.goods.domain.Goods">

+ 7 - 3
zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeGoodsMapper.xml

@@ -29,12 +29,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="getClassNoTenant" parameterType="java.lang.Long" resultType="com.zhongzheng.modules.grade.domain.ClassGradeGoods">
         SELECT cgg.* FROM class_grade_goods cgg
         WHERE
-        <if test="goodsIds != null and goodsIds.size()!=0 ">
-            AND cgg.goods_id in
+            cgg.goods_id in
             <foreach collection="goodsIds" item="item" index="index" open="(" close=")" separator=",">
                 #{item}
             </foreach>
-        </if>
+    </select>
+
+    <select id="getOneNoTenant" parameterType="java.lang.Long" resultType="com.zhongzheng.modules.grade.domain.ClassGradeGoods">
+        SELECT cgg.* FROM class_grade_goods cgg
+        WHERE
+        cgg.grade_id = #{gradeId}
     </select>
 
 </mapper>

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

@@ -1305,4 +1305,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 #{item}
             </foreach>
     </select>
+
+    <select id="getListNoTenant" resultType="com.zhongzheng.modules.grade.domain.ClassGrade" parameterType="map">
+        SELECT
+            *
+        FROM
+            class_grade
+        WHERE
+            `status` = 1
+          AND seven_code = #{sevenCode}
+          AND grade_id != #{gradeId}
+    </select>
+
+    <update id="updateByIdNoTenant" parameterType="com.zhongzheng.modules.grade.domain.ClassGrade">
+        UPDATE class_grade
+        SET class_status = #{classStatus},
+            official_name = #{officialName},
+            class_name = #{className},
+            student_upper = #{studentUpper},
+            learning_time_start = #{learningTimeStart},
+            learning_status = #{learningStatus},
+            `status` = #{status},
+            class_start_time = #{classStartTime},
+            class_end_time = #{classEndTime},
+            examine_id = #{examineId},
+            areas_id = #{areasId}
+        WHERE
+            grade_id = #{gradeId}
+    </update>
+
 </mapper>