he2802 3 anni fa
parent
commit
8bb2516e73

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

@@ -58,4 +58,18 @@ public class ConsoleController extends BaseController {
         Map<String,Object> numMap = iConsoleService.getPeriodData(bo);
         return AjaxResult.success(numMap);
     }
+
+    @ApiOperation("控制台考试数据")
+    @GetMapping("/testData")
+    public AjaxResult<Map<String,Object>> testData(ConsoleQueryBo bo) {
+        Map<String,Object> numMap = iConsoleService.getTestData(bo);
+        return AjaxResult.success(numMap);
+    }
+
+    @ApiOperation("控制台模考数据")
+    @GetMapping("/examData")
+    public AjaxResult<Map<String,Object>> examData(ConsoleQueryBo bo) {
+        Map<String,Object> numMap = iConsoleService.getExamData(bo);
+        return AjaxResult.success(numMap);
+    }
 }

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

@@ -80,4 +80,15 @@ public class ConsoleQueryBo extends BaseEntity {
 
 	/** 是否学时推送 0未推送 1推送 */
 	private Integer periodPlush;
+
+	/** 考试预约状态 1正常 2取消 */
+	private Integer subscribeStatus;
+
+	@ApiModelProperty("预约开始时间")
+	private Long subStartTime;
+	@ApiModelProperty("预约结束时间")
+	private Long subEndTime;
+
+	/** 考试登记状态 0 待登记 1正常 2缺考 3作弊 4替考 */
+	private Integer examStatus;
 }

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

@@ -18,4 +18,8 @@ public interface IConsoleService {
     Map<String,Object> getGradeData(ConsoleQueryBo bo);
 
     Map<String,Object> getPeriodData(ConsoleQueryBo bo);
+
+    Map<String, Object> getTestData(ConsoleQueryBo bo);
+
+    Map<String, Object> getExamData(ConsoleQueryBo bo);
 }

+ 66 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/ConsoleServiceImpl.java

@@ -10,6 +10,7 @@ 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.IUserService;
+import com.zhongzheng.modules.user.service.IUserSubscribeService;
 import com.zhongzheng.modules.user.service.IUserUpdateService;
 import com.zhongzheng.modules.user.vo.UserUpdateVo;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -30,6 +31,9 @@ public class ConsoleServiceImpl implements IConsoleService {
     @Autowired
     private IClassGradeService iClassGradeService;
 
+    @Autowired
+    private IUserSubscribeService iUserSubscribeService;
+
     @Override
     public Map<String, Object> getStudentData(ConsoleQueryBo bo) {
         Integer allNum = iOrderService.getConsoleStudentNum(bo); //总人数
@@ -259,6 +263,68 @@ public class ConsoleServiceImpl implements IConsoleService {
         return map;
     }
 
+    @Override
+    public Map<String, Object> getTestData(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);
+        Integer subscribeNum = iUserSubscribeService.getConsoleTestSubscribeNum(bo);
+        bo.setExamStatus(0);
+        Integer waitRegisterNum = iUserSubscribeService.getConsoleTestSubscribeNum(bo);
+        bo.setExamStatus(1);
+        Integer registerNum = iUserSubscribeService.getConsoleTestSubscribeNum(bo);
+        bo.setSubStartTime(todZero);
+        bo.setEndTime(DateUtils.getNowTime());
+        Integer subTodNum = iUserSubscribeService.getConsoleTestSubscribeNum(bo);
+        bo.setExamStatus(0);
+        Integer waitRegisterTodNum = iUserSubscribeService.getConsoleTestSubscribeNum(bo);
+        bo.setExamStatus(1);
+        Integer registerTodNum = iUserSubscribeService.getConsoleTestSubscribeNum(bo);
+        bo.setSubStartTime(ytdZero);
+        bo.setSubEndTime(todZero);
+        Integer subYtdNum = iUserSubscribeService.getConsoleTestSubscribeNum(bo);
+        bo.setExamStatus(0);
+        Integer waitRegisterYtdNum = iUserSubscribeService.getConsoleTestSubscribeNum(bo);
+        bo.setExamStatus(1);
+        Integer registerYtdNum = iUserSubscribeService.getConsoleTestSubscribeNum(bo);
+        bo.setSubStartTime(sevenZero);
+        bo.setSubEndTime(DateUtils.getNowTime());
+        Integer subSevNum = iUserSubscribeService.getConsoleTestSubscribeNum(bo);
+        bo.setExamStatus(0);
+        Integer waitRegisterSevNum = iUserSubscribeService.getConsoleTestSubscribeNum(bo);
+        bo.setExamStatus(1);
+        Integer registerSevNum = iUserSubscribeService.getConsoleTestSubscribeNum(bo);
+
+
+        map.put("subscribeNum", subscribeNum);
+        map.put("waitRegisterNum", waitRegisterNum);
+        map.put("registerNum", registerNum);
+        map.put("subTodNum", subTodNum);
+        map.put("waitRegisterTodNum", waitRegisterTodNum);
+        map.put("registerTodNum", registerTodNum);
+        map.put("subYtdNum", subYtdNum);
+        map.put("waitRegisterYtdNum", waitRegisterYtdNum);
+        map.put("registerYtdNum", registerYtdNum);
+        map.put("subSevNum", subSevNum);
+        map.put("waitRegisterSevNum", waitRegisterSevNum);
+        map.put("registerSevNum", registerSevNum);
+        return map;
+    }
+
+    @Override
+    public Map<String, Object> getExamData(ConsoleQueryBo bo) {
+        return null;
+    }
+
     private void countNum(Map<String, Object> map,String tag,List<OrderListVo> allList){
         Integer allNum = allList.size();
         map.put(tag+"Num",allNum);

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

@@ -65,4 +65,6 @@ public class OrderInputQueryBo extends BaseEntity {
 	private Long endTime;
 	@ApiModelProperty("用户ID")
 	private Long userId;
+	@ApiModelProperty("商品类型 1视频2题库 3面授 4服务 5组合")
+	private Integer goodsType;
 }

+ 12 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserQueryBo.java

@@ -160,4 +160,16 @@ public class UserQueryBo extends BaseEntity {
 	/** 身份证号 */
 	@ApiModelProperty("身份证号列表")
 	private List<String> idCards;
+
+	/** 业务层次id */
+	@ApiModelProperty("业务层次id")
+	private Long businessId;
+
+	/** 开始时间 */
+	@ApiModelProperty("开始时间")
+	private Long startTime;
+
+	/** 开始时间 */
+	@ApiModelProperty("开始时间")
+	private Long endTime;
 }

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

@@ -1,5 +1,6 @@
 package com.zhongzheng.modules.user.mapper;
 
+import com.zhongzheng.modules.base.bo.ConsoleQueryBo;
 import com.zhongzheng.modules.user.bo.UserSubscribeQueryBo;
 import com.zhongzheng.modules.user.domain.UserSubscribe;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -45,4 +46,6 @@ public interface UserSubscribeMapper extends BaseMapper<UserSubscribe> {
     List<UserSubscribeVo> listSubscribeByUser(UserSubscribeQueryBo bo);
 
     UserSubscribeVo getRecentExam(UserSubscribeQueryBo bo);
+
+    Integer getConsoleTestSubscribeNum(ConsoleQueryBo bo);
 }

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

@@ -1,5 +1,6 @@
 package com.zhongzheng.modules.user.service;
 
+import com.zhongzheng.modules.base.bo.ConsoleQueryBo;
 import com.zhongzheng.modules.user.bo.*;
 import com.zhongzheng.modules.user.domain.UserSubscribe;
 import com.zhongzheng.modules.user.vo.UserSubscribeIdsImport;
@@ -77,4 +78,6 @@ public interface IUserSubscribeService extends IService<UserSubscribe> {
 	List<UserSubscribeVo> timeSend();
 
 	List<UserSubscribeVo> listSubscribeByUser(UserSubscribeQueryBo bo);
+
+    Integer getConsoleTestSubscribeNum(ConsoleQueryBo bo);
 }

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

@@ -13,6 +13,7 @@ import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.common.utils.ServletUtils;
 import com.zhongzheng.modules.alisms.service.IAliSmsService;
+import com.zhongzheng.modules.base.bo.ConsoleQueryBo;
 import com.zhongzheng.modules.course.domain.CourseBusiness;
 import com.zhongzheng.modules.course.mapper.CourseMapper;
 import com.zhongzheng.modules.course.service.ICourseService;
@@ -1577,4 +1578,9 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
     public List<UserSubscribeVo> listSubscribeByUser(UserSubscribeQueryBo bo) {
         return baseMapper.listSubscribeByUser(bo);
     }
+
+    @Override
+    public Integer getConsoleTestSubscribeNum(ConsoleQueryBo bo) {
+        return baseMapper.getConsoleTestSubscribeNum(bo);
+    }
 }

+ 4 - 0
zhongzheng-system/src/main/resources/mapper/modules/order/OrderInputMapper.xml

@@ -87,7 +87,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         LEFT JOIN course_education_type cet ON u.education_type_id = cet.id
         LEFT JOIN course_project_type cpt ON u.project_id = cpt.id
         LEFT JOIN course_business cb ON u.business_id = cb.id
+        LEFT JOIN goods g ON og.goods_id = g.goods_id
         where 1=1
+        <if test="goodsType != null">
+            AND g.goods_type = #{goodsType}
+        </if>
         GROUP BY
         u.input_order_sn
         ORDER BY create_time DESC

+ 15 - 1
zhongzheng-system/src/main/resources/mapper/modules/user/UserMapper.xml

@@ -137,7 +137,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </select>
 
     <select id="selectList" parameterType="com.zhongzheng.modules.user.bo.UserQueryBo" resultMap="UserResult">
-        SELECT
+        SELECT DISTINCT
         u.*
         <if test="getOrderNum != null and getOrderNum == 1" >
         ,ou.goods_course_num,ou.goods_bank_num
@@ -161,6 +161,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             o.user_id
             ) ou ON u.user_id = ou.user_id
         </if>
+        <if test="businessId != null and businessId != ''">
+            LEFT JOIN `order` o ON u.user_id = o.user_id and o.`status` = 1
+            LEFT JOIN order_goods og ON o.order_sn = og.order_sn and og.`status` = 1
+            LEFT JOIN goods g ON og.goods_id = g.goods_id
+        </if>
         WHERE
         1 = 1
         <if test="status != null and status.size()!=0 ">
@@ -169,6 +174,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 #{item}
             </foreach>
         </if>
+        <if test="businessId != null and businessId != ''">
+            AND g.business_id = #{businessId}
+        </if>
+        <if test="startTime != null and startTime != ''">
+            AND u.create_time &gt; #{startTime}
+        </if>
+        <if test="endTime != null and endTime != ''">
+            AND u.create_time &lt; #{endTime}
+        </if>
         <if test="nickname != null and nickname != ''" >
             AND u.nickname like concat('%', #{nickname}, '%')
         </if>

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

@@ -309,4 +309,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
           AND LEFT(us.apply_site_start_time,2)*3600+RIGHT(us.apply_site_start_time,2)*60+us.apply_site_exam_time >  unix_timestamp(now())
         ORDER by us.apply_site_exam_time  limit 1
     </select>
+    <select id="getConsoleTestSubscribeNum" parameterType="com.zhongzheng.modules.base.bo.ConsoleQueryBo" resultType="Integer">
+        SELECT
+        COUNT(us.subscribe_id)
+        FROM
+        user_subscribe us
+        LEFT JOIN goods g ON us.goods_id = g.goods_id
+        WHERE
+        1=1
+        <if test="businessId != null">
+            AND g.business_id = #{businessId}
+        </if>
+        <if test="subscribeStatus != null">
+            AND us.subscribe_status = #{subscribeStatus}
+        </if>
+        <if test="examStatus != null">
+            AND us.exam_status = #{examStatus}
+        </if>
+        <if test="subStartTime != null">
+            AND us.create_time &gt; #{subStartTime}
+        </if>
+        <if test="subEndTime != null">
+            AND us.create_time &lt; #{subEndTime}
+        </if>
+    </select>
 </mapper>