Ver Fonte

训练营接口修复

mac há 2 anos atrás
pai
commit
dda4651403

+ 7 - 2
kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/dto/admin/camp/CampReportAuditDTO.java

@@ -17,8 +17,7 @@ import java.util.List;
  */
 @Data
 @Schema(description = "训练营-报备审核")
-@EqualsAndHashCode(callSuper = true)
-public class CampReportAuditDTO extends SysUser {
+public class CampReportAuditDTO{
 
 
 	/**
@@ -54,5 +53,11 @@ public class CampReportAuditDTO extends SysUser {
 	@Schema(description = "来源类型 电签券=0 大机券=1 组合包=2 小盟主=3 大盟主=4 pos开机=5 广电卡激活=6 来客吧激活=7 大小盟主兑换券=8")
 	private Integer sourceType;
 
+	/**
+	 * 操作人
+	 */
+	@Schema(description = "操作人")
+	private String createBy;
+
 
 }

+ 26 - 0
kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/vo/admin/camp/SysCampPageVO.java

@@ -0,0 +1,26 @@
+package com.kxs.system.api.vo.admin.camp;
+
+import com.kxs.system.api.model.KxsCamp;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 训练营(KxsCamp)表实体类
+ *
+ * @author 系统
+ * @since 2024-04-08 15:44:02
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class SysCampPageVO extends KxsCamp {
+
+    /**
+     * 组数
+     */
+    private Integer groupCount;
+
+
+
+
+}
+

+ 3 - 6
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/controller/admin/SysCampController.java

@@ -8,10 +8,7 @@ import com.kxs.system.api.dto.admin.GetByBcqtPageDTO;
 import com.kxs.system.api.dto.admin.camp.CampPageLogDTO;
 import com.kxs.system.api.dto.admin.camp.CampReportAuditDTO;
 import com.kxs.system.api.model.*;
-import com.kxs.system.api.vo.admin.camp.CampBonusLogVO;
-import com.kxs.system.api.vo.admin.camp.CampUserExcelVO;
-import com.kxs.system.api.vo.admin.camp.ReportCampPageVO;
-import com.kxs.system.api.vo.admin.camp.SysCampUserPageVO;
+import com.kxs.system.api.vo.admin.camp.*;
 import com.kxs.system.biz.constant.enums.CampStatusEnum;
 import com.kxs.system.biz.service.*;
 import com.pig4cloud.plugin.excel.annotation.RequestExcel;
@@ -55,7 +52,7 @@ public class SysCampController {
      * @return 训练营-列表
      */
     @GetMapping("/page")
-    public R page(Page<KxsCamp> page, @ParameterObject KxsCamp param) {
+    public R page(Page<SysCampPageVO> page, @ParameterObject KxsCamp param) {
 
         return R.ok(kxsCampService.getBySysPage(page, param));
     }
@@ -98,7 +95,7 @@ public class SysCampController {
 //    @PreAuthorize("@pms.hasPermission('sys_camp_user_remove')")
     public R groupRemoveUsers(@RequestBody List<Integer> ids) {
 
-        return R.ok(kxsCampUserService.removeByIds(ids));
+        return R.ok(kxsCampService.removeByCampUserIds(ids));
     }
 
 

+ 10 - 9
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/mapper/KxsCampMapper.java

@@ -5,12 +5,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.kxs.system.api.model.KxsCamp;
 import com.kxs.system.api.model.KxsCampUser;
+import com.kxs.system.api.vo.admin.camp.SysCampPageVO;
 import com.kxs.system.api.vo.kxsapp.camp.CampPageVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
-import java.time.LocalDateTime;
-
 /**
  * 训练营(KxsCamp)表数据库访问层
  *
@@ -37,13 +36,6 @@ public interface KxsCampMapper extends BaseMapper<KxsCamp> {
      */
     KxsCamp selectUserCamp(@Param("userId") Integer userId);
 
-    /**
-     * 查询用户正在参加的训练营
-     *
-     * @param userIds PID
-     * @return {@link KxsCampUser}
-     */
-//    KxsCamp selectUsersCamp(@Param("userIds") String[] userIds);
 
     /**
      * 查询上级最近参加训练营的创客
@@ -52,5 +44,14 @@ public interface KxsCampMapper extends BaseMapper<KxsCamp> {
      * @return {@link KxsCamp}
      */
     KxsCampUser selectParentUsersCamp(@Param("userIds") String[] userIds);
+
+    /**
+     * 后台训练营分页
+     *
+     * @param page  页
+     * @param param 参数
+     * @return {@link IPage}<{@link KxsCamp}>
+     */
+    IPage<KxsCamp> getBySysPage(Page<SysCampPageVO> page, @Param("param") KxsCamp param);
 }
 

+ 10 - 1
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/service/KxsCampService.java

@@ -8,6 +8,7 @@ import com.kxs.system.api.dto.kxsapp.camp.CampOpenNumStatDTO;
 import com.kxs.system.api.dto.kxsapp.camp.PrizePoolDTO;
 import com.kxs.system.api.model.KxsCamp;
 import com.kxs.system.api.vo.admin.camp.CampUserExcelVO;
+import com.kxs.system.api.vo.admin.camp.SysCampPageVO;
 import com.kxs.system.api.vo.kxsapp.camp.CampGetByIdVO;
 import com.kxs.system.api.vo.kxsapp.camp.CampPageVO;
 import org.springframework.validation.BindingResult;
@@ -75,7 +76,7 @@ public interface KxsCampService extends IService<KxsCamp> {
      * @param param 参数
      * @return {@link IPage}<{@link KxsCamp}>
      */
-    IPage<KxsCamp> getBySysPage(Page<KxsCamp> page, KxsCamp param);
+    IPage<KxsCamp> getBySysPage(Page<SysCampPageVO> page, KxsCamp param);
 
     /**
      * 更改状态
@@ -91,5 +92,13 @@ public interface KxsCampService extends IService<KxsCamp> {
      * @param param 参数
      */
     void campOpenNumStat(CampOpenNumStatDTO param);
+
+    /**
+     * 删除训练营用户
+     *
+     * @param ids 身份证件
+     * @return {@link Boolean}
+     */
+    Boolean removeByCampUserIds(List<Integer> ids);
 }
 

+ 21 - 6
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/service/impl/KxsCampReportServiceImpl.java

@@ -79,6 +79,7 @@ public class KxsCampReportServiceImpl extends ServiceImpl<KxsCampReportMapper, K
         if(campReport.getStatus() == 1 || campReport.getStatus() == -1){
             throw new GlobalCustomerException("该报备已审核");
         }
+        campReport.setCreateBy(param.getCreateBy());
         //审核拒绝
         if(param.getStatus() == -1) {
             campReport.setStatus(param.getStatus());
@@ -100,12 +101,26 @@ public class KxsCampReportServiceImpl extends ServiceImpl<KxsCampReportMapper, K
                     .eq(KxsCampUser::getUserId, campReport.getUserId()));
 
             switch (param.getSourceType()) {
-                case 0, 1, 2, 8 ->
-                        kxsCampUser.setTeamOrderNum(kxsCampUser.getTeamOrderNum() + param.getSourceNum()); //电签券/组合包/盟主兑换券
-                case 3, 4 -> kxsCampUser.setTeamLeaderNum(kxsCampUser.getTeamLeaderNum() + param.getSourceNum()); //盟主订单
-                case 5 -> kxsCampUser.setTeamPosNum(kxsCampUser.getTeamPosNum() + param.getSourceNum()); //pos激活
-                case 6 -> kxsCampUser.setTeamGdNum(kxsCampUser.getTeamGdNum() + param.getSourceNum()); //广电激活
-                case 7 -> kxsCampUser.setTeamLkbNum(kxsCampUser.getTeamLkbNum() + param.getSourceNum()); //来客吧激活
+                case 0, 1, 2, 8 -> {
+                    kxsCampUser.setTeamOrderNum(kxsCampUser.getTeamOpenNum() + param.getSourceNum());
+                    kxsCampUser.setTeamOrderNum(kxsCampUser.getTeamOrderNum() + param.getSourceNum());
+                }//电签券/组合包/盟主兑换券
+                case 3, 4 -> {
+                    kxsCampUser.setTeamOrderNum(kxsCampUser.getTeamOpenNum() + param.getSourceNum());
+                    kxsCampUser.setTeamLeaderNum(kxsCampUser.getTeamLeaderNum() + param.getSourceNum());
+                }//盟主订单
+                case 5 -> {
+                    kxsCampUser.setTeamOpenNum(kxsCampUser.getTeamOpenNum() + param.getSourceNum());
+                    kxsCampUser.setTeamPosNum(kxsCampUser.getTeamPosNum() + param.getSourceNum());
+                } //pos激活
+                case 6 -> {
+                    kxsCampUser.setTeamOpenNum(kxsCampUser.getTeamOpenNum() + param.getSourceNum());
+                    kxsCampUser.setTeamGdNum(kxsCampUser.getTeamGdNum() + param.getSourceNum());
+                }//广电激活
+                case 7 -> {
+                    kxsCampUser.setTeamOpenNum(kxsCampUser.getTeamOpenNum() + param.getSourceNum());
+                    kxsCampUser.setTeamLkbNum(kxsCampUser.getTeamLkbNum() + param.getSourceNum());
+                } //来客吧激活
             }
             kxsCampUserMapper.updateById(kxsCampUser);
 

+ 36 - 9
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/service/impl/KxsCampServiceImpl.java

@@ -22,8 +22,10 @@ import com.kxs.system.api.dto.kxsapp.camp.CampOpenNumStatDTO;
 import com.kxs.system.api.dto.kxsapp.camp.PrizePoolDTO;
 import com.kxs.system.api.model.KxsCamp;
 import com.kxs.system.api.model.KxsCampBonusLog;
+import com.kxs.system.api.model.KxsCampGroup;
 import com.kxs.system.api.model.KxsCampUser;
 import com.kxs.system.api.vo.admin.camp.CampUserExcelVO;
+import com.kxs.system.api.vo.admin.camp.SysCampPageVO;
 import com.kxs.system.api.vo.kxsapp.camp.CampGetByIdVO;
 import com.kxs.system.api.vo.kxsapp.camp.CampPageVO;
 import com.kxs.system.biz.constant.enums.CampSourceTypeEnum;
@@ -31,6 +33,7 @@ import com.kxs.system.biz.constant.enums.CampStatusEnum;
 import com.kxs.system.biz.constant.enums.SysErrorTypeEnum;
 import com.kxs.system.biz.mapper.KxsCampMapper;
 import com.kxs.system.biz.service.KxsCampBonusLogService;
+import com.kxs.system.biz.service.KxsCampGroupService;
 import com.kxs.system.biz.service.KxsCampService;
 import com.kxs.system.biz.service.KxsCampUserService;
 import com.kxs.user.api.feign.RemoteKxsUserService;
@@ -64,6 +67,8 @@ public class KxsCampServiceImpl extends ServiceImpl<KxsCampMapper, KxsCamp> impl
 
     private final KxsCampBonusLogService campBonusLogService;
 
+    private final KxsCampGroupService kxsCampGroupService;
+
 
     @Override
     public R addData(KxsCamp param) {
@@ -121,6 +126,11 @@ public class KxsCampServiceImpl extends ServiceImpl<KxsCampMapper, KxsCamp> impl
             if (Objects.equals(kxsCamp.getStatus(), CampStatusEnum.STATUS_END.getType())) {
                 throw new GlobalCustomerException(excel.getCampId() + "训练营已结束,不允许导入!");
             }
+            //查询分组
+            KxsCampGroup kxsCampGroup = kxsCampGroupService.getOne(Wrappers.<KxsCampGroup>lambdaQuery()
+                    .eq(KxsCampGroup::getCampId, excel.getCampId())
+                    .eq(KxsCampGroup::getGroupId, excel.getGroupId()));
+            Optional.ofNullable(kxsCampGroup).orElseThrow(() -> new GlobalCustomerException(excel.getGroupId() + "小组编号不存在,请重新上传!"));
 
             if (Objects.isNull(user)) {
                 errorMsg.add(excel.getUserCode() + "创客未找到!");
@@ -150,17 +160,25 @@ public class KxsCampServiceImpl extends ServiceImpl<KxsCampMapper, KxsCamp> impl
                 errorMessageList.add(new ErrorMessage(excel.getLineNum(), errorMsg));
             }
         }
+
+        this.refreshCampUsers();
+        if (CollUtil.isNotEmpty(errorMessageList)) {
+            return R.failed(JSON.toJSONString(errorMessageList));
+        }
+        return R.ok();
+    }
+
+
+    /**
+     * 刷新营地用户
+     */
+    private void refreshCampUsers(){
         //刷新参与人数
         List<KxsCamp> kxsCamps = baseMapper.selectList(Wrappers.<KxsCamp>lambdaQuery().lt(KxsCamp::getStatus, CampStatusEnum.STATUS_END.getType()));
         for (KxsCamp kxsCamp : kxsCamps) {
             long count = kxsCampUserService.count(Wrappers.<KxsCampUser>lambdaQuery().eq(KxsCampUser::getCampId, kxsCamp.getId()));
             baseMapper.update(null, Wrappers.<KxsCamp>lambdaUpdate().set(KxsCamp::getUserNum, count).eq(KxsCamp::getId, kxsCamp.getId()));
         }
-        if (CollUtil.isNotEmpty(errorMessageList)) {
-            return R.failed(JSON.toJSONString(errorMessageList));
-        }
-
-        return R.ok();
     }
 
     @Override
@@ -345,11 +363,20 @@ public class KxsCampServiceImpl extends ServiceImpl<KxsCampMapper, KxsCamp> impl
     }
 
     @Override
-    public IPage<KxsCamp> getBySysPage(Page<KxsCamp> page, KxsCamp param) {
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean removeByCampUserIds(List<Integer> ids) {
+
+        kxsCampUserService.removeByIds(ids);
+
+        refreshCampUsers();
+
+        return Boolean.TRUE;
+    }
+
+    @Override
+    public IPage<KxsCamp> getBySysPage(Page<SysCampPageVO> page, KxsCamp param) {
 
-        return this.page(page, Wrappers.<KxsCamp>lambdaQuery()
-                .eq(StrUtil.isNotEmpty(param.getCreateCode()), KxsCamp::getCreateCode, param.getCreateCode())
-                .orderByDesc(KxsCamp::getId));
+        return baseMapper.getBySysPage(page, param);
     }
 
 

+ 11 - 0
kxs-system/kxs-system-biz/src/main/resources/mapper/KxsCampMapper.xml

@@ -67,5 +67,16 @@
         ORDER BY FIELD(b.user_id, <foreach collection="userIds" item="userId" separator=","> #{userId} </foreach>)
         limit 1
     </select>
+    <select id="getBySysPage" resultType="com.kxs.system.api.vo.admin.camp.SysCampPageVO">
+        select a.*, count(b.id) as group_count from kxs_camp a
+        left join kxs_camp_group b on a.id = b.camp_id
+        <where>
+            and a.del_flag = 0
+            <if test="param.getCreateCode != null and param.getCreateCode != ''">
+                and  create_code = #{param.getCreateCode}
+            </if>
+        </where>
+        group by a.id
+    </select>
 
 </mapper>