Browse Source

训练营APP接口完成

mac 2 years ago
parent
commit
1dc5a67517

+ 6 - 0
kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/model/KxsCamp.java

@@ -97,6 +97,12 @@ public class KxsCamp extends Model<KxsCamp> implements Serializable {
     @NotBlank(message = "活动图片不能为空")
     private String picUrl;
 
+    /**
+     * 标题
+     */
+    @Schema(description = "标题")
+    private String title;
+
 
     /**
      * 发起人用户ID

+ 144 - 0
kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/vo/kxsapp/camp/CampGetByIdVO.java

@@ -0,0 +1,144 @@
+package com.kxs.system.api.vo.kxsapp.camp;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * 详情vo
+ *
+ * @author 系统
+ * @date 2024-04-09 11:56:33
+ */
+@Data
+@Schema(description = "详情返回实体")
+public class CampGetByIdVO implements Serializable {
+
+	@Serial
+	private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 主键ID
+     */
+    @Schema(description = "主键ID")
+    private Integer id;
+
+
+    /**
+     * 新增时间
+     */
+    @Schema(description = "新增时间")
+    private LocalDateTime createTime;
+
+
+    /**
+     * 状态 0未开始 1进行中 2已结束
+     */
+    @Schema(description = "状态 0未开始 1进行中 2已结束")
+    private Integer status;
+
+
+    /**
+     * 期数
+     */
+    @Schema(description = "期数")
+    private String campNum;
+
+
+    /**
+     * 活动类型
+     */
+    @Schema(description = "活动类型")
+    private String campType;
+
+
+    /**
+     * 发起人用户ID
+     */
+    @Schema(description = "发起人用户ID")
+    private Integer createUserId;
+
+
+    /**
+     * 发起人姓名
+     */
+    @Schema(description = "发起人姓名")
+    private String createUsername;
+
+
+    /**
+     * 发起人编码
+     */
+    @Schema(description = "发起人编码")
+    private String createCode;
+
+
+    /**
+     * 参与人数
+     */
+    @Schema(description = "参与人数")
+    private Integer userNum;
+
+
+    /**
+     * 奖金池
+     */
+    @Schema(description = "奖金池")
+    private BigDecimal bonusPool;
+
+
+    /**
+     * 开机数
+     */
+    @Schema(description = "开机数")
+    private Integer openNum;
+
+
+    /**
+     * 订单数
+     */
+    @Schema(description = "订单数")
+    private Integer orderNum;
+
+
+    /**
+     * 开始时间
+     */
+    @Schema(description = "开始时间")
+    private LocalDateTime startTime;
+
+
+    /**
+     * 结束时间
+     */
+    @Schema(description = "结束时间")
+    private LocalDateTime endTime;
+
+
+    /**
+     * 活动图片
+     */
+    @Schema(description = "活动图片")
+    private String picUrl;
+
+
+    /**
+     * 标题
+     */
+    @Schema(description = "标题")
+    private String title;
+
+
+
+
+
+	
+
+}

+ 66 - 0
kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/vo/kxsapp/camp/CampPageVO.java

@@ -0,0 +1,66 @@
+package com.kxs.system.api.vo.kxsapp.camp;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 列表vo
+ *
+ * @author 系统
+ * @date 2024-04-09 11:56:33
+ */
+@Data
+@Schema(description = "列表返回实体")
+public class CampPageVO implements Serializable {
+
+	@Serial
+	private static final long serialVersionUID = 1L;
+
+
+    private Integer id;
+
+    /**
+     * 状态 0未开始 1进行中 2已结束
+     */
+    @Schema(description = "状态 0未开始 1进行中 2已结束")
+    private Integer status;
+
+
+    /**
+     * 期数
+     */
+    @Schema(description = "期数")
+    private String campNum;
+
+
+    /**
+     * 活动类型
+     */
+    @Schema(description = "活动类型")
+    private String campType;
+
+
+    /**
+     * 活动图片
+     */
+    @Schema(description = "活动图片")
+    private String picUrl;
+
+
+    /**
+     * 标题
+     */
+    @Schema(description = "标题")
+    private String title;
+
+
+
+
+
+	
+
+}

+ 71 - 0
kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/vo/kxsapp/camp/CampUserPageVO.java

@@ -0,0 +1,71 @@
+package com.kxs.system.api.vo.kxsapp.camp;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 参与创客列表vo
+ *
+ * @author 系统
+ * @date 2024-04-09 11:56:34
+ */
+@Data
+@Schema(description = "参与创客列表返回实体")
+public class CampUserPageVO implements Serializable {
+
+	@Serial
+	private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 主键ID
+     */
+    @Schema(description = "主键ID")
+    private Integer id;
+
+
+    /**
+     * 用户ID
+     */
+    @Schema(description = "用户ID")
+    private Integer userId;
+
+
+    /**
+     * 用户姓名
+     */
+    @Schema(description = "用户姓名")
+    private String username;
+
+
+    /**
+     * 创客编号
+     */
+    @Schema(description = "创客编号")
+    private String userCode;
+
+
+    /**
+     * 团队开机总数
+     */
+    @Schema(description = "团队开机总数")
+    private Integer teamOpenNum;
+
+
+    /**
+     * 团队下单数量
+     */
+    @Schema(description = "团队下单数量")
+    private Integer teamOrderNum;
+
+
+
+
+
+	
+
+}

+ 81 - 0
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/controller/kxsapp/CampController.java

@@ -0,0 +1,81 @@
+package com.kxs.system.biz.controller.kxsapp;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.kxs.common.core.util.R;
+import com.kxs.system.api.model.KxsCamp;
+import com.kxs.system.api.vo.kxsapp.camp.CampGetByIdVO;
+import com.kxs.system.api.vo.kxsapp.camp.CampPageVO;
+import com.kxs.system.api.vo.kxsapp.camp.CampUserPageVO;
+import com.kxs.system.biz.service.KxsCampService;
+import com.kxs.system.biz.service.KxsCampUserService;
+import lombok.RequiredArgsConstructor;
+import org.springdoc.core.annotations.ParameterObject;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 训练营(Camp)控制层
+ *
+ * @author 系统
+ * @since 2024-04-09 11:56:34
+ */
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("camp")
+public class CampController {
+
+    /**
+     * 服务对象
+     */
+    private final KxsCampService kxsCampService;
+    private final KxsCampUserService kxsCampUserService;
+
+
+
+    /**
+     * 列表
+     *
+     * @param page 分页对象
+     * @return 列表
+     */
+    @GetMapping("/page")
+    public R page(@ParameterObject Page<CampPageVO> page) {
+        return R.ok(kxsCampService.getByPage(page));
+    }
+
+
+    /**
+     * 详情
+     *
+     * @param id 主键ID
+     * @return 详情
+     */
+    @GetMapping("/getById")
+    public R getById(@RequestParam("id") Integer id) {
+
+        return kxsCampService.getByData(id);
+    }
+
+
+    /**
+     * 参与创客列表
+     *
+     * @param page 分页对象
+     * @param campId 训练营ID
+     * @return 参与创客列表
+     */
+    @GetMapping("/campUserPage")
+    public R campUserPage(@ParameterObject Page<CampUserPageVO> page, @RequestParam("campId") Integer campId){
+
+        return R.ok(kxsCampUserService.getByPage(page, campId));
+    }
+
+
+
+
+
+}
+

+ 12 - 0
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/mapper/KxsCampMapper.java

@@ -1,8 +1,12 @@
 package com.kxs.system.biz.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+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.vo.kxsapp.camp.CampPageVO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 训练营(KxsCamp)表数据库访问层
@@ -13,5 +17,13 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface KxsCampMapper extends BaseMapper<KxsCamp> {
 
+    /**
+     * APP 创客参与训练营列表
+     *
+     * @param page   页
+     * @param userId 用户 ID
+     * @return {@link IPage}<{@link CampPageVO}>
+     */
+    IPage<CampPageVO> getByPage(Page<CampPageVO> page, @Param("userId") Long userId);
 }
 

+ 12 - 0
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/mapper/KxsCampUserMapper.java

@@ -1,8 +1,12 @@
 package com.kxs.system.biz.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.kxs.system.api.model.KxsCampUser;
+import com.kxs.system.api.vo.kxsapp.camp.CampUserPageVO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 训练营参与创客(KxsCampUser)表数据库访问层
@@ -13,5 +17,13 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface KxsCampUserMapper extends BaseMapper<KxsCampUser> {
 
+    /**
+     * 参与创客列表
+     *
+     * @param page   页
+     * @param campId 营地ID
+     * @return {@link IPage}<{@link CampUserPageVO}>
+     */
+    IPage<CampUserPageVO> getByPage(Page<CampUserPageVO> page, @Param("campId") Integer campId);
 }
 

+ 20 - 0
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/service/KxsCampService.java

@@ -1,9 +1,13 @@
 package com.kxs.system.biz.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.kxs.common.core.util.R;
 import com.kxs.system.api.model.KxsCamp;
 import com.kxs.system.api.vo.admin.CampUserExcelVO;
+import com.kxs.system.api.vo.kxsapp.camp.CampGetByIdVO;
+import com.kxs.system.api.vo.kxsapp.camp.CampPageVO;
 import org.springframework.validation.BindingResult;
 
 import java.util.List;
@@ -40,5 +44,21 @@ public interface KxsCampService extends IService<KxsCamp> {
      * @return {@link R}
      */
     R importUserData(List<CampUserExcelVO> campUserExcelVOList, BindingResult bindingResult);
+
+    /**
+     * APP 创客参与训练营列表
+     *
+     * @param page 页
+     * @return {@link IPage}<{@link CampPageVO}>
+     */
+    IPage<CampPageVO> getByPage(Page<CampPageVO> page);
+
+    /**
+     * 详情
+     *
+     * @param id 训练营ID
+     * @return {@link CampGetByIdVO}
+     */
+    R getByData(Integer id);
 }
 

+ 11 - 0
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/service/KxsCampUserService.java

@@ -1,7 +1,10 @@
 package com.kxs.system.biz.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.kxs.system.api.model.KxsCampUser;
+import com.kxs.system.api.vo.kxsapp.camp.CampUserPageVO;
 
 /**
  * 训练营参与创客(KxsCampUser)表服务接口
@@ -11,5 +14,13 @@ import com.kxs.system.api.model.KxsCampUser;
  */
 public interface KxsCampUserService extends IService<KxsCampUser> {
 
+    /**
+     * 参与创客列表
+     *
+     * @param page   页
+     * @param campId 营地ID
+     * @return {@link IPage}<{@link CampUserPageVO}>
+     */
+    IPage<CampUserPageVO> getByPage(Page<CampUserPageVO> page, Integer campId);
 }
 

+ 23 - 0
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/service/impl/KxsCampServiceImpl.java

@@ -3,15 +3,20 @@ package com.kxs.system.biz.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.kxs.common.core.constant.SecurityConstants;
 import com.kxs.common.core.constant.enums.ErrorTypeEnum;
 import com.kxs.common.core.exception.GlobalCustomerException;
 import com.kxs.common.core.util.R;
 import com.kxs.common.core.util.RetOps;
+import com.kxs.common.security.util.SecurityUtils;
 import com.kxs.system.api.model.KxsCampUser;
 import com.kxs.system.api.vo.admin.CampUserExcelVO;
+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.SysErrorTypeEnum;
 import com.kxs.system.biz.mapper.KxsCampMapper;
 import com.kxs.system.api.model.KxsCamp;
@@ -130,5 +135,23 @@ public class KxsCampServiceImpl extends ServiceImpl<KxsCampMapper, KxsCamp> impl
         }
         return R.ok();
     }
+
+    @Override
+    public IPage<CampPageVO> getByPage(Page<CampPageVO> page) {
+
+        Long userId = SecurityUtils.getUser().getId();
+        return baseMapper.getByPage(page, userId);
+    }
+
+    @Override
+    public R getByData(Integer id) {
+        KxsCamp kxsCamp = baseMapper.selectById(id);
+        if(kxsCamp == null){
+            return R.failed(SysErrorTypeEnum.NOT_DATA.getDescription());
+        }
+        CampGetByIdVO campGetByIdVO = new CampGetByIdVO();
+        BeanUtil.copyProperties(kxsCamp, campGetByIdVO);
+        return R.ok(campGetByIdVO);
+    }
 }
 

+ 9 - 0
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/service/impl/KxsCampUserServiceImpl.java

@@ -1,6 +1,9 @@
 package com.kxs.system.biz.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.kxs.system.api.vo.kxsapp.camp.CampUserPageVO;
 import com.kxs.system.biz.mapper.KxsCampUserMapper;
 import com.kxs.system.api.model.KxsCampUser;
 import com.kxs.system.biz.service.KxsCampUserService;
@@ -15,5 +18,11 @@ import org.springframework.stereotype.Service;
 @Service("kxsCampUserService")
 public class KxsCampUserServiceImpl extends ServiceImpl<KxsCampUserMapper, KxsCampUser> implements KxsCampUserService {
 
+    @Override
+    public IPage<CampUserPageVO> getByPage(Page<CampUserPageVO> page, Integer campId) {
+
+
+        return baseMapper.getByPage(page, campId);
+    }
 }
 

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

@@ -24,7 +24,17 @@
         <result column="update_by" property="updateBy" />
         <result column="remark" property="remark" />
         <result column="pic_url" property="picUrl" />
+        <result column="title" property="title" />
 
     </resultMap>
+    <select id="getByPage" resultType="com.kxs.system.api.vo.kxsapp.camp.CampPageVO">
+        SELECT a.id, a.status, a.camp_num, a.camp_type, a.pic_url, a.title
+        from kxs_camp a
+        left join kxs_camp_user b on a.id = b.camp_id
+        <where>
+            a.del_flag = 0
+            and b.user_id =  #{userId}
+        </where>
+    </select>
 
 </mapper>

+ 7 - 0
kxs-system/kxs-system-biz/src/main/resources/mapper/KxsCampUserMapper.xml

@@ -16,5 +16,12 @@
         <result column="team_order_num" property="teamOrderNum" />
 
     </resultMap>
+    <select id="getByPage" resultType="com.kxs.system.api.vo.kxsapp.camp.CampUserPageVO">
+        select * from kxs_camp_user
+            <where>
+                del_flag = 0
+                and camp_id = #{campId}
+            </where>
+    </select>
 
 </mapper>