diff --git a/wisenergy-mapper/src/main/java/cn/wisenergy/mapper/OrderMapper.java b/wisenergy-mapper/src/main/java/cn/wisenergy/mapper/OrderMapper.java
index 4069235044630c7685b7e12e66bfc232714a57ff..6c09b4353b22b893fe569a94a26ac2c8e654250d 100644
--- a/wisenergy-mapper/src/main/java/cn/wisenergy/mapper/OrderMapper.java
+++ b/wisenergy-mapper/src/main/java/cn/wisenergy/mapper/OrderMapper.java
@@ -4,6 +4,7 @@ import cn.wisenergy.model.app.OrderInfo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -31,4 +32,10 @@ public interface OrderMapper extends BaseMapper<OrderInfo> {
      */
     OrderInfo getByTid(@Param("tid")String tid);
 
+    /**
+     * 获取当前用户的业绩
+     * @param userId
+     * @return
+     */
+    BigDecimal getPerformanceByUserid(String userId);
 }
diff --git a/wisenergy-mapper/src/main/java/cn/wisenergy/mapper/RecommendUserMapper.java b/wisenergy-mapper/src/main/java/cn/wisenergy/mapper/RecommendUserMapper.java
index d0656729255d497de32188f00e7adda0b8bb790a..bced242569e03e4ca1465040a2a68b1a8b0e7d26 100644
--- a/wisenergy-mapper/src/main/java/cn/wisenergy/mapper/RecommendUserMapper.java
+++ b/wisenergy-mapper/src/main/java/cn/wisenergy/mapper/RecommendUserMapper.java
@@ -8,9 +8,21 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface RecommendUserMapper extends BaseMapper<RecommendUser> {
 
+    /**
+     * 获取用户直推信息
+     * @param userId 用户Id
+     * @return 用户直推信息
+     */
     RecommendUser getByUserId(String userId);
 
     //根据用户推荐人的userid,查询数据库用户直推表,看推荐人用户是否存在
     Integer zcByUserId(String userid);
 
+
+    /**
+     * 获取用户的直推用户总人数
+     * @param userId 用户Id
+     * @return 直推用户总人数
+     */
+    Integer getRecommendUserCountByUserId(String userId);
 }
diff --git a/wisenergy-mapper/src/main/java/cn/wisenergy/mapper/TeamPerformanceMapper.java b/wisenergy-mapper/src/main/java/cn/wisenergy/mapper/TeamPerformanceMapper.java
index ee62b5ee916381131bca4229ca665fffc09c5a58..ad8647e5e5b2b60933ec6a28c993644e4e7aa6f3 100644
--- a/wisenergy-mapper/src/main/java/cn/wisenergy/mapper/TeamPerformanceMapper.java
+++ b/wisenergy-mapper/src/main/java/cn/wisenergy/mapper/TeamPerformanceMapper.java
@@ -60,4 +60,19 @@ public interface TeamPerformanceMapper extends BaseMapper<TeamPerformance> {
     Double countTwenty(@Param("yearMonth") String yearMonth);
 
     List<TeamPerformance> userTwenty(@Param("yearMonth") String yearMonth);
+
+    /**
+     * 当前用户的团队总业绩
+     * @param userId 当前用户id
+     * @return 当前用户的团队累计总业绩金额
+     */
+    Double countUserTeamByUserId(@Param("userId") String userId);
+
+    /**
+     * 当前用户本月团队新增业绩
+     * @param userId 用户Id
+     * @return 当前用户本月团队新增业绩
+     */
+    Double monthUserTeamByuserId(@Param("userid") String userId,@Param("yearMonth") String yearMonth);
+
 }
diff --git a/wisenergy-mapper/src/main/java/cn/wisenergy/mapper/TeamUserInfoMapper.java b/wisenergy-mapper/src/main/java/cn/wisenergy/mapper/TeamUserInfoMapper.java
index 3fbf870dd9c3546e1d81d07a1cba2e40a874b4d1..7113246221f474296ad9d7142f0056fa6b321381 100644
--- a/wisenergy-mapper/src/main/java/cn/wisenergy/mapper/TeamUserInfoMapper.java
+++ b/wisenergy-mapper/src/main/java/cn/wisenergy/mapper/TeamUserInfoMapper.java
@@ -10,7 +10,20 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface TeamUserInfoMapper extends BaseMapper<TeamUserInfo> {
 
-    TeamUserInfo getByUserId(String userid);
+//    TeamUserInfo getByUserId(String userid);
     //根据userId查询用户是否存在
     Integer czByUserId(String userId);
+    /**
+     * 获取用户的团队信息
+     * @param userId 用户Id
+     * @return 用户的团队信息
+     */
+    TeamUserInfo getByUserId(String userId);
+
+    /**
+     * 获取用户的团队总人数
+     * @param userId 用户Id
+     * @return 团队总人数
+     */
+    Integer getTeamUserCount(String userId);
 }
diff --git a/wisenergy-mapper/src/main/java/cn/wisenergy/mapper/UsersMapper.java b/wisenergy-mapper/src/main/java/cn/wisenergy/mapper/UsersMapper.java
index 9fa0d8950f3cb86153dfe7d8914e80ae627bceeb..f6189ee87fada2179f3f1976ab87d3202a0a6334 100644
--- a/wisenergy-mapper/src/main/java/cn/wisenergy/mapper/UsersMapper.java
+++ b/wisenergy-mapper/src/main/java/cn/wisenergy/mapper/UsersMapper.java
@@ -106,4 +106,11 @@ public interface UsersMapper extends BaseMapper<User> {
     Integer insertbyint(@Param("userId")String userId,  @Param("beInvitedCode") String beInvitedCode);
     Integer edit1(@Param("userId")String userId);
     Integer getuserIdById(@Param("userId")String userId);
+    /**
+     * 根据userid获取获取所有的直接推荐人
+     * @param inviteCode 用户本人的邀请码
+     * @return 所有填写此人的邀请码的用户
+     */
+    List<User> getByInviteCode(@Param("inviteCode") String inviteCode, @Param("userlevel") int userLevel);
+
 }
diff --git a/wisenergy-mapper/src/main/resources/mapper/OrderMapper.xml b/wisenergy-mapper/src/main/resources/mapper/OrderMapper.xml
index 5275052b7652cf6e36416bbbfc2c8c3536816908..d6f3dbb3ad76a7bf0cb660975d5266bfb9014cdf 100644
--- a/wisenergy-mapper/src/main/resources/mapper/OrderMapper.xml
+++ b/wisenergy-mapper/src/main/resources/mapper/OrderMapper.xml
@@ -113,4 +113,14 @@
         </where>
     </select>
 
+    <select id="getPerformanceByUserid" resultType="java.math.BigDecimal" >
+        select
+        sum(payment)
+        from
+        <include refid="table"/>
+        <where>
+            buyer_id=#{userid}
+        </where>
+    </select>
+
 </mapper>
\ No newline at end of file
diff --git a/wisenergy-mapper/src/main/resources/mapper/RecommendUserMapper.xml b/wisenergy-mapper/src/main/resources/mapper/RecommendUserMapper.xml
index f802247211f133b9675261b5eb1671e587c3a762..d9ec5206079ce6fc6a8cb5eb191f37934d25abac 100644
--- a/wisenergy-mapper/src/main/resources/mapper/RecommendUserMapper.xml
+++ b/wisenergy-mapper/src/main/resources/mapper/RecommendUserMapper.xml
@@ -15,6 +15,8 @@
         <result column="partner_num" property="partnerNum"/>
         <result column="create_time" property="createTime"/>
         <result column="update_time" property="updateTime"/>
+        <result column="monthy_count" property="monthyCount"/>
+        <result column="history_count" property="historyCount"/>
     </resultMap>
 
     <sql id="table">
@@ -28,12 +30,12 @@
 
     <sql id="cols_exclude_id">
         user_id,normal_user_num,seedling_num,bronze_tree_num,silver_tree_num,
-        gold_tree_num,farmer_num,forest_start_num,partner_num,create_time,update_time
+        gold_tree_num,farmer_num,forest_start_num,partner_num,create_time,update_time,monthy_count,history_count
     </sql>
 
     <sql id="vals">
         #{userId},#{normalUserNum},#{seedlingNum},#{bronzeTreeNum},#{silverTreeNum},
-        #{goldTreeNum},#{farmerNum},#{forestStartNum},#{partnerNum},now(),now()
+        #{goldTreeNum},#{farmerNum},#{forestStartNum},#{partnerNum},now(),now(),#{monthy_count},#{history_count}
     </sql>
 
     <sql id="updateCondition">
@@ -45,6 +47,8 @@
         <if test="farmerNum != null">referrer_num =#{farmerNum},</if>
         <if test="forestStartNum != null">referrer_num =#{forestStartNum},</if>
         <if test="partnerNum != null">referrer_num =#{partnerNum},</if>
+        <if test="monthyCount != null">referrer_num =#{monthyCount},</if>
+        <if test="historyCount != null">referrer_num =#{historyCount},</if>
         update_time =now()
     </sql>
 
@@ -60,6 +64,8 @@
         <if test="partnerNum != null">and referrer_num =#{partnerNum},</if>
         <if test="createTime != null">and create_time &gt;= #{createTime}</if>
         <if test="updateTime != null">and #{updateTime} &gt;= update_time</if>
+        <if test="monthyCount != null">and #{monthyCount} &gt;= monthyCount</if>
+        <if test="historyCount != null">and #{historyCount} &gt;= historyCount</if>
     </sql>
 
     <select id="getByUserId" resultType="cn.wisenergy.model.app.RecommendUser">
@@ -83,4 +89,15 @@
     </select>
     <!--用户信息插入用户直推表-->
 
+    <select id="getRecommendUserCountByUserId" resultType="java.lang.Integer">
+        select
+        (normal_user_num+seedling_num+bronze_tree_num+silver_tree_num+
+        gold_tree_num+farmer_num+forest_start_num+partner_num) AS RecommendUserCount
+        from
+        <include refid="table"/>
+        <where>
+            user_id=#{userId}
+        </where>
+    </select>
+
 </mapper>
\ No newline at end of file
diff --git a/wisenergy-mapper/src/main/resources/mapper/TeamPerformanceMapper.xml b/wisenergy-mapper/src/main/resources/mapper/TeamPerformanceMapper.xml
index 31f7108d5e0002d656fb17a5ddb3346960e06b4c..283bffe29ce62b6025cecd26ee6a35e15987200d 100644
--- a/wisenergy-mapper/src/main/resources/mapper/TeamPerformanceMapper.xml
+++ b/wisenergy-mapper/src/main/resources/mapper/TeamPerformanceMapper.xml
@@ -164,4 +164,22 @@
         </where>
     </select>
 
+    <select id="countUserTeamByUserId" resultType="double">
+        select sum(month_team_performance)
+        from
+        <include refid="table"/>
+        <where>
+            user_id=#{userId}
+        </where>
+    </select>
+
+    <select id="monthUserTeamByuserId" resultType="double">
+        select month_team_performance
+        from
+        <include refid="table"/>
+        <where>
+            user_id=#{userid}
+            and `year_month` = #{yearMonth}
+        </where>
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/wisenergy-mapper/src/main/resources/mapper/TeamUserInfoMapper.xml b/wisenergy-mapper/src/main/resources/mapper/TeamUserInfoMapper.xml
index 7fc966ecdc5640b9ee6e09ee5508a01073f1cb03..63e7d38efbbc07de00d0f3fc5aa01fc524368805 100644
--- a/wisenergy-mapper/src/main/resources/mapper/TeamUserInfoMapper.xml
+++ b/wisenergy-mapper/src/main/resources/mapper/TeamUserInfoMapper.xml
@@ -83,4 +83,14 @@
     </select>
 
 
+    <select id="getTeamUserCount" resultType="java.lang.Integer" >
+        select
+        (normal_user_num+seedling_num+bronze_tree_num+silver_tree_num+
+	            gold_tree_num+farmer_num+forest_start_num+partner_num) AS teamUserCount
+	    from
+	    <include refid="table"/>
+	    <where>
+            user_id=#{userId}
+        </where>
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/wisenergy-mapper/src/main/resources/mapper/UsersMapper.xml b/wisenergy-mapper/src/main/resources/mapper/UsersMapper.xml
index 3165322dd52d24164f6956fb364bc6547fc6d8c9..9e12c20ca3746c2052fd8f6e5be6999c7492418c 100644
--- a/wisenergy-mapper/src/main/resources/mapper/UsersMapper.xml
+++ b/wisenergy-mapper/src/main/resources/mapper/UsersMapper.xml
@@ -268,5 +268,17 @@
         </if>
     </select>
 
+<!--    获取当前用户的所有直接推荐人-->
+    <select id="getByInviteCode" resultType="cn.wisenergy.model.app.User" parameterType="string">
+        select
+        <include refid="cols_all"/>
+        from
+        <include refid="table"/>
+        <where>
+            be_invited_code=#{inviteCode}
+        </where>
+        and user_level=#{userlevel}
+    </select>
+
 
 </mapper>
diff --git a/wisenergy-model/src/main/java/cn/wisenergy/model/app/RecommendUser.java b/wisenergy-model/src/main/java/cn/wisenergy/model/app/RecommendUser.java
index 50ba27b4d13b51392d456b107ae71bf397180441..8a5bd87ed102a581ec4d305ce8a20dedfb0e4a21 100644
--- a/wisenergy-model/src/main/java/cn/wisenergy/model/app/RecommendUser.java
+++ b/wisenergy-model/src/main/java/cn/wisenergy/model/app/RecommendUser.java
@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -91,4 +92,16 @@ public class RecommendUser implements Serializable {
      */
     @ApiModelProperty(name = "updateTime", value = "æ›´æ–°æ—¶é—´")
     private Date updateTime;
+
+    /**
+     * 用户当月消费金额
+     */
+    @ApiModelProperty(name = "monthyCount", value = "用户当月消费金额")
+    private BigDecimal monthyCount;
+
+    /**
+     * 用户当月消费金额
+     */
+    @ApiModelProperty(name = "history_count", value = "用户累计消费金额")
+    private BigDecimal historyCount;
 }
diff --git a/wisenergy-model/src/main/java/cn/wisenergy/model/vo/UserAndRecommendVo.java b/wisenergy-model/src/main/java/cn/wisenergy/model/vo/UserAndRecommendVo.java
new file mode 100644
index 0000000000000000000000000000000000000000..a9e43133182d05ccf13d03cdb23f432aefeda06c
--- /dev/null
+++ b/wisenergy-model/src/main/java/cn/wisenergy/model/vo/UserAndRecommendVo.java
@@ -0,0 +1,27 @@
+package cn.wisenergy.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel("UserAndRecommendVo")
+public class UserAndRecommendVo {
+
+    /**
+     * 用户id
+     */
+    private String userId;
+
+    /**
+     * 当月消费金额
+     */
+    private BigDecimal monthyCount;
+
+    /**
+     * 累计消费金额
+     */
+    private BigDecimal historyCount;
+
+}
diff --git a/wisenergy-service/src/main/java/cn/wisenergy/service/app/OrderService.java b/wisenergy-service/src/main/java/cn/wisenergy/service/app/OrderService.java
index c1d71a4c6901edcf23bd236ec885767061319617..6afe29e6ab27f476049897cbec43870542249e85 100644
--- a/wisenergy-service/src/main/java/cn/wisenergy/service/app/OrderService.java
+++ b/wisenergy-service/src/main/java/cn/wisenergy/service/app/OrderService.java
@@ -10,7 +10,16 @@ import com.youzan.cloud.open.sdk.gen.v4_0_0.model.YouzanTradesSoldGetResult;
  * @author 86187
  */
 public interface OrderService {
+
+    /**
+     * 根据有赞的订单创建时间获取订单数据
+     * @throws SDKException
+     */
     void getYouZanOrdersForCreateTime() throws SDKException;
 
+    /**
+     * 根据有赞的订单修改时间获取订单数据
+     * @throws SDKException
+     */
     void getYouZanOrdersForUpdateTime() throws SDKException;
 }
diff --git a/wisenergy-service/src/main/java/cn/wisenergy/service/app/RecommendUserService.java b/wisenergy-service/src/main/java/cn/wisenergy/service/app/RecommendUserService.java
new file mode 100644
index 0000000000000000000000000000000000000000..483577592550b7594bf05621cc294fa5ec814858
--- /dev/null
+++ b/wisenergy-service/src/main/java/cn/wisenergy/service/app/RecommendUserService.java
@@ -0,0 +1,15 @@
+package cn.wisenergy.service.app;
+
+import cn.wisenergy.common.utils.R;
+import cn.wisenergy.model.app.RecommendUser;
+import cn.wisenergy.model.app.User;
+import cn.wisenergy.model.vo.UserAndRecommendVo;
+
+import java.util.List;
+
+public interface RecommendUserService {
+
+    RecommendUser getMyRecommed(String userId);
+
+    List<UserAndRecommendVo> getMyRecommendInfo(String userId, Integer userLevel);
+}
diff --git a/wisenergy-service/src/main/java/cn/wisenergy/service/app/TeamUserInfoService.java b/wisenergy-service/src/main/java/cn/wisenergy/service/app/TeamUserInfoService.java
new file mode 100644
index 0000000000000000000000000000000000000000..0dab35b2f576d48484bfbbad1f21e98471fe1847
--- /dev/null
+++ b/wisenergy-service/src/main/java/cn/wisenergy/service/app/TeamUserInfoService.java
@@ -0,0 +1,14 @@
+package cn.wisenergy.service.app;
+
+import cn.wisenergy.model.app.TeamUserInfo;
+
+public interface TeamUserInfoService {
+
+    TeamUserInfo getOneById(String userId);
+    /**
+     * 获取团队总人数
+     * @param userId 用户Id
+     * @return 用户团队总人数
+     */
+    int getTeamUserCount(String userId);
+}
diff --git a/wisenergy-service/src/main/java/cn/wisenergy/service/app/UserForestStatusService.java b/wisenergy-service/src/main/java/cn/wisenergy/service/app/UserForestStatusService.java
new file mode 100644
index 0000000000000000000000000000000000000000..95869bcddd9eb1c29f4b374bef6610fcdd2b5795
--- /dev/null
+++ b/wisenergy-service/src/main/java/cn/wisenergy/service/app/UserForestStatusService.java
@@ -0,0 +1,12 @@
+package cn.wisenergy.service.app;
+
+import java.util.Map;
+
+public interface UserForestStatusService {
+    /**
+     * 用户森林状态
+     * @param userId
+     * @return
+     */
+    Map getUserForestStatus(String userId);
+}
diff --git a/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/OrderServiceImpl.java b/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/OrderServiceImpl.java
index e926df04314cdaffd5f8497a0eca55f478ed03d0..00f0f8bb1d980ff478cbf4be428fecc1ec90badf 100644
--- a/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/OrderServiceImpl.java
+++ b/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/OrderServiceImpl.java
@@ -143,9 +143,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, OrderInfo> implem
         try {
 //            startUpdateDate = sdf.parse("2021-02-28 11:04:01");
 //            endUpdateDate = sdf.parse("2021-03-2 16:39:59");
-            startCreatedDate = sdf.parse(sdf.format(new Date(date.getTime()-(long) 80*24*60*60*1000)));
+            startUpdateDate = sdf.parse(sdf.format(new Date(date.getTime()-(long) 80*24*60*60*1000)));
             log.info("订单修改开始时间"+sdf.format(startUpdateDate));
-            startUpdateDate = sdf.parse(sdf.format(date));
+            endUpdateDate = sdf.parse(sdf.format(date));
             log.info("订单修改结束时间"+sdf.format(endUpdateDate));
         } catch (ParseException e) {
             e.printStackTrace();
@@ -162,8 +162,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, OrderInfo> implem
             YouzanTradesSoldGetResult.YouzanTradesSoldGetResultOrderinfo youzanOrderInfo = youzanTradesSoldGetResultFullorderinfolist.getFullOrderInfo().getOrderInfo();
             YouzanTradesSoldGetResult.YouzanTradesSoldGetResultPayinfo payInfo = youzanTradesSoldGetResultFullorderinfolist.getFullOrderInfo().getPayInfo();
 
-            log.info(youzanTradesSoldGetResultFullorderinfolist.toString());
-
             //根据修改时间获取到的有赞订单数据的Tid
             String tid = youzanOrderInfo.getTid();
             OrderInfo orderByTid = orderMapper.getByTid(tid);
diff --git a/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/RecommendUserServiceImpl.java b/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/RecommendUserServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..fd66de591005f784e698b1fd0ad0b2233a5c6e8b
--- /dev/null
+++ b/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/RecommendUserServiceImpl.java
@@ -0,0 +1,57 @@
+package cn.wisenergy.service.app.impl;
+
+import cn.wisenergy.common.utils.R;
+import cn.wisenergy.mapper.RecommendUserMapper;
+import cn.wisenergy.mapper.UsersMapper;
+import cn.wisenergy.model.app.RecommendUser;
+import cn.wisenergy.model.app.User;
+import cn.wisenergy.model.vo.UserAndRecommendVo;
+import cn.wisenergy.service.app.RecommendUserService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+@Slf4j
+public class RecommendUserServiceImpl implements RecommendUserService {
+
+    @Autowired
+    RecommendUserMapper recommendUserMapper;
+
+    @Autowired
+    UsersMapper usersMapper;
+
+
+    /**
+     * 获取用户的直推信息表数据
+     * @param userId
+     * @return
+     */
+    @Override
+    public RecommendUser getMyRecommed(String userId) {
+        return recommendUserMapper.getByUserId(userId);
+    }
+
+    public List<UserAndRecommendVo> getMyRecommendInfo(String userId, Integer userLevel){
+
+        //当前用户的邀请码
+        String userIntiveCode = usersMapper.getByUserId(userId).getInviteCode();
+        //通过用户的邀请码获取各个等级的直推用户信息
+        List<User> byInviteCode = usersMapper.getByInviteCode(userIntiveCode,userLevel);
+        List<UserAndRecommendVo> userAndRecommendVos = new ArrayList<>();
+        for (User user : byInviteCode) {
+            UserAndRecommendVo userAndRecommendVo = new UserAndRecommendVo();
+            userAndRecommendVo.setUserId(user.getUserId());
+            userAndRecommendVo.setMonthyCount(recommendUserMapper.getByUserId(userId).getMonthyCount());
+            userAndRecommendVo.setHistoryCount(recommendUserMapper.getByUserId(userId).getHistoryCount());
+            userAndRecommendVos.add(userAndRecommendVo);
+        }
+
+        return userAndRecommendVos;
+    }
+}
diff --git a/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/TeamUserInfoServiceImpl.java b/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/TeamUserInfoServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..fbf5e13dba7ebb41396b687f30f49cfe8cd63b38
--- /dev/null
+++ b/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/TeamUserInfoServiceImpl.java
@@ -0,0 +1,39 @@
+package cn.wisenergy.service.app.impl;
+
+import cn.wisenergy.mapper.TeamUserInfoMapper;
+import cn.wisenergy.model.app.TeamUserInfo;
+import cn.wisenergy.service.app.TeamUserInfoService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+@Slf4j
+public class TeamUserInfoServiceImpl implements TeamUserInfoService {
+
+    @Autowired
+    TeamUserInfoMapper teamUserInfoMapper;
+
+    /**
+     * 根据用户id获取用户的团队信息
+     * @param userId
+     * @return
+     */
+    @Override
+    public TeamUserInfo getOneById(String userId) {
+        TeamUserInfo byUserId = teamUserInfoMapper.getByUserId(userId);
+        return byUserId;
+    }
+
+    /**
+     * 获取团队总人数
+     * @param userId 用户Id
+     * @return 用户团队总人数
+     */
+    @Override
+    public int getTeamUserCount(String userId){
+
+        int teamUserCount = teamUserInfoMapper.getTeamUserCount(userId);
+        return teamUserCount;
+    }
+}
diff --git a/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/UserForestStatusServiceImpl.java b/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/UserForestStatusServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..1b6c0a969e10bfee2aba34a9c743d39ea8c3eb44
--- /dev/null
+++ b/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/UserForestStatusServiceImpl.java
@@ -0,0 +1,168 @@
+package cn.wisenergy.service.app.impl;
+
+import cn.wisenergy.common.utils.DateUtil;
+import cn.wisenergy.mapper.*;
+import cn.wisenergy.model.app.RecommendUser;
+import cn.wisenergy.model.app.TeamPerformance;
+import cn.wisenergy.model.app.TeamUserInfo;
+import cn.wisenergy.service.app.UserForestStatusService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.xml.ws.soap.Addressing;
+import java.math.BigDecimal;
+import java.sql.Time;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 用户森林状态
+ * @author 86187
+ */
+@Service
+@Slf4j
+public class UserForestStatusServiceImpl implements UserForestStatusService {
+
+    @Autowired
+    UsersMapper usersMapper;
+
+    @Autowired
+    RecommendUserMapper recommendUserMapper;
+
+    @Autowired
+    TeamUserInfoMapper teamUserInfoMapper;
+
+    @Autowired
+    TeamPerformanceMapper teamPerformanceMapper;
+
+    @Autowired
+    OrderMapper orderMapper;
+    /**
+     * 根据用户id获取用户森林状态
+     * @param userId
+     * @return
+     */
+
+    //todo:团队当月新增业绩
+    @Override
+    public Map getUserForestStatus(String userId) {
+
+        //用户升级条件
+        BigDecimal levelTerm = new BigDecimal(3980);
+
+        HashMap<Object, Object> userForestStatusMap = new HashMap<>();
+
+        String date = DateUtil.convertDateToStr(new Date(), "yyyy-MM");
+        //1.获取当前用户的等级
+        Integer userLevel = usersMapper.getByUserId(userId).getUserLevel();
+        //2.获取当前用户的直推总人数
+        Integer recommendUserCountByUserId = recommendUserMapper.getRecommendUserCountByUserId(userId);
+        //3.获取当前用户的团队总人数
+        Integer teamUserCount = teamUserInfoMapper.getTeamUserCount(userId);
+        //4.团队累计总业绩
+        Double teamCountDouble = teamPerformanceMapper.countUserTeamByUserId(userId);
+        //5.团队当月新增业绩
+        Double teamNowCount = teamPerformanceMapper.monthUserTeamByuserId(userId,date);
+        //用户直推表信息
+        RecommendUser recommendUserMapperByUserId = recommendUserMapper.getByUserId(userId);
+        //用户团队表信息
+        TeamUserInfo teamUserInfobyUserId = teamUserInfoMapper.getByUserId(userId);
+        //距离下级直推用户还需增加的数量
+        int recommend =0;
+        //距离下级团队用户还需增加的数量
+        int team =0;
+        //6.距离下级升级条件
+        if(userLevel < 2){
+            //用户等级 < 幼苗 显示业绩缺少额度
+            //获取当前用户的业绩
+            BigDecimal performanceByUserid = orderMapper.getPerformanceByUserid(userId);
+            //距离升级还差多少额度
+            BigDecimal difference = levelTerm.subtract(performanceByUserid);
+            userForestStatusMap.put("difference",difference);
+        }else if (userLevel == 2){
+            //用户等级为青铜树
+            int levelTerm1 = 20;
+            Integer seedlingNum = recommendUserMapperByUserId.getSeedlingNum();
+            recommend =  levelTerm1 - seedlingNum;
+            userForestStatusMap.put("recommend",recommend);
+        }else if (userLevel == 3){
+            //用户等级为白银树
+            int goldLevelRecommend = 54;
+            int goldLevelteam = 20;
+            //直推用户之和
+            Integer countRecommend = recommendUserMapperByUserId.getSeedlingNum()+recommendUserMapperByUserId.getSilverTreeNum();
+            //所差直推用户的数量
+            recommend = goldLevelRecommend - countRecommend;
+            //所差团队用户的数量
+            team = goldLevelteam - teamUserInfobyUserId.getBronzeTreeNum();
+            userForestStatusMap.put("recommend",recommend);
+            userForestStatusMap.put("team",team);
+
+        }else if (userLevel == 4){
+            //用户等级为黄金树
+            int farmerLevelRecommend = 73;
+            int fammerLevelTeam = 40;
+            //用户直推之和
+            Integer countRecommend = recommendUserMapperByUserId.getSeedlingNum()+recommendUserMapperByUserId.getGoldTreeNum();
+            //用户团队之和
+            Integer countTeam = teamUserInfobyUserId.getSilverTreeNum();
+            //所差直推用户的数量
+            recommend = farmerLevelRecommend - countRecommend;
+            //所差团队用户的数量
+            team = fammerLevelTeam - teamUserInfobyUserId.getBronzeTreeNum();
+            userForestStatusMap.put("recommend",recommend);
+            userForestStatusMap.put("team",team);
+
+        }else if (userLevel == 5){
+            //用户等级为农场主
+            int farmerLevelRecommend = 73;
+            int fammerLevelTeam = 40;
+            //用户直推之和
+            Integer countRecommend = recommendUserMapperByUserId.getSeedlingNum()+recommendUserMapperByUserId.getGoldTreeNum();
+            //用户团队之和
+            Integer countTeam = teamUserInfobyUserId.getSilverTreeNum();
+            //所差直推用户的数量
+            recommend = farmerLevelRecommend - countRecommend;
+            //所差团队用户的数量
+            team = fammerLevelTeam - teamUserInfobyUserId.getBronzeTreeNum();
+            userForestStatusMap.put("recommend",recommend);
+            userForestStatusMap.put("team",team);
+        }else if (userLevel == 6){
+            //用户等级为森林之星
+            int forestStartNumLevelRecommend = 101;
+            int forestStartNumLevelTeam = 170;
+            //用户直推之和
+            Integer countRecommend = recommendUserMapperByUserId.getSeedlingNum()+recommendUserMapperByUserId.getForestStartNum();
+            //用户团队之和
+            Integer countTeam = teamUserInfobyUserId.getSilverTreeNum()+teamUserInfobyUserId.getGoldTreeNum()+teamUserInfobyUserId.getFarmerNum();
+            //所差直推用户的数量
+            recommend = forestStartNumLevelRecommend - countRecommend;
+            //所差团队用户的数量
+            team = forestStartNumLevelTeam - countTeam;
+            userForestStatusMap.put("recommend",recommend);
+            userForestStatusMap.put("team",team);
+        }
+
+        userForestStatusMap.put("userLevel",userLevel);
+        userForestStatusMap.put("recommendUserCount",recommendUserCountByUserId);
+        userForestStatusMap.put("teamUserCount",teamUserCount);
+        if (teamCountDouble == null ){
+            userForestStatusMap.put("teamCountDouble",0);
+        }else {
+            userForestStatusMap.put("teamCountDouble",teamCountDouble);
+        }
+
+        if (teamNowCount == null){
+            userForestStatusMap.put("teamNowCount",0);
+        }else {
+            userForestStatusMap.put("teamNowCount",teamNowCount);
+        }
+        return userForestStatusMap;
+    }
+
+
+
+//    public
+}
diff --git a/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/UserLevelServiceImlp.java b/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/UserLevelServiceImlp.java
index 4de6b6a4f4f9c47d83e625273f20385a52fd7159..5a38a5b909a5d6461e171ac0d027b459f4640831 100644
--- a/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/UserLevelServiceImlp.java
+++ b/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/UserLevelServiceImlp.java
@@ -56,6 +56,7 @@ public class UserLevelServiceImlp extends ServiceImpl<UsersMapper,User> implemen
 
         //用户等级升级为幼苗 1
         //若当前用户等级为0(普通用户)且跨境额度(业绩消费金额)>= 3980 进行升级0-->1
+        //todo:根据业绩去计算  查一次表获取业绩
         if (userLevel == 0 && crossBorderLine.intValue() >= 3980){
             user.setUserLevel(1);
             usersMapper.updateById(user);
@@ -435,6 +436,7 @@ public class UserLevelServiceImlp extends ServiceImpl<UsersMapper,User> implemen
             teamNumInfoBuyId.setNormalUserNum(teamNumInfoBuyId.getNormalUserNum()-1);
         }
         //邀请人的团队用户信息表中幼苗数量 + 1
+        //第一波用户是谁邀请的
         teamNumInfoBuyId.setSeedlingNum(teamNumInfoBuyId.getSeedlingNum() + 1);
         teamUserInfoMapper.updateById(teamNumInfoBuyId);
         if("1".equals(intiveUserByUserId.getBeInvitedCode())){
diff --git a/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/UserServiceImpl.java b/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/UserServiceImpl.java
index 762f3f45c6e39733450462ca2e20130cc216334a..5f5989660b7a7505931026e32943a75475161ebb 100644
--- a/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/UserServiceImpl.java
+++ b/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/UserServiceImpl.java
@@ -54,7 +54,7 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U
 
     @Override
     public User getByUserId(String userId) {
-        return null;
+        return usersMapper.getByUserId(userId);
     }
 
 
diff --git a/wisenergy-web-admin/src/main/java/cn/wisenergy/web/admin/controller/app/UserController.java b/wisenergy-web-admin/src/main/java/cn/wisenergy/web/admin/controller/app/UserController.java
index c241a37389833b7c07b167a7efa8f4adb629c038..e323d01f5270677e8aeb18596a4c4ccdc4628f62 100644
--- a/wisenergy-web-admin/src/main/java/cn/wisenergy/web/admin/controller/app/UserController.java
+++ b/wisenergy-web-admin/src/main/java/cn/wisenergy/web/admin/controller/app/UserController.java
@@ -3,21 +3,36 @@ package cn.wisenergy.web.admin.controller.app;
 import cn.wisenergy.common.constant.RedisConsts;
 import cn.wisenergy.common.utils.R;
 import cn.wisenergy.common.utils.RedisUtils;
+import cn.wisenergy.common.utils.StringUtil;
+import cn.wisenergy.mapper.RecommendUserMapper;
+import cn.wisenergy.mapper.TeamUserInfoMapper;
+import cn.wisenergy.model.app.RecommendUser;
+import cn.wisenergy.model.app.TeamUserInfo;
 import cn.wisenergy.model.app.User;
+import cn.wisenergy.model.app.UsersDto;
+import cn.wisenergy.model.vo.UserAndRecommendVo;
+import cn.wisenergy.service.app.RecommendUserService;
+import cn.wisenergy.service.app.TeamUserInfoService;
+import cn.wisenergy.service.app.UserForestStatusService;
 import cn.wisenergy.service.app.UserService;
 import cn.wisenergy.web.common.BaseController;
 import cn.wisenergy.web.config.JwtConfig;
 import cn.wisenergy.web.shiro.JwtUtil;
+import cn.wisenergy.web.sms.*;
+import com.alibaba.druid.sql.ast.statement.SQLIfStatement;
+import com.alibaba.fastjson.JSONObject;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import java.time.Month;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 
 /**
@@ -32,6 +47,15 @@ public class UserController extends BaseController {
     @Autowired
     private UserService userService;
 
+    @Autowired
+    private UserForestStatusService userForestStatusService;
+
+    @Autowired
+    RecommendUserService recommendUserService;
+
+    @Autowired
+    TeamUserInfoService teamUserInfoService;
+
     @Autowired
     private JwtUtil jwtUtil;
 
@@ -73,4 +97,45 @@ public class UserController extends BaseController {
         return R.ok(token);
     }
 
+    @ApiOperation(value = "获取用户森林状态接口", notes = "获取用户森林状态接口", httpMethod = "GET")
+    @GetMapping("/forestStatus")
+    public R<Map> forestStatus(String userId){
+        if (null == userId){
+            return R.error("入参为空");
+        }
+
+        try {
+            Map userForestStatus = userForestStatusService.getUserForestStatus(userId);
+            return R.ok(userForestStatus);
+        } catch (Exception e) {
+            return R.error(1,"请重新尝试");
+        }
+    }
+
+    @ApiOperation(value = "获取用户我的直推信息", notes = "获取用户我的直推信息", httpMethod = "GET")
+    @GetMapping("/myRecommend")
+    public R<Map> getMyRecommend(String userId){
+        int userLevel = userService.getByUserId(userId).getUserLevel();
+        RecommendUser myRecommed = recommendUserService.getMyRecommed(userId);
+        Map myRecommedMap = new HashMap();
+        myRecommedMap.put("userlevel",userLevel);
+        myRecommedMap.put("myRecommed",myRecommed);
+        return R.ok(myRecommedMap);
+    }
+
+    @ApiOperation(value = "获取用户我的团队信息", notes = "获取用户我的团队推信息", httpMethod = "GET")
+    @GetMapping("/myTeam")
+    public R<TeamUserInfo> getMyTeam(String userId){
+        TeamUserInfo myTeam = teamUserInfoService.getOneById(userId);
+        return R.ok(myTeam);
+    }
+
+    @ApiOperation(value = "获取用户我的直推信息详情", notes = "获取用户我的直推信息详情", httpMethod = "GET")
+    @GetMapping("/myRecommendInfo")
+    public R<List<UserAndRecommendVo>> getMyRecommendInfo(@RequestParam("userid") String userid, @RequestParam("userlevel") int userlevel){
+        List<UserAndRecommendVo> myRecommendInfo = recommendUserService.getMyRecommendInfo(userid, userlevel);
+        return R.ok(myRecommendInfo);
+    }
+
+
 }