Pārlūkot izejas kodu

Merge branch 'saas_2022_05_17_activity' of http://git.dayaedu.com/yonge/mec into master_saas

zouxuan 3 gadi atpakaļ
vecāks
revīzija
f45457e92a
17 mainītis faili ar 414 papildinājumiem un 45 dzēšanām
  1. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/LiveGoodsMapperDao.java
  2. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TempLittleArtistTrainingCampDao.java
  3. 6 28
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/LiveGoodsMapperDto.java
  4. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/LiveGoods.java
  5. 13 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/LiveGoodsMapperQueryInfo.java
  6. 70 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/vo/TempCampUserTrainingDetailVo.java
  7. 1 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/vo/TempCampUserVo.java
  8. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/service/LiveGoodsMapperService.java
  9. 19 0
      mec-biz/src/main/java/com/ym/mec/biz/service/TempLittleArtistTrainingCampService.java
  10. 26 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/LiveGoodsMapperServiceImpl.java
  11. 30 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TempLittleArtistTrainingCampServiceImpl.java
  12. 1 0
      mec-biz/src/main/resources/config/mybatis/LiveGoodsMapper.xml
  13. 33 9
      mec-biz/src/main/resources/config/mybatis/LiveGoodsMapperMapper.xml
  14. 47 0
      mec-biz/src/main/resources/config/mybatis/TempLittleArtistTrainingCampMapper.xml
  15. 114 0
      mec-student/src/main/java/com/ym/mec/student/controller/TempLittleArtistTrainingCampController.java
  16. 4 3
      mec-web/src/main/java/com/ym/mec/web/controller/LiveGoodsMapperController.java
  17. 20 0
      mec-web/src/main/java/com/ym/mec/web/controller/TempLittleArtistTrainingCampController.java

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/LiveGoodsMapperDao.java

@@ -7,6 +7,7 @@ import com.ym.mec.biz.dal.entity.LiveGoodsMapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 public interface LiveGoodsMapperDao extends BaseDAO<Integer, LiveGoodsMapper> {
 
@@ -19,4 +20,8 @@ public interface LiveGoodsMapperDao extends BaseDAO<Integer, LiveGoodsMapper> {
     List<LiveGoodsMapperDto> getLiveGoodsList(@Param("liveId") String liveId);
 
     void batchInsert(@Param("liveGoodsMappers") List<LiveGoodsMapper> liveGoodsMappers);
+
+    int countLiveGoods(Map<String, Object> params);
+
+    List<LiveGoods> queryGoodsPage(Map<String, Object> params);
 }

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TempLittleArtistTrainingCampDao.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.dal.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ym.mec.biz.dal.entity.ImGroup;
 import com.ym.mec.biz.dal.entity.TempLittleArtistTrainingCamp;
 import org.apache.ibatis.annotations.Param;
 
@@ -26,5 +27,13 @@ public interface TempLittleArtistTrainingCampDao extends BaseMapper<TempLittleAr
     List<Integer> queryAllUserId();
 
     <T> IPage<T> queryCampUser(Page<T> page, @Param("param") Map<String, Object> param);
+
+    /**
+     * imGroupId
+     * search
+     */
+    <T> IPage<T> queryUserTrainingDetail(Page<T> page, @Param("param") Map<String, Object> param);
+
+    List<ImGroup> queryCampImGroup(String imGroupIds);
 }
 

+ 6 - 28
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/LiveGoodsMapperDto.java

@@ -17,24 +17,18 @@ public class LiveGoodsMapperDto {
     @ApiModelProperty(value = "库存",required = true)
     private Integer stockCount;
 
-    @ApiModelProperty(value = "销量",required = false)
-    private Integer sellCount = 0;
-
     @ApiModelProperty(value = "现价",required = true)
     private java.math.BigDecimal currentPrice;
 
     @ApiModelProperty(value = "原价",required = true)
     private java.math.BigDecimal originalPrice;
 
-    @ApiModelProperty(value = "页面简介",required = false)
-    private String brief;
+    @ApiModelProperty(value = "商品详情链接",required = false)
+    private String goodsDetailUrl;
 
     @ApiModelProperty(value = "商品的详细描述",required = false)
     private String desc;
 
-    @ApiModelProperty(value = "备注",required = false)
-    private String memo;
-
     @ApiModelProperty(value = "状态(1,上下架  0,下架)",required = false)
     private Boolean status = false;
 
@@ -70,14 +64,6 @@ public class LiveGoodsMapperDto {
         this.stockCount = stockCount;
     }
 
-    public Integer getSellCount() {
-        return sellCount;
-    }
-
-    public void setSellCount(Integer sellCount) {
-        this.sellCount = sellCount;
-    }
-
     public BigDecimal getCurrentPrice() {
         return currentPrice;
     }
@@ -94,12 +80,12 @@ public class LiveGoodsMapperDto {
         this.originalPrice = originalPrice;
     }
 
-    public String getBrief() {
-        return brief;
+    public String getGoodsDetailUrl() {
+        return goodsDetailUrl;
     }
 
-    public void setBrief(String brief) {
-        this.brief = brief;
+    public void setGoodsDetailUrl(String goodsDetailUrl) {
+        this.goodsDetailUrl = goodsDetailUrl;
     }
 
     public String getDesc() {
@@ -110,14 +96,6 @@ public class LiveGoodsMapperDto {
         this.desc = desc;
     }
 
-    public String getMemo() {
-        return memo;
-    }
-
-    public void setMemo(String memo) {
-        this.memo = memo;
-    }
-
     public Boolean getStatus() {
         return status;
     }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/LiveGoods.java

@@ -44,12 +44,23 @@ public class LiveGoods extends BaseEntity {
 	@ApiModelProperty(value = "商品的详细描述",required = false)
 	private String desc;
 
+	@ApiModelProperty(value = "上下架状态",required = false)
+	private Boolean status = false;
+
 	@ApiModelProperty(value = "创建时间",required = false)
 	private java.util.Date createTime;
 	
 	@ApiModelProperty(value = "修改时间",required = false)
 	private java.util.Date updateTime;
 
+	public Boolean getStatus() {
+		return status;
+	}
+
+	public void setStatus(Boolean status) {
+		this.status = status;
+	}
+
 	public String getGoodsDetailUrl() {
 		return goodsDetailUrl;
 	}

+ 13 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/LiveGoodsMapperQueryInfo.java

@@ -1,11 +1,24 @@
 package com.ym.mec.biz.dal.page;
 
 import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
 
 public class LiveGoodsMapperQueryInfo extends QueryInfo {
 
+    @ApiModelProperty(value = "上下架状态",required = false)
     private Boolean status;
 
+    @ApiModelProperty(value = "直播房间号",required = false)
+    private String liveId;
+
+    public String getLiveId() {
+        return liveId;
+    }
+
+    public void setLiveId(String liveId) {
+        this.liveId = liveId;
+    }
+
     public Boolean getStatus() {
         return status;
     }

+ 70 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/vo/TempCampUserTrainingDetailVo.java

@@ -0,0 +1,70 @@
+package com.ym.mec.biz.dal.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+@ApiModel(value = "训练营详情")
+public class TempCampUserTrainingDetailVo implements Serializable {
+    @ApiModelProperty(value = "用户id")
+    private Integer id;
+    @ApiModelProperty(value = "用户名称")
+    private String username;
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+    @ApiModelProperty(value = "群组名称")
+    private String imGroupName;
+    @ApiModelProperty(value = "训练天数")
+    private Integer playDay;
+    @ApiModelProperty(value = "训练时间")
+    private Integer playTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getImGroupName() {
+        return imGroupName;
+    }
+
+    public void setImGroupName(String imGroupName) {
+        this.imGroupName = imGroupName;
+    }
+
+    public Integer getPlayDay() {
+        return playDay;
+    }
+
+    public void setPlayDay(Integer playDay) {
+        this.playDay = playDay;
+    }
+
+    public Integer getPlayTime() {
+        return playTime;
+    }
+
+    public void setPlayTime(Integer playTime) {
+        this.playTime = playTime;
+    }
+}

+ 1 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/vo/TempCampUserVo.java

@@ -9,9 +9,8 @@ import java.io.Serializable;
  * @author hgw
  * Created by 2022-03-02
  */
-@ApiModel(value = "分页查询机构信息")
+@ApiModel(value = "训练营参与人员信息")
 public class TempCampUserVo implements Serializable {
-
     @ApiModelProperty(value = "用户id")
     private Integer id;
     @ApiModelProperty(value = "用户名称")

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/LiveGoodsMapperService.java

@@ -1,6 +1,9 @@
 package com.ym.mec.biz.service;
 
+import com.ym.mec.biz.dal.entity.LiveGoods;
 import com.ym.mec.biz.dal.entity.LiveGoodsMapper;
+import com.ym.mec.biz.dal.page.LiveGoodsMapperQueryInfo;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
 import java.util.Collection;
@@ -17,4 +20,6 @@ public interface LiveGoodsMapperService extends BaseService<Integer, LiveGoodsMa
     void upGoods(Integer liveGoodsId, String liveId);
 
     List<LiveGoodsMapper> findByLiveGoodsIdAndStatus(Integer goodsId, Boolean status);
+
+    PageInfo<LiveGoods> queryGoodsPage(LiveGoodsMapperQueryInfo queryInfo);
 }

+ 19 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/TempLittleArtistTrainingCampService.java

@@ -3,7 +3,9 @@ package com.ym.mec.biz.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ym.mec.biz.dal.dao.TempLittleArtistTrainingCampDao;
 import com.ym.mec.biz.dal.dto.TempLittleArtistTrainingCampDto;
+import com.ym.mec.biz.dal.entity.ImGroup;
 import com.ym.mec.biz.dal.entity.TempLittleArtistTrainingCamp;
+import com.ym.mec.biz.dal.vo.TempCampUserTrainingDetailVo;
 import com.ym.mec.biz.dal.vo.TempCampUserVo;
 import com.ym.mec.biz.dal.vo.TempUserTrainingTimeDetailVo;
 import com.ym.mec.common.page.PageInfo;
@@ -70,6 +72,23 @@ public interface TempLittleArtistTrainingCampService extends IService<TempLittle
      */
     List<TempUserTrainingTimeDetailVo> queryUserTrainingTime(Map<String, Object> param);
 
+    /**
+     * 分页查询-训练营详情
+     *
+     * @param param 条件
+     *              <p> - row 条数
+     *              <p> - page 页数
+     *              <p> - imGroupId  所在群组Id
+     *              <p> - search 学员姓名/手机号/编号
+     */
+    PageInfo<TempCampUserTrainingDetailVo> queryUserTrainingDetail(Map<String, Object> param);
+
+    /**
+     * 根据群组Id查询群组信息
+     *
+     * @param imGroupIds 群组id,多个用逗号隔开
+     */
+    List<ImGroup> queryCampImGroup(String imGroupIds);
 }
 
 

+ 26 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/LiveGoodsMapperServiceImpl.java

@@ -3,20 +3,23 @@ package com.ym.mec.biz.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ym.mec.biz.dal.dao.LiveGoodsMapperDao;
 import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoom;
+import com.ym.mec.biz.dal.entity.LiveGoods;
 import com.ym.mec.biz.dal.entity.LiveGoodsMapper;
+import com.ym.mec.biz.dal.page.LiveGoodsMapperQueryInfo;
 import com.ym.mec.biz.service.ImLiveBroadcastRoomService;
 import com.ym.mec.biz.service.LiveGoodsMapperService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImRoomMessage;
 import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
+import com.ym.mec.util.collection.MapUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.List;
-import java.util.Optional;
+import java.util.*;
 
 @Service
 public class LiveGoodsMapperServiceImpl extends BaseServiceImpl<Integer, LiveGoodsMapper>  implements LiveGoodsMapperService {
@@ -58,7 +61,27 @@ public class LiveGoodsMapperServiceImpl extends BaseServiceImpl<Integer, LiveGoo
 		return liveGoodsMapperDao.findByLiveGoodsIdAndStatus(goodsId,status);
 	}
 
-	private void publishRoomMsg(ImLiveBroadcastRoom imLiveBroadcastRoom) {
+    @Override
+    public PageInfo<LiveGoods> queryGoodsPage(LiveGoodsMapperQueryInfo queryInfo) {
+		PageInfo<LiveGoods> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<String, Object>();
+		MapUtil.populateMap(params, queryInfo);
+
+		List<LiveGoods> dataList = null;
+		int count = liveGoodsMapperDao.countLiveGoods(params);
+		if (count > 0) {
+			pageInfo.setTotal(count);
+			params.put("offset", pageInfo.getOffset());
+			dataList = liveGoodsMapperDao.queryGoodsPage(params);
+		}
+		if (count == 0) {
+			dataList = new ArrayList<>();
+		}
+		pageInfo.setRows(dataList);
+		return pageInfo;
+    }
+
+    private void publishRoomMsg(ImLiveBroadcastRoom imLiveBroadcastRoom) {
 		ImRoomMessage message = new ImRoomMessage();
 		message.setIsIncludeSender(1);
 		message.setObjectName(ImRoomMessage.LIVE_GOODS_CHANGE);

+ 30 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TempLittleArtistTrainingCampServiceImpl.java

@@ -8,8 +8,10 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.TempLittleArtistTrainingCampDao;
 import com.ym.mec.biz.dal.dto.TempLittleArtistTrainingCampDto;
+import com.ym.mec.biz.dal.entity.ImGroup;
 import com.ym.mec.biz.dal.entity.TempLittleArtistTrainingCamp;
 import com.ym.mec.biz.dal.entity.TempLittleArtistTrainingCampUserRelation;
+import com.ym.mec.biz.dal.vo.TempCampUserTrainingDetailVo;
 import com.ym.mec.biz.dal.vo.TempCampUserVo;
 import com.ym.mec.biz.dal.vo.TempUserTrainingTimeDetailVo;
 import com.ym.mec.biz.service.TempLittleArtistTrainingCampService;
@@ -115,6 +117,7 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
         Page<TempLittleArtistTrainingCamp> page = PageUtil.getPageInfo(param);
         page.setAsc("apply_start_date_");
         IPage<TempLittleArtistTrainingCamp> pageList = this.page(page, Wrappers.<TempLittleArtistTrainingCamp>lambdaQuery()
+                .eq(TempLittleArtistTrainingCamp::getDelFlag, 0)
                 .eq(WrapperUtil.strParamIsNull(param, "name"), TempLittleArtistTrainingCamp::getName, WrapperUtil.toStr(param, "name"))
                 .eq(WrapperUtil.strParamIsNull(param, "state"), TempLittleArtistTrainingCamp::getState, WrapperUtil.toStr(param, "state"))
                 .ge(Objects.nonNull(param.get("applyStartDate")), TempLittleArtistTrainingCamp::getApplyStartDate, param.get("applyStartDate"))
@@ -146,6 +149,7 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
      * @param param 参数
      *              <p> - userId 用户id
      */
+    @Override
     public List<TempUserTrainingTimeDetailVo> queryUserTrainingTime(Map<String, Object> param) {
         Integer userId = WrapperUtil.toInt(param, "userId", "学员id不能为空");
         //查询训练营的训练时间段
@@ -196,6 +200,32 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
         return resultList;
     }
 
+    /**
+     * 分页查询-训练营详情
+     *
+     * @param param 条件
+     *              <p> - row 条数
+     *              <p> - page 页数
+     *              <p> - imGroupId  所在群组Id
+     *              <p> - search 学员姓名/手机号/编号
+     */
+    @Override
+    public PageInfo<TempCampUserTrainingDetailVo> queryUserTrainingDetail(Map<String, Object> param) {
+        Page<TempCampUserTrainingDetailVo> page = PageUtil.getPageInfo(param);
+        page.setDesc("b.playDay");
+        return PageUtil.pageInfo(baseMapper.queryUserTrainingDetail(page, param));
+    }
+
+    /**
+     * 根据群组Id查询群组信息
+     *
+     * @param imGroupIds 群组id,多个用逗号隔开
+     */
+    @Override
+    public List<ImGroup> queryCampImGroup(String imGroupIds) {
+        return baseMapper.queryCampImGroup(imGroupIds);
+    }
+
     private SysUser getUser() {
         //修改机构基础信息
         return Optional.ofNullable(sysUserFeignService.queryUserInfo())

+ 1 - 0
mec-biz/src/main/resources/config/mybatis/LiveGoodsMapper.xml

@@ -19,6 +19,7 @@
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
 		<result column="tenant_id_" property="tenantId" />
+		<result column="status_" property="status" />
 	</resultMap>
 	
 	<!-- 根据主键查询一条记录 -->

+ 33 - 9
mec-biz/src/main/resources/config/mybatis/LiveGoodsMapperMapper.xml

@@ -32,10 +32,10 @@
 		VALUES(#{goodsId},#{liveId},#{sellCount},NOW(),NOW())
 	</insert>
 	<insert id="batchInsert">
-		INSERT INTO live_goods_mapper (goods_id_,live_id_,sell_count_,create_time_,update_time_)
+		INSERT INTO live_goods_mapper (goods_id_,live_id_,create_time_,update_time_)
 		VALUES
 		<foreach collection="liveGoodsMappers" item="item" index="index" separator=",">
-			(#{item.goodsId},#{item.liveId},#{item.sellCount},NOW(),NOW())
+			(#{item.goodsId},#{item.liveId},NOW(),NOW())
 		</foreach>
 		ON DUPLICATE KEY UPDATE
 		goods_id_ = VALUES(goods_id_),
@@ -62,7 +62,7 @@
 	</update>
 	<update id="updateStatus">
 		UPDATE live_goods_mapper SET status_ = #{status},update_time_ = NOW()
-		WHERE id_ = #{liveGoodsId}
+		WHERE goods_id_ = #{liveGoodsId}
 		<if test="liveId != null and liveId != ''">
 		AND live_id_ = #{liveId}
 		</if>
@@ -87,7 +87,7 @@
 	</sql>
 	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="LiveGoodsMapper" parameterType="map">
-		SELECT lg.*,lg.status_ FROM live_goods_mapper lgm
+		SELECT lg.*,lgm.status_ FROM live_goods_mapper lgm
 		LEFT JOIN live_goods lg ON lgm.goods_id_ = lg.id_
 		<include refid="queryPageSql" />
 		ORDER BY lgm.id_
@@ -110,20 +110,44 @@
 	<resultMap id="LiveGoodsMapperDto" type="com.ym.mec.biz.dal.dto.LiveGoodsMapperDto">
 		<result column="id_" property="id" />
 		<result column="image_" property="image" />
-		<result column="sell_count_" property="sellCount" />
 		<result column="status_" property="status" />
 		<result column="name_" property="name" />
 		<result column="original_price_" property="originalPrice" />
 		<result column="current_price_" property="currentPrice" />
-		<result column="brief_" property="brief" />
+		<result column="goods_detail_url_" property="goodsDetailUrl" />
 		<result column="desc_" property="desc" />
-		<result column="memo_" property="memo" />
+		<result column="stock_count_" property="stockCount" />
 	</resultMap>
 	<select id="getLiveGoodsList" resultMap="LiveGoodsMapperDto">
-		SELECT lg.id_,lg.image_,lgm.sell_count_,
-		       lgm.status_,lg.name_,lg.original_price_,lg.current_price_,lg.brief_,lg.desc_,lg.memo_
+		SELECT lg.*,lgm.status_
 		FROM live_goods_mapper lgm
 		LEFT JOIN live_goods lg ON lgm.goods_id_ = lg.id_
 		WHERE lgm.live_id_ = #{liveId}
 	</select>
+	<sql id="queryPageSqlForGoods">
+		<where>
+			<if test="liveId != null and liveId != ''">
+				AND lgm.live_id_ = #{liveId}
+			</if>
+			<if test="search != null and search != ''">
+				AND (lg.name_ LIKE '%${search}%' OR lg.id_ = ${search})
+			</if>
+			<if test="status != null">
+				AND lgm.status_ = #{status}
+			</if>
+		</where>
+	</sql>
+	<select id="countLiveGoods" resultType="java.lang.Integer">
+		SELECT COUNT(lgm.id_) FROM live_goods_mapper lgm
+		LEFT JOIN live_goods lg ON lgm.goods_id_ = lg.id_
+		<include refid="queryPageSqlForGoods" />
+	</select>
+	<select id="queryGoodsPage" resultMap="LiveGoodsMapperDto">
+		SELECT lg.*,lgm.status_
+		FROM live_goods_mapper lgm
+		LEFT JOIN live_goods lg ON lgm.goods_id_ = lg.id_
+		<include refid="queryPageSqlForGoods" />
+		ORDER BY lgm.id_
+		<include refid="global.limit"/>
+	</select>
 </mapper>

+ 47 - 0
mec-biz/src/main/resources/config/mybatis/TempLittleArtistTrainingCampMapper.xml

@@ -97,4 +97,51 @@
             </if>
         </where>
     </select>
+
+    <select id="queryUserTrainingDetail" parameterType="java.util.Map" resultType="com.ym.mec.biz.dal.vo.TempCampUserTrainingDetailVo">
+     SELECT a.user_id_ as id,
+        d.username_ as username,
+        d.phone_ as phone,
+        e.name_ as imGroupName,
+        ifnull(b.playDay, 0) as playDay,
+        ifnull(c.playTime, 0) as playTime
+        FROM temp_little_artist_training_camp_user_relation as a
+        left join (select a.user_id_, count(playDay) as playDay
+        from (SELECT cr.`user_id_`,
+        date(cr.`create_time_`) as playDay
+        FROM `sys_music_compare_record` cr
+        WHERE date(cr.`create_time_`) &gt;= #{param.startTime}
+        AND date(cr.`create_time_`) &lt;= #{param.endTime}
+        GROUP BY cr.`user_id_`, date(cr.`create_time_`)
+        HAVING sum(cr.`play_time_`) > 1200) as a
+        group by a.user_id_) as b on a.user_id_ = b.user_id_
+        left join (SELECT cr.`user_id_`,
+        sum(cr.`play_time_`) as playTime
+        FROM `sys_music_compare_record` cr
+        WHERE date(cr.`create_time_`) &gt;= #{param.startTime}
+        AND date(cr.`create_time_`) &lt;= #{param.endTime}
+        GROUP BY cr.`user_id_`) as c on a.user_id_ = c.user_id_
+        left join sys_user as d on d.id_ = a.user_id_
+        left join im_group as e on a.im_group_id_ = e.id_
+        <where>
+            <if test="param.imGroupId != null">
+                AND e.im_group_id_ = #{param.imGroupId}
+            </if>
+            <if test="param.search != null ">
+                AND (
+                d.`id_` LIKE CONCAT('%', #{param.search},'%')
+                OR d.`name_` LIKE CONCAT('%', #{param.search},'%')
+                OR d.`phone_` LIKE CONCAT('%', #{param.search},'%')
+                )
+            </if>
+        </where>
+    </select>
+
+    <select id="queryCampImGroup" resultType="com.ym.mec.biz.dal.entity.ImGroup">
+        select id_ as id,
+               name_ as name
+        from im_group
+        where find_in_set(id_, #{imGroupIds})
+    </select>
+
 </mapper>

+ 114 - 0
mec-student/src/main/java/com/ym/mec/student/controller/TempLittleArtistTrainingCampController.java

@@ -0,0 +1,114 @@
+package com.ym.mec.student.controller;
+
+import com.ym.mec.biz.dal.dto.TempLittleArtistTrainingCampDto;
+import com.ym.mec.biz.dal.entity.ImGroup;
+import com.ym.mec.biz.dal.entity.TempLittleArtistTrainingCamp;
+import com.ym.mec.biz.dal.vo.TempCampUserTrainingDetailVo;
+import com.ym.mec.biz.dal.vo.TempCampUserVo;
+import com.ym.mec.biz.dal.vo.TempUserTrainingTimeDetailVo;
+import com.ym.mec.biz.service.TempLittleArtistTrainingCampService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.page.PageInfo;
+import io.swagger.annotations.*;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 小小艺术家训练营活动(TempLittleArtistTrainingCamp)表控制层
+ *
+ * @author hgw
+ * @since 2022-05-17 20:56:22
+ */
+@Api(tags = "小小艺术家训练营活动")
+@RestController
+@RequestMapping("/tempLittleArtistTrainingCamp")
+public class TempLittleArtistTrainingCampController extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private TempLittleArtistTrainingCampService tempLittleArtistTrainingCampService;
+
+    @ApiOperation("添加训练营")
+    @PostMapping(value = "/add")
+    public HttpResponseResult<Object> add(@Valid @RequestBody TempLittleArtistTrainingCampDto dto) {
+        tempLittleArtistTrainingCampService.add(dto);
+        return succeed();
+    }
+
+    @ApiOperation("修改训练营")
+    @PostMapping(value = "/update")
+    public HttpResponseResult<Object> update(@Valid @RequestBody TempLittleArtistTrainingCampDto dto) {
+        tempLittleArtistTrainingCampService.update(dto);
+        return succeed();
+    }
+
+    @ApiOperation("修改机构启用停用状态")
+    @GetMapping(value = "/delete/{id}")
+    public HttpResponseResult<Object> opsState(@ApiParam(value = "训练营ID", required = true) @PathVariable("id") Integer id) {
+        tempLittleArtistTrainingCampService.delete(id);
+        return succeed();
+    }
+
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "name", dataType = "String", value = "训练营标题-模糊搜索"),
+            @ApiImplicitParam(name = "state", dataType = "String", value = "筹备中 READY,报名中 APPLY,未开始 NOT_START,进行中 ING,已结束 END"),
+            @ApiImplicitParam(name = "applyStartDate", dataType = "String", value = "申请报名登记开始日期-年月日"),
+            @ApiImplicitParam(name = "applyEndDate", dataType = "String", value = "申请报名登记结束日期-年月日"),
+            @ApiImplicitParam(name = "trainStartDate", dataType = "String", value = "训练开始日期-年月日"),
+            @ApiImplicitParam(name = "trainEndDate", dataType = "String", value = "训练结束日期-年月日"),
+            @ApiImplicitParam(name = "page", dataType = "Integer", required = true, value = "页数"),
+            @ApiImplicitParam(name = "rows", dataType = "Integer", required = true, value = "每页数量"),
+    })
+    @ApiOperation("分页查询-训练营列表")
+    @PostMapping(value = "/queryPageTrainingCamp")
+    public HttpResponseResult<PageInfo<TempLittleArtistTrainingCamp>> queryPageTrainingCamp(@RequestBody Map<String, Object> param) {
+        return succeed(tempLittleArtistTrainingCampService.queryPageTrainingCamp(param));
+    }
+
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "search", dataType = "String", value = "学员姓名/手机号/编号-模糊搜索"),
+            @ApiImplicitParam(name = "state", dataType = "String", value = "状态:未报名NOT_APPLY ,已报名 APPLY"),
+            @ApiImplicitParam(name = "page", dataType = "Integer", required = true, value = "页数"),
+            @ApiImplicitParam(name = "rows", dataType = "Integer", required = true, value = "每页数量"),
+    })
+    @ApiOperation("分页查询-参与名单")
+    @PostMapping(value = "/queryPageTrainingCampUser")
+    public HttpResponseResult<PageInfo<TempCampUserVo>> queryPageTrainingCampUser(@RequestBody Map<String, Object> param) {
+        return succeed(tempLittleArtistTrainingCampService.queryPageTrainingCampUser(param));
+    }
+
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "userId", dataType = "Integer", required = true, value = "用户id"),
+    })
+    @ApiOperation("查询指定学生-训练营每日训练时长")
+    @PostMapping(value = "/queryUserTrainingTime")
+    public HttpResponseResult<List<TempUserTrainingTimeDetailVo>> queryUserTrainingTime(@RequestBody Map<String, Object> param) {
+        return succeed(tempLittleArtistTrainingCampService.queryUserTrainingTime(param));
+    }
+
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "search", dataType = "String", value = "学员姓名/手机号/编号-模糊搜索"),
+            @ApiImplicitParam(name = "imGroupId", dataType = "Integer", value = "所在群组Id"),
+            @ApiImplicitParam(name = "page", dataType = "Integer", required = true, value = "页数"),
+            @ApiImplicitParam(name = "rows", dataType = "Integer", required = true, value = "每页数量"),
+    })
+    @ApiOperation("分页查询-训练营详情")
+    @PostMapping(value = "/queryUserTrainingDetail")
+    public HttpResponseResult<PageInfo<TempCampUserTrainingDetailVo>> queryUserTrainingDetail(@RequestBody Map<String, Object> param){
+        return succeed(tempLittleArtistTrainingCampService.queryUserTrainingDetail(param));
+    }
+
+    @ApiOperation("根据群组Id查询群组信息")
+    @GetMapping(value = "/queryCampImGroup")
+    public HttpResponseResult<List<ImGroup>> queryCampImGroup(@ApiParam(value = "群组id,多个用逗号隔开 imGroupIds", required = true) String imGroupIds){
+        return succeed(tempLittleArtistTrainingCampService.queryCampImGroup(imGroupIds));
+    }
+
+}
+

+ 4 - 3
mec-web/src/main/java/com/ym/mec/web/controller/LiveGoodsMapperController.java

@@ -1,12 +1,13 @@
 package com.ym.mec.web.controller;
 
+import com.ym.mec.biz.dal.entity.LiveGoods;
 import com.ym.mec.biz.dal.entity.LiveGoodsMapper;
 import com.ym.mec.biz.dal.page.LiveGoodsMapperQueryInfo;
 import com.ym.mec.biz.service.LiveGoodsMapperService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
-import com.ym.mec.common.page.QueryInfo;
+import com.ym.mec.common.page.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -32,8 +33,8 @@ public class LiveGoodsMapperController extends BaseController {
     @ApiOperation("分页查询直播间商品")
     @PostMapping("/page")
     @PreAuthorize("@pcs.hasPermissions('liveGoodsMapper/page')")
-    public HttpResponseResult page(LiveGoodsMapperQueryInfo queryInfo) {
-        return succeed(liveGoodsMapperService.queryPage(queryInfo));
+    public HttpResponseResult<PageInfo<LiveGoods>> page(LiveGoodsMapperQueryInfo queryInfo) {
+        return succeed(liveGoodsMapperService.queryGoodsPage(queryInfo));
     }
 
     @ApiOperation("新增直播间商品关联")

+ 20 - 0
mec-web/src/main/java/com/ym/mec/web/controller/TempLittleArtistTrainingCampController.java

@@ -1,7 +1,9 @@
 package com.ym.mec.web.controller;
 
 import com.ym.mec.biz.dal.dto.TempLittleArtistTrainingCampDto;
+import com.ym.mec.biz.dal.entity.ImGroup;
 import com.ym.mec.biz.dal.entity.TempLittleArtistTrainingCamp;
+import com.ym.mec.biz.dal.vo.TempCampUserTrainingDetailVo;
 import com.ym.mec.biz.dal.vo.TempCampUserVo;
 import com.ym.mec.biz.dal.vo.TempUserTrainingTimeDetailVo;
 import com.ym.mec.biz.service.TempLittleArtistTrainingCampService;
@@ -90,5 +92,23 @@ public class TempLittleArtistTrainingCampController extends BaseController {
         return succeed(tempLittleArtistTrainingCampService.queryUserTrainingTime(param));
     }
 
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "search", dataType = "String", value = "学员姓名/手机号/编号-模糊搜索"),
+            @ApiImplicitParam(name = "imGroupId", dataType = "Integer", value = "所在群组Id"),
+            @ApiImplicitParam(name = "page", dataType = "Integer", required = true, value = "页数"),
+            @ApiImplicitParam(name = "rows", dataType = "Integer", required = true, value = "每页数量"),
+    })
+    @ApiOperation("分页查询-训练营详情")
+    @PostMapping(value = "/queryUserTrainingDetail")
+    public HttpResponseResult<PageInfo<TempCampUserTrainingDetailVo>> queryUserTrainingDetail(@RequestBody Map<String, Object> param){
+        return succeed(tempLittleArtistTrainingCampService.queryUserTrainingDetail(param));
+    }
+
+    @ApiOperation("根据群组Id查询群组信息")
+    @GetMapping(value = "/queryCampImGroup")
+    public HttpResponseResult<List<ImGroup>> queryCampImGroup(@ApiParam(value = "群组id,多个用逗号隔开 imGroupIds", required = true) String imGroupIds){
+        return succeed(tempLittleArtistTrainingCampService.queryCampImGroup(imGroupIds));
+    }
+
 }