Kaynağa Gözat

fix 系统选新版

he2802 3 yıl önce
ebeveyn
işleme
ce8d7ddbd1
17 değiştirilmiş dosya ile 194 ekleme ve 6 silme
  1. 14 1
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/base/UserProfileController.java
  2. 3 3
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/grade/ClassGradeController.java
  3. 10 0
      zhongzheng-api/src/main/java/com/zhongzheng/controller/user/UserBankRecordController.java
  4. 22 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassGradeUserSysChangeBo.java
  5. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/IClassGradeUserService.java
  6. 46 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java
  7. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/IOrderService.java
  8. 47 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java
  9. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserStudyRecordEditBo.java
  10. 1 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/domain/UserStudyRecord.java
  11. 6 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/mapper/UserBankRecordMapper.java
  12. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserBankRecordService.java
  13. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserBankRecordServiceImpl.java
  14. 1 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserStudyRecordVo.java
  15. 27 1
      zhongzheng-system/src/main/resources/mapper/modules/user/UserBankRecordMapper.xml
  16. 2 0
      zhongzheng-system/src/main/resources/mapper/modules/user/UserExamRecordMapper.xml
  17. 2 0
      zhongzheng-system/src/main/resources/mapper/modules/user/UserStudyRecordMapper.xml

+ 14 - 1
zhongzheng-admin/src/main/java/com/zhongzheng/controller/base/UserProfileController.java

@@ -36,7 +36,7 @@ import io.swagger.annotations.ApiOperation;
 
 /**
  * 填写资料审核Controller
- * 
+ *
  * @author ruoyi
  * @date 2021-12-20
  */
@@ -114,6 +114,19 @@ public class UserProfileController extends BaseController {
         bo.setTypeStatus(1L);
         List<UserProfileExportVo> list = iUserProfileService.export(bo);
         ExcelUtil<UserProfileExportVo> util = new ExcelUtil<UserProfileExportVo>(UserProfileExportVo.class);
+        String fileName = "填写资料审核-";
+        if(bo.getStatus().get(0)==0){
+            fileName+="全部";
+        }
+        if(bo.getStatus().get(0)==1){
+            fileName+="通过";
+        }
+        if(bo.getStatus().get(0)==2){
+            fileName+="待审";
+        }
+        if(bo.getStatus().get(0)==3){
+            fileName+="不通过";
+        }
         return util.exportExcel(list, "填写资料审核");
     }
 }

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

@@ -362,8 +362,8 @@ public class ClassGradeController extends BaseController {
      * 新增订单
      */
     @ApiOperation("选新班")
-    @PostMapping("/changeGrade")
-    public AjaxResult changeGrade(@RequestBody ClassGradeUserChangeBo bo) {
-        return AjaxResult.success(iClassGradeUserService.changeGrade(bo));
+    @PostMapping("/sysChangeGrade")
+    public AjaxResult changeGrade(@RequestBody ClassGradeUserSysChangeBo bo) {
+        return AjaxResult.success(iClassGradeUserService.sysChangeGrade(bo));
     }
 }

+ 10 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/user/UserBankRecordController.java

@@ -109,5 +109,15 @@ public class UserBankRecordController extends BaseController {
         return AjaxResult.success(iUserBankRecordService.insertByAddBo(bo));
     }
 
+    /**
+     * 获取用户的做题历史详细信息
+     */
+    @ApiOperation("视频商品获取用户的做题历史次数")
+    @GetMapping("/doNum")
+    public AjaxResult<Long> getUserExamDoNum(UserBankRecordQueryBo bo) {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());
+        return AjaxResult.success(iUserBankRecordService.getUserExamDoNum(bo));
+    }
 
 }

+ 22 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassGradeUserSysChangeBo.java

@@ -0,0 +1,22 @@
+package com.zhongzheng.modules.grade.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+
+/**
+ * 学员记录添加对象 class_grade_user
+ *
+ * @author ruoyi
+ * @date 2021-11-10
+ */
+@Data
+@ApiModel("学员换班对象")
+public class ClassGradeUserSysChangeBo {
+
+    private List<ClassGradeUserChangeBo> userList;
+
+}

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

@@ -36,6 +36,8 @@ public interface IClassGradeUserService extends IService<ClassGradeUser> {
 
 	Boolean changeGrade(ClassGradeUserChangeBo bo);
 
+	Boolean sysChangeGrade(ClassGradeUserSysChangeBo bo);
+
 	/**
 	 * 根据编辑业务对象修改学员记录
 	 * @param bo 学员记录编辑业务对象

+ 46 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java

@@ -153,6 +153,52 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
         return true;
     }
 
+    /**
+     * 系统批量选新班
+     * @param bo
+     * @return
+     */
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean sysChangeGrade(ClassGradeUserSysChangeBo bo) {
+        for(ClassGradeUserChangeBo item : bo.getUserList()){
+            ClassGradeQueryBo classGradeQueryBo = new ClassGradeQueryBo();
+            classGradeQueryBo.setUserId(item.getUserId());
+            classGradeQueryBo.setGoodsId(item.getGoodsId());
+            classGradeQueryBo.setPastDue(1L);
+            List<ClassGradeVo> list = iClassGradeService.queryList(classGradeQueryBo);
+            if(list!=null&&list.size()>0){
+                throw new CustomException("包含购买商品班级尚未过期");
+            }
+            OrderGoodsVo orderGoodsVo = iOrderGoodsService.queryById(item.getOrderGoodsId());
+            if(Validator.isEmpty(orderGoodsVo)||Validator.isEmpty(orderGoodsVo.getStudyCount())||orderGoodsVo.getStudyCount()<1){
+                throw new CustomException("学习次数不够");
+            }
+            GoodsVo goodsVo = iGoodsService.selectDetail(item.getGoodsId());
+            //分新班
+            Long newGradeId = iOrderService.sysChangeGrade(goodsVo.getGoodsName(),item.getGoodsId(),item.getOrderGoodsId(),item.getGradeId(),item.getUserId());
+            if(newGradeId>0){
+                //老班修改换班状态
+                ClassGradeUser classGradeUser =  getOne(new LambdaQueryWrapper< ClassGradeUser>().eq(ClassGradeUser::getUserId,item.getUserId())
+                        .eq(ClassGradeUser::getStatus,1)
+                        .eq(ClassGradeUser::getGradeId,item.getOldGradeId())
+                        .last("limit 1"));
+                classGradeUser.setChangeGrade(1);
+                classGradeUser.setUpdateTime(DateUtils.getNowTime());
+                updateById(classGradeUser);
+                //消耗学习次数
+                OrderGoods orderGoods = new OrderGoods();
+                orderGoods.setOrderGoodsId(item.getOrderGoodsId());
+                orderGoods.setStudyCount(orderGoodsVo.getStudyCount()-1);
+                orderGoods.setUpdateTime(DateUtils.getNowTime());
+                orderGoods.setGradeId(newGradeId);
+                iOrderGoodsService.updateById(orderGoods);
+            }
+        }
+        return true;
+    }
+
     @Override
     public Boolean updateByEditBo(ClassGradeUserEditBo bo) {
         for (Long aLong : bo.getId()) {

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

@@ -26,6 +26,8 @@ public interface IOrderService extends IService<Order> {
 	OrderVo queryById(Long orderId);
 
 	Long changeGrade(String goodsName,Long goodsId,Long orderGoodsId,Long gradeId,Long userId);
+
+	Long sysChangeGrade(String goodsName,Long goodsId,Long orderGoodsId,Long gradeId,Long userId);
 	/**
 	 * 查询列表
 	 */

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

@@ -720,6 +720,53 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         return classGrade.getGradeId();
     }
 
+    /**
+     * 系统重新选班不自动分班
+     * @param goodsName
+     * @param goodsId
+     * @param orderGoodsId
+     * @param gradeId
+     * @param userId
+     * @return
+     */
+    @Override
+    public Long sysChangeGrade(String goodsName, Long goodsId, Long orderGoodsId, Long gradeId, Long userId) {
+        //指定班级
+        if(gradeId!=null&&gradeId>0){
+            ClassGradeVo classGradeVo = iClassGradeService.queryById(gradeId);
+            if(classGradeVo==null){
+                throw new CustomException("班级不存在");
+            }
+            if(classGradeVo.getStatus()!=1){
+                throw new CustomException("班级已失效");
+            }
+            ClassGradeGoods gradeGoods = iClassGradeGoodsService.getOne(new LambdaQueryWrapper<ClassGradeGoods>().eq(ClassGradeGoods::getGradeId,gradeId)
+                    .eq(ClassGradeGoods::getGoodsId,goodsId));
+            if(gradeGoods==null){
+                throw new CustomException("该班级不支持该商品使用");
+            }
+            LambdaQueryWrapper<ClassGradeUser> lqw = new LambdaQueryWrapper<>();
+            lqw.eq(ClassGradeUser::getGradeId,gradeId);
+            lqw.eq(ClassGradeUser::getStatus,1);
+            int studentNum = iClassGradeUserService.count(lqw);
+            //临时锁定的班级学员数量
+            LambdaQueryWrapper<ClassGradeUserTemp> lqwLock = new LambdaQueryWrapper<>();
+            lqwLock.eq(ClassGradeUserTemp::getGradeId,gradeId);
+            lqwLock.eq(ClassGradeUserTemp::getStatus,1);
+            int locakStudentNum = iClassGradeUserTempService.count(lqwLock);
+            //预留0空位避免超人数
+            if((classGradeVo.getStudentUpper()-studentNum-locakStudentNum)>0){
+                //班级还有剩位,直接加入班级
+                joinGrade(orderGoodsId,gradeId,userId);
+                return gradeId;
+            }else{
+                throw new CustomException("该班级学员已满,请重新选班");
+            }
+        }
+
+        return null;
+    }
+
     /**
      * 锁定班级
      * @param orderGoodsId

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserStudyRecordEditBo.java

@@ -70,4 +70,6 @@ public class UserStudyRecordEditBo {
     @ApiModelProperty("班级ID")
     private Long gradeId;
 
+
+
 }

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/domain/UserStudyRecord.java

@@ -58,4 +58,5 @@ private static final long serialVersionUID=1L;
     /** 绑定计划ID */
     private Long planId;
 
+
 }

+ 6 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/mapper/UserBankRecordMapper.java

@@ -1,7 +1,12 @@
 package com.zhongzheng.modules.user.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.user.bo.UserBankRecordQueryBo;
+import com.zhongzheng.modules.user.bo.UserCourseAnswerQueryBo;
 import com.zhongzheng.modules.user.domain.UserBankRecord;
+import com.zhongzheng.modules.user.vo.UserCourseAnswerVo;
+
+import java.util.List;
 
 /**
  * 用户的做题历史Mapper接口
@@ -10,5 +15,5 @@ import com.zhongzheng.modules.user.domain.UserBankRecord;
  * @date 2021-06-24
  */
 public interface UserBankRecordMapper extends BaseMapper<UserBankRecord> {
-
+    Long getUserExamDoNum(UserBankRecordQueryBo bo);
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserBankRecordService.java

@@ -23,6 +23,8 @@ public interface IUserBankRecordService extends IService<UserBankRecord> {
 	 */
 	UserBankRecordVo queryById(Long recordId);
 
+	Long getUserExamDoNum(UserBankRecordQueryBo bo);
+
 	/**
 	 * 查询列表
 	 */

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserBankRecordServiceImpl.java

@@ -77,6 +77,11 @@ public class UserBankRecordServiceImpl extends ServiceImpl<UserBankRecordMapper,
         return BeanUtil.toBean(db, UserBankRecordVo.class);
     }
 
+    @Override
+    public Long getUserExamDoNum(UserBankRecordQueryBo bo) {
+        return this.baseMapper.getUserExamDoNum(bo);
+    }
+
     @Override
     public List<UserBankRecordVo> queryList(UserBankRecordQueryBo bo) {
         LambdaQueryWrapper<UserBankRecord> lqw = Wrappers.lambdaQuery();

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserStudyRecordVo.java

@@ -78,4 +78,5 @@ public class UserStudyRecordVo {
 	private String realname;
 	@ApiModelProperty("视频标题")
 	private String title;
+
 }

+ 27 - 1
zhongzheng-system/src/main/resources/mapper/modules/user/UserBankRecordMapper.xml

@@ -24,5 +24,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="gradeId" column="grade_id"/>
     </resultMap>
 
-
+    <select id="getUserExamDoNum" parameterType="com.zhongzheng.modules.user.bo.UserBankRecordQueryBo" resultType="Long">
+        SELECT
+            IFNULL(count(*),0)
+        FROM
+        user_bank_record ubr
+        WHERE
+        1 =1
+        <if test="chapterId != null and chapterId != ''">
+            AND ubr.chapter_id = #{chapterId}
+        </if>
+        <if test="moduleId != null and moduleId != ''">
+            AND ubr.module_id = #{moduleId}
+        </if>
+        <if test="courseId != null and courseId != ''">
+            AND ubr.course_id = #{courseId}
+        </if>
+        <if test="gradeId != null and gradeId != ''">
+            AND ubr.grade_id = #{gradeId}
+        </if>
+        <if test="goodsId != null and goodsId != ''">
+            AND ubr.goods_id = #{goodsId}
+        </if>
+        <if test="examId != null and examId != ''">
+            AND ubr.exam_id = #{examId}
+        </if>
+        AND ubr.user_id = #{userId}
+    </select>
 </mapper>

+ 2 - 0
zhongzheng-system/src/main/resources/mapper/modules/user/UserExamRecordMapper.xml

@@ -216,4 +216,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             ))
 
     </select>
+
+
 </mapper>

+ 2 - 0
zhongzheng-system/src/main/resources/mapper/modules/user/UserStudyRecordMapper.xml

@@ -954,4 +954,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                     usr.section_id
             )a
     </select>
+
+
 </mapper>