change 4 жил өмнө
parent
commit
f8469eaa4c

+ 10 - 16
zhongzheng-admin/src/main/java/com/zhongzheng/controller/user/UserSubscribeController.java

@@ -11,6 +11,7 @@ import com.zhongzheng.modules.exam.vo.ExamApplyVo;
 import com.zhongzheng.modules.user.bo.*;
 import com.zhongzheng.modules.user.service.IUserExamGoodsService;
 import com.zhongzheng.modules.user.vo.UserExamGoodsVo;
+import com.zhongzheng.modules.user.vo.UserSubscribeImport;
 import lombok.RequiredArgsConstructor;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -110,23 +111,16 @@ public class UserSubscribeController extends BaseController {
         return AjaxResult.success(userExamGoodsVo);
     }
 
-/*    @Log(title = "题目管理", businessType = BusinessType.IMPORT)
-    @ApiOperation("导入题目模板")
+    @Log(title = "导入预约考试模板", businessType = BusinessType.IMPORT)
+    @ApiOperation("导入新增预约考试模板")
     @PreAuthorize("@ss.hasPermi('system:apply:import')")
     @PostMapping("/importData")
-    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
-    {
-        ExcelUtil<QuestionImport> util = new ExcelUtil<QuestionImport>(QuestionImport.class);
-        List<QuestionImport> questionList = util.importExcel(file.getInputStream());
-        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
-        String operName = loginUser.getUsername();
-        String message = iQuestionService.importQuestion(questionList, updateSupport, operName);
-        if(Validator.isNotEmpty(message)){
-            return AjaxResult.error(message);
-        }else{
-            return AjaxResult.success(message);
-        }
-
-    }*/
+    public AjaxResult<UserSubscribeImport> importData(MultipartFile file) throws Exception {
+        ExcelUtil<UserSubscribeImport> util = new ExcelUtil<UserSubscribeImport>(UserSubscribeImport.class);
+        List<UserSubscribeImport> userSubscribeImportList = util.importExcel(file.getInputStream());
+
+        List<UserSubscribeImport> userSubscribeImport = iUserSubscribeService.importData(userSubscribeImportList);
+        return util.exportExcel(userSubscribeImportList, "导入失败原因");
+    }
 
 }

+ 5 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/grade/ClassGradeController.java

@@ -5,6 +5,7 @@ import com.zhongzheng.common.core.controller.BaseController;
 import com.zhongzheng.common.core.domain.AjaxResult;
 import com.zhongzheng.common.core.page.TableDataInfo;
 import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.common.utils.ServletUtils;
 import com.zhongzheng.modules.grade.bo.*;
 import com.zhongzheng.modules.grade.service.*;
@@ -17,6 +18,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -50,6 +52,9 @@ public class ClassGradeController extends BaseController {
     @GetMapping("/list")
     public TableDataInfo<ClassGradeVo> list(ClassGradeQueryBo bo) {
         startPage();
+        bo.setClassStartTime(DateUtils.getNowTime());
+        bo.setClassEndTime(DateUtils.getNowTime());
+        bo.setStatus(new ArrayList<Integer>(Arrays.asList(1)));
         List<ClassGradeVo> list = iClassGradeService.queryList(bo);
         return getDataTable(list);
     }

+ 19 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseServiceImpl.java

@@ -229,7 +229,25 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
 
     @Override
     public List<GoodsUserVo> goodsList(CourseQueryBo bo) {
-        return baseMapper.goodsList(bo);
+        bo.setUserId(4L);
+        List<GoodsUserVo> goodsUserVos = baseMapper.goodsList(bo);
+        for (GoodsUserVo goodsUserVo : goodsUserVos) {
+            Long secLong = 0L;
+            Long studyLong = 0L;
+            SubjectStudyRecordQueryBo subjectStudyRecordQueryBo = new SubjectStudyRecordQueryBo();
+            subjectStudyRecordQueryBo.setGoodsId(goodsUserVo.getGoodsId());
+            subjectStudyRecordQueryBo.setUserId(bo.getUserId());
+            subjectStudyRecordQueryBo.setGradeId(goodsUserVo.getGradeId());
+            List<SubjectStudyRecordVo> subjectStudyRecordVos = iUserStudyRecordService.listSubject(subjectStudyRecordQueryBo);
+            for (SubjectStudyRecordVo subjectStudyRecordVo : subjectStudyRecordVos) {
+                secLong = new BigDecimal(secLong.toString()).add(new BigDecimal(subjectStudyRecordVo.getSectionNum().toString())).longValue();
+                studyLong = new BigDecimal(studyLong.toString()).add(new BigDecimal(subjectStudyRecordVo.getRecordNum().toString())).longValue();
+
+            }
+            goodsUserVo.setSecAllNum(secLong);
+            goodsUserVo.setStuAllNum(studyLong);
+        }
+        return goodsUserVos;
     }
 
     @Override

+ 9 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/vo/GoodsUserVo.java

@@ -234,4 +234,13 @@ public class GoodsUserVo {
 	@Excel(name = "前培和补考商品关联")
 	@ApiModelProperty("前培和补考商品关联编码")
 	private String makeGoodsCode;
+
+	/** 学习进度 */
+	@ApiModelProperty("已学节数")
+	private Long stuAllNum;
+
+
+	/** 学习进度 */
+	@ApiModelProperty("总节数")
+	private Long secAllNum;
 }

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/mapper/UserSubscribeMapper.java

@@ -4,6 +4,7 @@ import com.zhongzheng.modules.user.bo.UserSubscribeQueryBo;
 import com.zhongzheng.modules.user.domain.UserSubscribe;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zhongzheng.modules.user.vo.UserSubscribeVo;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -16,4 +17,8 @@ import java.util.List;
 public interface UserSubscribeMapper extends BaseMapper<UserSubscribe> {
 
     List<UserSubscribeVo> listSubscribe(UserSubscribeQueryBo bo);
+
+    Long selectGoodsId(String code);
+
+    Long selectUserId(@Param("userName") String userName,@Param("idCard")  Long idCard);
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserSubscribeService.java

@@ -2,6 +2,7 @@ package com.zhongzheng.modules.user.service;
 
 import com.zhongzheng.modules.user.bo.UserSubscribeCertificateEditBo;
 import com.zhongzheng.modules.user.domain.UserSubscribe;
+import com.zhongzheng.modules.user.vo.UserSubscribeImport;
 import com.zhongzheng.modules.user.vo.UserSubscribeVo;
 import com.zhongzheng.modules.user.bo.UserSubscribeQueryBo;
 import com.zhongzheng.modules.user.bo.UserSubscribeAddBo;
@@ -56,4 +57,6 @@ public interface IUserSubscribeService extends IService<UserSubscribe> {
     List<UserSubscribeVo> listSubscribe(UserSubscribeQueryBo bo);
 
 	boolean editCertificate(List<UserSubscribeCertificateEditBo> bo);
+
+	List<UserSubscribeImport> importData(List<UserSubscribeImport> userSubscribeImportList);
 }

+ 58 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserSubscribeServiceImpl.java

@@ -2,11 +2,13 @@ package com.zhongzheng.modules.user.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.modules.exam.mapper.ExamApplyMapper;
 import com.zhongzheng.modules.exam.vo.ExamApplySiteTimeVo;
 import com.zhongzheng.modules.exam.vo.ExamApplySiteVo;
 import com.zhongzheng.modules.user.bo.UserSubscribeCertificateEditBo;
+import com.zhongzheng.modules.user.vo.UserSubscribeImport;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -21,7 +23,9 @@ import com.zhongzheng.modules.user.mapper.UserSubscribeMapper;
 import com.zhongzheng.modules.user.vo.UserSubscribeVo;
 import com.zhongzheng.modules.user.service.IUserSubscribeService;
 import org.springframework.transaction.annotation.Transactional;
+import org.thymeleaf.util.StringUtils;
 
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
@@ -157,4 +161,58 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
         }
         return true;
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public List<UserSubscribeImport> importData(List<UserSubscribeImport> userSubscribeImportList) {
+        if (CollectionUtils.isEmpty(userSubscribeImportList)){
+            throw new IllegalArgumentException("请勿导入空表格");
+        }
+        List<UserSubscribeImport> userSubscribeImports = new ArrayList<>();
+        for (UserSubscribeImport userSubscribeImport : userSubscribeImportList) {
+            UserSubscribeAddBo userSubscribeAddBo = new UserSubscribeAddBo();
+            //查询商品
+            if (StringUtils.isEmpty(userSubscribeImport.getCode())){
+                userSubscribeImport.setCause("未填商品编码");
+                userSubscribeImports.add(userSubscribeImport);
+                continue;
+            }
+            Long goodsId = baseMapper.selectGoodsId(userSubscribeImport.getCode());
+            if (goodsId == null){
+                userSubscribeImport.setCause("商品编码错误");
+                userSubscribeImports.add(userSubscribeImport);
+                continue;
+            }
+            userSubscribeAddBo.setGoodsId(goodsId);
+            //查询学员Id
+            if (StringUtils.isEmpty(userSubscribeImport.getUserName()) || userSubscribeImport.getIdCard() == null){
+                userSubscribeImport.setCause("学员信息未填");
+                userSubscribeImports.add(userSubscribeImport);
+                continue;
+            }
+            Long userId = baseMapper.selectUserId(userSubscribeImport.getUserName(),userSubscribeImport.getIdCard());
+            if (userId == null){
+                userSubscribeImport.setCause("用户信息错误");
+                userSubscribeImports.add(userSubscribeImport);
+                continue;
+            }
+            userSubscribeAddBo.setUserId(userId);
+
+            if (StringUtils.isEmpty(userSubscribeImport.getSubscribeStatus())){
+                userSubscribeImport.setCause("预约状态为空");
+                userSubscribeImports.add(userSubscribeImport);
+                continue;
+            }
+            if (userSubscribeImport.getSubscribeStatus().equals("正常")){
+                userSubscribeAddBo.setSubscribeStatus(1);
+            }
+            if (userSubscribeImport.getSubscribeStatus().equals("取消")){
+                userSubscribeAddBo.setSubscribeStatus(0);
+            }
+            
+
+            this.insertByAddBo(userSubscribeAddBo);
+        }
+        return userSubscribeImports;
+    }
 }

+ 60 - 135
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserSubscribeImport.java

@@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.math.BigDecimal;
+import java.util.Date;
 
 
 /**
@@ -15,153 +16,77 @@ import java.math.BigDecimal;
  * @date 2021-12-07
  */
 @Data
-@ApiModel("用户预约考试视图对象")
+@ApiModel("用户预约考试导入对象")
 public class UserSubscribeImport {
 	private static final long serialVersionUID = 1L;
 
-	/** $pkColumn.columnComment */
-	@ApiModelProperty("$pkColumn.columnComment")
-	private Long subscribeId;
-
-	/** 绑定的商品 */
-	@Excel(name = "绑定的商品")
-	@ApiModelProperty("绑定的商品")
-	private Long goodsId;
-
-	/** 商品名称 */
-	@Excel(name = "商品名称")
-	@ApiModelProperty("商品名称")
-	private String goodsName;
-
-	@ApiModelProperty("专业名称")
-	private String categoryName;
-
-	/** 编码 */
-	@Excel(name = "编码")
-	@ApiModelProperty("编码")
-	private String goodsCode;
-
-	/** 开始日期 */
-	@Excel(name = "报考开始日期")
-	@ApiModelProperty("报考开始日期")
-	private Long applyStartTime;
-	/** 结束日期 */
-	@Excel(name = "报考结束日期")
-	@ApiModelProperty("报考结束日期")
-	private Long applyEndTime;
-
-	/** 标准价格 */
-	@Excel(name = "标准价格")
-	@ApiModelProperty("标准价格")
-	private BigDecimal standPrice;
-
-	/** 学员ID */
-	@Excel(name = "学员ID")
-	@ApiModelProperty("学员ID")
-	private Long userId;
-
-	/** 真实姓名 */
-	@Excel(name = "真实姓名")
-	@ApiModelProperty("真实姓名")
-	private String realname;
-	/** 身份证号 */
-	@Excel(name = "身份证号")
-	@ApiModelProperty("身份证号")
-	private String idCard;
-
-	/** 1正常 2取消 */
-	@Excel(name = "1正常 2取消")
-	@ApiModelProperty("1正常 2取消")
-	private Integer subscribeStatus;
-	/** 1 已开通 */
-	@Excel(name = "1 已开通")
-	@ApiModelProperty("1 已开通")
-	private Integer beforeStatus;
-	/** 0 待登记 1正常 2缺考 3作弊 4替考 */
-	@Excel(name = "0 待登记 1正常 2缺考 3作弊 4替考")
-	@ApiModelProperty("0 待登记 1正常 2缺考 3作弊 4替考")
-	private Integer examStatus;
-	/** 成绩 */
-	@Excel(name = "成绩")
-	@ApiModelProperty("成绩")
-	private Long performance;
-	/** 1通过 0不通过 */
-	@Excel(name = "1通过 0不通过")
-	@ApiModelProperty("1通过 0不通过")
-	private Integer result;
-	/** 证书编号 */
-	@Excel(name = "证书编号")
-	@ApiModelProperty("证书编号")
-	private String certificateCode;
-	/** 登记补充 */
-	@Excel(name = "登记补充")
-	@ApiModelProperty("登记补充")
-	private String remark;
 	/** $column.columnComment */
-	@Excel(name = "登记补充")
-	@ApiModelProperty("$column.columnComment")
-	private Long applyId;
+	@Excel(name = "*姓名")
+	private String userName;
+
+	@Excel(name = "*身份证号" )
+	private Long idCard;
 
 	/** 考试标题 */
-	@Excel(name = "考试标题")
-	@ApiModelProperty("考试标题")
+	@Excel(name = "*考试标题")
 	private String applyName;
 
-	/** 1非补考学员 2补考学员 */
-	@Excel(name = "1非补考学员 2补考学员")
-	@ApiModelProperty("1非补考学员 2补考学员")
-	private Integer studentType;
-	/** 1 消耗次数 */
-	@Excel(name = "1 消耗次数")
-	@ApiModelProperty("1 消耗次数")
-	private Integer examExpend;
-	/** 1 前培次数消耗 */
-	@Excel(name = "1 前培次数消耗")
-	@ApiModelProperty("1 前培次数消耗")
-	private Integer beforeExpend;
-
-	/** 创建时间 */
-	@ApiModelProperty("创建时间")
-	private Long createTime;
-
-	/** 前培ID */
-	@ApiModelProperty("前培ID")
-	private Long beforeId;
-
-	/** 前培ID */
-	@ApiModelProperty("前培标题")
-	private String beforeName;
+	@Excel(name = "*考试日期")
+	private Date applySiteExamTime;
 
 	/** 考试地点 */
-	@Excel(name = "考试地点")
-	@ApiModelProperty("考试地点")
+	@Excel(name = "*考试地点")
 	private String applySiteAddress;
+
+	/** 考试开始时间段 */
+	@Excel(name = "*考试时间段")
+	private String applySiteTime;
+
 	/** 考试开始时间段 */
-	@Excel(name = "考试开始时间段")
-	@ApiModelProperty("考试开始时间段")
-	private String applySiteStartTime;
-	/** 考试结束时间段 */
-	@Excel(name = "考试结束时间段")
-	@ApiModelProperty("考试结束时间段")
-	private String applySiteEndTime;
-	/** 考试日期 */
-	@Excel(name = "考试日期")
-	@ApiModelProperty("考试日期")
-	private Long applySiteExamTime;
-	/** 考培地点 */
-	@Excel(name = "考培地点")
-	@ApiModelProperty("考培地点")
+	@Excel(name = "*商品编码")
+	private String code;
+
+	/** 考试开始时间段 */
+	@Excel(name = "*所购商品")
+	private String goodsName;
+
+
+	/** 1非补考学员 2补考学员 */
+	@Excel(name = "*学员报名类型")
+	private String studentTypeName;
+
+	@Excel(name = "前培标题")
+	private String beforeName;
+
+	@Excel(name = "前培标记")
+	private String beforeStatus;
+
+	@Excel(name = "考培地址")
 	private String applySiteAddressTrain;
-	/** 考培开始时间段 */
-	@Excel(name = "考培开始时间段")
-	@ApiModelProperty("考培开始时间段")
-	private String applySiteStartTrainTime;
-	/** 考培结束时间段 */
-	@Excel(name = "考培结束时间段")
-	@ApiModelProperty("考培结束时间段")
-	private String applySiteEndTrainTime;
-	/** 考培日期 */
+
 	@Excel(name = "考培日期")
-	@ApiModelProperty("考培日期")
-	private Long applySiteExamTrainTime;
+	private Date applySiteExamTrainTime;
+
+	@Excel(name = "考培时间段")
+	private String applySiteTrainTime;
+
+	/** 1正常 2取消 */
+	@Excel(name = "*预约状态")
+	private String subscribeStatus;
+
+	@Excel(name = "*考试登记")
+	private String examStatus;
+
+	@Excel(name = "考试成绩")
+	private BigDecimal performance;
+
+	/** 1通过 0不通过 */
+	@Excel(name = "考试结果")
+	private String result;
+
+	@Excel(name = "证书编号")
+	private String certificateCode;
+
+	@Excel(name = "失败原因")
+	private String cause;
 }

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

@@ -125,7 +125,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="userId" column="user_id"/>
         <result property="id" column="id"/>
         <result property="gradeId" column="grade_id"/>
-        <result property="studentCode" column="student_code"/>
+        <result property="studentCode" column="user_account"/>
         <result property="realName" column="realname"/>
         <result property="idCard" column="id_card"/>
         <result property="telPhone" column="telphone"/>
@@ -273,7 +273,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="listGrade"  parameterType="com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo" resultMap="ClassGradeStudentVo">
         SELECT
         cgu.id,
-        u.student_code,
+        u.user_account,
         u.user_id,
         cgu.`status`,
         u.realname,
@@ -411,7 +411,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="listGradeStudy"  parameterType="com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo" resultMap="ClassGradeStudentVo">
         SELECT
-            u.student_code,
+            u.user_account,
             u.user_id,
             u.realname,
             u.id_card

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

@@ -20,7 +20,7 @@
         <result property="userId" column="user_id"/>
         <result property="gradeId" column="grade_id"/>
         <result property="status" column="status"/>
-        <result property="code" column="student_code"/>
+        <result property="code" column="user_account"/>
         <result property="realName" column="realname"/>
         <result property="idCard" column="id_card"/>
         <result property="createBy" column="create_by"/>
@@ -50,7 +50,7 @@
     <resultMap type="com.zhongzheng.modules.grade.vo.ClassPeriodStudentVo" id="ClassPeriodStudentVo">
         <result property="userId" column="user_id"/>
         <result property="gradeId" column="grade_id"/>
-        <result property="studentCode" column="student_code"/>
+        <result property="studentCode" column="user_account"/>
         <result property="realName" column="realname"/>
         <result property="idCard" column="id_card"/>
         <result property="telPhone" column="telphone"/>
@@ -70,7 +70,7 @@
 
     <resultMap type="com.zhongzheng.modules.grade.vo.ClassPeriodUserVo" id="ClassPeriodUserVo">
         <result property="userId" column="user_id"/>
-        <result property="studentCode" column="student_code"/>
+        <result property="studentCode" column="user_account"/>
         <result property="realName" column="realname"/>
         <result property="oneInchPhotos" column="one_inch_photos"/>
         <result property="idCardImg1" column="id_card_img1"/>
@@ -133,7 +133,7 @@
             resultMap="ClassGradeUserVoResult">
         SELECT
         g.*,
-        u.student_code,
+        u.user_account,
         u.realname,
         u.id_card,
         u.telphone
@@ -200,7 +200,7 @@
     <select id="listUserPeriod" parameterType="com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo"
             resultMap="ClassPeriodStudentVo">
         SELECT
-        u.student_code,
+        u.user_account,
         u.user_id,
         cgu.`status`,
         u.realname,
@@ -243,7 +243,7 @@
     <select id="listPeriod" parameterType="com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo"
             resultMap="ClassPeriodUserVo">
         SELECT
-        u.student_code,
+        u.user_account,
         u.realname,
         u.id_card,
         u.user_id,

+ 9 - 0
zhongzheng-system/src/main/resources/mapper/modules/user/UserSubscribeMapper.xml

@@ -110,4 +110,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             and (SELECT u.realname FROM `user` u where us.user_id = u.user_id) like concat('%', #{realname}, '%')
         </if>
     </select>
+
+
+    <select id="selectGoodsId" parameterType="string"  resultType="Long">
+        SELECT g.goods_id FROM goods g where g.`code`=#{code}
+    </select>
+
+    <select id="selectUserId" parameterType="map"  resultType="Long">
+        SELECT u.userId FROM `user` u where u.renalname=#{userName} and u.id_card=#{idCard}
+    </select>
 </mapper>