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 d4244070f9217348d2ccd0fdd5e3ff1246382bac..e727aae35f1fb70ff277d18d6b1f43076d6ab0b3 100644 --- a/wisenergy-mapper/src/main/java/cn/wisenergy/mapper/TeamPerformanceMapper.java +++ b/wisenergy-mapper/src/main/java/cn/wisenergy/mapper/TeamPerformanceMapper.java @@ -1,6 +1,7 @@ package cn.wisenergy.mapper; import cn.wisenergy.model.app.TeamPerformance; +import cn.wisenergy.model.app.User; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; @@ -100,4 +101,10 @@ public interface TeamPerformanceMapper extends BaseMapper<TeamPerformance> { */ List<TeamPerformance> getList(Map<String, Object> map); + /** + * + * @param userId + * @return + */ + TeamPerformance getByUserId(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 33c5c63e5408608b182dde1362326919069a2755..e3c52e05171717083f629a97c879b4ca3cde6a88 100644 --- a/wisenergy-mapper/src/main/java/cn/wisenergy/mapper/UsersMapper.java +++ b/wisenergy-mapper/src/main/java/cn/wisenergy/mapper/UsersMapper.java @@ -228,4 +228,12 @@ public interface UsersMapper extends BaseMapper<User> { * @return */ User getUserByInviteCode(String inviteCode); + + /** + * æ ¹æ®ç”¨æˆ·çš„userid查询用户对象 + * @param userId + * @return + */ + User getUserByUserId(String userId); + } diff --git a/wisenergy-mapper/src/main/resources/mapper/TeamPerformanceMapper.xml b/wisenergy-mapper/src/main/resources/mapper/TeamPerformanceMapper.xml index c7c863ce34751fccea1ace7c1f71e9cb60c5995d..a858c98ae8af209443e9edfcd31baf258ef7de19 100644 --- a/wisenergy-mapper/src/main/resources/mapper/TeamPerformanceMapper.xml +++ b/wisenergy-mapper/src/main/resources/mapper/TeamPerformanceMapper.xml @@ -204,4 +204,13 @@ order by create_time desc limit #{startNum},#{endNum} </select> + + <select id="getByUserId" resultType="cn.wisenergy.model.app.TeamPerformance"> + select + <include refid="cols_all"/> + from + <include refid="table"/> + where + user_id = #{userId} + </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 a66548425a2750436b6e7235eceeb83728cae4cb..13849116df6cd34f9b70e18668b2bedaa03380b3 100644 --- a/wisenergy-mapper/src/main/resources/mapper/UsersMapper.xml +++ b/wisenergy-mapper/src/main/resources/mapper/UsersMapper.xml @@ -429,4 +429,13 @@ invite_code = #{inviteCode} </select> + <select id="getUserByUserId" resultType="cn.wisenergy.model.app.User"> + select + <include refid="cols_all"/> + from + <include refid="table"/> + where + user_id = #{userId} + </select> + </mapper> diff --git a/wisenergy-service/src/main/java/cn/wisenergy/service/app/AerialDeliveryUserService.java b/wisenergy-service/src/main/java/cn/wisenergy/service/app/AerialDeliveryUserService.java index f686220146fa63e0927c4afd21890f2fe1fcb75c..a9224c3928b0ed7850c0231715ac885420d0ba8a 100644 --- a/wisenergy-service/src/main/java/cn/wisenergy/service/app/AerialDeliveryUserService.java +++ b/wisenergy-service/src/main/java/cn/wisenergy/service/app/AerialDeliveryUserService.java @@ -1,6 +1,10 @@ package cn.wisenergy.service.app; +import cn.wisenergy.model.app.User; + +import java.util.Map; + /** * @author 86187 */ @@ -11,9 +15,40 @@ public interface AerialDeliveryUserService { void aerialDeliveryUserRand(); /** - * è®¾ç½®é‚€è¯·ç æŽ¥å£ + * è®¾ç½®é‚€è¯·ç æŽ¥å£ ç»´æŠ¤ç›´æŽ¨å’Œå›¢é˜Ÿæ•°æ® * @param userId 当å‰ç”¨æˆ·id * @param userInvitedId 推è人用户id */ void userSetBeinviteCode(String userId, String userInvitedId); + + /** + * 团队整体数æ®çš„计算 + * @param beInvitedUserId 推è人的用户id + * @param userId 当å‰ç”¨æˆ·çš„id + * @return map 团队ä¸å„ç‰çº§çš„ç”¨æˆ·æ•°é‡ + */ + Map teamUserInfoByAerialDelivery(String beInvitedUserId, String userId); + + + /** + * 整体团队数æ®ç»´æŠ¤ + * @param teamDataMap teamUserInfoByAerialDelivery 返回的map + * @param userId 当å‰ç”¨æˆ·çš„userid + */ + void teamData(Map<String, Integer> teamDataMap, String userId); + + /** + * 查询当å‰ç”¨æˆ·æ‰€åœ¨å›¢é˜Ÿçš„æœ€ä¸Šçº§ç”¨æˆ· + * @param userId 当å‰ç”¨æˆ·çš„userID + * @return user 当å‰ç”¨æˆ·æ‰€åœ¨çš„æœ€ä¸Šçº§ç”¨æˆ· + */ + User highUser(String userId); + + + /** + * 团队数æ®ç»´æŠ¤ åªç»´æŠ¤å›¢é˜Ÿæ•°æ® ä¸åŒ…å«ç›´æŽ¨æ•°æ®çš„维护 + * @param userId 当期用户的userId + * @param userInvitedId 推è人的userId + */ + void teamDataNotRecommend(String userId, String userInvitedId); } diff --git a/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/UserLevelServiceImpl.java b/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/UserLevelServiceImpl.java index 9db8115af1113cb4fe24cca16e78777cef11cdc8..3b2caba669313d4d2c0adcef5c8cbf0963c126d3 100644 --- a/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/UserLevelServiceImpl.java +++ b/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/UserLevelServiceImpl.java @@ -3,6 +3,7 @@ package cn.wisenergy.service.app.impl; import cn.wisenergy.mapper.*; import cn.wisenergy.model.app.*; import cn.wisenergy.model.enums.TradeRecordEnum; +import cn.wisenergy.service.app.AerialDeliveryUserService; import cn.wisenergy.service.app.UserLevelService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xxl.job.core.handler.annotation.XxlJob; @@ -39,12 +40,18 @@ public class UserLevelServiceImpl extends ServiceImpl<UsersMapper, User> impleme @Autowired private AccountMapper accountMapper; + @Autowired + private TeamPerformanceMapper teamPerformanceMapper; + @Autowired private CultivatingPrizeMapper cultivatingPrizeMapper; @Autowired private CultivatingPrizeInfoMapper cultivatingPrizeInfoMapper; + @Autowired + private AerialDeliveryUserService aerialDeliveryUserService; + @Autowired private OrderMapper orderMapper; @@ -78,20 +85,24 @@ public class UserLevelServiceImpl extends ServiceImpl<UsersMapper, User> impleme RecommendUser recommendUser = recommendUserMapper.getByUserId(userId); //当å‰ç”¨æˆ·å›¢é˜Ÿä¿¡æ¯è¡¨å¯¹è±¡ TeamUserInfo teamUserInfoMapperByUserId = teamUserInfoMapper.getByUserId(userId); - //计算当å‰ç”¨æˆ·ä¸šç»© - BigDecimal performanceByUserid = orderMapper.getPerformanceByUserid(userId); - if (null == performanceByUserid) { - performanceByUserid = new BigDecimal(0); - } //当å‰ç”¨æˆ·ç‰çº§ Integer userLevel = user.getUserLevel(); - //当å‰ç”¨æˆ·çš„邀请ç + //当å‰ç”¨æˆ·çš„累计消费 + BigDecimal performanceByUserid = new BigDecimal(0); + if (userLevel == 0){ + //计算当å‰ç”¨æˆ·ä¸šç»© + performanceByUserid = orderMapper.getPerformanceByUserid(userId); + if (null == performanceByUserid) { + performanceByUserid = new BigDecimal(0); + } + } + //当å‰ç”¨æˆ·çš„æŽ¨è人邀请ç String beInvitedCode = user.getBeInvitedCode(); // String inviteUserId = ""; RecommendUser inviteRecommendUser = new RecommendUser(); //若当å‰ç”¨æˆ·çš„æŽ¨èäººé‚€è¯·ç æ˜¯ “1†时 则当å‰ç”¨æˆ·æ²¡æœ‰é‚€è¯·äºº - if (!sysInviteCode1.equals(beInvitedCode) || !sysInviteCode2.equals(beInvitedCode)) { + if (!sysInviteCode1.equals(beInvitedCode) && !sysInviteCode2.equals(beInvitedCode)) { //通过当å‰ç”¨æˆ·æŽ¨è人邀请ç 获å–邀请人的userId User byBeInvitedCode = usersMapper.getByBeInvitedCode(beInvitedCode); if (null != byBeInvitedCode) { @@ -106,8 +117,10 @@ public class UserLevelServiceImpl extends ServiceImpl<UsersMapper, User> impleme if (userLevel == 0 && performanceByUserid.intValue() >= 3980) { user.setUserLevel(1); usersMapper.updateById(user); + //åŒæ¥accountInfo å’ŒTeamPerformance 的用户ç‰çº§ + accountAndTeamPerformanceUserLevelUpdate(userId); //用户推è人邀请ç 为 1 æ—¶ 该用户没有邀请人 - if (!sysInviteCode1.equals(beInvitedCode) || !sysInviteCode2.equals(beInvitedCode)) { + if (sysInviteCode1.equals(beInvitedCode) || sysInviteCode2.equals(beInvitedCode)) { return; } else { //推è人直推信æ¯è¡¨æ•°æ®ç»´æŠ¤ @@ -122,7 +135,8 @@ public class UserLevelServiceImpl extends ServiceImpl<UsersMapper, User> impleme inviteRecommendUser.setSeedlingNum(inviteRecommendUser.getSeedlingNum() + 1); recommendUserMapper.updateById(inviteRecommendUser); //团队用户表数æ®ç»´æŠ¤ - teamUserInfoNormalToSeed(inviteUserId); +// teamUserInfoNormalToSeed(inviteUserId); + aerialDeliveryUserService.teamDataNotRecommend(userId,inviteUserId); //上级用户获得幼苗ç‰çº§çš„培育奖 int level = 1; cultivatingPrizeToInvitedUser(userId, inviteUserId, level); @@ -138,8 +152,10 @@ public class UserLevelServiceImpl extends ServiceImpl<UsersMapper, User> impleme //用户å‡çº§æˆåŠŸ user.setUserLevel(2); usersMapper.updateById(user); + //åŒæ¥accountInfo å’ŒTeamPerformance 的用户ç‰çº§ + accountAndTeamPerformanceUserLevelUpdate(userId); //用户被邀请ç 为 1 æ—¶ 该用户没有邀请人 - if (!sysInviteCode1.equals(beInvitedCode) || !sysInviteCode2.equals(beInvitedCode)) { + if (sysInviteCode1.equals(beInvitedCode) || sysInviteCode2.equals(beInvitedCode)) { return; } else { //若邀请人直推用户信æ¯ä¸çš„幼苗用户数é‡ä¸º0是则ä¸ç”¨å˜åŒ–,å¦åˆ™å¹¼è‹—用户数é‡-1 @@ -153,7 +169,8 @@ public class UserLevelServiceImpl extends ServiceImpl<UsersMapper, User> impleme inviteRecommendUser.setBronzeTreeNum(inviteRecommendUser.getBronzeTreeNum() + 1); recommendUserMapper.updateById(inviteRecommendUser); //团队用户表数æ®ç»´æŠ¤ - teamUserInfoSeedToBronze(inviteUserId); +// teamUserInfoSeedToBronze(inviteUserId); + aerialDeliveryUserService.teamDataNotRecommend(userId,inviteUserId); //上级用户获得幼苗ç‰çº§çš„培育奖 int level = 2; cultivatingPrizeToInvitedUser(userId, inviteUserId, level); @@ -166,8 +183,10 @@ public class UserLevelServiceImpl extends ServiceImpl<UsersMapper, User> impleme && recommendUser.getSeedlingNum() < 20) { user.setUserLevel(3); usersMapper.updateById(user); + //åŒæ¥accountInfo å’ŒTeamPerformance 的用户ç‰çº§ + accountAndTeamPerformanceUserLevelUpdate(userId); //用户被邀请ç 为 1 æ—¶ 该用户没有邀请人 - if (!sysInviteCode1.equals(beInvitedCode) || !sysInviteCode2.equals(beInvitedCode)) { + if (sysInviteCode1.equals(beInvitedCode) || sysInviteCode2.equals(beInvitedCode)) { return; } else { //推è人直推信æ¯è¡¨æ•°æ®ç»´æŠ¤ @@ -182,7 +201,8 @@ public class UserLevelServiceImpl extends ServiceImpl<UsersMapper, User> impleme inviteRecommendUser.setSilverTreeNum(inviteRecommendUser.getSilverTreeNum() + 1); recommendUserMapper.updateById(inviteRecommendUser); //团队用户表数æ®ç»´æŠ¤ - teamUserInfoBronzeToSilver(inviteUserId); +// teamUserInfoBronzeToSilver(inviteUserId); + aerialDeliveryUserService.teamDataNotRecommend(userId,inviteUserId); //上级用户获得幼苗ç‰çº§çš„培育奖 int level = 3; cultivatingPrizeToInvitedUser(userId, inviteUserId, level); @@ -199,8 +219,10 @@ public class UserLevelServiceImpl extends ServiceImpl<UsersMapper, User> impleme && teamUserInfoMapperByUserId.getBronzeTreeNum() >= 20) { user.setUserLevel(4); usersMapper.updateById(user); + //åŒæ¥accountInfo å’ŒTeamPerformance 的用户ç‰çº§ + accountAndTeamPerformanceUserLevelUpdate(userId); //用户被邀请ç 为 1 æ—¶ 该用户没有邀请人 - if (!sysInviteCode1.equals(beInvitedCode) || !sysInviteCode2.equals(beInvitedCode)) { + if (sysInviteCode1.equals(beInvitedCode) || sysInviteCode2.equals(beInvitedCode)) { return; } else { //推è人直推信æ¯è¡¨æ•°æ®ç»´æŠ¤ @@ -215,7 +237,8 @@ public class UserLevelServiceImpl extends ServiceImpl<UsersMapper, User> impleme inviteRecommendUser.setGoldTreeNum(inviteRecommendUser.getGoldTreeNum() + 1); recommendUserMapper.updateById(inviteRecommendUser); //团队用户表数æ®ç»´æŠ¤ - teamUserInfoSilverToGoldTree(inviteUserId); +// teamUserInfoSilverToGoldTree(inviteUserId); + aerialDeliveryUserService.teamDataNotRecommend(userId,inviteUserId); //上级用户获得幼苗ç‰çº§çš„培育奖 int level = 4; cultivatingPrizeToInvitedUser(userId, inviteUserId, level); @@ -231,8 +254,10 @@ public class UserLevelServiceImpl extends ServiceImpl<UsersMapper, User> impleme && teamUserInfoMapperByUserId.getSilverTreeNum() >= 40) { user.setUserLevel(5); usersMapper.updateById(user); + //åŒæ¥accountInfo å’ŒTeamPerformance 的用户ç‰çº§ + accountAndTeamPerformanceUserLevelUpdate(userId); //用户被邀请ç 为 1 æ—¶ 该用户没有邀请人 - if (!sysInviteCode1.equals(beInvitedCode) || !sysInviteCode2.equals(beInvitedCode)) { + if (sysInviteCode1.equals(beInvitedCode) || sysInviteCode2.equals(beInvitedCode)) { return; } else { //推è人直推信æ¯è¡¨æ•°æ®ç»´æŠ¤ @@ -247,7 +272,8 @@ public class UserLevelServiceImpl extends ServiceImpl<UsersMapper, User> impleme inviteRecommendUser.setGoldTreeNum(inviteRecommendUser.getFarmerNum() + 1); recommendUserMapper.updateById(inviteRecommendUser); //团队用户表数æ®ç»´æŠ¤ - teamUserInfoGoldTreeToFarmer(inviteUserId); +// teamUserInfoGoldTreeToFarmer(inviteUserId); + aerialDeliveryUserService.teamDataNotRecommend(userId,inviteUserId); //上级用户获得幼苗ç‰çº§çš„培育奖 int level = 5; cultivatingPrizeToInvitedUser(userId, inviteUserId, level); @@ -264,8 +290,10 @@ public class UserLevelServiceImpl extends ServiceImpl<UsersMapper, User> impleme && teamUserInfoMapperByUserId.getGoldTreeNum() >= 30) { user.setUserLevel(6); usersMapper.updateById(user); + //åŒæ¥accountInfo å’ŒTeamPerformance 的用户ç‰çº§ + accountAndTeamPerformanceUserLevelUpdate(userId); //用户被邀请ç 为 1 æ—¶ 该用户没有邀请人 - if (!sysInviteCode1.equals(beInvitedCode) || !sysInviteCode2.equals(beInvitedCode)) { + if (sysInviteCode1.equals(beInvitedCode) || sysInviteCode2.equals(beInvitedCode)) { return; } else { //推è人直推信æ¯è¡¨æ•°æ®ç»´æŠ¤ @@ -280,7 +308,8 @@ public class UserLevelServiceImpl extends ServiceImpl<UsersMapper, User> impleme inviteRecommendUser.setForestStartNum(inviteRecommendUser.getForestStartNum() + 1); recommendUserMapper.updateById(inviteRecommendUser); //团队用户表数æ®ç»´æŠ¤ - teamUserInfoFarmerToForestStart(inviteUserId); +// teamUserInfoFarmerToForestStart(inviteUserId); + aerialDeliveryUserService.teamDataNotRecommend(userId,inviteUserId); //上级用户获得幼苗ç‰çº§çš„培育奖 int level = 6; cultivatingPrizeToInvitedUser(userId, inviteUserId, level); @@ -298,8 +327,10 @@ public class UserLevelServiceImpl extends ServiceImpl<UsersMapper, User> impleme && teamUserInfoMapperByUserId.getFarmerNum() >= 30) { user.setUserLevel(7); usersMapper.updateById(user); + //åŒæ¥accountInfo å’ŒTeamPerformance 的用户ç‰çº§ + accountAndTeamPerformanceUserLevelUpdate(userId); //用户被邀请ç 为 1 æ—¶ 该用户没有邀请人 - if (!sysInviteCode1.equals(beInvitedCode) || !sysInviteCode2.equals(beInvitedCode)) { + if (sysInviteCode1.equals(beInvitedCode) || sysInviteCode2.equals(beInvitedCode)) { return; } else { //推è人直推信æ¯è¡¨æ•°æ®ç»´æŠ¤ @@ -314,7 +345,8 @@ public class UserLevelServiceImpl extends ServiceImpl<UsersMapper, User> impleme inviteRecommendUser.setPartnerNum(inviteRecommendUser.getPartnerNum() + 1); recommendUserMapper.updateById(inviteRecommendUser); //团队用户表数æ®ç»´æŠ¤ - teamUserInfoForestStartToPartner(inviteUserId); +// teamUserInfoForestStartToPartner(inviteUserId); + aerialDeliveryUserService.teamDataNotRecommend(userId,inviteUserId); //上级用户获得幼苗ç‰çº§çš„培育奖 int level = 7; cultivatingPrizeToInvitedUser(userId, inviteUserId, level); @@ -808,5 +840,22 @@ public class UserLevelServiceImpl extends ServiceImpl<UsersMapper, User> impleme } } } + + //åŒæ¥accountInfo å’ŒTeamPerformance 的用户ç‰çº§ + public void accountAndTeamPerformanceUserLevelUpdate(String userId){ + + User userByUserId = usersMapper.getUserByUserId(userId); + + if (null != userByUserId){ + int userLevel = userByUserId.getUserLevel(); + AccountInfo accountInfoByUserId = accountMapper.getByUserId(userId); + accountInfoByUserId.setUserLevel(userLevel); + TeamPerformance teamPerformanceByUserId = teamPerformanceMapper.getByUserId(userId); + teamPerformanceByUserId.setUserLevel(userLevel); + + accountMapper.edit(accountInfoByUserId); + teamPerformanceMapper.edit(teamPerformanceByUserId); + } + } }