|
@@ -1,16 +1,13 @@
|
|
|
package com.zanxiang.manage.service.impl;
|
|
|
|
|
|
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.exception.ParamNullException;
|
|
|
+import com.zanxiang.common.enums.PayWayEnum;
|
|
|
import com.zanxiang.common.utils.bean.BeanUtils;
|
|
|
-import com.zanxiang.manage.domain.dto.GameCategoryDTO;
|
|
|
-import com.zanxiang.manage.domain.dto.GameDTO;
|
|
|
-import com.zanxiang.manage.domain.dto.PayDeviceDTO;
|
|
|
+import com.zanxiang.manage.domain.dto.*;
|
|
|
import com.zanxiang.manage.domain.params.GamePayWayListParam;
|
|
|
-import com.zanxiang.manage.domain.params.GamePayWayParam;
|
|
|
import com.zanxiang.manage.domain.vo.GamePayWayListVO;
|
|
|
import com.zanxiang.manage.domain.vo.GamePayWayVO;
|
|
|
import com.zanxiang.manage.service.*;
|
|
@@ -19,12 +16,11 @@ import com.zanxiang.mybatis.mapper.GamePayWayMapper;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Collections;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -37,16 +33,7 @@ import java.util.stream.Collectors;
|
|
|
public class GamePayWayServiceImpl extends ServiceImpl<GamePayWayMapper, GamePayWay> implements IGamePayWayService {
|
|
|
|
|
|
@Autowired
|
|
|
- private IPayMerchantService payMerchantService;
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private IPayBoxService payBoxService;
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private IPayApplicationService payApplicationService;
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private IGameStrategyService gameStrategyService;
|
|
|
+ private IGameAppletService gameAppletService;
|
|
|
|
|
|
@Autowired
|
|
|
private IGameCategoryService gameCategoryService;
|
|
@@ -57,60 +44,29 @@ public class GamePayWayServiceImpl extends ServiceImpl<GamePayWayMapper, GamePay
|
|
|
@Autowired
|
|
|
private IPayDeviceService payDeviceService;
|
|
|
|
|
|
- @Override
|
|
|
- public List<GamePayWayVO> getByGameId(Long gameId) {
|
|
|
- List<GamePayWay> gamePayWayList = super.list(new LambdaQueryWrapper<GamePayWay>()
|
|
|
- .eq(GamePayWay::getGameId, gameId));
|
|
|
- if (CollectionUtils.isEmpty(gamePayWayList)) {
|
|
|
- return Collections.emptyList();
|
|
|
- }
|
|
|
- List<Long> payDeviceIdList = gamePayWayList.stream().map(GamePayWay::getPayDeviceId).distinct().collect(Collectors.toList());
|
|
|
- Map<Long, PayDeviceDTO> payDeviceMap = payDeviceService.payDeviceMap();
|
|
|
- List<GamePayWayVO> list = new ArrayList<>();
|
|
|
- payDeviceIdList.forEach(payDeviceId -> list.add(GamePayWayVO.builder()
|
|
|
- .id(payDeviceId)
|
|
|
- .payWayName(payDeviceMap.get(payDeviceId).getPayDeviceName())
|
|
|
- .build()));
|
|
|
- return list;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-// @Override
|
|
|
-// public List<GamePayWayVO> getByGameIdForStatusYes(Long gameId) {
|
|
|
-// List<GamePayWay> gamePayWayList = super.list(new LambdaQueryWrapper<GamePayWay>()
|
|
|
-// .eq(GamePayWay::getGameId, gameId)
|
|
|
-// .eq(GamePayWay::getStatus, StatusEnum.YES.getCode())
|
|
|
-// .select(GamePayWay::getId, GamePayWay::getPayName));
|
|
|
-// return BeanUtils.copyList(gamePayWayList, GamePayWayVO.class);
|
|
|
-// }
|
|
|
-
|
|
|
- @Override
|
|
|
- public Boolean saveOrUpdate(GamePayWayParam bo) {
|
|
|
- if (bo.getIsDelete() != null && bo.getIsDelete() == DeleteEnum.YES.getCode()) {
|
|
|
- if (bo.getId() == null) {
|
|
|
- throw new ParamNullException("Id");
|
|
|
- }
|
|
|
- return removeById(bo.getId());
|
|
|
- }
|
|
|
- return saveOrUpdate(BeanUtils.copy(bo, GamePayWay.class));
|
|
|
- }
|
|
|
+ @Autowired
|
|
|
+ private IPayWayService payWayService;
|
|
|
|
|
|
@Override
|
|
|
- public IPage<GamePayWayListVO> list(GamePayWayListParam param) {
|
|
|
+ public IPage<GamePayWayListVO> pageList(GamePayWayListParam param) {
|
|
|
Map<Long, GameCategoryDTO> gameCategoryMap = gameCategoryService.gameCategoryMap();
|
|
|
Map<Long, GameDTO> gameMap = gameService.gameMap();
|
|
|
+ Map<Long, PayDeviceDTO> payDeviceMap = payDeviceService.payDeviceMap();
|
|
|
+ Map<Long, PayWayDTO> payWayMap = payWayService.payWayMap();
|
|
|
return super.page(param.toPage(), new LambdaQueryWrapper<GamePayWay>()
|
|
|
.eq(param.getGameId() != null, GamePayWay::getGameId, param.getGameId())
|
|
|
.eq(param.getPayWayId() != null, GamePayWay::getPayWayId, param.getPayWayId())
|
|
|
- .eq(param.getStatus() != null, GamePayWay::getStatus, param.getStatus()))
|
|
|
- .convert(gamePayWay -> this.toVO(gameMap, gameCategoryMap, gamePayWay));
|
|
|
+ .eq(param.getStatus() != null, GamePayWay::getStatus, param.getStatus())
|
|
|
+ .orderByDesc(GamePayWay::getCreateTime))
|
|
|
+ .convert(gamePayWay -> this.toVO(gameMap, gameCategoryMap, gamePayWay, payWayMap, payDeviceMap));
|
|
|
}
|
|
|
|
|
|
- private GamePayWayListVO toVO(Map<Long, GameDTO> gameMap, Map<Long, GameCategoryDTO> gameCategoryMap, GamePayWay gamePayWay) {
|
|
|
+ private GamePayWayListVO toVO(Map<Long, GameDTO> gameMap, Map<Long, GameCategoryDTO> gameCategoryMap,
|
|
|
+ GamePayWay gamePayWay, Map<Long, PayWayDTO> payWayMap, Map<Long, PayDeviceDTO> payDeviceMap) {
|
|
|
+ GamePayWayListVO gamePayWayListVO = BeanUtils.copy(gamePayWay, GamePayWayListVO.class);
|
|
|
if (gamePayWay == null) {
|
|
|
return null;
|
|
|
}
|
|
|
- GamePayWayListVO gamePayWayListVO = BeanUtils.copy(gamePayWay, GamePayWayListVO.class);
|
|
|
GameDTO gameDTO = gameMap.get(gamePayWayListVO.getGameId());
|
|
|
if (gameDTO != null) {
|
|
|
gamePayWayListVO.setGameName(gameDTO.getName());
|
|
@@ -120,138 +76,68 @@ public class GamePayWayServiceImpl extends ServiceImpl<GamePayWayMapper, GamePay
|
|
|
gamePayWayListVO.setGameCategory(gameCategoryDTO.getName());
|
|
|
}
|
|
|
}
|
|
|
+ Long payWayId = gamePayWay.getPayWayId();
|
|
|
+ PayWayDTO payWayDTO = payWayMap.get(payWayId);
|
|
|
+ if (payWayDTO != null) {
|
|
|
+ gamePayWayListVO.setPayWayName(payWayDTO.getPayWayName());
|
|
|
+ }
|
|
|
+ PayDeviceDTO payDeviceDTO = payDeviceMap.get(gamePayWay.getPayDeviceId());
|
|
|
+ if (payDeviceDTO != null) {
|
|
|
+ gamePayWayListVO.setPayDeviceName(payDeviceDTO.getPayDeviceName());
|
|
|
+ }
|
|
|
+ if (Objects.equals(PayWayEnum.ALI_PAY.getPayWayId(), payWayId.intValue())) {
|
|
|
+ GamePayWayListVO.AliPayConfigBean aliPayConfigBean = new GamePayWayListVO.AliPayConfigBean();
|
|
|
+ aliPayConfigBean.setAppId(gamePayWay.getAppId());
|
|
|
+ gamePayWayListVO.setAliPayConfig(aliPayConfigBean);
|
|
|
+ }
|
|
|
+ if (Objects.equals(PayWayEnum.WX_PAY.getPayWayId(), payWayId.intValue())) {
|
|
|
+ GamePayWayListVO.WxPayConfigBean wxPayConfigBean = new GamePayWayListVO.WxPayConfigBean();
|
|
|
+ wxPayConfigBean.setPayBoxId(gamePayWay.getPayBoxId());
|
|
|
+ wxPayConfigBean.setThumbUrl(gamePayWay.getThumbUrl());
|
|
|
+ wxPayConfigBean.setAppId(gamePayWay.getAppId());
|
|
|
+ wxPayConfigBean.setMerchantNo(gamePayWay.getMerchantNo());
|
|
|
+ gamePayWayListVO.setWxPayConfig(wxPayConfigBean);
|
|
|
+ }
|
|
|
+ if (Objects.equals(PayWayEnum.MI_PAY.getPayWayId(), payWayId.intValue())) {
|
|
|
+ GameAppletDTO gameAppletDTO = gameAppletService.getByGameId(gamePayWay.getGameId());
|
|
|
+ GamePayWayListVO.MiPayConfigBean miPayConfigBean = new GamePayWayListVO.MiPayConfigBean();
|
|
|
+ miPayConfigBean.setAppId(gameAppletDTO.getMiPayAppId());
|
|
|
+ miPayConfigBean.setAppKey(gameAppletDTO.getMiPayAppKey());
|
|
|
+ miPayConfigBean.setAppKeyDev(gameAppletDTO.getMiPayAppKeyDev());
|
|
|
+ gamePayWayListVO.setMiPayConfig(miPayConfigBean);
|
|
|
+ }
|
|
|
return gamePayWayListVO;
|
|
|
}
|
|
|
|
|
|
-// /**
|
|
|
-// * 根据游戏id获取虚拟支付配置
|
|
|
-// *
|
|
|
-// * @param id : 游戏id
|
|
|
-// * @return : 返回游戏虚拟支付配置
|
|
|
-// */
|
|
|
-// @Override
|
|
|
-// public GameAnalogPayVO getGameAnalogPay(Long id) {
|
|
|
-// GamePayWay gamePayWay = super.getOne(new LambdaQueryWrapper<GamePayWay>()
|
|
|
-// .eq(GamePayWay::getPayWayId, PayWayEnum.MIPAY.getNum())
|
|
|
-// .eq(GamePayWay::getGameId, id));
|
|
|
-// if (gamePayWay == null || Strings.isBlank(gamePayWay.getPayConfig())) {
|
|
|
-// return GameAnalogPayVO.builder().gameId(id).build();
|
|
|
-// }
|
|
|
-// return GameAnalogPayVO.builder()
|
|
|
-// .id(gamePayWay.getId().toString())
|
|
|
-// .gameId(id)
|
|
|
-// .payConfig(JsonUtil.toObj(gamePayWay.getPayConfig(), GameAnalogPayVO.PayConfigBean.class))
|
|
|
-// .build();
|
|
|
-// }
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public Boolean statusUpdate(Long id, Integer status) {
|
|
|
+ return super.update(new LambdaUpdateWrapper<GamePayWay>()
|
|
|
+ .set(GamePayWay::getStatus, status)
|
|
|
+ .set(GamePayWay::getUpdateTime, LocalDateTime.now())
|
|
|
+ .eq(GamePayWay::getId, id));
|
|
|
+ }
|
|
|
|
|
|
-// /**
|
|
|
-// * 虚拟支付更新或者新增
|
|
|
-// *
|
|
|
-// * @param payParam : 新增或者更新参数
|
|
|
-// * @return : 返回新增或者更新的结果
|
|
|
-// */
|
|
|
-// @Override
|
|
|
-// public Boolean gameAnalogPayAddOrUpdate(GameAnalogPayParam payParam) {
|
|
|
-// GamePayWay gamePayWay = super.getOne(new LambdaQueryWrapper<GamePayWay>()
|
|
|
-// .eq(GamePayWay::getPayWayId, PayWayEnum.MIPAY.getNum())
|
|
|
-// .eq(GamePayWay::getGameId, payParam.getGameId()));
|
|
|
-// if (gamePayWay == null) {
|
|
|
-// gamePayWay = GamePayWay.builder()
|
|
|
-// .gameId(payParam.getGameId())
|
|
|
-// .payWayId(Long.valueOf(PayWayEnum.MIPAY.getNum()))
|
|
|
-// .payWayCode(PayWayEnum.MIPAY.getCode())
|
|
|
-// .payWayName(PayWayEnum.MIPAY.getName())
|
|
|
-// .payConfig(JsonUtil.toString(payParam.getPayConfig()))
|
|
|
-// .createTime(LocalDateTime.now())
|
|
|
-// .updateTime(LocalDateTime.now())
|
|
|
-// .build();
|
|
|
-// } else {
|
|
|
-// gamePayWay.setPayConfig(JsonUtil.toString(payParam.getPayConfig()));
|
|
|
-// gamePayWay.setUpdateTime(LocalDateTime.now());
|
|
|
-// }
|
|
|
-// return super.saveOrUpdate(gamePayWay);
|
|
|
-// }
|
|
|
-//
|
|
|
-// @Override
|
|
|
-// public AllGamePayWayByGameIdVO getAllGamePayWayByGameId(Long gameId) {
|
|
|
-// List<GamePayWay> gamePayWayList = super.list(new LambdaQueryWrapper<GamePayWay>()
|
|
|
-// .eq(GamePayWay::getGameId, gameId)
|
|
|
-// .eq(GamePayWay::getStatus, StatusEnum.YES.getCode())
|
|
|
-// );
|
|
|
-// if (CollectionUtils.isEmpty(gamePayWayList)) {
|
|
|
-// return null;
|
|
|
-// }
|
|
|
-// AllGamePayWayByGameIdVO data = new AllGamePayWayByGameIdVO();
|
|
|
-// gamePayWayList.stream().forEach(t -> {
|
|
|
-// //支付宝
|
|
|
-// if (PayWayEnum.ALIPAY.getNum().equals(t.getPayWayId())) {
|
|
|
-// if (Objects.isNull(t.getPayMerchantId()) || t.getPayMerchantId() == 0) {
|
|
|
-// //商户号为空则跳过
|
|
|
-// return;
|
|
|
-// }
|
|
|
-// PayMerchant payMerchantInfo = payMerchantService.getById(t.getPayMerchantId());
|
|
|
-// if (Objects.isNull(payMerchantInfo)) {
|
|
|
-// //商户号内容为空
|
|
|
-// return;
|
|
|
-// }
|
|
|
-// GameAlipayPayVO alipayPayVO = new GameAlipayPayVO();
|
|
|
-// alipayPayVO.setMerchantNo(payMerchantInfo.getMerchantNo());
|
|
|
-// alipayPayVO.setMerchantName(payMerchantInfo.getMerchantName());
|
|
|
-// alipayPayVO.setLoginName(payMerchantInfo.getLoginName());
|
|
|
-// alipayPayVO.setManagePerson(payMerchantInfo.getManagePerson());
|
|
|
-// data.setAlipayPayVO(alipayPayVO);
|
|
|
-// }
|
|
|
-// //微信
|
|
|
-// if (PayWayEnum.WXPAY.getNum().equals(t.getPayWayId())) {
|
|
|
-//
|
|
|
-// if (Objects.isNull(t.getPayBoxId()) || t.getPayBoxId() == 0) {
|
|
|
-// //商户号为空则跳过
|
|
|
-// return;
|
|
|
-// }
|
|
|
-// PayBox payBoxInfo = payBoxService.getById(t.getPayBoxId());
|
|
|
-// if (Objects.isNull(payBoxInfo) || Objects.isNull(payBoxInfo.getPayApplicationId()) ||
|
|
|
-// payBoxInfo.getPayApplicationId() <= 0) {
|
|
|
-// return;
|
|
|
-// }
|
|
|
-// PayApplication payApplicationInfo = payApplicationService.getById(payBoxInfo.getPayApplicationId());
|
|
|
-// if (Objects.isNull(payApplicationInfo)) {
|
|
|
-// return;
|
|
|
-// }
|
|
|
-// GameWxpayPayVO gameWxpayPayVO = new GameWxpayPayVO();
|
|
|
-// gameWxpayPayVO.setBoxName(payBoxInfo.getName());
|
|
|
-// gameWxpayPayVO.setApplicationName(payApplicationInfo.getName());
|
|
|
-// gameWxpayPayVO.setAppId(payApplicationInfo.getAppId());
|
|
|
-// gameWxpayPayVO.setPrimevalId(payApplicationInfo.getPrimevalId());
|
|
|
-// gameWxpayPayVO.setCompany(payApplicationInfo.getCompany());
|
|
|
-// gameWxpayPayVO.setManagePerson(payApplicationInfo.getManagePerson());
|
|
|
-//
|
|
|
-// //获取商户号列表
|
|
|
-// List<PayMerchant> payMerchantList = payMerchantService.list();
|
|
|
-// Map<String, PayMerchant> payMerchantData = payMerchantList.stream().collect(Collectors.toMap(PayMerchant::getMerchantNo, PayMerchant -> PayMerchant));
|
|
|
-// if (StringUtils.isNotEmpty(payBoxInfo.getPayMerchantId())) {
|
|
|
-// String merchantDetail = payBoxService.getMerchantDetail(payMerchantData, payBoxInfo.getPayMerchantId());
|
|
|
-// gameWxpayPayVO.setPayMerchantDetail(merchantDetail);
|
|
|
-// }
|
|
|
-// data.setWxpayPayVO(gameWxpayPayVO);
|
|
|
-// }
|
|
|
-// //米大师虚拟支付
|
|
|
-// if (PayWayEnum.MIPAY.getNum().equals(t.getPayWayId())) {
|
|
|
-// GameAnalogPayVO.PayConfigBean payConfigBean = JsonUtil.toObj(t.getPayConfig(), GameAnalogPayVO.PayConfigBean.class);
|
|
|
-// data.setAnalogPayVO(payConfigBean);
|
|
|
-// }
|
|
|
-// //支付策略配置
|
|
|
-// GameStrategy gameStrategy = gameStrategyService.getOne(new LambdaQueryWrapper<GameStrategy>()
|
|
|
-// .eq(GameStrategy::getGameId, gameId)
|
|
|
-// .eq(GameStrategy::getStatus, StatusEnum.YES.getCode()).last("limit 1")
|
|
|
-// );
|
|
|
-// if (!Objects.isNull(gameStrategy)) {
|
|
|
-// GameStrategyInfoVO gameStrategyInfo = BeanUtils.copy(gameStrategy, GameStrategyInfoVO.class);
|
|
|
-// if (StringUtils.isNotEmpty(gameStrategy.getConfig())) {
|
|
|
-// gameStrategyInfo.setConfig(BeanUtils.copy(gameStrategy.getConfig(), GameStrategyOrderVO.class));
|
|
|
-// }
|
|
|
-// data.setGameStrategyVO(gameStrategyInfo);
|
|
|
-// }
|
|
|
-// });
|
|
|
-// return data;
|
|
|
-// }
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public boolean deleteById(Long id) {
|
|
|
+ return super.removeById(id);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<GamePayWayVO> getByGameId(Long gameId) {
|
|
|
+ List<GamePayWay> gamePayWayList = super.list(new LambdaQueryWrapper<GamePayWay>()
|
|
|
+ .eq(GamePayWay::getGameId, gameId));
|
|
|
+ if (CollectionUtils.isEmpty(gamePayWayList)) {
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
+ List<Long> payDeviceIdList = gamePayWayList.stream().map(GamePayWay::getPayDeviceId).distinct().collect(Collectors.toList());
|
|
|
+ Map<Long, PayDeviceDTO> payDeviceMap = payDeviceService.payDeviceMap();
|
|
|
+ List<GamePayWayVO> list = new ArrayList<>();
|
|
|
+ payDeviceIdList.forEach(payDeviceId -> list.add(GamePayWayVO.builder()
|
|
|
+ .id(payDeviceId)
|
|
|
+ .payWayName(payDeviceMap.get(payDeviceId).getPayDeviceName())
|
|
|
+ .build()));
|
|
|
+ return list;
|
|
|
+ }
|
|
|
}
|