Selaa lähdekoodia

活动信息调整

dzx 1 vuosi sitten
vanhempi
commit
d7149967e7

+ 2 - 0
src/main/java/com/xjrsoft/module/activity/controller/ActivityEnrollController.java

@@ -140,4 +140,6 @@ public class ActivityEnrollController {
         return RT.fileStream(bot.toByteArray(), "banding" + ExcelTypeEnum.XLSX.getValue());
     }
 
+
+
 }

+ 56 - 28
src/main/java/com/xjrsoft/module/activity/controller/ActivityInfoController.java

@@ -1,11 +1,8 @@
 package com.xjrsoft.module.activity.controller;
 
-import camundajar.impl.com.google.gson.JsonArray;
-import camundajar.impl.com.google.gson.JsonElement;
-import camundajar.impl.com.google.gson.JsonParser;
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xjrsoft.common.exception.MyException;
 import com.xjrsoft.common.model.result.RT;
@@ -16,6 +13,7 @@ import com.xjrsoft.module.activity.dto.ActivityInfoPageDto;
 import com.xjrsoft.module.activity.dto.AddActivityInfoDto;
 import com.xjrsoft.module.activity.dto.ChangeStatusDto;
 import com.xjrsoft.module.activity.dto.UpdateActivityInfoDto;
+import com.xjrsoft.module.activity.entity.ActivityEnroll;
 import com.xjrsoft.module.activity.entity.ActivityInfo;
 import com.xjrsoft.module.activity.service.IActivityEnrollService;
 import com.xjrsoft.module.activity.service.IActivityInfoService;
@@ -87,33 +85,29 @@ public class ActivityInfoController {
            return RT.error("找不到此数据!");
         }
         ActivityInfoVo infoVo = BeanUtil.toBean(activityInfo, ActivityInfoVo.class);
-        if(activityInfo.getEnrollRange() != null && !"".equals(activityInfo.getEnrollRange())){
-            JsonParser parser = new JsonParser();
-            JsonArray asJsonArray = parser.parse(activityInfo.getEnrollRange()).getAsJsonArray();
-            List<ActivityEnrollRangeVo> userRelationList = new ArrayList<>();
-            for (JsonElement jsonElement : asJsonArray) {
-                ActivityEnrollRangeVo relationDto = JSONUtil.toBean(jsonElement.getAsJsonObject().toString(), ActivityEnrollRangeVo.class);
-                if(relationDto.getUserId() != null){
-                    XjrUser xjrUser = xjrUserService.getById(relationDto.getUserId());
-                    if(xjrUser != null){
-                        relationDto.setName(xjrUser.getName());
-                    }
-                }else if(relationDto.getDeptId() != null){
-                    Department department = departmentService.getById(relationDto.getDeptId());
-                    if(department != null){
-                        relationDto.setName(department.getName());
-                    }
-
-                }else if(relationDto.getClassId() != null){
-                    BaseClass aClass = classService.getById(relationDto.getClassId());
-                    if(aClass != null){
-                        relationDto.setName(aClass.getName());
-                    }
+        List<ActivityEnrollRangeVo> userRelationList = new ArrayList<>();
+        for (ActivityEnroll jsonElement : activityInfo.getActivityEnrollList()) {
+            ActivityEnrollRangeVo relationDto = BeanUtil.toBean(jsonElement, ActivityEnrollRangeVo.class);
+            if(relationDto.getUserId() != null){
+                XjrUser xjrUser = xjrUserService.getById(relationDto.getUserId());
+                if(xjrUser != null){
+                    relationDto.setName(xjrUser.getName());
+                }
+            }else if(relationDto.getDeptId() != null){
+                Department department = departmentService.getById(relationDto.getDeptId());
+                if(department != null){
+                    relationDto.setName(department.getName());
+                }
+
+            }else if(relationDto.getClassId() != null){
+                BaseClass aClass = classService.getById(relationDto.getClassId());
+                if(aClass != null){
+                    relationDto.setName(aClass.getName());
                 }
-                userRelationList.add(relationDto);
             }
-            infoVo.setActivityEnrollRangeList(userRelationList);
+            userRelationList.add(relationDto);
         }
+        infoVo.setActivityEnrollRangeList(userRelationList);
 
         ActivityEnrollPageDto dto = new ActivityEnrollPageDto();
         dto.setActivityInfoId(id);
@@ -174,4 +168,38 @@ public class ActivityInfoController {
         return RT.ok(activityInfoService.delete(ids));
     }
 
+
+    @GetMapping(value = "/effective-list")
+    @ApiOperation(value="移动端活动信息列表(分页)")
+    @SaCheckPermission("activityinfo:detail")
+    public RT<PageOutput<ActivityInfoPageVo>> mobilePage(@Valid ActivityInfoPageDto dto){
+        dto.setIsEffective(1);
+        Page<ActivityInfoPageVo> page = activityInfoService.getPage(new Page<>(dto.getLimit(), dto.getSize()), dto);
+
+        ActivityEnrollPageDto enrollDto = new ActivityEnrollPageDto();
+        enrollDto.setLoginUserId(StpUtil.getLoginIdAsLong());
+        List<ActivityEnrollPageVo> enrolList = enrollService.getList(enrollDto);
+        Set<String> collect = enrolList.stream().map(ActivityEnrollPageVo::getActivityInfoId).collect(Collectors.toSet());
+
+        for (ActivityInfoPageVo record : page.getRecords()) {
+            record.setIsEnroll(0);
+            if(collect.contains(record.getId())){
+                record.setIsEnroll(1);
+            }
+        }
+
+        PageOutput<ActivityInfoPageVo> pageOutput = ConventPage.getPageOutput(page, ActivityInfoPageVo.class);
+        return RT.ok(pageOutput);
+    }
+
+    @GetMapping(value = "/enroll")
+    @ApiOperation(value="报名")
+    @SaCheckPermission("activityinfo:detail")
+    public RT<PageOutput<ActivityInfoPageVo>> enroll(@Valid ActivityInfoPageDto dto){
+        dto.setIsEffective(1);
+        Page<ActivityInfoPageVo> page = activityInfoService.getPage(new Page<>(dto.getLimit(), dto.getSize()), dto);
+        PageOutput<ActivityInfoPageVo> pageOutput = ConventPage.getPageOutput(page, ActivityInfoPageVo.class);
+        return RT.ok(pageOutput);
+    }
+
 }

+ 4 - 0
src/main/java/com/xjrsoft/module/activity/dto/ActivityEnrollPageDto.java

@@ -21,4 +21,8 @@ public class ActivityEnrollPageDto extends PageInput {
 
     @ApiModelProperty("状态(0:待确认 1:未参与 2:已参与)")
     private Integer status;
+
+    @ApiModelProperty("登录人id")
+    private Long loginUserId;
+
 }

+ 4 - 0
src/main/java/com/xjrsoft/module/activity/dto/ActivityInfoPageDto.java

@@ -18,4 +18,8 @@ public class ActivityInfoPageDto extends PageInput {
 
     @ApiModelProperty("活动类别(1:校企合作活动 2:赛事活动)")
     private Integer category;
+
+
+    @ApiModelProperty("是否有效活动(1:是 0:否)")
+    private Integer isEffective;
 }

+ 2 - 2
src/main/java/com/xjrsoft/module/activity/service/impl/ActivityInfoServiceImpl.java

@@ -41,14 +41,14 @@ public class ActivityInfoServiceImpl extends MPJBaseServiceImpl<ActivityInfoMapp
     @Transactional(rollbackFor = Exception.class)
     public Boolean add(AddActivityInfoDto dto) {
         ActivityInfo activityInfo = BeanUtil.toBean(dto, ActivityInfo.class);
-        activityInfoActivityInfoMapper.insert(activityInfo);
         if(activityInfo.getActivityEnrollRangeList() != null){
             for (ActivityEnrollRange activityEnrollRange : activityInfo.getActivityEnrollRangeList()) {
                 activityEnrollRange.setActivityInfoId(activityInfo.getId());
                 activityInfoActivityEnrollRangeMapper.insert(activityEnrollRange);
             }
+            activityInfo.setEnrollRange(activityInfo.getActivityEnrollRangeList().toString());
         }
-
+        activityInfoActivityInfoMapper.insert(activityInfo);
         return true;
     }
 

+ 2 - 0
src/main/java/com/xjrsoft/module/activity/vo/ActivityEnrollPageVo.java

@@ -51,4 +51,6 @@ public class ActivityEnrollPageVo {
     @ApiModelProperty("状态(0:待确认 1:未参与 2:已参与)")
     private Integer status;
 
+    @ApiModelProperty("活动id")
+    private String activityInfoId;
 }

+ 5 - 1
src/main/java/com/xjrsoft/module/activity/vo/ActivityInfoPageVo.java

@@ -99,9 +99,13 @@ public class ActivityInfoPageVo {
     private Integer category;
 
     @ApiModelProperty("合作企业名称")
-    private Long enterpriseName;
+    private String enterpriseName;
 
     @ApiModelProperty("报名人数")
     private Integer enrollCount;
 
+
+    @ApiModelProperty("是否已报名(1:是 0:否)")
+    private Integer isEnroll;
+
 }

+ 4 - 1
src/main/resources/mapper/activity/ActivityEnrollMapper.xml

@@ -14,12 +14,15 @@
     </select>
 
     <select id="getList" parameterType="com.xjrsoft.module.activity.dto.ActivityEnrollPageDto" resultType="com.xjrsoft.module.activity.vo.ActivityEnrollPageVo">
-        SELECT t1.id,t1.status,t2.name,t1.create_date,t2.user_name,t2.mobile,t3.role_id FROM activity_enroll t1
+        SELECT t1.id,t1.status,t2.name,t1.create_date,t2.user_name,t2.mobile,t3.role_id,t1.activity_info_id FROM activity_enroll t1
         INNER JOIN xjr_user t2 ON t1.user_id = t2.id
         LEFT JOIN xjr_user_role_relation t3 ON t3.user_id = t2.id
         WHERE t1.delete_mark = 0 AND t1.activity_info_id = #{dto.activityInfoId}
         <if test="dto.status != null">
             and t1.status = #{dto.status}
         </if>
+        <if test="dto.loginUserId != null">
+            and t1.user_id = #{dto.loginUserId}
+        </if>
     </select>
 </mapper>

+ 3 - 0
src/main/resources/mapper/activity/ActivityInfoMapper.xml

@@ -12,5 +12,8 @@
         LEFT JOIN company_coop t3 ON t1.enterprise_id = t3.id
         LEFT JOIN xjr_department t4 ON t1.org_id = t4.id
         WHERE t1.delete_mark = 0 and t1.category = #{dto.category}
+        <if test="dto.isEffective != null and dto.isEffective == 1">
+            and (t1.status = 1 or t1.status = 2) and now between t1.start_date and t1.end_date
+        </if>
     </select>
 </mapper>