|
@@ -25,6 +25,8 @@ import com.zanxiang.game.back.serve.service.IGameTencentBackLogService;
|
|
|
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 com.zanxiang.module.util.pojo.ResultVO;
|
|
@@ -35,6 +37,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.HashMap;
|
|
|
import java.util.List;
|
|
@@ -73,6 +76,7 @@ public class GameBackPolicyServiceImpl extends ServiceImpl<GameBackPolicyMapper,
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean tencentOrderBack(TencentOrderDTO dto) {
|
|
|
+ log.error("回传腾讯订单开始,dto:{}", JsonUtil.toString(dto));
|
|
|
//订单保存
|
|
|
GameTencentOrder gameTencentOrder = GameTencentOrder.builder()
|
|
|
.adAccountId(dto.getAdAccountId())
|
|
@@ -135,16 +139,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());
|
|
|
}
|
|
|
if (dto.getOrderStatus().equals(COMPLETE_ORDER) || doBack) {
|
|
|
ResultVO<Boolean> result = userActionSetRpc.reportByAppId(dataReportOfAppIdRpcDTO);
|
|
@@ -172,6 +182,7 @@ public class GameBackPolicyServiceImpl extends ServiceImpl<GameBackPolicyMapper,
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean tencentUserBack(TencentUserDTO dto) {
|
|
|
+ log.error("回传腾讯用户开始,dto:{}", JsonUtil.toString(dto));
|
|
|
GameTencentUser gameTencentUser = gameTencentUserService.getOne(new LambdaQueryWrapper<GameTencentUser>()
|
|
|
.eq(GameTencentUser::getWechatOpenid, dto.getWechatOpenid())
|
|
|
.eq(GameTencentUser::getGameId, dto.getGameId())
|
|
@@ -223,68 +234,102 @@ public class GameBackPolicyServiceImpl extends ServiceImpl<GameBackPolicyMapper,
|
|
|
.userActionSetId(dto.getUserActionSetId())
|
|
|
.actionParam(actionParam.toString())
|
|
|
.build();
|
|
|
- ResultVO<Boolean> result = userActionSetRpc.reportByAppId(dataReportOfAppIdRpcDTO);
|
|
|
- if (result.getCode() == HttpStatus.HTTP_OK) {
|
|
|
- gameTencentUser.setIsBack(BackStatusEnum.SUCCESS.getBackStatus());
|
|
|
- gameTencentUser.setBackLog("回传成功");
|
|
|
- gameTencentUserService.updateById(gameTencentUser);
|
|
|
+ ResultVO<Boolean> result = userActionSetRpc.reportByAppId(dataReportOfAppIdRpcDTO);
|
|
|
+ if (result.getCode() == HttpStatus.HTTP_OK) {
|
|
|
+ gameTencentUser.setIsBack(BackStatusEnum.SUCCESS.getBackStatus());
|
|
|
+ gameTencentUser.setBackLog("回传成功");
|
|
|
+ gameTencentUserService.updateById(gameTencentUser);
|
|
|
|
|
|
- gameTencentBackLog.setBackLog("回传成功");
|
|
|
- gameTencentBackLogService.save(gameTencentBackLog);
|
|
|
- } else {
|
|
|
- log.error("回传腾讯用户失败,失败原因:{}", result.getMsg());
|
|
|
- gameTencentUser.setBackLog(result.getMsg());
|
|
|
- gameTencentUser.setIsBack(BackStatusEnum.FAILED.getBackStatus());
|
|
|
- gameTencentUserService.updateById(gameTencentUser);
|
|
|
+ gameTencentBackLog.setBackLog("回传成功");
|
|
|
+ gameTencentBackLogService.save(gameTencentBackLog);
|
|
|
+ } else {
|
|
|
+ log.error("回传腾讯用户失败,失败原因:{}", result.getMsg());
|
|
|
+ gameTencentUser.setBackLog(result.getMsg());
|
|
|
+ gameTencentUser.setIsBack(BackStatusEnum.FAILED.getBackStatus());
|
|
|
+ gameTencentUserService.updateById(gameTencentUser);
|
|
|
|
|
|
- gameTencentBackLog.setBackLog(result.getMsg());
|
|
|
- gameTencentBackLogService.saveOrUpdate(gameTencentBackLog);
|
|
|
- }
|
|
|
+ gameTencentBackLog.setBackLog(result.getMsg());
|
|
|
+ gameTencentBackLogService.saveOrUpdate(gameTencentBackLog);
|
|
|
+ }
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
@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())
|
|
|
+ .firstMinMoney(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())
|
|
|
+ .rechargeMinMoney(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())
|
|
|
+ .id(policyId)
|
|
|
.backPolicyName(dto.getBackPolicyName())
|
|
|
- .firstRechargeMoney(dto.getFirstRechargeMoney())
|
|
|
- .firstRechargeBackPercentage(dto.getFirstRechargeBackPercentage())
|
|
|
- .bigRechargeBackPercentage(dto.getBigRechargeBackPercentage())
|
|
|
- .bigRechargeMoney(dto.getBigRechargeMoney())
|
|
|
- .otherRechargeBackPercentage(dto.getOtherRechargeBackPercentage())
|
|
|
+ .firstMinMoney(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())
|
|
|
+ .rechargeMinMoney(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();
|
|
@@ -297,28 +342,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) {
|