|
|
@@ -3,18 +3,26 @@ package com.zhongshu.card.server.core.service.paySetting;
|
|
|
import com.github.microservice.net.ResultContent;
|
|
|
import com.github.microservice.types.payment.PaymentType;
|
|
|
import com.zhongshu.card.client.model.paySetting.paySetting.PayOrderSettingModel;
|
|
|
+import com.zhongshu.card.client.model.paySetting.paySetting.PayOrderSettingParam;
|
|
|
+import com.zhongshu.card.client.model.projectAbout.PayChannelConfigModel;
|
|
|
import com.zhongshu.card.client.type.DataState;
|
|
|
import com.zhongshu.card.server.core.dao.projectAbout.PayOrderSettingDao;
|
|
|
import com.zhongshu.card.server.core.dao.projectAbout.ProjectPaySettingDao;
|
|
|
+import com.zhongshu.card.server.core.domain.paySetting.PayOrderSetting;
|
|
|
import com.zhongshu.card.server.core.domain.paySetting.ProjectPaySetting;
|
|
|
import com.zhongshu.card.server.core.service.base.SuperService;
|
|
|
+import com.zhongshu.card.server.core.util.BeanUtils;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.ObjectUtils;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @author TRX
|
|
|
@@ -30,6 +38,9 @@ public class PayOrderSettingService extends SuperService {
|
|
|
@Autowired
|
|
|
private ProjectPaySettingDao projectPaySettingDao;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ProjectChannelConfigService projectChannelConfigService;
|
|
|
+
|
|
|
/**
|
|
|
* 得到用户的支付服务
|
|
|
*
|
|
|
@@ -38,9 +49,56 @@ public class PayOrderSettingService extends SuperService {
|
|
|
public ResultContent<List<PayOrderSettingModel>> getUserPayOrderSetting() {
|
|
|
String userId = getCurrentUserId();
|
|
|
String projectOid = getCurrentProjectOid();
|
|
|
+ if (StringUtils.isEmpty(userId) || StringUtils.isEmpty(projectOid)) {
|
|
|
+ return ResultContent.buildFail("项目信息失败");
|
|
|
+ }
|
|
|
|
|
|
+ List<PayOrderSetting> payOrderSettings = getUserPayOrderSettings(userId, projectOid);
|
|
|
+ List<PayOrderSettingModel> models = new ArrayList<>();
|
|
|
+ if (ObjectUtils.isNotEmpty(payOrderSettings)) {
|
|
|
+ models = payOrderSettings.stream().map(this::toModel).collect(Collectors.toUnmodifiableList());
|
|
|
+ }
|
|
|
+ return ResultContent.buildSuccess(models);
|
|
|
+ }
|
|
|
|
|
|
- return ResultContent.buildSuccess();
|
|
|
+
|
|
|
+ public List<PayOrderSetting> getUserPayOrderSettings(String userId, String projectOid) {
|
|
|
+ // 已有的数据
|
|
|
+ List<PayOrderSetting> payOrderSettings = payOrderSettingDao.findByUserIdAndProjectOidOrderBySortAsc(userId, projectOid);
|
|
|
+ long max = 1;
|
|
|
+ HashMap<PaymentType, PayOrderSetting> map = new HashMap<>();
|
|
|
+ if (ObjectUtils.isNotEmpty(payOrderSettings)) {
|
|
|
+ for (PayOrderSetting temp : payOrderSettings) {
|
|
|
+ long sort = temp.getSort();
|
|
|
+ if (sort > max) {
|
|
|
+ max = sort;
|
|
|
+ }
|
|
|
+ map.put(temp.getPaymentType(), temp);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 所有的支付渠道
|
|
|
+ List<PaymentType> paymentTypes = getProjectPayment(projectOid);
|
|
|
+ List<PayOrderSetting> newList = new ArrayList<>();
|
|
|
+ if (ObjectUtils.isNotEmpty(paymentTypes)) {
|
|
|
+ long i = max;
|
|
|
+ for (PaymentType paymentType : paymentTypes) {
|
|
|
+ PayOrderSetting payOrderSetting = null;
|
|
|
+ if (map.containsKey(paymentType)) {
|
|
|
+ payOrderSetting = map.get(paymentType);
|
|
|
+ } else {
|
|
|
+ payOrderSetting = new PayOrderSetting();
|
|
|
+ i++;
|
|
|
+ payOrderSetting.setSort(i);
|
|
|
+ }
|
|
|
+ payOrderSetting.setProjectOid(projectOid);
|
|
|
+ payOrderSetting.setUserId(userId);
|
|
|
+ payOrderSetting.setPaymentType(paymentType);
|
|
|
+ payOrderSettings.add(payOrderSetting);
|
|
|
+ newList.add(payOrderSetting);
|
|
|
+ }
|
|
|
+ payOrderSettingDao.saveAll(newList);
|
|
|
+ }
|
|
|
+ return newList;
|
|
|
}
|
|
|
|
|
|
public List<PaymentType> getProjectPayment(String projectOid) {
|
|
|
@@ -52,13 +110,39 @@ public class PayOrderSettingService extends SuperService {
|
|
|
continue;
|
|
|
}
|
|
|
PaymentType channelType = projectPaySetting.getChannelType();
|
|
|
-// if (channelType == PaymentType.WeChat) {
|
|
|
-// channelType = PaymentType.UserWallet;
|
|
|
-// }
|
|
|
paymentTypes.add(channelType);
|
|
|
}
|
|
|
}
|
|
|
return paymentTypes;
|
|
|
}
|
|
|
|
|
|
+ public ResultContent saveOrder(PayOrderSettingParam param) {
|
|
|
+ String userId = getCurrentUserId();
|
|
|
+ String projectOid = getCurrentProjectOid();
|
|
|
+
|
|
|
+ Map<String, Long> sortMap = param.getData();
|
|
|
+ List<PayOrderSetting> payOrderSettings = payOrderSettingDao.findByUserIdAndProjectOidOrderBySortAsc(userId, projectOid);
|
|
|
+ if (ObjectUtils.isNotEmpty(payOrderSettings)) {
|
|
|
+ for (PayOrderSetting payOrderSetting : payOrderSettings) {
|
|
|
+ if (sortMap.containsKey(payOrderSetting.getId())) {
|
|
|
+ payOrderSetting.setSort(sortMap.get(payOrderSetting.getId()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ payOrderSettingDao.saveAll(payOrderSettings);
|
|
|
+ }
|
|
|
+ return ResultContent.buildSuccess();
|
|
|
+ }
|
|
|
+
|
|
|
+ public PayOrderSettingModel toModel(PayOrderSetting entity) {
|
|
|
+ PayOrderSettingModel model = new PayOrderSettingModel();
|
|
|
+ if (ObjectUtils.isNotEmpty(entity)) {
|
|
|
+ BeanUtils.copyProperties(entity, model);
|
|
|
+ PayChannelConfigModel channelConfigModel = projectChannelConfigService.getProjectPayChannelModel(entity.getPaymentType());
|
|
|
+ model.setName(channelConfigModel.getName());
|
|
|
+ model.setLogo(channelConfigModel.getLogo());
|
|
|
+ model.setPaymentChannelType(channelConfigModel.getPaymentChannelType());
|
|
|
+ }
|
|
|
+ return model;
|
|
|
+ }
|
|
|
+
|
|
|
}
|