From 1089e7795ac98fc0486694e5116f44ee28807f7c Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Sat, 15 May 2021 15:01:25 +0800
Subject: [PATCH] 20210515 云顶

---
 src/main/java/com/xcong/excoin/modules/yunding/service/YunDingService.java          |    2 
 src/main/resources/mapper/yunding/YdOrderDao.xml                                    |   17 +++++
 src/main/java/com/xcong/excoin/modules/yunding/controller/YunDingController.java    |   20 ++++++
 src/main/java/com/xcong/excoin/modules/yunding/vo/TeamInfoVo.java                   |   17 +++++
 src/main/java/com/xcong/excoin/modules/yunding/dto/TeamInfoDto.java                 |   21 +++++++
 src/main/java/com/xcong/excoin/modules/yunding/vo/TeamVo.java                       |   23 +++++++
 src/main/java/com/xcong/excoin/modules/yunding/dao/YdOrderDao.java                  |    6 ++
 src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java |   44 ++++++++++++++
 8 files changed, 148 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/yunding/controller/YunDingController.java b/src/main/java/com/xcong/excoin/modules/yunding/controller/YunDingController.java
index 80abc44..72edb85 100644
--- a/src/main/java/com/xcong/excoin/modules/yunding/controller/YunDingController.java
+++ b/src/main/java/com/xcong/excoin/modules/yunding/controller/YunDingController.java
@@ -160,6 +160,26 @@
         return yunDingService.bugAgentLevel(bugAgentLeveldto);
     }
 
+    /**
+     * 我的团队信息
+     */
+    @ApiOperation(value = "我的团队信息")
+    @ApiResponses({
+            @ApiResponse(code = 0, message = "success", response = TeamVo.class)
+    })
+    @PostMapping(value = "/getAgentList")
+    public Result getTeamList(@RequestBody @Validated TeamInfoDto teamInfoDto) {
+        return yunDingService.getTeamList(teamInfoDto);
+    }
+
+
+
+
+
+
+
+
+
 
 
 
diff --git a/src/main/java/com/xcong/excoin/modules/yunding/dao/YdOrderDao.java b/src/main/java/com/xcong/excoin/modules/yunding/dao/YdOrderDao.java
index 3ae4c38..ee867a5 100644
--- a/src/main/java/com/xcong/excoin/modules/yunding/dao/YdOrderDao.java
+++ b/src/main/java/com/xcong/excoin/modules/yunding/dao/YdOrderDao.java
@@ -3,10 +3,12 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.xcong.excoin.modules.member.entity.MemberEntity;
 import com.xcong.excoin.modules.yunding.dto.YdOrderListDto;
 import com.xcong.excoin.modules.yunding.entity.YdBasicLevelSettingEntity;
 import com.xcong.excoin.modules.yunding.entity.YdOrderEntity;
 import com.xcong.excoin.modules.yunding.vo.AgentVo;
+import com.xcong.excoin.modules.yunding.vo.TeamInfoVo;
 import com.xcong.excoin.modules.yunding.vo.YdOrderVo;
 import org.apache.ibatis.annotations.Param;
 
@@ -32,4 +34,8 @@
     List<YdOrderEntity> selectTeamAllPower(@Param("inviteId") String inviteId);
 
     int updateOrderProfit(@Param("profit") BigDecimal profit, @Param("id") Long id);
+
+    int selectAllPowerByMemberIdAndElse(@Param("inviteId")String inviteId);
+
+    IPage<TeamInfoVo> getTeamInfoList(Page<TeamInfoVo> page, @Param("record")MemberEntity memberEntity);
 }
diff --git a/src/main/java/com/xcong/excoin/modules/yunding/dto/TeamInfoDto.java b/src/main/java/com/xcong/excoin/modules/yunding/dto/TeamInfoDto.java
new file mode 100644
index 0000000..b011587
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/yunding/dto/TeamInfoDto.java
@@ -0,0 +1,21 @@
+package com.xcong.excoin.modules.yunding.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+@Data
+@ApiModel(value = "TeamInfoDto", description = "团队入参类")
+public class TeamInfoDto {
+
+    @NotNull
+    @Min(1)
+    @ApiModelProperty(value = "第几页", example = "1")
+    private int pageNum;
+
+    @NotNull
+    @ApiModelProperty(value = "每页数量", example = "10")
+    private int pageSize;
+}
diff --git a/src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java b/src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java
index 12d3ea6..110354e 100644
--- a/src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java
@@ -1,7 +1,6 @@
 package com.xcong.excoin.modules.yunding.service.Impl;
 
 import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
@@ -42,7 +41,6 @@
 import java.math.BigDecimal;
 import java.text.DecimalFormat;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
 
 @Slf4j
@@ -599,6 +597,48 @@
         return Result.ok(xchNewPrices);
     }
 
+    @Override
+    public Result getTeamList(TeamInfoDto teamInfoDto) {
+        log.info("获取团队信息");
+        MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
+        Long memberId = memberEntity.getId();
+        /**
+         * 获取团队总人数,总购买数
+         *      详细列表
+         *
+         */
+        TeamVo teamVo = new TeamVo();
+        //团队总人数
+        int memberNum = 0;
+        //直接下级
+        QueryWrapper<MemberEntity> objectQueryWrapper = new QueryWrapper<>();
+        objectQueryWrapper.eq("referer_id",memberEntity.getInviteId());
+        List<MemberEntity> memberEntities = memberDao.selectList(objectQueryWrapper);
+        if(CollUtil.isNotEmpty(memberEntities)){
+            memberNum = memberEntities.size();
+        }
+        teamVo.setMemberNum(memberNum);
+
+        //总购买数
+        int allPower = ydOrderDao.selectAllPowerByMemberIdAndElse(memberEntity.getInviteId());
+        teamVo.setAllPower(allPower);
+
+        //详细列表
+        Page<TeamInfoVo> page = new Page<>(teamInfoDto.getPageNum(), teamInfoDto.getPageSize());
+        IPage<TeamInfoVo> teamInfoVos = ydOrderDao.getTeamInfoList(page, memberEntity);
+        List<TeamInfoVo> records = teamInfoVos.getRecords();
+        if(CollUtil.isNotEmpty(records)){
+            for(TeamInfoVo teamInfoVo : records){
+                String phone = teamInfoVo.getPhone();
+                if(StrUtil.isNotEmpty(phone)){
+                    teamInfoVo.setPhone(StrUtil.subSufByLength(phone,4));
+                }
+            }
+        }
+        teamVo.setTeamInfoVos(records);
+        return Result.ok(teamVo);
+    }
+
 
     /**
      * 去加减币币账户余额,减少产品的剩余数目
diff --git a/src/main/java/com/xcong/excoin/modules/yunding/service/YunDingService.java b/src/main/java/com/xcong/excoin/modules/yunding/service/YunDingService.java
index 56fa6e4..d7a1a2b 100644
--- a/src/main/java/com/xcong/excoin/modules/yunding/service/YunDingService.java
+++ b/src/main/java/com/xcong/excoin/modules/yunding/service/YunDingService.java
@@ -32,4 +32,6 @@
     Result bugAgentLevel(BugAgentLeveldto bugAgentLeveldto);
 
     Result getXchPrice();
+
+    Result getTeamList(TeamInfoDto teamInfoDto);
 }
diff --git a/src/main/java/com/xcong/excoin/modules/yunding/vo/TeamInfoVo.java b/src/main/java/com/xcong/excoin/modules/yunding/vo/TeamInfoVo.java
new file mode 100644
index 0000000..3a31437
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/yunding/vo/TeamInfoVo.java
@@ -0,0 +1,17 @@
+package com.xcong.excoin.modules.yunding.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiOperation;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "TeamInfoVo", description = "团队详情")
+public class TeamInfoVo {
+
+    @ApiModelProperty("账号")
+    private String phone;
+
+    @ApiModelProperty("购买算力")
+    private Integer powerNum;
+}
diff --git a/src/main/java/com/xcong/excoin/modules/yunding/vo/TeamVo.java b/src/main/java/com/xcong/excoin/modules/yunding/vo/TeamVo.java
new file mode 100644
index 0000000..a5943dc
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/yunding/vo/TeamVo.java
@@ -0,0 +1,23 @@
+package com.xcong.excoin.modules.yunding.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel(value = "TeamVo", description = "团队")
+public class TeamVo {
+
+    @ApiModelProperty("团队人数")
+    private Integer memberNum;
+
+    @ApiModelProperty("购买总算力")
+    private Integer allPower;
+
+    @ApiModelProperty("团队详情")
+    private List<TeamInfoVo> teamInfoVos;
+
+
+}
diff --git a/src/main/resources/mapper/yunding/YdOrderDao.xml b/src/main/resources/mapper/yunding/YdOrderDao.xml
index b74d39f..0309bea 100644
--- a/src/main/resources/mapper/yunding/YdOrderDao.xml
+++ b/src/main/resources/mapper/yunding/YdOrderDao.xml
@@ -103,4 +103,21 @@
                 today_profit=#{profit}
         where id=#{id}
     </update>
+
+    <select id="selectAllPowerByMemberIdAndElse" resultType="java.lang.Integer">
+        select ifnull(sum(quantity),0) from yd_order where type = 1 and member_id in (
+            select member_id from member where referer_id = #{inviteId}
+            )
+    </select>
+
+    <select id="getTeamInfoList" resultType="com.xcong.excoin.modules.yunding.vo.TeamInfoVo">
+        select a.phone phone,
+               sum(quantity) powerNum
+        from member a
+        left join yd_order b where b.member_id = a.id
+        where a.referer_id = #{record.inviteId}
+            and b.type = 1
+        group by a.member_id
+        order by a.create_time desc
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1