Преглед на файлове

fix 模考数据、控制台模考数据

tanzh преди 3 години
родител
ревизия
d509783211

+ 3 - 3
zhongzheng-admin/src/main/java/com/zhongzheng/controller/base/ConsoleController.java

@@ -67,9 +67,9 @@ public class ConsoleController extends BaseController {
     }
 
     @ApiOperation("控制台模考数据")
-    @GetMapping("/examData")
-    public AjaxResult<Map<String,Object>> examData(ConsoleQueryBo bo) {
-        Map<String,Object> numMap = iConsoleService.getExamData(bo);
+    @GetMapping("/mockData")
+    public AjaxResult<Map<String,Object>> mockData(ConsoleQueryBo bo) {
+        Map<String,Object> numMap = iConsoleService.getMockData(bo);
         return AjaxResult.success(numMap);
     }
 }

+ 115 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/user/UserMockSubscribeController.java

@@ -0,0 +1,115 @@
+package com.zhongzheng.controller.user;
+
+import com.zhongzheng.common.annotation.Log;
+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.ServletUtils;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.framework.web.service.WxTokenService;
+import com.zhongzheng.modules.user.bo.UserMockSubscribeAddBo;
+import com.zhongzheng.modules.user.bo.UserMockSubscribeEditBo;
+import com.zhongzheng.modules.user.bo.UserMockSubscribeQueryBo;
+import com.zhongzheng.modules.user.entity.ClientLoginUser;
+import com.zhongzheng.modules.user.service.IUserMockSubscribeService;
+import com.zhongzheng.modules.user.vo.UserMockSubscribeVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.text.ParseException;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 用户预约模考Controller
+ * 
+ * @author ruoyi
+ * @date 2022-05-25
+ */
+@Api(value = "用户预约模考控制器", tags = {"用户预约模考管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/user/subscribe")
+public class UserMockSubscribeController extends BaseController {
+
+    private final IUserMockSubscribeService iUserMockSubscribeService;
+
+    private final WxTokenService wxTokenService;
+
+    /**
+     * 查询用户预约模考列表
+     */
+    @ApiOperation("查询用户预约模考列表")
+    @PreAuthorize("@ss.hasPermi('system:subscribe:list')")
+    @GetMapping("/listSubscribe")
+    public TableDataInfo<UserMockSubscribeVo> listSubscribe(UserMockSubscribeQueryBo bo) {
+        startPage();
+        List<UserMockSubscribeVo> list = iUserMockSubscribeService.listSubscribe(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出用户预约模考列表
+     */
+    @ApiOperation("导出用户预约模考列表")
+    @PreAuthorize("@ss.hasPermi('system:subscribe:export')")
+    @Log(title = "用户预约模考", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult<UserMockSubscribeVo> export(UserMockSubscribeQueryBo bo) {
+        List<UserMockSubscribeVo> list = iUserMockSubscribeService.queryList(bo);
+        ExcelUtil<UserMockSubscribeVo> util = new ExcelUtil<UserMockSubscribeVo>(UserMockSubscribeVo.class);
+        return util.exportExcel(list, "用户预约模考");
+    }
+
+    /**
+     * 获取用户预约模考详细信息
+     */
+    @ApiOperation("获取用户预约模考详细信息")
+    @PreAuthorize("@ss.hasPermi('system:subscribe:query')")
+    @GetMapping("/{userId}")
+    public TableDataInfo<UserMockSubscribeVo> getInfo(@PathVariable("userId" ) Long userId) {
+        startPage();
+        List<UserMockSubscribeVo> list = iUserMockSubscribeService.getInfo(userId);
+        return getDataTable(list);
+    }
+
+    /**
+     * 新增用户预约模考
+     */
+    @ApiOperation("新增用户预约模考")
+    @PreAuthorize("@ss.hasPermi('system:subscribe:add')")
+    @Log(title = "用户预约模考", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Long> add(@RequestBody UserMockSubscribeAddBo bo) throws ParseException {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());
+        return AjaxResult.success(iUserMockSubscribeService.insertByAddBo(bo));
+    }
+
+    /**
+     * 修改用户预约模考
+     */
+    @ApiOperation("修改用户预约模考")
+    @PreAuthorize("@ss.hasPermi('system:subscribe:edit')")
+    @Log(title = "用户预约模考", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public AjaxResult<Void> edit(@RequestBody UserMockSubscribeEditBo bo) {
+        return toAjax(iUserMockSubscribeService.updateByEditBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除用户预约模考
+     */
+    @ApiOperation("删除用户预约模考")
+    @PreAuthorize("@ss.hasPermi('system:subscribe:remove')")
+    @Log(title = "用户预约模考" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{subscribeIds}")
+    public AjaxResult<Void> remove(@PathVariable Long[] subscribeIds) {
+        return toAjax(iUserMockSubscribeService.deleteWithValidByIds(Arrays.asList(subscribeIds), true) ? 1 : 0);
+    }
+}

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/bo/ConsoleQueryBo.java

@@ -91,4 +91,7 @@ public class ConsoleQueryBo extends BaseEntity {
 
 	/** 考试登记状态 0 待登记 1正常 2缺考 3作弊 4替考 */
 	private Integer examStatus;
+
+	/** 主观题评分状态 0否 1是 */
+	private Integer subjectiveScore;
 }

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/IConsoleService.java

@@ -21,5 +21,5 @@ public interface IConsoleService {
 
     Map<String, Object> getTestData(ConsoleQueryBo bo);
 
-    Map<String, Object> getExamData(ConsoleQueryBo bo);
+    Map<String, Object> getMockData(ConsoleQueryBo bo);
 }

+ 41 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/ConsoleServiceImpl.java

@@ -9,6 +9,7 @@ import com.zhongzheng.modules.grade.service.IClassGradeService;
 import com.zhongzheng.modules.grade.vo.ClassGradeVo;
 import com.zhongzheng.modules.order.service.IOrderService;
 import com.zhongzheng.modules.order.vo.OrderListVo;
+import com.zhongzheng.modules.user.service.IUserMockSubscribeService;
 import com.zhongzheng.modules.user.service.IUserService;
 import com.zhongzheng.modules.user.service.IUserSubscribeService;
 import com.zhongzheng.modules.user.service.IUserUpdateService;
@@ -34,6 +35,9 @@ public class ConsoleServiceImpl implements IConsoleService {
     @Autowired
     private IUserSubscribeService iUserSubscribeService;
 
+    @Autowired
+    private IUserMockSubscribeService iUserMockSubscribeService;
+
     @Override
     public Map<String, Object> getStudentData(ConsoleQueryBo bo) {
         Integer allNum = iOrderService.getConsoleStudentNum(bo); //总人数
@@ -321,8 +325,43 @@ public class ConsoleServiceImpl implements IConsoleService {
     }
 
     @Override
-    public Map<String, Object> getExamData(ConsoleQueryBo bo) {
-        return null;
+    public Map<String, Object> getMockData(ConsoleQueryBo bo) {
+        Map<String, Object> map = new HashMap<>();
+        Calendar cal = Calendar.getInstance();
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
+        Long todZero = cal.getTimeInMillis() / 1000;  //今天凌晨
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH)-1, 0, 0, 0);
+        Long ytdZero = cal.getTimeInMillis() / 1000;   //昨天凌晨
+        Calendar cal7 = new GregorianCalendar();
+        cal7.add(Calendar.DATE,-6); //7天内
+        cal7.set(cal7.get(Calendar.YEAR), cal7.get(Calendar.MONTH), cal7.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
+        Long sevenZero = cal7.getTimeInMillis() / 1000;   //7日内凌晨
+        bo.setSubscribeStatus(1);
+        bo.setSubjectiveScore(0);
+        Integer subscribeNum = iUserMockSubscribeService.getConsoleMockSubscribeNum(bo);
+        Integer toScoreNum = iUserMockSubscribeService.getConsoleMockToScoreNum(bo);
+        bo.setSubStartTime(todZero);
+        bo.setEndTime(DateUtils.getNowTime());
+        Integer subTodNum = iUserMockSubscribeService.getConsoleMockSubscribeNum(bo);
+        Integer toScoreTodNum = iUserMockSubscribeService.getConsoleMockToScoreNum(bo);
+        bo.setSubStartTime(ytdZero);
+        bo.setSubEndTime(todZero);
+        Integer subYtdNum = iUserMockSubscribeService.getConsoleMockSubscribeNum(bo);
+        Integer toScoreYtdNum = iUserMockSubscribeService.getConsoleMockToScoreNum(bo);
+        bo.setSubStartTime(sevenZero);
+        bo.setSubEndTime(DateUtils.getNowTime());
+        Integer subSevNum = iUserMockSubscribeService.getConsoleMockSubscribeNum(bo);
+        Integer toScoreSevNum = iUserMockSubscribeService.getConsoleMockToScoreNum(bo);
+
+        map.put("subscribeNum", subscribeNum);
+        map.put("toScoreNum", toScoreNum);
+        map.put("subTodNum", subTodNum);
+        map.put("toScoreTodNum", toScoreTodNum);
+        map.put("subYtdNum", subYtdNum);
+        map.put("toScoreYtdNum", toScoreYtdNum);
+        map.put("subSevNum", subSevNum);
+        map.put("toScoreSevNum", toScoreSevNum);
+        return map;
     }
 
     private void countNum(Map<String, Object> map,String tag,List<OrderListVo> allList){

+ 20 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserMockSubscribeQueryBo.java

@@ -86,4 +86,24 @@ public class UserMockSubscribeQueryBo extends BaseEntity {
 	/** 第一次交卷时间 */
 	@ApiModelProperty("第一次交卷时间")
 	private Long firstHandTime;
+
+	/** 业务层次ID */
+	@ApiModelProperty("业务层次ID")
+	private Long businessId;
+
+	/** 专业ID */
+	@ApiModelProperty("专业ID")
+	private Long majorId;
+
+	/** 科目ID */
+	@ApiModelProperty("科目ID")
+	private Long subjectId;
+
+	/** 模考标题 */
+	@ApiModelProperty("模考标题")
+	private Long applyName;
+
+	/** 关键字 */
+	@ApiModelProperty("关键字")
+	private String searchKey;
 }

+ 8 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/mapper/UserMockSubscribeMapper.java

@@ -1,5 +1,7 @@
 package com.zhongzheng.modules.user.mapper;
 
+import com.zhongzheng.modules.base.bo.ConsoleQueryBo;
+import com.zhongzheng.modules.user.bo.UserMockSubscribeQueryBo;
 import com.zhongzheng.modules.user.domain.UserMockSubscribe;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zhongzheng.modules.user.vo.UserMockSubscribeVo;
@@ -16,4 +18,10 @@ import java.util.List;
 public interface UserMockSubscribeMapper extends BaseMapper<UserMockSubscribe> {
 
     List<UserMockSubscribeVo> getInfo(Long userId);
+
+    Integer getConsoleMockSubscribeNum(ConsoleQueryBo bo);
+
+    Integer getConsoleMockToScoreNum(ConsoleQueryBo bo);
+
+    List<UserMockSubscribeVo> listSubscribe(UserMockSubscribeQueryBo bo);
 }

+ 7 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserMockSubscribeService.java

@@ -1,5 +1,6 @@
 package com.zhongzheng.modules.user.service;
 
+import com.zhongzheng.modules.base.bo.ConsoleQueryBo;
 import com.zhongzheng.modules.user.domain.UserMockSubscribe;
 import com.zhongzheng.modules.user.vo.UserMockSubscribeVo;
 import com.zhongzheng.modules.user.bo.UserMockSubscribeQueryBo;
@@ -52,4 +53,10 @@ public interface IUserMockSubscribeService extends IService<UserMockSubscribe> {
 	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
 
     List<UserMockSubscribeVo> getInfo(Long userId);
+
+    Integer getConsoleMockSubscribeNum(ConsoleQueryBo bo);
+
+	Integer getConsoleMockToScoreNum(ConsoleQueryBo bo);
+
+    List<UserMockSubscribeVo> listSubscribe(UserMockSubscribeQueryBo bo);
 }

+ 16 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserMockSubscribeServiceImpl.java

@@ -5,6 +5,7 @@ import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.base.bo.ConsoleQueryBo;
 import com.zhongzheng.modules.mock.domain.MockApply;
 import com.zhongzheng.modules.mock.domain.MockMajorSubject;
 import com.zhongzheng.modules.mock.domain.MockMajorSubjectGoods;
@@ -214,4 +215,19 @@ public class UserMockSubscribeServiceImpl extends ServiceImpl<UserMockSubscribeM
     public List<UserMockSubscribeVo> getInfo(Long userId) {
         return baseMapper.getInfo(userId);
     }
+
+    @Override
+    public Integer getConsoleMockSubscribeNum(ConsoleQueryBo bo) {
+        return baseMapper.getConsoleMockSubscribeNum(bo);
+    }
+
+    @Override
+    public Integer getConsoleMockToScoreNum(ConsoleQueryBo bo) {
+        return baseMapper.getConsoleMockToScoreNum(bo);
+    }
+
+    @Override
+    public List<UserMockSubscribeVo> listSubscribe(UserMockSubscribeQueryBo bo) {
+        return baseMapper.listSubscribe(bo);
+    }
 }

+ 16 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserMockSubscribeVo.java

@@ -30,6 +30,14 @@ public class UserMockSubscribeVo {
 	@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取消")
@@ -42,6 +50,14 @@ public class UserMockSubscribeVo {
 	@Excel(name = "0 待登记 1正常 2缺考 3作弊 4替考")
 	@ApiModelProperty("0 待登记 1正常 2缺考 3作弊 4替考")
 	private Integer examStatus;
+	/** 试卷标题 */
+	@Excel(name = "试卷标题")
+	@ApiModelProperty("试卷标题")
+	private String examName;
+	/** 试卷ID */
+	@Excel(name = "试卷ID")
+	@ApiModelProperty("试卷ID")
+	private Integer examId;
 	/** 成绩 */
 	@Excel(name = "成绩")
 	@ApiModelProperty("成绩")

+ 85 - 0
zhongzheng-system/src/main/resources/mapper/modules/user/UserMockSubscribeMapper.xml

@@ -25,9 +25,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <resultMap type="com.zhongzheng.modules.user.vo.UserMockSubscribeVo" id="UserMockSubscribeVoResult">
         <result property="subscribeId" column="subscribe_id"/>
         <result property="userId" column="user_id"/>
+        <result property="realname" column="realname"/>
+        <result property="idCard" column="id_card"/>
         <result property="subscribeStatus" column="subscribe_status"/>
         <result property="beforeStatus" column="before_status"/>
         <result property="examStatus" column="exam_status"/>
+        <result property="examName" column="exam_name"/>
+        <result property="examId" column="exam_id"/>
         <result property="performance" column="performance"/>
         <result property="handStatus" column="hand_status"/>
         <result property="result" column="result"/>
@@ -73,6 +77,87 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                  LEFT JOIN course_subject cs ON mms.subject_id = cs.id
         WHERE user_id = #{userId}
     </select>
+    <select id="getConsoleMockSubscribeNum" parameterType="com.zhongzheng.modules.base.bo.ConsoleQueryBo" resultType="java.lang.Integer">
+        SELECT  COUNT(ums.subscribe_id)
+        FROM user_mock_subscribe ums
+        LEFT JOIN mock_apply ma ON ums.apply_id = ma.apply_id
+        WHERE
+        1=1
+        <if test="businessId != null and businessId != ''">
+            AND ma.business_id = #{businessId}
+        </if>
+        <if test="subscribeStatus != null and subscribeStatus != ''">
+            AND ums.subscribe_status = #{subscribeStatus}
+        </if>
+        <if test="subStartTime != null and subStartTime != ''">
+            AND ums.create_time &gt; #{subStartTime}
+        </if>
+        <if test="subEndTime != null and subEndTime != ''">
+            AND ums.create_time &lt; #{subEndTime}
+        </if>
+    </select>
+    <select id="getConsoleMockToScoreNum" resultType="java.lang.Integer">
+        SELECT  COUNT(ums.subscribe_id)
+        FROM user_mock_subscribe ums
+        LEFT JOIN mock_apply ma ON ums.apply_id = ma.apply_id
+        WHERE
+        1=1
+        <if test="businessId != null and businessId != ''">
+            AND ma.business_id = #{businessId}
+        </if>
+        <if test="subjectiveScore != null">
+            AND ums.first_subjective_score = #{subjectiveScore}
+        </if>
+        <if test="subscribeStatus != null and subscribeStatus != ''">
+            AND ums.subscribe_status = #{subscribeStatus}
+        </if>
+        <if test="subStartTime != null and subStartTime != ''">
+            AND ums.create_time &gt; #{subStartTime}
+        </if>
+        <if test="subEndTime != null and subEndTime != ''">
+            AND ums.create_time &lt; #{subEndTime}
+        </if>
+    </select>
+    <select id="listSubscribe" parameterType="com.zhongzheng.modules.user.bo.UserMockSubscribeQueryBo" resultMap="UserMockSubscribeVoResult">
+        SELECT 	ums.*,
+                u.realname,
+                u.id_card,
+                mms.exam_id,
+                e.exam_name,
+                mms.subject_id,
+                cs.subject_name,
+                ma.apply_name,
+                mm.major_id,
+                m.category_name
+        FROM user_mock_subscribe ums
+        LEFT JOIN `user` u ON ums.user_id = u.user_id
+        LEFT JOIN mock_major_subject mms ON ums.mock_major_subject_id = mms.mock_major_subject_id
+        LEFT JOIN mock_major mm ON mms.mock_major_id = mm.mock_major_id
+        LEFT JOIN major m ON mm.major_id = m.id
+        LEFT JOIN exam e ON mms.exam_id = e.exam_id
+        LEFT JOIN course_subject cs ON mms.subject_id = cs.id
+        LEFT JOIN mock_apply ma ON ums.apply_id = ma.apply_id
+        WHERE
+        1=1
+        <if test="businessId != null and businessId != ''">
+            AND ma.business_id = #{businessId}
+        </if>
+        <if test="searchKey != null and searchKey != ''">
+            AND (u.realname like concat('%', #{searchKey}, '%') or u.id_card like concat('%', #{searchKey}, '%'))
+        </if>
+        <if test="majorId != null and majorId != ''">
+            AND mm.major_id = #{majorId}
+        </if>
+        <if test="subjectId != null and subjectId != ''">
+            AND mms.subject_id = #{subjectId}
+        </if>
+        <if test="applyName != null and applyName != ''">
+            AND ma.apply_Name = #{applyName}
+        </if>
+        <if test="subscribeStatus != null and subscribeStatus != ''">
+            AND ums.subscribe_status = #{subscribeStatus}
+        </if>
+    </select>
 
 
 </mapper>