change 4 سال پیش
والد
کامیت
3e50ab7b26

+ 3 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/activity/ActivityConfigurationController.java

@@ -1,5 +1,6 @@
 package com.zhongzheng.controller.activity;
 
+import cn.hutool.core.convert.Convert;
 import com.zhongzheng.common.annotation.Log;
 import com.zhongzheng.common.core.controller.BaseController;
 import com.zhongzheng.common.core.domain.AjaxResult;
@@ -58,6 +59,8 @@ public class ActivityConfigurationController extends BaseController {
     @GetMapping("/list")
     public TableDataInfo<ActivityConfigurationVo> list(ActivityConfigurationQueryBo bo) {
         startPage();
+        ClientLoginUser loginUser = WxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(Convert.toInt(loginUser.getUser().getUserId()));
         List<ActivityConfigurationVo> list = iActivityConfigurationService.queryIssueList(bo);
         return getDataTable(list);
     }

+ 4 - 3
zhongzheng-api/src/main/java/com/zhongzheng/controller/activity/ActivityTaskController.java

@@ -48,10 +48,11 @@ public class ActivityTaskController extends BaseController {
      */
     @ApiOperation("查询任务積分列表")
     @GetMapping("/list")
-    public TableDataInfo<ActivityTaskVo> list(ActivityTaskQueryBo bo) {
+    public TableDataInfo<ActivityTaskVo> listUser(ActivityTaskQueryBo bo) {
         startPage();
-
-        List<ActivityTaskVo> list = iActivityTaskService.queryList(bo);
+        ClientLoginUser loginUser = WxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());
+        List<ActivityTaskVo> list = iActivityTaskService.querylistUser(bo);
         return getDataTable(list);
     }
 

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/bo/ActivityTaskQueryBo.java

@@ -65,4 +65,7 @@ public class ActivityTaskQueryBo extends BaseEntity {
 	@ApiModelProperty("0 停用 1启用")
 	private Integer status;
 
+	@ApiModelProperty("0 停用 1启用")
+	private Long userId;
+
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/service/IActivityTaskService.java

@@ -57,4 +57,6 @@ public interface IActivityTaskService extends IService<ActivityTask> {
 	 * @return
 	 */
     ActivityTaskVo queryByTaskId(Long taskId);
+
+	List<ActivityTaskVo> querylistUser(ActivityTaskQueryBo bo);
 }

+ 125 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/service/impl/ActivityTaskServiceImpl.java

@@ -1,10 +1,13 @@
 package com.zhongzheng.modules.activity.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.convert.Convert;
 import cn.hutool.core.util.StrUtil;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.modules.activity.domain.ActivityTaskTime;
+import com.zhongzheng.modules.activity.domain.ActivityTaskUser;
 import com.zhongzheng.modules.activity.service.IActivityTaskTimeService;
+import com.zhongzheng.modules.activity.service.IActivityTaskUserService;
 import com.zhongzheng.modules.activity.vo.ActivityTaskTimeVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -20,11 +23,10 @@ import com.zhongzheng.modules.activity.mapper.ActivityTaskMapper;
 import com.zhongzheng.modules.activity.vo.ActivityTaskVo;
 import com.zhongzheng.modules.activity.service.IActivityTaskService;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
+import java.math.BigDecimal;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -39,6 +41,9 @@ public class ActivityTaskServiceImpl extends ServiceImpl<ActivityTaskMapper, Act
     @Autowired
     private IActivityTaskTimeService activityTaskTimeService;
 
+    @Autowired
+    private IActivityTaskUserService activityTaskUserService;
+
     @Override
     public ActivityTaskVo queryById(Long id){
         ActivityTask db = this.baseMapper.selectById(id);
@@ -165,4 +170,120 @@ public class ActivityTaskServiceImpl extends ServiceImpl<ActivityTaskMapper, Act
         ActivityTask db = baseMapper.queryByTaskId(taskId);
         return BeanUtil.toBean(db,ActivityTaskVo.class);
     }
+
+    @Override
+    public List<ActivityTaskVo> querylistUser(ActivityTaskQueryBo bo) {
+        LambdaQueryWrapper<ActivityTask> lqwActivity = Wrappers.lambdaQuery();
+        lqwActivity.eq(ActivityTask::getStatus, 1);
+        List<ActivityTaskVo> activityTaskVos = entity2Vo(this.list(lqwActivity));
+        activityTaskVos.stream().forEach(l -> {
+            if (l.getId() != null && l.getTaskType() == 5) {
+                LambdaQueryWrapper<ActivityTaskTime> lqwTime = Wrappers.lambdaQuery();
+                lqwTime.eq(l.getId() != null,ActivityTaskTime::getTaskId,l.getId());
+                List<ActivityTaskTimeVo> activityTaskTimeVo = entity2TimeActivityVo(activityTaskTimeService.list(lqwTime));
+                l.setActivityTaskTimeVo(activityTaskTimeVo);
+            }
+            ActivityTaskVo activityTaskVo = queryByTaskId(Convert.toLong(l.getTaskType()));
+            switch (l.getTaskType()){
+                //每日签到逻辑,当日有领取即无法签到
+                case 0:
+                    LambdaQueryWrapper<ActivityTaskUser> lqw = Wrappers.lambdaQuery();
+                    lqw.eq(bo.getTaskType() !=null,ActivityTaskUser::getTaskType,bo.getTaskType());
+                    lqw.eq(bo.getUserId() !=null,ActivityTaskUser::getUserId,bo.getUserId());
+                    lqw.between(ActivityTaskUser::getCreateTime,getTimesmorning(),getTimesnight());
+                    List<ActivityTaskUser> list = activityTaskUserService.list(lqw);
+                    if (!CollectionUtils.isEmpty(list) && list.size() > 0){
+                        throw new IllegalArgumentException("已签到请勿重复签到");
+                    }
+                    break;
+                //完善信息  按照百分比求得乘以分数得到奖励分数
+                case 1:
+                    LambdaQueryWrapper<ActivityTaskUser> useWan = Wrappers.lambdaQuery();
+                    useWan.eq(bo.getTaskType() !=null,ActivityTaskUser::getTaskType,bo.getTaskType());
+                    useWan.eq(bo.getUserId() !=null,ActivityTaskUser::getUserId,bo.getUserId());
+                    List<ActivityTaskUser> listWan = activityTaskUserService.list(useWan);
+                    BigDecimal bigDecimal = new BigDecimal("0");
+                    for (ActivityTaskUser activityTaskUser : listWan) {
+                        bigDecimal = bigDecimal.add(new BigDecimal(activityTaskUser.getScore()));
+                    }
+                    if (bigDecimal.compareTo(new BigDecimal(activityTaskVo.getAccIntegral())) != 0){
+                        throw new IllegalArgumentException("已完善信息领取完成,无法再次领取");
+                    }
+                    break;
+                case 2:
+                    break;
+                case 3:
+                    //每日分享,大于三次达到上线
+                    LambdaQueryWrapper<ActivityTaskUser> useMei = Wrappers.lambdaQuery();
+                    useMei.eq(bo.getTaskType() !=null,ActivityTaskUser::getTaskType,bo.getTaskType());
+                    useMei.eq(bo.getUserId() !=null,ActivityTaskUser::getUserId,bo.getUserId());
+                    useMei.between(ActivityTaskUser::getCreateTime,getTimesmorning(),getTimesnight());
+                    List<ActivityTaskUser> listMei = activityTaskUserService.list(useMei);
+                    if (!CollectionUtils.isEmpty(listMei) && listMei.size() == 3){
+                        throw new IllegalArgumentException("当日分享已达上线");
+                    }
+                    break;
+                case 4:
+                    //连续学习,大于三次达到上线
+                    LambdaQueryWrapper<ActivityTaskUser> study = Wrappers.lambdaQuery();
+                    study.eq(bo.getTaskType() !=null,ActivityTaskUser::getTaskType,bo.getTaskType());
+                    study.eq(bo.getUserId() !=null,ActivityTaskUser::getUserId,bo.getUserId());
+                    study.between(ActivityTaskUser::getCreateTime,getTimesmorning(),getTimesnight());
+                    List<ActivityTaskUser> listStudy = activityTaskUserService.list(study);
+                    Integer score = 0;
+                    for (ActivityTaskUser activityTaskUser : listStudy) {
+                        score = score+ Convert.toInt(activityTaskUser.getScore());
+                    }
+                    if (!CollectionUtils.isEmpty(listStudy) && activityTaskVo.getEndIntegral().equals(score)){
+                    }
+                    break;
+                case 5:
+                    LambdaQueryWrapper<ActivityTaskUser> practice = Wrappers.lambdaQuery();
+                    practice.eq(bo.getTaskType() !=null,ActivityTaskUser::getTaskType,bo.getTaskType());
+                    practice.eq(bo.getUserId() !=null,ActivityTaskUser::getUserId,bo.getUserId());
+                    practice.between(ActivityTaskUser::getCreateTime,getTimesmorning(),getTimesnight());
+                    List<ActivityTaskUser> listPractice = activityTaskUserService.list(practice);
+                    if (!CollectionUtils.isEmpty(listPractice) && listPractice.size() > 0){
+                        throw new IllegalArgumentException("当日领取连续模拟考试积分已达上线");
+                    }
+                    break;
+            }
+        });
+
+        return activityTaskVos;
+
+    }
+
+    //获得今天时间的0点
+    public static int getTimesmorning(){
+        Calendar cal = Calendar.getInstance();
+
+        cal.set(Calendar.HOUR_OF_DAY, 0);
+
+        cal.set(Calendar.SECOND, 0);
+
+        cal.set(Calendar.MINUTE, 0);
+
+        cal.set(Calendar.MILLISECOND, 0);
+
+        return (int) (cal.getTimeInMillis()/1000);
+
+    }
+
+    //获得当天24点时间
+    public static int getTimesnight(){
+        Calendar cal = Calendar.getInstance();
+
+        cal.set(Calendar.HOUR_OF_DAY, 24);
+
+        cal.set(Calendar.SECOND, 0);
+
+        cal.set(Calendar.MINUTE, 0);
+
+        cal.set(Calendar.MILLISECOND, 0);
+
+        return (int) (cal.getTimeInMillis()/1000);
+
+    }
+
 }

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/service/impl/ActivityTaskUserServiceImpl.java

@@ -432,7 +432,7 @@ public class ActivityTaskUserServiceImpl extends ServiceImpl<ActivityTaskUserMap
 
 
     private Boolean validReceiver(ActivityTaskUserAddBo bo) {
-        ActivityTaskVo activityTaskVo = activityTaskService.queryById(bo.getTaskId());
+        ActivityTaskVo activityTaskVo = activityTaskService.queryByTaskId(bo.getTaskId());
         switch (bo.getTaskType()){
             //每日签到逻辑,当日有领取即无法签到
             case 0:

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/vo/ActivityTaskVo.java

@@ -64,6 +64,10 @@ public class ActivityTaskVo {
 	@ApiModelProperty("0 停用 1启用")
 	private Integer status;
 
+	@Excel(name = "0 当日已完成 1未完成")
+	@ApiModelProperty("0 当日已完成 1未完成")
+	private Integer userStatus;
+
 	/** 分数范围 适用与考试积分获得 */
 	@Excel(name = "分数范围 适用与考试积分获得")
 	@ApiModelProperty("分数范围 适用与考试积分获得")

+ 20 - 6
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserPlanServiceImpl.java

@@ -384,12 +384,14 @@ public class UserPlanServiceImpl extends ServiceImpl<UserPlanMapper, UserPlan> i
 
     @Override
     public UserPlanVo userPlanSeven(UserPlanQueryBo bo) {
-        UserPlan userPlan = baseMapper.selectByUserPlan(bo).get(0);
+        List<UserPlan> userPlans = baseMapper.selectByUserPlan(bo);
         UserPlanVo userPlanVos = new UserPlanVo();
-        Calendar cal = Calendar.getInstance();
+        if (!CollectionUtils.isEmpty(userPlans)) {
+            UserPlan userPlan = userPlans.get(0);
+            Calendar cal = Calendar.getInstance();
 
-        //得到日历日期
-        List<CalendarStudyVo> calendarStudyVos = JSONObject.parseArray(userPlan.getSchedule(), CalendarStudyVo.class);
+            //得到日历日期
+            List<CalendarStudyVo> calendarStudyVos = JSONObject.parseArray(userPlan.getSchedule(), CalendarStudyVo.class);
 
 
         //获得计划的课程
@@ -403,10 +405,22 @@ public class UserPlanServiceImpl extends ServiceImpl<UserPlanMapper, UserPlan> i
         bo.setCourseId(array);
         List<CoursePlanVo> coursePlanVo = baseMapper.selectByListCourse(bo);
 
+            userPlanVos.setCoursePlanVo(coursePlanVo);
+            List<DayStudyVo> dayStudyVos = new ArrayList<>();
+            calendarStudyVos.stream().filter(c -> c.getMonth() == cal.get(Calendar.MONTH + 1)).forEach(c -> {
+                c.getDayStudyList().stream()
+                        .filter(v -> v.getDate() < 7 + cal.get(Calendar.DAY_OF_MONTH) || v.getDate() > cal.get(Calendar.DAY_OF_MONTH) - 7);
+            });
+            userPlanVos.setCalendarStudyVo(calendarStudyVos);
+        }
 
-        return null;
-
+        
+        return userPlanVos;
+    }
 
+    public static void main(String[] args) {
+        Calendar cal = Calendar.getInstance();
+        System.out.println();
     }
 
     private UserPlanVo generateSelfBo(UserPlanQueryBo bo) throws ParseException {

+ 44 - 29
zhongzheng-system/src/main/resources/mapper/modules/user/OrderPossessUserMapper.xml

@@ -64,36 +64,51 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectByCource" parameterType="com.zhongzheng.modules.user.bo.OrderPossessUserQueryBo"  resultMap="CourseResult">
         SELECT
-            rs.*,
-            sum( section_num ) AS section_num,
-            count( chapter_id ) AS chapter_num,
-            mc.category_name,
-            mc.category_id,
-            sum( total_time ) AS duration
+        rs.course_id,
+        rs.category_id,
+        rs.price,
+        rs.duration,
+        rs.start_time,
+        rs.end_time,
+        rs.cover_url,
+        rs.introduction,
+        rs.create_time,
+        rs.update_time,
+        rs.STATUS,
+        rs.teacher_ids,
+        rs.course_name,
+        sum( rs.section_num ) AS section_num,
+        count( rs.chapter_id ) AS chapter_num,
+        mc.category_name,
+        mc.category_id,
+        sum( rs.total_time ) AS duration
         FROM
-            (
-                SELECT
-                    c.*,
-                    count( cs.section_id ) AS section_num,
-                    cs.chapter_id,
-                    IFNULL( sum( cs.video_time ), 0 ) AS total_time
-                FROM
-                    course c
-                        LEFT JOIN course_chapter cc ON c.course_id = cc.course_id
-                        LEFT JOIN course_section cs ON cc.chapter_id = cs.chapter_id
-                WHERE
-                    1 = 1
-                GROUP BY
-                    cs.chapter_id,
-                    c.course_id
-            ) rs
-                LEFT JOIN major_category mc ON rs.category_id = mc.category_id
-                LEFT JOIN order_possess_user o ON o.possess_id =rs.course_id
-            where 1=1 and o.type_id =1
-            <if test="userId != null and userId != ''">
-                AND o.user_id = #{userId}
-            </if>
-            GROUP BY course_id
+        (
+        SELECT
+        c.*,
+        count( cs.section_id ) AS section_num,
+        cs.chapter_id,
+        IFNULL( sum( cs.video_time ), 0 ) AS total_time
+        FROM
+        course c
+        LEFT JOIN course_chapter cc ON c.course_id = cc.course_id
+        LEFT JOIN course_section cs ON cc.chapter_id = cs.chapter_id
+        WHERE
+        1 = 1
+        GROUP BY
+        cs.chapter_id,
+        c.course_id
+        ) rs
+        LEFT JOIN major_category mc ON rs.category_id = mc.category_id
+        LEFT JOIN order_possess_user o ON o.possess_id = rs.course_id
+        WHERE
+        1 = 1
+        AND o.type_id = 1
+        <if test="userId != null and userId != ''">
+            AND o.user_id = #{userId}
+        </if>
+        GROUP BY
+        rs.course_id
     </select>
 
     <resultMap type="com.zhongzheng.modules.exam.domain.ExamNote" id="ExamNoteResult">