|
@@ -25,6 +25,7 @@ import com.zanxiang.game.back.serve.service.IGameTencentOrderService;
|
|
|
import com.zanxiang.game.back.serve.service.IGameTencentUserService;
|
|
|
import com.zanxiang.game.back.serve.utils.BackPolicyUtil;
|
|
|
import com.zanxiang.module.util.JsonUtil;
|
|
|
+import com.zanxiang.module.util.NumberUtil;
|
|
|
import com.zanxiang.module.util.bean.BeanUtil;
|
|
|
import com.zanxiang.module.util.exception.BaseException;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -34,6 +35,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -122,16 +124,22 @@ public class GameBackPolicyServiceImpl extends ServiceImpl<GameBackPolicyMapper,
|
|
|
} else {
|
|
|
GameBackPolicy gameBackPolicy = gameBackPolicyService.getById(dto.getBackPolicyId());
|
|
|
|
|
|
- doBack = BackPolicyUtil.backOrder(gameBackPolicy, dto.getRechargeMoney(), backUnit -> Long.valueOf(
|
|
|
- gameTencentOrderService.list(new LambdaQueryWrapper<GameTencentOrder>()
|
|
|
+ doBack = BackPolicyUtil.backOrder(gameBackPolicy, dto.getRechargeMoney(),
|
|
|
+ () -> gameTencentOrderService.count(new LambdaQueryWrapper<GameTencentOrder>()
|
|
|
+ .eq(GameTencentOrder::getGameId, dto.getGameId())
|
|
|
+ .eq(GameTencentOrder::getWechatAppId, dto.getWechatAppId())
|
|
|
+ .eq(GameTencentOrder::getAdAccountId, dto.getAdAccountId())
|
|
|
+ .eq(GameTencentOrder::getOrderStatus, 2)
|
|
|
+ .eq(GameTencentOrder::getWechatOpenid, dto.getWechatOpenid())
|
|
|
+ .last("limit 1")
|
|
|
+ ) < 1, backUnit -> Long.valueOf(gameTencentOrderService.count(new LambdaQueryWrapper<GameTencentOrder>()
|
|
|
.eq(GameTencentOrder::getGameId, dto.getGameId())
|
|
|
.eq(GameTencentOrder::getWechatAppId, dto.getWechatAppId())
|
|
|
.eq(GameTencentOrder::getAdAccountId, dto.getAdAccountId())
|
|
|
.eq(GameTencentOrder::getOrderStatus, 2)
|
|
|
.last("limit " + backUnit)
|
|
|
.orderByDesc(GameTencentOrder::getCreateTime)
|
|
|
- ).stream().filter(order -> order.getIsBack().equals(BackStatusEnum.SUCCESS.getBackStatus())).count()
|
|
|
- ).intValue());
|
|
|
+ )).intValue());
|
|
|
}
|
|
|
|
|
|
try {
|
|
@@ -223,46 +231,79 @@ public class GameBackPolicyServiceImpl extends ServiceImpl<GameBackPolicyMapper,
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public boolean createPolicy(GameBackPolicyDTO dto) {
|
|
|
- GameBackPolicy gameBackPolicy = gameBackPolicyService.getOne(new LambdaQueryWrapper<GameBackPolicy>()
|
|
|
+ public IPage<GameBackPolicyVO> policyList(GameBackPolicyListDTO dto) {
|
|
|
+ return gameBackPolicyService.page(dto.toPage(), new LambdaQueryWrapper<GameBackPolicy>()
|
|
|
+ .like(StringUtils.isNotBlank(dto.getBackPolicyName()), GameBackPolicy::getBackPolicyName, dto.getBackPolicyName())
|
|
|
+ .eq(GameBackPolicy::getCreateBy, SecurityUtil.getUserId())
|
|
|
+ .orderByDesc(GameBackPolicy::getCreateTime))
|
|
|
+ .convert(this::toVO);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<GameBackPolicyVO> allOfUser() {
|
|
|
+ return list(new LambdaQueryWrapper<GameBackPolicy>()
|
|
|
.eq(GameBackPolicy::getCreateBy, SecurityUtil.getUserId())
|
|
|
- .eq(GameBackPolicy::getBackPolicyName, dto.getBackPolicyName()));
|
|
|
- if (null != gameBackPolicy) {
|
|
|
+ .orderByDesc(GameBackPolicy::getCreateTime)
|
|
|
+ ).stream().map(this::toVOSimple).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean createPolicy(GameBackPolicyDTO dto) {
|
|
|
+ if (nameExist(null, SecurityUtil.getUserId(), dto.getBackPolicyName())) {
|
|
|
throw new BaseException("回传策略名重复");
|
|
|
}
|
|
|
GameBackPolicy backPolicy = GameBackPolicy.builder()
|
|
|
.backPolicyName(dto.getBackPolicyName())
|
|
|
- .firstRechargeMoney(dto.getFirstRechargeMoney())
|
|
|
- .firstRechargeBackPercentage(dto.getFirstRechargeBackPercentage())
|
|
|
- .bigRechargeBackPercentage(dto.getBigRechargeBackPercentage())
|
|
|
- .bigRechargeMoney(dto.getBigRechargeMoney())
|
|
|
- .otherRechargeBackPercentage(dto.getOtherRechargeBackPercentage())
|
|
|
+ .firstMaxMoney(NumberUtil.multiply100(dto.getFirstMaxMoney()).longValue())
|
|
|
+ .firstMinMoneyType(dto.getFirstMinMoneyType())
|
|
|
+ .firstMinMoneyRate(dto.getFirstMinMoneyRate())
|
|
|
+ .firstMaxMoney(NumberUtil.multiply100(dto.getFirstMaxMoney()).longValue())
|
|
|
+ .firstMaxMoneyType(dto.getFirstMaxMoneyType())
|
|
|
+ .firstMaxMoneyRate(dto.getFirstMaxMoneyRate())
|
|
|
+ .firstOtherMoneyType(dto.getFirstOtherMoneyType())
|
|
|
+ .firstOtherMoneyRate(dto.getFirstOtherMoneyRate())
|
|
|
+ .rechargeMaxMoney(NumberUtil.multiply100(dto.getFirstMaxMoney()).longValue())
|
|
|
+ .rechargeMinMoneyType(dto.getFirstMinMoneyType())
|
|
|
+ .rechargeMinMoneyRate(dto.getFirstMinMoneyRate())
|
|
|
+ .rechargeMaxMoney(NumberUtil.multiply100(dto.getFirstMaxMoney()).longValue())
|
|
|
+ .rechargeMaxMoneyType(dto.getFirstMaxMoneyType())
|
|
|
+ .rechargeMaxMoneyRate(dto.getFirstMaxMoneyRate())
|
|
|
+ .rechargeOtherMoneyType(dto.getFirstOtherMoneyType())
|
|
|
+ .rechargeOtherMoneyRate(dto.getFirstOtherMoneyRate())
|
|
|
.levelDown(dto.getLevelDown())
|
|
|
.createBy(SecurityUtil.getUserId())
|
|
|
.createTime(LocalDateTime.now())
|
|
|
.build();
|
|
|
-
|
|
|
return gameBackPolicyService.save(backPolicy);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public boolean updatePolicy(GameBackPolicyDTO dto) {
|
|
|
- long count = gameBackPolicyService.count(new LambdaQueryWrapper<GameBackPolicy>()
|
|
|
- .eq(GameBackPolicy::getCreateBy, SecurityUtil.getUserId())
|
|
|
- .eq(GameBackPolicy::getBackPolicyName, dto.getBackPolicyName())
|
|
|
- .ne(GameBackPolicy::getId, dto.getId()));
|
|
|
- if (count > 0) {
|
|
|
+ public boolean updatePolicy(Long policyId, GameBackPolicyDTO dto) {
|
|
|
+ if (nameExist(policyId, SecurityUtil.getUserId(), dto.getBackPolicyName())) {
|
|
|
throw new BaseException("回传策略名重复");
|
|
|
}
|
|
|
+ GameBackPolicy old = getById(policyId);
|
|
|
GameBackPolicy backPolicy = GameBackPolicy.builder()
|
|
|
- .id(dto.getId())
|
|
|
.backPolicyName(dto.getBackPolicyName())
|
|
|
- .firstRechargeMoney(dto.getFirstRechargeMoney())
|
|
|
- .firstRechargeBackPercentage(dto.getFirstRechargeBackPercentage())
|
|
|
- .bigRechargeBackPercentage(dto.getBigRechargeBackPercentage())
|
|
|
- .bigRechargeMoney(dto.getBigRechargeMoney())
|
|
|
- .otherRechargeBackPercentage(dto.getOtherRechargeBackPercentage())
|
|
|
+ .firstMaxMoney(NumberUtil.multiply100(dto.getFirstMaxMoney()).longValue())
|
|
|
+ .firstMinMoneyType(dto.getFirstMinMoneyType())
|
|
|
+ .firstMinMoneyRate(dto.getFirstMinMoneyRate())
|
|
|
+ .firstMaxMoney(NumberUtil.multiply100(dto.getFirstMaxMoney()).longValue())
|
|
|
+ .firstMaxMoneyType(dto.getFirstMaxMoneyType())
|
|
|
+ .firstMaxMoneyRate(dto.getFirstMaxMoneyRate())
|
|
|
+ .firstOtherMoneyType(dto.getFirstOtherMoneyType())
|
|
|
+ .firstOtherMoneyRate(dto.getFirstOtherMoneyRate())
|
|
|
+ .rechargeMaxMoney(NumberUtil.multiply100(dto.getFirstMaxMoney()).longValue())
|
|
|
+ .rechargeMinMoneyType(dto.getFirstMinMoneyType())
|
|
|
+ .rechargeMinMoneyRate(dto.getFirstMinMoneyRate())
|
|
|
+ .rechargeMaxMoney(NumberUtil.multiply100(dto.getFirstMaxMoney()).longValue())
|
|
|
+ .rechargeMaxMoneyType(dto.getFirstMaxMoneyType())
|
|
|
+ .rechargeMaxMoneyRate(dto.getFirstMaxMoneyRate())
|
|
|
+ .rechargeOtherMoneyType(dto.getFirstOtherMoneyType())
|
|
|
+ .rechargeOtherMoneyRate(dto.getFirstOtherMoneyRate())
|
|
|
.levelDown(dto.getLevelDown())
|
|
|
+ .createBy(old.getCreateBy())
|
|
|
+ .createTime(old.getCreateTime())
|
|
|
.updateBy(SecurityUtil.getUserId())
|
|
|
.updateTime(LocalDateTime.now())
|
|
|
.build();
|
|
@@ -275,28 +316,24 @@ public class GameBackPolicyServiceImpl extends ServiceImpl<GameBackPolicyMapper,
|
|
|
return gameBackPolicyService.removeByIds(ids);
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public IPage<GameBackPolicyVO> policyList(GameBackPolicyListDTO dto) {
|
|
|
- return gameBackPolicyService.page(dto.toPage(), new LambdaQueryWrapper<GameBackPolicy>()
|
|
|
- .like(StringUtils.isNotBlank(dto.getBackPolicyName()), GameBackPolicy::getBackPolicyName, dto.getBackPolicyName())
|
|
|
- .eq(GameBackPolicy::getCreateBy, SecurityUtil.getUserId())
|
|
|
- .orderByDesc(GameBackPolicy::getCreateTime))
|
|
|
- .convert(this::toVO);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public List<GameBackPolicyVO> allOfUser() {
|
|
|
- return list(new LambdaQueryWrapper<GameBackPolicy>()
|
|
|
- .eq(GameBackPolicy::getCreateBy, SecurityUtil.getUserId())
|
|
|
- .orderByDesc(GameBackPolicy::getCreateTime)
|
|
|
- ).stream().map(this::toVOSimple).collect(Collectors.toList());
|
|
|
+ private boolean nameExist(Long policyId, Long userId, String policyName) {
|
|
|
+ return count(new LambdaQueryWrapper<GameBackPolicy>()
|
|
|
+ .ne(policyId != null, GameBackPolicy::getId, policyId)
|
|
|
+ .eq(GameBackPolicy::getBackPolicyName, policyName)
|
|
|
+ .eq(GameBackPolicy::getCreateBy, userId)
|
|
|
+ ) > 0;
|
|
|
}
|
|
|
|
|
|
private GameBackPolicyVO toVOSimple(GameBackPolicy gameBackPolicy) {
|
|
|
if (gameBackPolicy == null) {
|
|
|
return null;
|
|
|
}
|
|
|
- return BeanUtil.copy(gameBackPolicy, GameBackPolicyVO.class);
|
|
|
+ GameBackPolicyVO vo = BeanUtil.copy(gameBackPolicy, GameBackPolicyVO.class);
|
|
|
+ vo.setFirstMinMoney(NumberUtil.divide100(new BigDecimal(gameBackPolicy.getFirstMinMoney())));
|
|
|
+ vo.setFirstMaxMoney(NumberUtil.divide100(new BigDecimal(gameBackPolicy.getFirstMaxMoney())));
|
|
|
+ vo.setRechargeMinMoney(NumberUtil.divide100(new BigDecimal(gameBackPolicy.getRechargeMinMoney())));
|
|
|
+ vo.setRechargeMaxMoney(NumberUtil.divide100(new BigDecimal(gameBackPolicy.getRechargeMaxMoney())));
|
|
|
+ return vo;
|
|
|
}
|
|
|
|
|
|
private GameBackPolicyVO toVO(GameBackPolicy gameBackPolicy) {
|