|
@@ -16,6 +16,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.kxs.common.core.constant.SecurityConstants;
|
|
import com.kxs.common.core.constant.SecurityConstants;
|
|
|
import com.kxs.common.core.constant.enums.ErrorTypeEnum;
|
|
import com.kxs.common.core.constant.enums.ErrorTypeEnum;
|
|
|
|
|
+import com.kxs.common.core.constant.enums.LeaderTypeEnum;
|
|
|
import com.kxs.common.core.exception.GlobalCustomerException;
|
|
import com.kxs.common.core.exception.GlobalCustomerException;
|
|
|
import com.kxs.common.core.util.R;
|
|
import com.kxs.common.core.util.R;
|
|
|
import com.kxs.common.core.util.RetOps;
|
|
import com.kxs.common.core.util.RetOps;
|
|
@@ -119,6 +120,8 @@ public class KxsCampServiceImpl extends ServiceImpl<KxsCampMapper, KxsCamp> impl
|
|
|
return R.failed(SysErrorTypeEnum.IMPORT_EMPTY.getDescription());
|
|
return R.failed(SysErrorTypeEnum.IMPORT_EMPTY.getDescription());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ //查询正在进行中的活动
|
|
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
|
|
|
|
|
// 通用校验获取失败的数据
|
|
// 通用校验获取失败的数据
|
|
|
List<ErrorMessage> errorMessageList = (List<ErrorMessage>) bindingResult.getTarget();
|
|
List<ErrorMessage> errorMessageList = (List<ErrorMessage>) bindingResult.getTarget();
|
|
@@ -138,14 +141,14 @@ public class KxsCampServiceImpl extends ServiceImpl<KxsCampMapper, KxsCamp> impl
|
|
|
if (Objects.isNull(user)) {
|
|
if (Objects.isNull(user)) {
|
|
|
errorMsg.add(excel.getUserCode() + "创客未找到!");
|
|
errorMsg.add(excel.getUserCode() + "创客未找到!");
|
|
|
}else{
|
|
}else{
|
|
|
|
|
+ if(user.getRealStatus() != 1){
|
|
|
|
|
+ errorMsg.add(excel.getUserCode() + "创客未实名!");
|
|
|
|
|
+ }
|
|
|
//判断创客是否已在其他训练营
|
|
//判断创客是否已在其他训练营
|
|
|
- KxsCampUser kxsCampUser = baseMapper.selectByUserId(user.getId());
|
|
|
|
|
|
|
+ KxsCampUser kxsCampUser = baseMapper.selectByUserId(user.getId(), now);
|
|
|
if(kxsCampUser != null){
|
|
if(kxsCampUser != null){
|
|
|
errorMsg.add(excel.getUserCode() + "已在训练营!");
|
|
errorMsg.add(excel.getUserCode() + "已在训练营!");
|
|
|
}
|
|
}
|
|
|
- if(user.getRealStatus() != 1){
|
|
|
|
|
- errorMsg.add(excel.getUserCode() + "创客未实名!");
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//判断创客是否加入
|
|
//判断创客是否加入
|
|
@@ -182,9 +185,19 @@ public class KxsCampServiceImpl extends ServiceImpl<KxsCampMapper, KxsCamp> impl
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public IPage<CampPageVO> getByPage(Page<CampPageVO> page) {
|
|
public IPage<CampPageVO> getByPage(Page<CampPageVO> page) {
|
|
|
-
|
|
|
|
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
Long userId = SecurityUtils.getUser().getId();
|
|
Long userId = SecurityUtils.getUser().getId();
|
|
|
- return baseMapper.getByPage(page, userId);
|
|
|
|
|
|
|
+ IPage<CampPageVO> pageData = baseMapper.getByPage(page, userId);
|
|
|
|
|
+ pageData.getRecords().forEach(item -> {
|
|
|
|
|
+ if(item.getEndTime().isBefore(now)){
|
|
|
|
|
+ item.setStatus(CampStatusEnum.STATUS_END.getType());
|
|
|
|
|
+ } else if (LocalDateTimeUtil.isIn(now, item.getStartTime(), item.getEndTime(), false, false)) {
|
|
|
|
|
+ item.setStatus(CampStatusEnum.STATUS_NORMAL.getType());
|
|
|
|
|
+ }else {
|
|
|
|
|
+ item.setStatus(CampStatusEnum.STATUS_CLOSE.getType());
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ return pageData;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -220,8 +233,10 @@ public class KxsCampServiceImpl extends ServiceImpl<KxsCampMapper, KxsCamp> impl
|
|
|
for (KxsCampUser campUser : campUsers) {
|
|
for (KxsCampUser campUser : campUsers) {
|
|
|
KxsCampUser kxsCampUser = new KxsCampUser();
|
|
KxsCampUser kxsCampUser = new KxsCampUser();
|
|
|
BeanUtil.copyProperties(campUser, kxsCampUser);
|
|
BeanUtil.copyProperties(campUser, kxsCampUser);
|
|
|
- kxsCampUser.setTeamBonusPool(BigDecimal.ZERO);
|
|
|
|
|
|
|
+ kxsCampUser.setTeamOrderPool(BigDecimal.ZERO);
|
|
|
|
|
+ kxsCampUser.setTeamLeaderPool(BigDecimal.ZERO);
|
|
|
kxsCampUser.setTeamOrderNum(0);
|
|
kxsCampUser.setTeamOrderNum(0);
|
|
|
|
|
+ kxsCampUser.setTeamLeaderNum(0);
|
|
|
kxsCampUser.setTeamOpenNum(0);
|
|
kxsCampUser.setTeamOpenNum(0);
|
|
|
campUsersMap.put(campUser.getUserId(), kxsCampUser);
|
|
campUsersMap.put(campUser.getUserId(), kxsCampUser);
|
|
|
}
|
|
}
|
|
@@ -242,13 +257,21 @@ public class KxsCampServiceImpl extends ServiceImpl<KxsCampMapper, KxsCamp> impl
|
|
|
for (ShopOrderGoodsUserVO order : orders) {
|
|
for (ShopOrderGoodsUserVO order : orders) {
|
|
|
//如果是参与者自己下的单
|
|
//如果是参与者自己下的单
|
|
|
if (userIds.contains(order.getUserId())) {
|
|
if (userIds.contains(order.getUserId())) {
|
|
|
- BigDecimal amount = NumberUtil.mul(NumberUtil.div(order.getTotalPrice(), 600), 90);
|
|
|
|
|
- totalBonusPool = NumberUtil.add(totalBonusPool, amount);
|
|
|
|
|
- orderNum += NumberUtil.div(order.getTotalPrice(), 600).intValue();
|
|
|
|
|
|
|
+ int currentNum = NumberUtil.div(order.getTotalPrice(), 600).intValue();
|
|
|
//刷新参与创客的团队累计
|
|
//刷新参与创客的团队累计
|
|
|
KxsCampUser kxsCampUser = campUsersMap.get(order.getUserId());
|
|
KxsCampUser kxsCampUser = campUsersMap.get(order.getUserId());
|
|
|
- kxsCampUser.setTeamBonusPool(NumberUtil.add(kxsCampUser.getTeamBonusPool(), amount));
|
|
|
|
|
- kxsCampUser.setTeamOrderNum(kxsCampUser.getTeamOrderNum() + orderNum);
|
|
|
|
|
|
|
+ BigDecimal amount = NumberUtil.mul(NumberUtil.div(order.getTotalPrice(), 600), 90);
|
|
|
|
|
+ totalBonusPool = NumberUtil.add(totalBonusPool, amount);
|
|
|
|
|
+ //兑换券下单
|
|
|
|
|
+ kxsCampUser.setTeamOrderPool(NumberUtil.add(kxsCampUser.getTeamOrderPool(), amount));
|
|
|
|
|
+ kxsCampUser.setTeamOrderNum(kxsCampUser.getTeamOrderNum() + currentNum);
|
|
|
|
|
+// if(order.getId() == 27 || order.getId() == 28){
|
|
|
|
|
+// //大小盟主下单, 奖金池+60,订单数+1
|
|
|
|
|
+// kxsCampUser.setTeamLeaderPool(NumberUtil.add(kxsCampUser.getTeamLeaderPool(), 60));
|
|
|
|
|
+// kxsCampUser.setTeamLeaderNum(kxsCampUser.getTeamLeaderNum() + 1);
|
|
|
|
|
+// currentNum = 1;
|
|
|
|
|
+// }
|
|
|
|
|
+ orderNum += currentNum;
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -261,14 +284,21 @@ public class KxsCampServiceImpl extends ServiceImpl<KxsCampMapper, KxsCamp> impl
|
|
|
//通过用户的pidPath倒序查找最近所属的上级
|
|
//通过用户的pidPath倒序查找最近所属的上级
|
|
|
Integer userId = SysUtils.checkUserIsChildren(pidPaths, userIds);
|
|
Integer userId = SysUtils.checkUserIsChildren(pidPaths, userIds);
|
|
|
if(userId != null){
|
|
if(userId != null){
|
|
|
|
|
+ int currentNum = NumberUtil.div(order.getTotalPrice(), 600).intValue();
|
|
|
|
|
+ //刷新参与创客的团队累计
|
|
|
|
|
+ KxsCampUser kxsCampUser = campUsersMap.get(userId);
|
|
|
BigDecimal amount = NumberUtil.mul(NumberUtil.div(order.getTotalPrice(), 600), 90);
|
|
BigDecimal amount = NumberUtil.mul(NumberUtil.div(order.getTotalPrice(), 600), 90);
|
|
|
totalBonusPool = NumberUtil.add(totalBonusPool, amount);
|
|
totalBonusPool = NumberUtil.add(totalBonusPool, amount);
|
|
|
- orderNum += NumberUtil.div(order.getTotalPrice(), 600).intValue();
|
|
|
|
|
|
|
|
|
|
- //刷新参与创客的团队累计
|
|
|
|
|
- KxsCampUser kxsCampUser = campUsersMap.get(userId);
|
|
|
|
|
- kxsCampUser.setTeamBonusPool(NumberUtil.add(kxsCampUser.getTeamBonusPool(), amount));
|
|
|
|
|
- kxsCampUser.setTeamOrderNum(kxsCampUser.getTeamOrderNum() + orderNum);
|
|
|
|
|
|
|
+ kxsCampUser.setTeamOrderPool(NumberUtil.add(kxsCampUser.getTeamOrderPool(), amount));
|
|
|
|
|
+ kxsCampUser.setTeamOrderNum(kxsCampUser.getTeamOrderNum() + currentNum);
|
|
|
|
|
+// if(order.getId() == 27 || order.getId() == 28){
|
|
|
|
|
+// //大小盟主下单, 奖金池+60,订单数+1
|
|
|
|
|
+// kxsCampUser.setTeamLeaderPool(NumberUtil.add(kxsCampUser.getTeamLeaderPool(), 60));
|
|
|
|
|
+// kxsCampUser.setTeamLeaderNum(kxsCampUser.getTeamLeaderNum() + 1);
|
|
|
|
|
+// currentNum = 1;
|
|
|
|
|
+// }
|
|
|
|
|
+ orderNum += currentNum;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -283,16 +313,23 @@ public class KxsCampServiceImpl extends ServiceImpl<KxsCampMapper, KxsCamp> impl
|
|
|
for (KxsLeader leader : leaders) {
|
|
for (KxsLeader leader : leaders) {
|
|
|
//如果是参与者自己下的单
|
|
//如果是参与者自己下的单
|
|
|
if (userIds.contains(leader.getUserId())) {
|
|
if (userIds.contains(leader.getUserId())) {
|
|
|
- BigDecimal amount = new BigDecimal("2000");
|
|
|
|
|
|
|
+ BigDecimal amount;
|
|
|
|
|
+ if(leader.getLeaderType().equals(LeaderTypeEnum.SMALL_LEADER.getType())){
|
|
|
|
|
+ amount = new BigDecimal("2000");
|
|
|
|
|
+ }else{
|
|
|
|
|
+ amount = new BigDecimal("8000");
|
|
|
|
|
+ }
|
|
|
totalBonusPool = NumberUtil.add(totalBonusPool, amount);
|
|
totalBonusPool = NumberUtil.add(totalBonusPool, amount);
|
|
|
|
|
|
|
|
//刷新参与创客的团队累计
|
|
//刷新参与创客的团队累计
|
|
|
KxsCampUser kxsCampUser = campUsersMap.get(leader.getUserId());
|
|
KxsCampUser kxsCampUser = campUsersMap.get(leader.getUserId());
|
|
|
- kxsCampUser.setTeamBonusPool(NumberUtil.add(kxsCampUser.getTeamBonusPool(), amount));
|
|
|
|
|
- kxsCampUser.setTeamOrderNum(kxsCampUser.getTeamOrderNum() + orderNum);
|
|
|
|
|
|
|
+ kxsCampUser.setTeamLeaderPool(NumberUtil.add(kxsCampUser.getTeamLeaderPool(), amount));
|
|
|
|
|
+ kxsCampUser.setTeamLeaderNum(kxsCampUser.getTeamLeaderNum() + 1);
|
|
|
|
|
+ orderNum += 1;
|
|
|
|
|
+ log.info("参与者{}自己下单盟主,进入到{}奖金池", leader.getUserId(), kxsCamp.getTitle());
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+ //查询此盟主的上级
|
|
|
R<KxsUser> kxsUserR = remoteKxsUserService.loadUserById(leader.getUserId(), SecurityConstants.FROM_IN);
|
|
R<KxsUser> kxsUserR = remoteKxsUserService.loadUserById(leader.getUserId(), SecurityConstants.FROM_IN);
|
|
|
KxsUser user = RetOps.of(kxsUserR)
|
|
KxsUser user = RetOps.of(kxsUserR)
|
|
|
.getData()
|
|
.getData()
|
|
@@ -302,13 +339,20 @@ public class KxsCampServiceImpl extends ServiceImpl<KxsCampMapper, KxsCamp> impl
|
|
|
//通过用户的pidPath倒序查找最近所属的上级
|
|
//通过用户的pidPath倒序查找最近所属的上级
|
|
|
Integer userId = SysUtils.checkUserIsChildren(pidPaths, userIds);
|
|
Integer userId = SysUtils.checkUserIsChildren(pidPaths, userIds);
|
|
|
if(userId != null){
|
|
if(userId != null){
|
|
|
- BigDecimal amount = new BigDecimal("2000");
|
|
|
|
|
|
|
+ BigDecimal amount;
|
|
|
|
|
+ if(leader.getLeaderType().equals(LeaderTypeEnum.SMALL_LEADER.getType())){
|
|
|
|
|
+ amount = new BigDecimal("2000");
|
|
|
|
|
+ }else{
|
|
|
|
|
+ amount = new BigDecimal("8000");
|
|
|
|
|
+ }
|
|
|
totalBonusPool = NumberUtil.add(totalBonusPool, amount);
|
|
totalBonusPool = NumberUtil.add(totalBonusPool, amount);
|
|
|
|
|
|
|
|
//刷新参与创客的团队累计
|
|
//刷新参与创客的团队累计
|
|
|
KxsCampUser kxsCampUser = campUsersMap.get(userId);
|
|
KxsCampUser kxsCampUser = campUsersMap.get(userId);
|
|
|
- kxsCampUser.setTeamBonusPool(NumberUtil.add(kxsCampUser.getTeamBonusPool(), amount));
|
|
|
|
|
- kxsCampUser.setTeamOrderNum(kxsCampUser.getTeamOrderNum() + orderNum);
|
|
|
|
|
|
|
+ kxsCampUser.setTeamLeaderPool(NumberUtil.add(kxsCampUser.getTeamLeaderPool(), amount));
|
|
|
|
|
+ kxsCampUser.setTeamLeaderNum(kxsCampUser.getTeamLeaderNum() + 1);
|
|
|
|
|
+ orderNum += 1;
|
|
|
|
|
+ log.info("创客:{}的团队购买盟主:{},进入到:{}奖金池", userId, leader.getUserId(), kxsCamp.getTitle());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|