Browse Source

Merge branch 'dev-v5.2' into dev

he2802 3 years ago
parent
commit
d4967ddfec

+ 4 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/course/CourseEducationTypeController.java

@@ -35,6 +35,8 @@ public class CourseEducationTypeController extends BaseController {
 
     private final ICourseEducationTypeService iCourseEducationTypeService;
 
+
+
     /**
      * 查询教育类型列表
      */
@@ -46,4 +48,6 @@ public class CourseEducationTypeController extends BaseController {
         List<CourseEducationTypeVo> list = iCourseEducationTypeService.queryList(bo);
         return getDataTable(list);
     }
+
+
 }

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

@@ -8,6 +8,8 @@ import com.zhongzheng.common.enums.BusinessType;
 import com.zhongzheng.common.utils.SecurityUtils;
 import com.zhongzheng.common.utils.ServletUtils;
 import com.zhongzheng.framework.web.service.WxTokenService;
+import com.zhongzheng.modules.course.service.ICourseEducationTypeService;
+import com.zhongzheng.modules.course.vo.CourseEducationTypeVo;
 import com.zhongzheng.modules.order.bo.*;
 import com.zhongzheng.modules.order.service.IOrderGoodsService;
 import com.zhongzheng.modules.order.service.IOrderService;
@@ -42,6 +44,8 @@ public class OrderController extends BaseController {
 
     private final WxTokenService wxTokenService;
 
+    private final ICourseEducationTypeService iCourseEducationTypeService;
+
     /**
      * 查询订单列表
      */
@@ -133,4 +137,13 @@ public class OrderController extends BaseController {
         bo.setUserId(loginUser.getUser().getUserId());
         return AjaxResult.success(iOrderService.resumePcOrder(bo));
     }
+
+    @ApiOperation("查询用户教育类型列表")
+    @GetMapping("/userEduList")
+    public TableDataInfo<CourseEducationTypeVo> userEduList(OrderGoodsQueryBo bo) {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        startPage();
+        List<CourseEducationTypeVo> list = iCourseEducationTypeService.selectUserEduList(loginUser.getUser().getUserId(),bo.getGoodsType());
+        return getDataTable(list);
+    }
 }

+ 5 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/mapper/CourseEducationTypeMapper.java

@@ -2,6 +2,10 @@ package com.zhongzheng.modules.course.mapper;
 
 import com.zhongzheng.modules.course.domain.CourseEducationType;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.course.vo.CourseEducationTypeVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * 教育类型Mapper接口
@@ -10,5 +14,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @date 2021-10-08
  */
 public interface CourseEducationTypeMapper extends BaseMapper<CourseEducationType> {
-
+   List<CourseEducationTypeVo> selectUserEduList(@Param("userId") Long userId,@Param("goodsType") Integer goodsType);
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/ICourseEducationTypeService.java

@@ -23,6 +23,8 @@ public interface ICourseEducationTypeService extends IService<CourseEducationTyp
 	 */
 	CourseEducationTypeVo queryById(Long id);
 
+	List<CourseEducationTypeVo> selectUserEduList(Long userId,Integer goodsType);
+
 	/**
 	 * 查询列表
 	 */

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseEducationTypeServiceImpl.java

@@ -47,6 +47,11 @@ public class CourseEducationTypeServiceImpl extends ServiceImpl<CourseEducationT
         return BeanUtil.toBean(db, CourseEducationTypeVo.class);
     }
 
+    @Override
+    public List<CourseEducationTypeVo> selectUserEduList(Long userId,Integer goodsType) {
+        return this.baseMapper.selectUserEduList(userId,goodsType);
+    }
+
     @Override
     public List<CourseEducationTypeVo> queryList(CourseEducationTypeQueryBo bo) {
         LambdaQueryWrapper<CourseEducationType> lqw = Wrappers.lambdaQuery();

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/OrderGoodsQueryBo.java

@@ -101,5 +101,7 @@ public class OrderGoodsQueryBo extends BaseEntity {
 	/** 复购老订单商品ID */
 	@ApiModelProperty("复购老订单商品ID")
 	private Integer rebuyOrderGoodsId;
+	@ApiModelProperty("商品类型 1视频2题库 3面授 4服务 5组合")
+	private Integer goodsType;
 
 }

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

@@ -314,6 +314,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             payPrice = payPrice.add(g.getGoodsPrice());
             boolean orderGoodsRs = iOrderGoodsService.save(orderGoods);
             boolean canRepeatBuy = false;
+            validUserBeforeBuy(goods,bo.getUserId());
             //视频商品安排班级
             if (goods.getGoodsType() == 1) {
                 if (Validator.isNotEmpty(goods.getStudyCount())) {
@@ -323,10 +324,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 }
 
                 Long gradeId = null;
-                //判断是否购买历史班级都过期
-                canRepeatBuy = this.canBuyRepeatGoods(g.getGoodsId(), bo.getUserId());
                 //判断是否有购买过,服务期是否过期
                 Long oldOrderGoodsId = getHaveBuyGoods(g.getGoodsId(), bo.getUserId());
+                //判断是否购买历史班级都过期
+                canRepeatBuy = this.canBuyRepeatGoods(g.getGoodsId(), bo.getUserId());
                 if (g.getGoodsInputData() != null) {
                     gradeId = g.getGoodsInputData().getGradeId();
                     if (Validator.isNotEmpty(oldOrderGoodsId)) {
@@ -352,7 +353,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             if (!canRepeatBuy && goods.getGoodsType() != 3 && goods.getGoodsType() != 4) {
                 this.checkBuyGoods(g.getGoodsId(), bo.getUserId(), goods.getGoodsType());
             }
-            validUserBeforeBuy(goods,bo.getUserId());
             //商品0元加入免费商品列表
             if (orderGoods.getGoodsPrice().compareTo(BigDecimal.ZERO) == 0) {
                 freeList.add(orderGoods);
@@ -446,6 +446,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             receivedPrice = receivedPrice.add(g.getGoodsReceived());
             boolean orderGoodsRs = iOrderGoodsService.save(orderGoods);
             boolean canRepeatBuy = false;
+            validUserBeforeBuy(goods,bo.getUserId());
             //视频商品安排班级
             if (goods.getGoodsType() == 1) {
                 if (Validator.isNotEmpty(goods.getStudyCount())) {
@@ -455,12 +456,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 }
 
                 Long gradeId = null;
+                //判断是否有购买过
+                Long oldOrderGoodsId = getHaveBuyGoods(g.getGoodsId(), bo.getUserId());
                 //判断是否购买历史班级都过期
                 canRepeatBuy = this.canBuyRepeatGoods(g.getGoodsId(), bo.getUserId());
                 if (g.getGoodsInputData() != null) {
                     gradeId = g.getGoodsInputData().getGradeId();
-                    //判断是否有购买过
-                    Long oldOrderGoodsId = getHaveBuyGoods(g.getGoodsId(), bo.getUserId());
                     if (Validator.isNotEmpty(oldOrderGoodsId)) {
                         //有指定选班模板且视频商品班级已过期,记录复购状态
                         orderGoods.setRebuyOrderGoodsId(oldOrderGoodsId);
@@ -484,7 +485,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             if (!canRepeatBuy && goods.getGoodsType() != 3 && goods.getGoodsType() != 4) {
                 this.checkBuyGoods(g.getGoodsId(), bo.getUserId(), goods.getGoodsType());
             }
-            validUserBeforeBuy(goods,bo.getUserId());
             //商品0元或已收费加入收费商品列表
             if (g.getGoodsRealPrice().compareTo(BigDecimal.ZERO) == 0) {
                 //免费的
@@ -623,6 +623,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             boolean orderGoodsRs = iOrderGoodsService.save(orderGoods);
 
             boolean canRepeatBuy = false;
+            validUserBeforeBuy(goods,bo.getUserId());
             //视频商品安排班级
             if (goods.getGoodsType() == 1) {
                 if (Validator.isNotEmpty(goods.getStudyCount())) {
@@ -631,12 +632,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                     orderGoods.setStudyCount(0L);//没配置则为0
                 }
                 Long gradeId = null;
+                //判断是否有购买过
+                Long oldOrderGoodsId = getHaveBuyGoods(g.getGoodsId(), bo.getUserId());
                 //判断是否购买历史班级都过期
                 canRepeatBuy = this.canBuyRepeatGoods(g.getGoodsId(), bo.getUserId());
                 if (g.getGoodsInputData() != null) {
                     gradeId = g.getGoodsInputData().getGradeId();
-                    //判断是否有购买过
-                    Long oldOrderGoodsId = getHaveBuyGoods(g.getGoodsId(), bo.getUserId());
                     if (Validator.isNotEmpty(oldOrderGoodsId)) {
                         //有指定选班模板且视频商品班级已过期,记录复购状态
                         orderGoods.setRebuyOrderGoodsId(oldOrderGoodsId);
@@ -656,7 +657,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             if (!canRepeatBuy && goods.getGoodsType() != 3 && goods.getGoodsType() != 4) {
                 this.checkBuyGoods(g.getGoodsId(), bo.getUserId(), goods.getGoodsType());
             }
-            validUserBeforeBuy(goods,bo.getUserId());
             iShoppingCartService.deleteByGoodsId(g.getGoodsId(), bo.getUserId());
             //商品0元加入免费商品列表
             if (orderGoods.getGoodsPrice().compareTo(BigDecimal.ZERO) == 0) {
@@ -766,6 +766,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             boolean orderGoodsRs = iOrderGoodsService.save(orderGoods);
 
             boolean canRepeatBuy = false;
+            validUserBeforeBuy(goods,bo.getUserId());
             //视频商品安排班级
             if (goods.getGoodsType() == 1) {
                 if (Validator.isNotEmpty(goods.getStudyCount())) {
@@ -774,12 +775,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                     orderGoods.setStudyCount(0L);//没配置则为0
                 }
                 Long gradeId = null;
+                //判断是否有购买过
+                Long oldOrderGoodsId = getHaveBuyGoods(g.getGoodsId(), bo.getUserId());
                 //判断是否购买历史班级都过期
                 canRepeatBuy = this.canBuyRepeatGoods(g.getGoodsId(), bo.getUserId());
                 if (g.getGoodsInputData() != null) {
                     gradeId = g.getGoodsInputData().getGradeId();
-                    //判断是否有购买过
-                    Long oldOrderGoodsId = getHaveBuyGoods(g.getGoodsId(), bo.getUserId());
                     if (Validator.isNotEmpty(oldOrderGoodsId)) {
                         //有指定选班模板且视频商品班级已过期,记录复购状态
                         orderGoods.setRebuyOrderGoodsId(oldOrderGoodsId);
@@ -799,7 +800,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             if (!canRepeatBuy && goods.getGoodsType() != 3 && goods.getGoodsType() != 4) {
                 this.checkBuyGoods(g.getGoodsId(), bo.getUserId(), goods.getGoodsType());
             }
-            validUserBeforeBuy(goods,bo.getUserId());
             iShoppingCartService.deleteByGoodsId(g.getGoodsId(), bo.getUserId());
             //商品0元加入免费商品列表
             if (orderGoods.getGoodsPrice().compareTo(BigDecimal.ZERO) == 0) {

+ 3 - 0
zhongzheng-system/src/main/resources/mapper/modules/bank/QuestionMapper.xml

@@ -288,6 +288,9 @@
           AND og.`status` =1
           and og.pay_status in (2,3,4)
           AND og.refund_status in (0,3,1)
+        <if test="educationTypeId != null and educationTypeId != ''">
+            AND g.education_type_id = #{educationTypeId}
+        </if>
         ORDER BY og.create_time DESC
     </select>
 </mapper>

+ 1 - 0
zhongzheng-system/src/main/resources/mapper/modules/base/ShoppingCartMapper.xml

@@ -46,5 +46,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 LEFT JOIN order_input_template ot ON cb.template_status = ot.id
         WHERE
             s.user_id =  #{userId}
+        order by s.update_time desc
     </select>
 </mapper>

+ 36 - 0
zhongzheng-system/src/main/resources/mapper/modules/course/CourseEducationTypeMapper.xml

@@ -15,5 +15,41 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="sort" column="sort"/>
     </resultMap>
 
+    <resultMap type="com.zhongzheng.modules.course.vo.CourseEducationTypeVo" id="CourseEducationTypeVoResult">
+        <result property="id" column="id"/>
+        <result property="educationName" column="education_name"/>
+        <result property="encoder" column="encoder"/>
+        <result property="remark" column="remark"/>
+        <result property="status" column="status"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+
+
+    <select id="selectUserEduList" parameterType="map" resultMap="CourseEducationTypeVoResult">
+        SELECT
+            cet.id,
+            cet.education_name
+        FROM
+            (
+                SELECT
+                    og.goods_id
+                FROM
+                    `order` o
+                        LEFT JOIN order_goods og ON o.order_sn = og.order_sn
+                WHERE
+                    o.user_id = #{userId}
+                  AND og.pay_status IN ( 2, 3, 4 )
+                  AND og.refund_status != 2
+                GROUP BY
+                    og.goods_id
+            ) a
+                LEFT JOIN goods g ON a.goods_id = g.goods_id
+                LEFT JOIN course_education_type cet ON g.education_type_id = cet.id
+        where g.goods_type = #{goodsType}
+        GROUP BY
+            cet.id
+
+    </select>
 
 </mapper>

+ 3 - 0
zhongzheng-system/src/main/resources/mapper/modules/course/CourseMapper.xml

@@ -507,6 +507,9 @@
         <if test="userId != null and userId != ''">
             and o.user_id = #{userId}
         </if>
+        <if test="educationTypeId != null and educationTypeId != ''">
+            AND g.education_type_id = #{educationTypeId}
+        </if>
         order by o.create_time desc
     </select>
     <select id="courseList" parameterType="com.zhongzheng.modules.course.bo.CourseQueryBo"  resultMap="CourseUserVo">

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

@@ -262,8 +262,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="goodsType ==1">
             , (SELECT count(*) FROM goods_course where goods_id =g.goods_id ) as course_num
             , (SELECT count(*) FROM class_grade cg  LEFT JOIN class_grade_goods cgg on cg.grade_id = cgg.grade_id where  cgg.goods_id = g.goods_id and cg.`status` = 1 ) as grade_num
-            , (SELECT cg.grade_id FROM class_grade cg  LEFT JOIN class_grade_goods cgg on cg.grade_id = cgg.grade_id where  cgg.goods_id = g.goods_id and cg.`status` = 1 limit 1) as grade_id
-            , (SELECT cg.class_name FROM class_grade cg  LEFT JOIN class_grade_goods cgg on cg.grade_id = cgg.grade_id where  cgg.goods_id = g.goods_id and cg.`status` = 1 limit 1) as grade_name
+            , (SELECT cg.grade_id FROM class_grade cg  LEFT JOIN class_grade_goods cgg on cg.grade_id = cgg.grade_id where  cgg.goods_id = g.goods_id and cg.`status` = 1 AND (unix_timestamp(now()) &lt; cg.class_end_time or cg.class_start_time is null) AND cg.`status` = 1  AND (SELECT COUNT(a.id) FROM class_grade_user a where a.grade_id = cg.grade_id and a.status =1) &lt; cg.student_upper limit 1) as grade_id
+            , (SELECT cg.class_name FROM class_grade cg  LEFT JOIN class_grade_goods cgg on cg.grade_id = cgg.grade_id where  cgg.goods_id = g.goods_id and cg.`status` = 1 AND (unix_timestamp(now()) &lt; cg.class_end_time or cg.class_start_time is null) AND cg.`status` = 1  AND (SELECT COUNT(a.id) FROM class_grade_user a where a.grade_id = cg.grade_id and a.status =1) &lt; cg.student_upper limit 1) as grade_name
         </if>
         FROM
         goods g

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

@@ -1030,7 +1030,6 @@
         and irb.remind_id =5
           and cgu.status = 1
         AND unix_timestamp(now()) BETWEEN cg.class_end_time-1728000 and cg.class_end_time-1641600
-        AND (SELECT COUNT(1) FROM inform_user iu where 1=1 and iu.remind_id = 5 and cgu.user_id = iu.user_id and cgu.grade_id = iu.grade_id and iu.system_status=3) &lt; 1
     </select>
 
     <select id="checkSendClassGradeUser" parameterType="map"  resultType="long">

+ 2 - 0
zhongzheng-system/src/main/resources/mapper/modules/order/OrderGoodsMapper.xml

@@ -302,4 +302,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
           AND og.goods_id = #{goodsId}
     </select>
 
+
+
 </mapper>