فهرست منبع

个人分销排行榜

zoujiajian 2 سال پیش
والد
کامیت
5bcb6b7ae9

+ 4 - 0
netflix-common/src/main/java/com/cyksj/common/constant/Constant.java

@@ -355,4 +355,8 @@ public interface Constant {
 	 * 特殊价格规格ids
 	 */
 	List<Long> SPECIAL_PRICE_SKU_IDS = List.of(409l);
+
+	String month = "month";
+
+	String week = "week";
 }

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/mapper/UserActivityRankRootMapper.java

@@ -0,0 +1,13 @@
+package com.cyksj.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.UserActivityRankRoot;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: UserActivityRankRootMapper
+ * 创建者: JavaZou
+ * 创建时间:2024/7/24 16:10
+ */
+public interface UserActivityRankRootMapper extends BaseMapper<UserActivityRankRoot> {
+}

+ 23 - 0
netflix-dao/src/main/java/com/cyksj/mapper/UserDistributeRankStatisticsRecordMapper.java

@@ -0,0 +1,23 @@
+package com.cyksj.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.cyksj.model.entity.UserDistributeRankStatisticsRecord;
+import com.cyksj.model.views.DistributeUserRankView;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: UserDistributeRankStatisticsRecordMapper
+ * 创建者: JavaZou
+ * 创建时间:2024/7/23 16:37
+ */
+public interface UserDistributeRankStatisticsRecordMapper extends BaseMapper<UserDistributeRankStatisticsRecord> {
+	Page<DistributeUserRankView> selectDistributeRanks(@Param("type") Integer type, @Param("filed") String filed, @Param("page") Page<DistributeUserRankView> objectPage);
+
+	DistributeUserRankView getSelfRank(@Param("type") Integer type, @Param("filed") String filed, @Param("userId") long userId);
+
+	List<DistributeUserRankView> getPreviousWinners(@Param("type") Integer type, @Param("filed") String filed, @Param("lastTime") String lastTime);
+}

+ 66 - 1
netflix-dao/src/main/java/com/cyksj/model/entity/UserActivity.java

@@ -2,11 +2,13 @@ package com.cyksj.model.entity;
 
 import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.ejlchina.searcher.bean.DbIgnore;
 import lombok.Getter;
 import lombok.Setter;
 
 import javax.validation.constraints.NotEmpty;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 项目名: yhlxj
@@ -17,7 +19,7 @@ import java.util.Date;
  */
 @Getter
 @Setter
-public class UserActivity extends BaseEntity{
+public class UserActivity extends BaseEntity {
 	/**
 	 * 活动名称
 	 */
@@ -59,8 +61,71 @@ public class UserActivity extends BaseEntity{
 	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private String rules;
 
+	/**
+	 * 0.大学生认证
+	 * 1.个人分销排行
+	 */
+	private Integer type;
+
+	/**
+	 * 统计类型(周/月)
+	 * week,month
+	 */
+	private String statisticsType;
+
+	/**
+	 * 分销排行榜类型
+	 * 0.金额榜,1.打单榜
+	 */
+	private Integer rankType;
+
+	/**
+	 * 头奖范围
+	 * 5:前五名
+	 */
+	private Integer headRank;
+
+	/**
+	 * 奖励信息json
+	 */
+	private String rewardInfo;
+
+	@DbIgnore
+	@TableField(exist = false)
+	private List<RewardInfo> rewardInfoList;
+
+	/**
+	 * 设置机器人
+	 */
+	@DbIgnore
+	@TableField(exist = false)
+	private List<UserActivityRankRoot> rankRoots;
+
 	/**
 	 * 是否删除
 	 */
 	private Boolean deleted;
+
+	@Getter
+	@Setter
+	public static class RewardInfo{
+
+		/**
+		 * 名次
+		 */
+		private Integer rank;
+
+		/**
+		 * 0.返现
+		 * 1.余额
+		 * 2.兑换码
+		 * 奖品类型
+		 */
+		private Integer type;
+
+		/**
+		 * 具体奖励
+		 */
+		private String reward;
+	}
 }

+ 46 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/UserActivityRankRoot.java

@@ -0,0 +1,46 @@
+package com.cyksj.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+@Getter
+@Setter
+public class UserActivityRankRoot extends BaseEntity{
+	private Long acId;
+
+	private String headimgurl;
+
+	private String nickname;
+
+	/**
+	 * 每日增单数开始
+	 */
+	private Integer addOrdersSt;
+
+	/**
+	 * 每日增单数结束
+	 */
+	private Integer addOrdersEt;
+
+	/**
+	 * 初始订单数
+	 */
+	private Integer initOrders;
+
+	/**
+	 * 每单金额开始
+	 */
+	private BigDecimal moneySt;
+
+	/**
+	 * 每单金额结束
+	 */
+	private BigDecimal moneyEt;
+
+	/**
+	 * 初始金额
+	 */
+	private BigDecimal initMoney;
+}

+ 52 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/UserDistributeRankStatisticsRecord.java

@@ -0,0 +1,52 @@
+package com.cyksj.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: UserDistributeRankStatisticsRecord
+ * 创建者: JavaZou
+ * 创建时间:2024/7/23 16:33
+ */
+@Getter
+@Setter
+public class UserDistributeRankStatisticsRecord extends BaseEntity{
+	/**
+	 * 排行类型
+	 * 0金额,1单数
+	 */
+	private Integer type;
+
+	/**
+	 * 分销用户
+	 */
+	private Long userId;
+
+	/**
+	 * 分销用户数
+	 */
+	private Integer userNUm;
+
+	/**
+	 * 分销订单数
+	 */
+	private Integer orders;
+
+	/**
+	 * 分销金额
+	 */
+	private BigDecimal money;
+
+	/**
+	 * 奖品明细
+	 */
+	private String reward;
+
+	/**
+	 * 统计类型
+	 */
+	private Integer statisticsType;
+}

+ 26 - 0
netflix-dao/src/main/java/com/cyksj/model/views/DistributeUserRankPersonalView.java

@@ -0,0 +1,26 @@
+package com.cyksj.model.views;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: DistributeUserRankPersonalView
+ * 创建者: JavaZou
+ * 创建时间:2024/7/23 17:43
+ */
+@Getter
+@Setter
+public class DistributeUserRankPersonalView {
+
+	/**
+	 * 个人排行
+	 */
+	private DistributeUserRankView self;
+
+	/**
+	 * 排行列表
+	 */
+	private Page<DistributeUserRankView> ranks;
+}

+ 51 - 0
netflix-dao/src/main/java/com/cyksj/model/views/DistributeUserRankView.java

@@ -0,0 +1,51 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.DbIgnore;
+import com.ejlchina.searcher.bean.SearchBean;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: DistributeUserRankView
+ * 创建者: JavaZou
+ * 创建时间:2024/7/23 17:30
+ */
+@Getter
+@Setter
+@SearchBean(tables = "user_distribute_rank_statistics_record udsr left join user u on u.id = udsr.user_id",
+		where = "udsr.is_present is true")
+public class DistributeUserRankView {
+
+	/**
+	 * 排行类型 0金额,1单数
+	 */
+	@DbField("udsr.type")
+	private Integer type;
+
+	@DbIgnore
+	private Integer rankId;
+
+	@DbField("udsr.user_id")
+	@JsonIgnore
+	private Long userId;
+
+	@DbField("concat(LEFT(ifnull(u.nickname,udsr.nickname),1),'*',RIGHT(ifnull(u.nickname,udsr.nickname),1))")
+	private String nickname;
+
+	@DbField("ifnull(u.headimgurl,udsr.headimgurl)")
+	private String headimgurl;
+
+	@DbField("udsr.orders")
+	private Integer orders = 0;
+
+	@DbField("udsr.statistics_start_time")
+	private String statisticsStartTime;
+
+	@DbField("udsr.money")
+	private BigDecimal money = BigDecimal.ZERO;
+}

+ 74 - 0
netflix-dao/src/main/java/com/cyksj/model/views/UserActivityDistributeDetailView.java

@@ -0,0 +1,74 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: UserActivityDistributeDetailView
+ * 创建者: JavaZou
+ * 创建时间:2024/7/23 17:12
+ */
+@Data
+@SearchBean(tables = "user_activity ua"
+		, where = "ua.deleted = true :time:")
+public class UserActivityDistributeDetailView {
+	@DbField("ua.id")
+	private Integer id;
+
+	@DbField("ua.name")
+	private String name;
+
+	@DbField("ua.start_time")
+	private Date startTime;
+
+	@DbField("ua.end_time")
+	private Date endTime;
+
+	@DbField("ua.img")
+	private String img;
+
+	/**
+	 * 规则图片
+	 */
+	@DbField("ua.rules")
+	private String rules;
+
+	/**
+	 * 0.大学生认证
+	 * 1.个人分销排行
+	 */
+	@DbField("ua.type")
+	private Integer type;
+
+	/**
+	 * 统计类型(周/月)
+	 * week,month
+	 */
+	@DbField("ua.statistics_type")
+	private String statisticsType;
+
+	/**
+	 * 分销排行榜类型
+	 * 0.金额榜,1.打单榜
+	 * 2.both
+	 */
+	@DbField("ua.rank_type")
+	private Integer rankType;
+
+	/**
+	 * 头奖范围
+	 * 5:前五名
+	 */
+	@DbField("ua.head_rank")
+	private Integer headRank;
+
+	/**
+	 * 奖励信息json
+	 */
+	@DbField("ua.reward_info")
+	private String rewardInfo;
+}

+ 41 - 0
netflix-dao/src/main/java/com/cyksj/model/views/UserDistributeRankRewardDetailView.java

@@ -0,0 +1,41 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: UserDistributeRankRewardDetailView
+ * 创建者: JavaZou
+ * 创建时间:2024/7/24 17:56
+ */
+
+@Getter
+@Setter
+@SearchBean(tables = "user_distribute_rank_reward_detail ud")
+public class UserDistributeRankRewardDetailView {
+	@DbField("ud.user_id")
+	private Long userId;
+
+	@DbField("ud.reward_type")
+	private Integer rewardType;
+
+	@DbField("ud.reward")
+	private String reward;
+
+	/**
+	 * 排行类型 0金额,1单数
+	 */
+	@DbField("ud.type")
+	private Integer type;
+
+	@DbField("ud.rank_id")
+	private Integer rankId;
+
+	@DbField("ud.created_time")
+	private Date createdTime;
+}

+ 49 - 0
netflix-dao/src/main/resources/mapper/UserDistributeRankStatisticsRecordMapper.xml

@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.cyksj.mapper.UserDistributeRankStatisticsRecordMapper">
+
+    <select id="selectDistributeRanks" resultType="com.cyksj.model.views.DistributeUserRankView">
+        select ROW_NUMBER()                             OVER (ORDER BY ${filed}) AS rank_id, concat(LEFT(ifnull(u.nickname,udsr.nickname),1),'*', RIGHT(ifnull(u.nickname,udsr.nickname),1)) as nickname,
+               ifnull(u.headimgurl, udsr.headimgurl) as headimgurl,
+               udsr.type,
+               udsr.user_id,
+               udsr.statistics_start_time,
+               udsr.money,
+               udsr.orders
+        from user_distribute_rank_statistics_record udsr
+                 left join user u on u.id = udsr.user_id
+        where udsr.is_present is true
+        and type = #{type}
+    </select>
+
+    <select id="getSelfRank" resultType="com.cyksj.model.views.DistributeUserRankView">
+        select ROW_NUMBER()                             OVER (ORDER BY ${filed}) AS rank_id, concat(LEFT(ifnull(u.nickname,udsr.nickname),1),'*', RIGHT(ifnull(u.nickname,udsr.nickname),1)) as nickname,
+               ifnull(u.headimgurl, udsr.headimgurl) as headimgurl,
+               udsr.type,
+               udsr.user_id,
+               udsr.statistics_start_time,
+               udsr.money,
+               udsr.orders
+        from user_distribute_rank_statistics_record udsr
+                 left join user u on u.id = udsr.user_id
+        where udsr.user_id = #{userId}
+          and type = #{type}
+          and udsr.is_present is true
+    </select>
+
+    <select id="getPreviousWinners" resultType="com.cyksj.model.views.DistributeUserRankView">
+        select ROW_NUMBER()                             OVER (ORDER BY ${filed}) AS rank_id, concat(LEFT(ifnull(u.nickname,udsr.nickname),1),'*', RIGHT(ifnull(u.nickname,udsr.nickname),1)) as nickname,
+               ifnull(u.headimgurl, udsr.headimgurl) as headimgurl,
+               udsr.type,
+               udsr.user_id,
+               udsr.statistics_start_time,
+               udsr.money,
+               udsr.orders
+        from user_distribute_rank_statistics_record udsr
+                 left join user u on u.id = udsr.user_id
+        where type = #{type}
+          and statistics_start_time = #{lastTime}
+          and udsr.is_present is false
+    </select>
+</mapper>

+ 25 - 4
netflix-service/src/main/java/com/cyksj/service/user/impl/UserActivityServiceImpl.java

@@ -1,16 +1,15 @@
 package com.cyksj.service.user.impl;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.cyksj.common.util.Jsons;
 import com.cyksj.mapper.UserActivityMapper;
+import com.cyksj.mapper.UserActivityRankRootMapper;
 import com.cyksj.mapper.UserMapper;
 import com.cyksj.mapper.UserStudentCertRecordMapper;
-import com.cyksj.model.entity.CouponUser;
-import com.cyksj.model.entity.User;
-import com.cyksj.model.entity.UserActivity;
-import com.cyksj.model.entity.UserStudentCertRecord;
+import com.cyksj.model.entity.*;
 import com.cyksj.service.mange.coupon.CouponCommonService;
 import com.cyksj.service.user.UserActivityService;
 import lombok.RequiredArgsConstructor;
@@ -19,6 +18,7 @@ import org.springframework.dao.DuplicateKeyException;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 项目名: yhlxj
@@ -35,6 +35,8 @@ public class UserActivityServiceImpl extends ServiceImpl<UserActivityMapper, Use
 	private final UserMapper userMapper;
 
 	private final UserStudentCertRecordMapper userStudentCertRecordMapper;
+
+	private final UserActivityRankRootMapper userActivityRankRootMapper;
 	@Override
 	public void sendStudentCertActivity(User user, String dsCode, String school) throws Exception {
 		UserActivity activity = getById(1);
@@ -67,7 +69,26 @@ public class UserActivityServiceImpl extends ServiceImpl<UserActivityMapper, Use
 	@Override
 	public void saveOrUpdateActivity(UserActivity userActivity) throws Exception {
 		checkActivity(userActivity);
+		if (userActivity.getType() == 1) {
+			userActivity.setRewardInfo(Jsons.toJson(userActivity.getRewardInfoList()));
+		}
 		saveOrUpdate(userActivity);
+		if (userActivity.getType() == 1) {
+			List<UserActivityRankRoot> rankRoot = userActivity.getRankRoots();
+			List<Long> collect = rankRoot.stream().filter(e -> e.getId() != null).map(UserActivityRankRoot::getId).collect(Collectors.toList());
+			userActivityRankRootMapper.delete(Wrappers.lambdaQuery(UserActivityRankRoot.class)
+					.eq(UserActivityRankRoot::getAcId, userActivity.getId())
+					.notIn(CollUtil.isNotEmpty(collect), UserActivityRankRoot::getId, collect));
+
+			rankRoot.forEach(root -> {
+				root.setAcId(userActivity.getId());
+				if (root.getId() != null) {
+					userActivityRankRootMapper.updateById(root);
+				} else {
+					userActivityRankRootMapper.insert(root);
+				}
+			});
+		}
 	}
 
 

+ 130 - 0
netflix-web/src/main/java/com/cyksj/web/controller/distribute/DistributeRankController.java

@@ -0,0 +1,130 @@
+package com.cyksj.web.controller.distribute;
+
+import cn.hutool.core.date.DateTime;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.cyksj.common.constant.Constant;
+import com.cyksj.dto.Result;
+import com.cyksj.enums.GatewayResponse;
+import com.cyksj.mapper.UserDistributeRankStatisticsRecordMapper;
+import com.cyksj.mapper.manage.distribute.UserDistributeMapper;
+import com.cyksj.model.entity.UserDistribute;
+import com.cyksj.model.views.DistributeUserRankPersonalView;
+import com.cyksj.model.views.DistributeUserRankView;
+import com.cyksj.model.views.UserActivityDistributeDetailView;
+import com.cyksj.model.views.UserDistributeRankRewardDetailView;
+import com.cyksj.web.util.StpUserUtil;
+import com.ejlchina.searcher.BeanSearcher;
+import com.ejlchina.searcher.SearchResult;
+import com.ejlchina.searcher.util.MapUtils;
+import lombok.RequiredArgsConstructor;
+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;
+
+import javax.servlet.http.HttpServletRequest;
+import java.time.DayOfWeek;
+import java.time.LocalDate;
+import java.time.temporal.ChronoField;
+import java.util.List;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: DistributeRankController
+ * 创建者: JavaZou
+ * 创建时间:2024/7/23 17:10
+ */
+@RestController
+@RequestMapping("/applets/distribute/rank")
+@RequiredArgsConstructor
+public class DistributeRankController {
+
+	private final BeanSearcher beanSearcher;
+
+	private final HttpServletRequest request;
+
+	private final UserDistributeMapper userDistributeMapper;
+
+	private final UserDistributeRankStatisticsRecordMapper userDistributeRankStatisticsRecordMapper;
+
+	/**
+	 * 分销排行活动详情
+	 */
+	@GetMapping("/get/activity/detail")
+	public Result<UserActivityDistributeDetailView> getActivityDetail() {
+		long userId = StpUserUtil.getLoginIdAsLong();
+		UserDistribute userDistribute = userDistributeMapper.selectOne(Wrappers.lambdaQuery(UserDistribute.class)
+				.eq(UserDistribute::getUserId, userId)
+				.eq(UserDistribute::getDeleted, 1)
+				.last("limit 1"));
+		//非普通推广渠道
+		if (userDistribute != null) {
+			return GatewayResponse.SUCCESS.newBuilder().toResult();
+		}
+		String dateStr = DateTime.now().toString();
+		String time = String.format(" and (ua.start_time is null or (ua.start_time < '%s' and ua.end_time > '%s'))", dateStr, dateStr);
+		UserActivityDistributeDetailView view = beanSearcher.searchFirst(UserActivityDistributeDetailView.class, MapUtils.flatBuilder(request.getParameterMap())
+				.field(UserActivityDistributeDetailView::getType, 1)
+				.put("time", time)
+				.build());
+		return GatewayResponse.SUCCESS.newBuilder().toResult(view);
+	}
+
+	/**
+	 * 个人分销排行详情  以及所属分类排行列表
+	 */
+	@GetMapping("/get/personal")
+	public Result<DistributeUserRankPersonalView> getPersonal(@RequestParam(defaultValue = "0") Integer type, @RequestParam(defaultValue = "1") Integer start, @RequestParam(defaultValue = "5") Integer limit) {
+		long userId = StpUserUtil.getLoginIdAsLong();
+		DistributeUserRankPersonalView distributeUserRankPersonalView = new DistributeUserRankPersonalView();
+		String orderByField = "money";
+		//订单排行
+		if (type == 1) {
+			orderByField = "orders";
+		}
+
+		DistributeUserRankView self = userDistributeRankStatisticsRecordMapper.getSelfRank(type, orderByField, userId);
+		distributeUserRankPersonalView.setSelf(self);
+
+
+		Page<DistributeUserRankView> ranks = userDistributeRankStatisticsRecordMapper.selectDistributeRanks(type, orderByField, new Page<>(start, limit));
+		distributeUserRankPersonalView.setRanks(ranks);
+		return GatewayResponse.SUCCESS.newBuilder().toResult(distributeUserRankPersonalView);
+	}
+
+	/**
+	 * 上期获奖名单
+	 */
+	@GetMapping("/get/previous/winners")
+	public Result<List<DistributeUserRankView>> getPreviousWinners(@RequestParam(defaultValue = "0") Integer type, @RequestParam(defaultValue = "week") String statisticsType) {
+		String lastTime;
+		if (Constant.week.equals(statisticsType)) {
+			//上周一
+			LocalDate monday = LocalDate.now().with(ChronoField.DAY_OF_WEEK, DayOfWeek.MONDAY.getValue()).plusWeeks(-1);
+			lastTime = monday.toString();
+		} else {
+			LocalDate monday = LocalDate.now().with(ChronoField.DAY_OF_MONTH, DayOfWeek.MONDAY.getValue()).plusMonths(-1);
+			lastTime = monday.toString();
+		}
+		String orderByField = "money";
+		if (type == 1) {
+			orderByField = "orders";
+		}
+		List<DistributeUserRankView> ranks = userDistributeRankStatisticsRecordMapper.getPreviousWinners(type, orderByField, lastTime);
+		return GatewayResponse.SUCCESS.newBuilder().toResult(ranks);
+	}
+
+	/**
+	 * 获奖明细
+	 */
+	@GetMapping("/get/reward/detail")
+	public Result<SearchResult<UserDistributeRankRewardDetailView>> getUserRewardDetailView() {
+		long userId = StpUserUtil.getLoginIdAsLong();
+		SearchResult<UserDistributeRankRewardDetailView> search = beanSearcher.search(UserDistributeRankRewardDetailView.class, MapUtils.flatBuilder(request.getParameterMap())
+				.field(UserDistributeRankRewardDetailView::getUserId, userId)
+				.build());
+		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
+	}
+
+}

+ 14 - 1
netflix-web/src/main/java/com/cyksj/web/controller/manage/active/UserActivityController.java

@@ -1,8 +1,11 @@
 package com.cyksj.web.controller.manage.active;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
+import com.cyksj.mapper.UserActivityRankRootMapper;
 import com.cyksj.model.entity.UserActivity;
+import com.cyksj.model.entity.UserActivityRankRoot;
 import com.cyksj.service.user.UserActivityService;
 import com.ejlchina.searcher.BeanSearcher;
 import com.ejlchina.searcher.SearchResult;
@@ -13,6 +16,7 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.List;
 
 /**
  * 项目名: yhlxj
@@ -31,6 +35,8 @@ public class UserActivityController {
 
 	private final HttpServletRequest request;
 
+	private final UserActivityRankRootMapper rankRootMapper;
+
 	/**
 	 * 新建活动
 	 */
@@ -66,8 +72,15 @@ public class UserActivityController {
 	 * 活动列表
 	 */
 	@GetMapping("/get")
-	public Result<SearchResult<UserActivity> > get() {
+	public Result<SearchResult<UserActivity>> get() {
 		SearchResult<UserActivity> search = beanSearcher.search(UserActivity.class, MapUtils.flatBuilder(request.getParameterMap()).field(UserActivity::getDeleted, 1).build());
+		search.getDataList().forEach(e -> {
+			if (e.getType() == 1) {
+				List<UserActivityRankRoot> userActivityRankRoots = rankRootMapper.selectList(Wrappers.lambdaQuery(UserActivityRankRoot.class)
+						.eq(UserActivityRankRoot::getAcId, e.getId()));
+				e.setRankRoots(userActivityRankRoots);
+			}
+		});
 		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
 	}