|
@@ -4,13 +4,18 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.zanxiang.common.enums.DeleteEnum;
|
|
|
import com.zanxiang.common.enums.PayWayEnum;
|
|
|
+import com.zanxiang.common.enums.StatusEnum;
|
|
|
+import com.zanxiang.common.exception.BaseException;
|
|
|
import com.zanxiang.common.utils.bean.BeanUtils;
|
|
|
import com.zanxiang.manage.domain.dto.*;
|
|
|
+import com.zanxiang.manage.domain.params.GamePayWayAddUpdateParam;
|
|
|
import com.zanxiang.manage.domain.params.GamePayWayListParam;
|
|
|
import com.zanxiang.manage.domain.vo.GamePayWayListVO;
|
|
|
import com.zanxiang.manage.domain.vo.GamePayWayVO;
|
|
|
import com.zanxiang.manage.service.*;
|
|
|
+import com.zanxiang.mybatis.entity.GameApplet;
|
|
|
import com.zanxiang.mybatis.entity.GamePayWay;
|
|
|
import com.zanxiang.mybatis.mapper.GamePayWayMapper;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -50,6 +55,79 @@ public class GamePayWayServiceImpl extends ServiceImpl<GamePayWayMapper, GamePay
|
|
|
@Autowired
|
|
|
private IPayBoxService payBoxService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private IPayApplicationService payApplicationService;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean addOrUpdate(GamePayWayAddUpdateParam param) {
|
|
|
+ Long id = param.getId();
|
|
|
+ GamePayWay gamePayWay;
|
|
|
+ if (id != null) {
|
|
|
+ gamePayWay = super.getById(id);
|
|
|
+ if (gamePayWay == null) {
|
|
|
+ throw new BaseException("参数错误, 游戏支付配置信息不存在");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ gamePayWay = new GamePayWay();
|
|
|
+ gamePayWay.setPayWayId(param.getPayWayId());
|
|
|
+ gamePayWay.setStatus(StatusEnum.YES.getCode());
|
|
|
+ gamePayWay.setIsDelete(DeleteEnum.NO.getCode());
|
|
|
+ gamePayWay.setCreateTime(LocalDateTime.now());
|
|
|
+ }
|
|
|
+ this.gamePayWayUpdate(gamePayWay, param);
|
|
|
+ return super.saveOrUpdate(gamePayWay);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void gamePayWayUpdate(GamePayWay gamePayWay, GamePayWayAddUpdateParam param) {
|
|
|
+ Long payWayId = gamePayWay.getPayWayId();
|
|
|
+ if (Objects.equals(PayWayEnum.ALI_PAY.getPayWayId(), payWayId.intValue())) {
|
|
|
+ GamePayWayAddUpdateParam.AliPayConfigBean aliPayConfig = param.getAliPayConfig();
|
|
|
+ //更改了支付宝应用
|
|
|
+ if (!Objects.equals(aliPayConfig.getAppId(), gamePayWay.getAppId())) {
|
|
|
+ PayApplicationDTO payApplicationDTO = payApplicationService.getByAppId(aliPayConfig.getAppId());
|
|
|
+ gamePayWay.setAppId(payApplicationDTO.getAppId());
|
|
|
+ gamePayWay.setAppName(payApplicationDTO.getAppName());
|
|
|
+ gamePayWay.setMerchantNo(payApplicationDTO.getMerchantNo());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (Objects.equals(PayWayEnum.WX_PAY.getPayWayId(), payWayId.intValue())) {
|
|
|
+ GamePayWayAddUpdateParam.WxPayConfigBean wxPayConfig = param.getWxPayConfig();
|
|
|
+ //更改了支付宝应用
|
|
|
+ if (!Objects.equals(wxPayConfig.getAppId(), gamePayWay.getAppId())) {
|
|
|
+ PayApplicationDTO payApplicationDTO = payApplicationService.getByAppId(wxPayConfig.getAppId());
|
|
|
+ gamePayWay.setAppId(payApplicationDTO.getAppId());
|
|
|
+ gamePayWay.setAppName(payApplicationDTO.getAppName());
|
|
|
+ }
|
|
|
+ gamePayWay.setMerchantNo(wxPayConfig.getMerchantNo());
|
|
|
+ gamePayWay.setPayBoxId(wxPayConfig.getPayBoxId());
|
|
|
+ gamePayWay.setThumbUrl(wxPayConfig.getThumbUrl());
|
|
|
+ }
|
|
|
+ if (Objects.equals(PayWayEnum.MI_PAY.getPayWayId(), payWayId.intValue())) {
|
|
|
+ GamePayWayAddUpdateParam.MiPayConfigBean miPayConfig = param.getMiPayConfig();
|
|
|
+ gameAppletService.update(new LambdaUpdateWrapper<GameApplet>()
|
|
|
+ .set(GameApplet::getMiPayAppId, miPayConfig.getAppId())
|
|
|
+ .set(GameApplet::getMiPayAppKey, miPayConfig.getAppKey())
|
|
|
+ .set(GameApplet::getMiPayAppKeyDev, miPayConfig.getAppKeyDev())
|
|
|
+ .set(GameApplet::getUpdateTime, LocalDateTime.now())
|
|
|
+ .eq(GameApplet::getGameId, gamePayWay.getGameId()));
|
|
|
+ }
|
|
|
+ Map<Long, PayDeviceDTO> payDeviceMap = payDeviceService.payDeviceMap();
|
|
|
+ Map<Long, PayWayDTO> payWayMap = payWayService.payWayMap();
|
|
|
+ String payName = "";
|
|
|
+ if (payWayMap.get(param.getPayWayId()) != null) {
|
|
|
+ payName += payWayMap.get(param.getPayWayId()).getPayWayName();
|
|
|
+ }
|
|
|
+ if (payDeviceMap.get(param.getPayDeviceId()) != null) {
|
|
|
+ payName += payDeviceMap.get(param.getPayDeviceId()).getPayDeviceName();
|
|
|
+ }
|
|
|
+ gamePayWay.setPayName(payName);
|
|
|
+ gamePayWay.setGameId(param.getGameId());
|
|
|
+ gamePayWay.setPayWayId(param.getPayWayId());
|
|
|
+ gamePayWay.setPayDeviceId(param.getPayDeviceId());
|
|
|
+ gamePayWay.setRemark(param.getRemark());
|
|
|
+ gamePayWay.setUpdateTime(LocalDateTime.now());
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public IPage<GamePayWayListVO> pageList(GamePayWayListParam param) {
|
|
|
Map<Long, GameCategoryDTO> gameCategoryMap = gameCategoryService.gameCategoryMap();
|