|
|
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.kxs.common.security.util.SecurityUtils;
|
|
|
+import com.kxs.user.api.dto.kxsapp.IntegralStatDTO;
|
|
|
import com.kxs.user.api.model.KxsUser;
|
|
|
import com.kxs.user.api.model.KxsUserRealLevel;
|
|
|
import com.kxs.user.api.vo.kxsapp.shareholder.ShareholderGetMyStandardsAllVO;
|
|
|
@@ -34,18 +35,20 @@ public class KxsShdScoreServiceImpl extends ServiceImpl<KxsShdScoreMapper, KxsSh
|
|
|
private final KxsShdScoreMapper kxsShdScoreMapper;
|
|
|
private final KxsUserMapper kxsUserMapper;
|
|
|
private final KxsUserRealLevelMapper kxsUserRealLevelMapper;
|
|
|
+
|
|
|
@Override
|
|
|
public Object getMyStandards(String month) {
|
|
|
+ month = month.split("-")[0] + month.split("-")[1];
|
|
|
Long id = SecurityUtils.getUser().getId();
|
|
|
KxsUser kxsUser = kxsUserMapper.selectById(id);
|
|
|
//获取个人积分
|
|
|
- ShareholderGetMyStandardsVO shareholderGetMyStandardsVO = kxsShdScoreMapper.getMyStandards(month,kxsUser.getUserCode());
|
|
|
- if (shareholderGetMyStandardsVO == null){
|
|
|
+ ShareholderGetMyStandardsVO shareholderGetMyStandardsVO = kxsShdScoreMapper.getMyStandards(month, kxsUser.getUserCode());
|
|
|
+ if (shareholderGetMyStandardsVO == null) {
|
|
|
shareholderGetMyStandardsVO = new ShareholderGetMyStandardsVO();
|
|
|
}
|
|
|
//获取全国积分
|
|
|
ShareholderGetMyStandardsAllVO allVO = kxsShdScoreMapper.getMyStandardsAll(month);
|
|
|
- if (allVO != null){
|
|
|
+ if (allVO != null) {
|
|
|
shareholderGetMyStandardsVO.setCenterScoreAll(allVO.getCenterScoreAll());
|
|
|
shareholderGetMyStandardsVO.setFirstScoreAll(allVO.getFirstScoreAll());
|
|
|
shareholderGetMyStandardsVO.setHighScoreAll(allVO.getHighScoreAll());
|
|
|
@@ -55,12 +58,13 @@ public class KxsShdScoreServiceImpl extends ServiceImpl<KxsShdScoreMapper, KxsSh
|
|
|
|
|
|
@Override
|
|
|
public Object getShareholderUserList(Page<KxsShdScore> page, String month, Integer type) {
|
|
|
+ month = month.split("-")[0] + month.split("-")[1];
|
|
|
Page<UserScoreListVO> shareholderHighScoreUserList = kxsShdScoreMapper.getShareholderHighScoreUserList(page, month, type);
|
|
|
for (UserScoreListVO record : shareholderHighScoreUserList.getRecords()) {
|
|
|
String userCode = record.getUserCode();
|
|
|
//获取用户头像
|
|
|
KxsUser kxsUser = kxsUserMapper.selectOne(Wrappers.<KxsUser>query().lambda().eq(KxsUser::getUserCode, userCode));
|
|
|
- if (kxsUser != null){
|
|
|
+ if (kxsUser != null) {
|
|
|
record.setAvatar(kxsUser.getAvatar());
|
|
|
}
|
|
|
}
|
|
|
@@ -68,80 +72,116 @@ public class KxsShdScoreServiceImpl extends ServiceImpl<KxsShdScoreMapper, KxsSh
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void integralStat() {
|
|
|
- //初级积分
|
|
|
- //获取职级 > K3 的全部用户
|
|
|
- List<KxsUserRealLevel> kxsUserRealLevels = kxsUserRealLevelMapper.selectList(Wrappers.<KxsUserRealLevel>query().lambda().gt(KxsUserRealLevel::getLevel, 3));
|
|
|
- //构造月份
|
|
|
+ public void integralStat(List<IntegralStatDTO> integralStatDTOS) {
|
|
|
LocalDateTime now = LocalDateTime.now();
|
|
|
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMM");
|
|
|
String month = now.format(formatter);
|
|
|
- for (KxsUserRealLevel kxsUserRealLevel : kxsUserRealLevels) {
|
|
|
- //查询全部直属用户
|
|
|
- List<KxsUserRealLevel> kxsUserRealLevelList = kxsUserRealLevelMapper.selectList(Wrappers.<KxsUserRealLevel>query().lambda().eq(KxsUserRealLevel::getPid, kxsUserRealLevel.getUserId()));
|
|
|
- //当直属用户大于3时才进行积分计算
|
|
|
- if (kxsUserRealLevelList.size() > 3){
|
|
|
- //初级积分基数
|
|
|
- int firstScoreCardinal = 0;
|
|
|
- //中级积分基数
|
|
|
- int centerScoreCardinal = 0;
|
|
|
- //高级积分基数
|
|
|
- int highScoreCardinal = 0;
|
|
|
- for (KxsUserRealLevel kxsUserRealLevelSon : kxsUserRealLevelList) {
|
|
|
- int level = Integer.parseInt(kxsUserRealLevelSon.getLevel());
|
|
|
- //校验用户职级
|
|
|
- if (level > 2){
|
|
|
- ++firstScoreCardinal;
|
|
|
- }
|
|
|
- if(level > 3){
|
|
|
- ++centerScoreCardinal;
|
|
|
- }
|
|
|
- if(level > 4){
|
|
|
- ++highScoreCardinal;
|
|
|
+ for (IntegralStatDTO integralStatDTO : integralStatDTOS) {
|
|
|
+ //当交易额大于300W则进入下一步
|
|
|
+ if (integralStatDTO.getTotalAmount().compareTo(new BigDecimal(3000000)) >= 0){
|
|
|
+ //获取上级用户
|
|
|
+ KxsUser kxsUser = kxsUserMapper.getParenUser(integralStatDTO.getUserId());
|
|
|
+ if (kxsUser != null){
|
|
|
+ //查询记录
|
|
|
+ KxsShdScore kxsShdScore = kxsShdScoreMapper.selectOne(Wrappers.<KxsShdScore>query().lambda().eq(KxsShdScore::getUserId, kxsUser.getId()).eq(KxsShdScore::getMonth, month));
|
|
|
+ if (kxsShdScore == null){
|
|
|
+ //记录不存在则构造数据
|
|
|
+ kxsShdScore = new KxsShdScore();
|
|
|
+ kxsShdScore.setCreateTime(now);
|
|
|
+ kxsShdScore.setDelFlag("0");
|
|
|
+ kxsShdScore.setUserId(Long.valueOf(kxsUser.getId()));
|
|
|
+ if (integralStatDTO.getTotalAmount().compareTo(new BigDecimal(3000000)) >= 0){
|
|
|
+ kxsShdScore.setFirstScore(1);
|
|
|
+ }
|
|
|
+ if (integralStatDTO.getTotalAmount().compareTo(new BigDecimal(8000000)) >= 0){
|
|
|
+ kxsShdScore.setCenterScore(1);
|
|
|
+ }else {
|
|
|
+ kxsShdScore.setCenterScore(0);
|
|
|
+ }
|
|
|
+ if (integralStatDTO.getTotalAmount().compareTo(new BigDecimal(15000000)) >= 0){
|
|
|
+ kxsShdScore.setHighScore(1);
|
|
|
+ }else {
|
|
|
+ kxsShdScore.setHighScore(0);
|
|
|
+ }
|
|
|
+
|
|
|
+ kxsShdScore.setMonth(month);
|
|
|
+ kxsShdScoreMapper.insert(kxsShdScore);
|
|
|
+ }else {
|
|
|
+ //存在数据则根据条件增加
|
|
|
+ if (integralStatDTO.getTotalAmount().compareTo(new BigDecimal(3000000)) >= 0){
|
|
|
+ kxsShdScore.setFirstScore(kxsShdScore.getFirstScore() + 1);
|
|
|
+ }
|
|
|
+ if (integralStatDTO.getTotalAmount().compareTo(new BigDecimal(8000000)) >= 0){
|
|
|
+ kxsShdScore.setCenterScore(kxsShdScore.getCenterScore() + 1);
|
|
|
+ }
|
|
|
+ if (integralStatDTO.getTotalAmount().compareTo(new BigDecimal(15000000)) >= 0){
|
|
|
+ kxsShdScore.setHighScore(kxsShdScore.getHighScore() + 1);
|
|
|
+ }
|
|
|
+ kxsShdScore.setUpdateTime(now);
|
|
|
+ kxsShdScoreMapper.updateById(kxsShdScore);
|
|
|
}
|
|
|
}
|
|
|
- //用户实际获得积分
|
|
|
- int firstScore = firstScoreCardinal / 3;
|
|
|
- int centerScore = centerScoreCardinal / 3;
|
|
|
- int highScore = highScoreCardinal / 3;
|
|
|
- KxsShdScore kxsShdScore = kxsShdScoreMapper.selectOne(Wrappers.<KxsShdScore>query().lambda().eq(KxsShdScore::getUserId, kxsUserRealLevel.getUserId()).eq(KxsShdScore::getMonth,month));
|
|
|
- if (kxsShdScore == null){
|
|
|
- kxsShdScore = new KxsShdScore();
|
|
|
- kxsShdScore.setCreateTime(now);
|
|
|
- kxsShdScore.setDelFlag("0");
|
|
|
- kxsShdScore.setUserId(kxsUserRealLevel.getUserId());
|
|
|
- kxsShdScore.setFirstScore(firstScore);
|
|
|
- kxsShdScore.setCenterScore(centerScore);
|
|
|
- kxsShdScore.setHighScore(highScore);
|
|
|
- kxsShdScore.setMonth(month);
|
|
|
- kxsShdScoreMapper.insert(kxsShdScore);
|
|
|
- }else {
|
|
|
- //存在记录只需修改积分
|
|
|
- kxsShdScore.setFirstScore(firstScore);
|
|
|
- kxsShdScore.setCenterScore(centerScore);
|
|
|
- kxsShdScore.setHighScore(highScore);
|
|
|
- kxsShdScore.setUpdateTime(now);
|
|
|
- kxsShdScoreMapper.updateById(kxsShdScore);
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
+// //初级积分
|
|
|
+// //获取职级 > K3 的全部用户
|
|
|
+// List<KxsUserRealLevel> kxsUserRealLevels = kxsUserRealLevelMapper.selectList(Wrappers.<KxsUserRealLevel>query().lambda().gt(KxsUserRealLevel::getLevel, 3));
|
|
|
+// //构造月份
|
|
|
+//
|
|
|
+// for (KxsUserRealLevel kxsUserRealLevel : kxsUserRealLevels) {
|
|
|
+// //查询全部直属用户
|
|
|
+// List<KxsUserRealLevel> kxsUserRealLevelList = kxsUserRealLevelMapper.selectList(Wrappers.<KxsUserRealLevel>query().lambda().eq(KxsUserRealLevel::getPid, kxsUserRealLevel.getUserId()));
|
|
|
+// //当直属用户大于3时才进行积分计算
|
|
|
+// if (kxsUserRealLevelList.size() > 3) {
|
|
|
+// //初级积分基数
|
|
|
+// int firstScoreCardinal = 0;
|
|
|
+// //中级积分基数
|
|
|
+// int centerScoreCardinal = 0;
|
|
|
+// //高级积分基数
|
|
|
+// int highScoreCardinal = 0;
|
|
|
+// for (KxsUserRealLevel kxsUserRealLevelSon : kxsUserRealLevelList) {
|
|
|
+// int level = Integer.parseInt(kxsUserRealLevelSon.getLevel());
|
|
|
+// //校验用户职级
|
|
|
+// if (level > 2) {
|
|
|
+// ++firstScoreCardinal;
|
|
|
+// }
|
|
|
+// if (level > 3) {
|
|
|
+// ++centerScoreCardinal;
|
|
|
+// }
|
|
|
+// if (level > 4) {
|
|
|
+// ++highScoreCardinal;
|
|
|
+// }
|
|
|
+// }
|
|
|
+// //用户实际获得积分
|
|
|
+// int firstScore = firstScoreCardinal / 3;
|
|
|
+// int centerScore = centerScoreCardinal / 3;
|
|
|
+// int highScore = highScoreCardinal / 3;
|
|
|
+// if (firstScore != 0 || centerScore != 0 || highScore != 0) {
|
|
|
+// KxsShdScore kxsShdScore = kxsShdScoreMapper.selectOne(Wrappers.<KxsShdScore>query().lambda().eq(KxsShdScore::getUserId, kxsUserRealLevel.getUserId()).eq(KxsShdScore::getMonth, month));
|
|
|
+// if (kxsShdScore == null) {
|
|
|
+// kxsShdScore = new KxsShdScore();
|
|
|
+// kxsShdScore.setCreateTime(now);
|
|
|
+// kxsShdScore.setDelFlag("0");
|
|
|
+// kxsShdScore.setUserId(kxsUserRealLevel.getUserId());
|
|
|
+// kxsShdScore.setFirstScore(firstScore);
|
|
|
+// kxsShdScore.setCenterScore(centerScore);
|
|
|
+// kxsShdScore.setHighScore(highScore);
|
|
|
+// kxsShdScore.setMonth(month);
|
|
|
+// kxsShdScoreMapper.insert(kxsShdScore);
|
|
|
+// } else {
|
|
|
+// //存在记录只需修改积分
|
|
|
+// kxsShdScore.setFirstScore(firstScore);
|
|
|
+// kxsShdScore.setCenterScore(centerScore);
|
|
|
+// kxsShdScore.setHighScore(highScore);
|
|
|
+// kxsShdScore.setUpdateTime(now);
|
|
|
+// kxsShdScoreMapper.updateById(kxsShdScore);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
|