yangdamao 1 年之前
父節點
當前提交
4fbfd5e1f8

+ 14 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/grade/ClassGradeController.java

@@ -99,6 +99,20 @@ public class ClassGradeController extends BaseController {
         return getDataTable(list);
     }
 
+
+    /**
+     * 查询班级列表
+     */
+    @ApiOperation("批量查询商品班级列表")
+    @PreAuthorize("@ss.hasPermi('grade:grade:list')")
+    @GetMapping("/listGoodsBatchNew")
+    public TableDataInfo<ClassGradeGoodsVo> listGoodsBatchNew(ClassGradeQueryBo bo) {
+        startPage();
+        bo.setGoodsIds(Arrays.stream(bo.getGoodsIdStr().split(",")).map(x -> Long.valueOf(x)).collect(Collectors.toList()));
+        List<ClassGradeGoodsVo> list = iClassGradeService.listGoodsBatch(bo);
+        return getDataTable(list);
+    }
+
     /**
      * 查询班级列表
      */

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

@@ -257,4 +257,11 @@ public class OrderController extends BaseController {
         ExcelUtil<OrderExportNewVo> util = new ExcelUtil<>(OrderExportNewVo.class);
         return util.exportExcel(list,"订单记录");
     }
+
+    @ApiOperation("处理新考重复订单")
+    @GetMapping("/handle/repetition")
+    public AjaxResult<Void> handleRepetitionOrder(RepetitionOrderBo bo) {
+        iOrderService.handleRepetitionOrder(bo);
+        return AjaxResult.success();
+    }
 }

+ 1 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/user/UserController.java

@@ -132,6 +132,7 @@ public class UserController extends BaseController {
         if (StringUtils.isNotBlank(tenantId)){
             SysTenant tenant = sysTenantService.getById(Long.valueOf(tenantId));
             vo.setEduPhone(tenant.getEduPhone());
+            vo.setSlabSign(tenant.getSlabSign());
         }
 
         bo.setUserId(loginUser.getUser().getUserId());

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassGradeQueryBo.java

@@ -139,6 +139,9 @@ public class ClassGradeQueryBo extends BaseEntity {
 
 	@ApiModelProperty("商品id数组")
 	private List<Long> goodsIds;
+
+	@ApiModelProperty("商品id数组")
+	private String goodsIdStr;
 	/** 开始时间 */
 	@ApiModelProperty("开始时间")
 	private Long startTime;
@@ -156,4 +159,6 @@ public class ClassGradeQueryBo extends BaseEntity {
 	private Integer classSign;
 
 	private String userName;
+	@ApiModelProperty("预开班标识:1是 0否")
+	private Integer prepareClassSign;
 }

+ 6 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeServiceImpl.java

@@ -240,6 +240,11 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
         classGradeGoodsVos.forEach(item -> {
             if (CollectionUtils.isNotEmpty(item.getGradeList())) {
                 List<ClassGradeVo> collect = item.getGradeList().stream().filter(gradeVo -> {
+                    if (ObjectUtils.isNotNull(bo.getPrepareClassSign()) && bo.getPrepareClassSign() == 1
+                    && ObjectUtils.isNotNull(gradeVo.getClassStatus()) && gradeVo.getClassStatus() == 1){
+                        //只获取预开班班级
+                        return false;
+                    }
                     if (ObjectUtils.isNotNull(gradeVo.getClassStatus()) && gradeVo.getClassStatus() == 1){
                         Long classStartTime = gradeVo.getClassEndTime();
                         Integer pastDueDay = 10;
@@ -284,7 +289,7 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
                         }
                     }
                     return true;
-                }).sorted(Comparator.comparing(ClassGradeVo::getClassStatus,Comparator.nullsLast(Integer::compareTo).reversed())
+                }).sorted(Comparator.comparing(ClassGradeVo::getClassStatus,Comparator.nullsFirst(Integer::compareTo).reversed())
                         .thenComparing(ClassGradeVo::getCreateTime,Comparator.reverseOrder())).collect(Collectors.toList());
                 item.setGradeList(collect);
             }

+ 12 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/RepetitionOrderBo.java

@@ -0,0 +1,12 @@
+package com.zhongzheng.modules.order.bo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class RepetitionOrderBo implements Serializable {
+
+    private Long userId;
+
+}

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/mapper/OrderMapper.java

@@ -7,10 +7,13 @@ import com.zhongzheng.modules.grade.domain.ClassGrade;
 import com.zhongzheng.modules.order.bo.OrderExportNewBo;
 import com.zhongzheng.modules.order.bo.OrderGoodsQueryBo;
 import com.zhongzheng.modules.order.bo.OrderQueryBo;
+import com.zhongzheng.modules.order.bo.RepetitionOrderBo;
 import com.zhongzheng.modules.order.domain.Order;
+import com.zhongzheng.modules.order.domain.OrderGoods;
 import com.zhongzheng.modules.order.vo.OrderExportNewVo;
 import com.zhongzheng.modules.order.vo.OrderGoodsVo;
 import com.zhongzheng.modules.order.vo.OrderListVo;
+import com.zhongzheng.modules.order.vo.RepetitionOrderVo;
 import com.zhongzheng.modules.top.goods.vo.TopOldOrderInvoiceVo;
 import org.apache.ibatis.annotations.Param;
 
@@ -76,4 +79,7 @@ public interface OrderMapper extends BaseMapper<Order> {
     Long getCountByGoods(@Param("goodsIds") List<Long> goodsIds);
 
     List<OrderExportNewVo> exportNew(OrderExportNewBo bo);
+
+    List<RepetitionOrderVo> getSevenOrder(RepetitionOrderBo bo);
+
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/IOrderService.java

@@ -134,4 +134,7 @@ public interface IOrderService extends IService<Order> {
     List<String> getBusinessNameBySn(String orderSn);
 
 	List<OrderExportNewVo> exportNew(OrderExportNewBo bo);
+
+	void handleRepetitionOrder(RepetitionOrderBo bo);
+
 }

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

@@ -79,14 +79,8 @@ import com.zhongzheng.modules.top.goods.service.ITopOldOrderService;
 import com.zhongzheng.modules.top.goods.vo.TopOldOrderInvoiceVo;
 import com.zhongzheng.modules.top.settle.domian.TopInstSettle;
 import com.zhongzheng.modules.top.settle.service.ITopInstSettleService;
-import com.zhongzheng.modules.user.domain.User;
-import com.zhongzheng.modules.user.domain.UserExamGoods;
-import com.zhongzheng.modules.user.domain.UserStudyVideo;
-import com.zhongzheng.modules.user.domain.UserSubscribe;
-import com.zhongzheng.modules.user.service.IUserExamGoodsService;
-import com.zhongzheng.modules.user.service.IUserService;
-import com.zhongzheng.modules.user.service.IUserStudyVideoService;
-import com.zhongzheng.modules.user.service.IUserSubscribeService;
+import com.zhongzheng.modules.user.domain.*;
+import com.zhongzheng.modules.user.service.*;
 import com.zhongzheng.modules.user.vo.UserVo;
 import com.zhongzheng.modules.wx.service.IWxPayService;
 import net.polyv.common.v1.util.StringUtils;
@@ -218,6 +212,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
     private ISysTenantService iSysTenantService;
     @Autowired
     private IUserStudyVideoService iUserStudyVideoService;
+    @Autowired
+    private IUserStudyRecordService iUserStudyRecordService;
     @Value("${oldStudySys.createExamPath}")
     private String CREATE_EXAM_PATH;
 
@@ -3425,6 +3421,63 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         return baseMapper.exportNew(bo);
     }
 
+    @Override
+    public void handleRepetitionOrder(RepetitionOrderBo bo) {
+        //获取所有的考前七大员订单
+       List<RepetitionOrderVo> voList = baseMapper.getSevenOrder(bo);
+       if (CollectionUtils.isEmpty(voList)){
+           return;
+       }
+        Map<Long, Map<Long, List<RepetitionOrderVo>>> collect = voList.stream()
+                .collect(Collectors.groupingBy(RepetitionOrderVo::getUserId, Collectors.groupingBy(RepetitionOrderVo::getGoodsId)));
+        collect.forEach((k,v) -> {
+            v.forEach((j,m) -> {
+                if (m.size() == 1){
+                    return;
+                }
+                List<Long> orderGoodsIds = new ArrayList<>();
+                //找到学过的订单
+                for (RepetitionOrderVo vo : m) {
+                    ClassGradeUser gradeUser = iClassGradeUserService
+                            .getOne(new LambdaQueryWrapper<ClassGradeUser>()
+                            .eq(ClassGradeUser::getOrderGoodsId, vo.getOrderGoodsId())
+                            .eq(ClassGradeUser::getChangeGrade, 0)
+                            .last("limit 1"));
+                    if (ObjectUtils.isNotNull(gradeUser) && gradeUser.getFinishStatus() == 1){
+                        orderGoodsIds.add(vo.getOrderGoodsId());
+                        continue;
+                    }
+                    //没学完
+                    int count = iUserStudyRecordService.count(new LambdaQueryWrapper<UserStudyRecord>()
+                            .eq(UserStudyRecord::getOrderGoodsId, vo.getOrderGoodsId())
+                            .eq(UserStudyRecord::getCurrentStatus, 1));
+                    if (count > 0){
+                        orderGoodsIds.add(vo.getOrderGoodsId());
+                    }
+                }
+                if (CollectionUtils.isEmpty(orderGoodsIds)){
+                    //都没学过,不处理
+                    return;
+                }
+                List<RepetitionOrderVo> collect1 = m.stream().filter(x -> !orderGoodsIds.contains(x.getOrderGoodsId())).collect(Collectors.toList());
+                //关闭没用订单
+                for (RepetitionOrderVo vo : collect1) {
+                    OrderGoods orderGoods = iOrderGoodsService.getById(vo.getOrderGoodsId());
+                    orderGoods.setStatus(0);
+                    ClassGradeUser gradeUser = iClassGradeUserService
+                            .getOne(new LambdaQueryWrapper<ClassGradeUser>()
+                                    .eq(ClassGradeUser::getOrderGoodsId, vo.getOrderGoodsId())
+                                    .eq(ClassGradeUser::getChangeGrade, 0)
+                                    .last("limit 1"));
+                    gradeUser.setStatus(0);
+                    iOrderGoodsService.updateById(orderGoods);
+                    iClassGradeUserService.updateById(gradeUser);
+                }
+            });
+        });
+
+    }
+
     private void questionOpen(User user, QuestionMerchant merchant,UserSubscribe userSubscribe,Long loginId,String loginName) {
         //商家商品
         Goods merGoods = iGoodsService.getOne(new LambdaQueryWrapper<Goods>()

+ 17 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/vo/RepetitionOrderVo.java

@@ -0,0 +1,17 @@
+package com.zhongzheng.modules.order.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class RepetitionOrderVo implements Serializable {
+
+    private Long orderGoodsId;
+
+    private Long userId;
+
+    private Long goodsId;
+
+    private String orderSn;
+}

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/system/domain/SysTenant.java

@@ -119,4 +119,6 @@ private static final long serialVersionUID=1L;
     private String handleBank;
     /** 是否关闭七大员在线付款 */
     private Integer sevenPayment;
+    /** 平板禁止观看标签:1是 0否 */
+    private Integer slabSign;
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserVo.java

@@ -317,6 +317,8 @@ public class UserVo {
 	private Long subscribeId;
 	@ApiModelProperty("考场座位号")
 	private String seatNumber;
+	@ApiModelProperty("平板禁止观看标签:1是 0否")
+	private Integer slabSign;
 	public void setNull(){
 		this.setOpenId(null);
 /*		this.setIdCardImg1(null);

+ 26 - 0
zhongzheng-system/src/main/resources/mapper/modules/order/OrderMapper.xml

@@ -780,4 +780,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </if>
     </select>
 
+    <select id="getSevenOrder" parameterType="com.zhongzheng.modules.order.bo.RepetitionOrderBo"
+            resultType="com.zhongzheng.modules.order.vo.RepetitionOrderVo">
+        SELECT
+            u.user_id,
+            og.order_goods_id,
+            g.goods_id,
+            o.order_sn
+        FROM
+            order_goods og
+                LEFT JOIN `order` o ON og.order_sn = o.order_sn
+                LEFT JOIN `user` u ON o.user_id = u.user_id
+                LEFT JOIN goods g ON og.goods_id = g.goods_id
+                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
+        WHERE
+            og.`status` = 1
+            AND og.pay_status != 1
+	        AND og.refund_status != 2
+	        AND g.goods_type = 1
+	        AND INSTR( CONCAT( cet.education_name, cpt.project_name ), "考前培训施工现场专业人员" )
+            <if test="userId != null and userId != ''">
+                AND u.user_id = #{userId}
+            </if>
+    </select>
+
 </mapper>