Commit 7188ae0e authored by Administrator's avatar Administrator

创建项目

parent 09570a5b
package cn.quant.baa.pay.config;
package cn.quant.baa.pay.acquirer;
import cn.quant.baa.pay.model.MerchantAcquirerProfile;
import cn.quant.spring.ExistsException;
import cn.quant.spring.util.StringUtils;
import com.google.common.base.Supplier;
......@@ -16,18 +15,18 @@ import java.util.Map;
/**
* Created by Administrator on 2021/8/22 0022.
*/
public class MerchantAcquirerBuilder {
public class AcquirerConfiguration {
private Table<String, String, Collection<MerchantAcquirerProfile>> bigTable = Tables.newCustomTable(Maps.newHashMap()
private Table<String, String, Collection<AcquirerProperties>> bigTable = Tables.newCustomTable(Maps.newHashMap()
, new Supplier() {
public Map<String, Collection<MerchantAcquirerProfile>> get() {
public Map<String, Collection<AcquirerProperties>> get() {
return Maps.newLinkedHashMap();
}
});
private Map<Long, MerchantAcquirerProfile> map = new HashMap<>();
private Map<Long, AcquirerProperties> map = new HashMap<>();
void add(MerchantAcquirerProfile profile) {
void add(AcquirerProperties profile) {
if (map.containsKey(profile.getMchChanId())) {
throw new ExistsException(StringUtils.format("Existing merchant acquirer {}.", profile.getMchChanId()));
}
......@@ -35,7 +34,7 @@ public class MerchantAcquirerBuilder {
String appId = profile.getPayAppId();
String chanCode = profile.getPayChanCode();
Collection<MerchantAcquirerProfile> profiles = bigTable.get(appId, chanCode);
Collection<AcquirerProperties> profiles = bigTable.get(appId, chanCode);
if (profiles == null) {
profiles = new LinkedList<>();
bigTable.put(appId, chanCode, profiles);
......@@ -43,19 +42,19 @@ public class MerchantAcquirerBuilder {
profiles.add(profile);
}
public Map<String, Collection<MerchantAcquirerProfile>> get(String mchId, String channel) {
Collection<MerchantAcquirerProfile> profiles = bigTable.get(mchId, channel);
public Map<String, Collection<AcquirerProperties>> get(String mchId, String channel) {
Collection<AcquirerProperties> profiles = bigTable.get(mchId, channel);
return toMap(profiles);
}
public Map<String, Collection<MerchantAcquirerProfile>> get(String mchId) {
public Map<String, Collection<AcquirerProperties>> get(String mchId) {
return bigTable.row(mchId);
}
public Map<String, Collection<MerchantAcquirerProfile>> toMap(Collection<MerchantAcquirerProfile> profiles) {
Map<String, Collection<MerchantAcquirerProfile>> map = new HashMap<>();
for (MerchantAcquirerProfile profile : profiles) {
Collection<MerchantAcquirerProfile> collection = map.get(profile.getPayChanCode());
public Map<String, Collection<AcquirerProperties>> toMap(Collection<AcquirerProperties> profiles) {
Map<String, Collection<AcquirerProperties>> map = new HashMap<>();
for (AcquirerProperties profile : profiles) {
Collection<AcquirerProperties> collection = map.get(profile.getPayChanCode());
if (collection == null) {
collection = new LinkedList<>();
map.put(profile.getPayChanCode(), collection);
......@@ -65,7 +64,7 @@ public class MerchantAcquirerBuilder {
return map;
}
public MerchantAcquirerProfile get(Long channelId) {
public AcquirerProperties get(Long channelId) {
return map.get(channelId);
}
};
\ No newline at end of file
package cn.quant.baa.pay.config;
package cn.quant.baa.pay.acquirer;
import cn.quant.baa.pay.jpa.entity.*;
import cn.quant.baa.pay.model.MerchantAcquirerProfile;
import com.google.common.base.Supplier;
import com.google.common.collect.Maps;
import com.google.common.collect.Table;
......@@ -14,7 +13,7 @@ import java.util.Map;
/**
* Created by Administrator on 2021/8/22 0022.
*/
public class AcquirerBuilder {
public class AcquirerConfigurer {
private Table<Class, Object, Object> bigTable = Tables.newCustomTable(Maps.newHashMap(), new Supplier() {
public Map<Object, Object> get() {
......@@ -23,22 +22,22 @@ public class AcquirerBuilder {
});
public MerchantAcquirerBuilder build(Collection<MchChannelEntity> entities){
MerchantAcquirerBuilder builder = new MerchantAcquirerBuilder();
public AcquirerConfiguration configure(Collection<MchChannelEntity> entities){
AcquirerConfiguration configuration = new AcquirerConfiguration();
for (MchChannelEntity entity : entities) {
MerchantAcquirerProfile profile = build(entity);
builder.add(profile);
AcquirerProperties profile = configure(entity);
configuration.add(profile);
}
return builder;
return configuration;
}
public void release(){
bigTable.clear();
}
public MerchantAcquirerProfile build(MchChannelEntity entity) {
public AcquirerProperties configure(MchChannelEntity entity) {
MerchantAcquirerProfile profile = new MerchantAcquirerProfile();
AcquirerProperties profile = new AcquirerProperties();
profile.setMchChanId(entity.getId());
profile.setPayChanCode(entity.getPayChanCode());
profile.setPayAcctId(entity.getPayAcctId());
......@@ -81,11 +80,11 @@ public class AcquirerBuilder {
}
public class PayApp {
public AcquirerBuilder apps(Collection<PayAppEntity> entities) {
public AcquirerConfigurer apps(Collection<PayAppEntity> entities) {
for (PayAppEntity entity : entities) {
bigTable.put(entity.getClass(), entity.getPayAppId(), entity);
}
return AcquirerBuilder.this;
return AcquirerConfigurer.this;
}
}
}
package cn.quant.baa.pay.model;
package cn.quant.baa.pay.acquirer;
import cn.quant.baa.pay.dict.AccessCode;
import cn.quant.baa.pay.dict.AccessType;
......@@ -10,7 +10,7 @@ import java.time.LocalDate;
/**
* Created by Administrator on 2021/8/22 0022.
*/
public class MerchantAcquirerProfile implements Serializable{
public class AcquirerProperties implements Serializable{
private static final long serialVersionUID = -9197591972747983682L;
......@@ -27,9 +27,9 @@ public class MerchantAcquirerProfile implements Serializable{
private String name;
private String encryptKey;
private String secretKey;
private String encryptType;
private String secretType;
private String signType;
......@@ -114,20 +114,20 @@ public class MerchantAcquirerProfile implements Serializable{
this.name = name;
}
public String getEncryptKey() {
return encryptKey;
public String getSecretKey() {
return secretKey;
}
public void setEncryptKey(String encryptKey) {
this.encryptKey = encryptKey;
public void setSecretKey(String secretKey) {
this.secretKey = secretKey;
}
public String getEncryptType() {
return encryptType;
public String getSecretType() {
return secretType;
}
public void setEncryptType(String encryptType) {
this.encryptType = encryptType;
public void setSecretType(String secretType) {
this.secretType = secretType;
}
public String getSignType() {
......@@ -284,7 +284,7 @@ public class MerchantAcquirerProfile implements Serializable{
@Override
public String toString() {
final StringBuilder sb = new StringBuilder("MerchantAcquirerProfile{");
final StringBuilder sb = new StringBuilder("AcquirerProperties{");
sb.append("mchChanId=").append(mchChanId);
sb.append(", payChanCode='").append(payChanCode).append('\'');
sb.append(", payAcctId='").append(payAcctId).append('\'');
......
package cn.quant.baa.pay.acquirer;
import cn.quant.spring.security.Base64Cipher;
import cn.quant.spring.security.CharacterCipher;
import javax.crypto.Cipher;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.SecretKeySpec;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
/**
* Created by Administrator on 2021/8/31 0031.
*/
public abstract class MerchantAcquirer {
protected CharacterCipher characterCipher;
protected Cipher cipher;
protected SecretKeySpec secretKey;
public MerchantAcquirer init(AcquirerProperties properties) throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException {
characterCipher = new Base64Cipher();
String secretType = properties.getSecretType();
if (secretType.startsWith("AES")) {
secretKey = new SecretKeySpec(properties.getSecretKey().getBytes(), "AES");
}
cipher = Cipher.getInstance(secretType);
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
Base64.getEncoder().encodeToString("aaa".getBytes());
// byte[] raw = sKey.getBytes("utf-8");
// SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
// Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");//"算法/模式/补码方式"
// cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
// byte[] encrypted = cipher.doFinal(sSrc.getBytes("utf-8"));
// return new BASE64Encoder().encode(encrypted);//此处使用BASE64做转码功能,同时能起到2次加密的作用。
return this;
}
}
package cn.quant.baa.pay.acquirer.weixin;
import cn.quant.baa.pay.acquirer.MerchantAcquirer;
/**
* Created by Administrator on 2021/8/31 0031.
*/
public class WeiXinMerchantAcquirer extends MerchantAcquirer {
}
package cn.quant.baa.pay.config;
import cn.quant.baa.pay.acquirer.AcquirerConfiguration;
import cn.quant.baa.pay.acquirer.AcquirerConfigurer;
import cn.quant.baa.pay.jpa.entity.*;
import cn.quant.baa.pay.jpa.repository.*;
import cn.quant.baa.pay.model.DictionaryItem;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
......@@ -31,20 +32,20 @@ public class ServerConfiguration {
@Autowired
private DictionaryRepository dictionaryRepository;
public AcquirerBuilder acquirerBuilder() {
public AcquirerConfigurer configurer() {
List<PayAccountEntity> accounts = payAccountRepository.findAll();
List<PayFeatureEntity> features = payFeatureRepository.findAll();
List<PayAppEntity> apps = payAppRepository.findAll();
AcquirerBuilder builder = new AcquirerBuilder();
builder.accounts(accounts)
AcquirerConfigurer configurer = new AcquirerConfigurer();
configurer.accounts(accounts)
.features(features)
.apps(apps);
accounts.clear();
features.clear();
apps.clear();
return builder;
return configurer;
}
@Bean
......@@ -63,12 +64,12 @@ public class ServerConfiguration {
}
@Bean
public MerchantAcquirerBuilder merchantAcquirerBuilder() {
AcquirerBuilder acquirerBuilder = acquirerBuilder();
public AcquirerConfiguration acquirerConfiguration() {
AcquirerConfigurer configurer = configurer();
List<MchChannelEntity> entities = mchChannelRepository.findAll();
MerchantAcquirerBuilder builder = acquirerBuilder.build(entities);
acquirerBuilder.release();
AcquirerConfiguration configuration = configurer.configure(entities);
configurer.release();
entities.clear();
return builder;
return configuration;
}
}
package cn.quant.baa.pay.jpa.entity;
import cn.quant.baa.pay.acquirer.AcquirerProperties;
import cn.quant.baa.pay.context.TransactionSession;
import cn.quant.baa.pay.dict.*;
import cn.quant.baa.pay.model.GoodsDetail;
import cn.quant.baa.pay.model.MerchantAcquirerProfile;
import cn.quant.baa.pay.model.PayRequestData;
import cn.quant.baa.pay.model.web.GoodsDetail;
import cn.quant.baa.pay.model.web.PayRequestData;
import cn.quant.spring.util.DateUtils;
import java.math.BigDecimal;
......@@ -59,7 +59,7 @@ public class EntityBuilder {
return account;
}
public static PayHistoryEntity history(AccountEntity account, PayHistoryIds ids, long historyId, PayRequestData data, MerchantAcquirerProfile profile
public static PayHistoryEntity history(AccountEntity account, PayHistoryIds ids, long historyId, PayRequestData data, AcquirerProperties profile
, TransactionSession session) {
BigDecimal discount = new BigDecimal(data.getDiscounts());
......
......@@ -29,11 +29,11 @@ public class PayAccountEntity extends OptimisticEntity implements Serializable {
@Column(name = "NAME", nullable = false, length = 255)
private String name;
@Column(name = "ENCRYPT_KEY", nullable = false, length = 64)
private String encryptKey;
@Column(name = "SECRET_KEY", nullable = false, length = 64)
private String secretKey;
@Column(name = "ENCRYPT_TYPE", nullable = false, length = 32)
private String encryptType;
@Column(name = "SECRET_TYPE", nullable = false, length = 32)
private String secretType;
@Column(name = "SIGN_TYPE", nullable = false, length = 32)
private String signType;
......@@ -76,20 +76,20 @@ public class PayAccountEntity extends OptimisticEntity implements Serializable {
this.name = name;
}
public String getEncryptKey() {
return encryptKey;
public String getSecretKey() {
return secretKey;
}
public void setEncryptKey(String encryptKey) {
this.encryptKey = encryptKey;
public void setSecretKey(String encryptKey) {
this.secretKey = encryptKey;
}
public String getEncryptType() {
return encryptType;
public String getSecretType() {
return secretType;
}
public void setEncryptType(String encryptType) {
this.encryptType = encryptType;
public void setSecretType(String encryptType) {
this.secretType = encryptType;
}
public String getSignType() {
......@@ -136,8 +136,8 @@ public class PayAccountEntity extends OptimisticEntity implements Serializable {
sb.append(", payChanType=").append(payChanType);
sb.append(", domain='").append(domain).append('\'');
sb.append(", name='").append(name).append('\'');
sb.append(", encryptKey='").append(encryptKey).append('\'');
sb.append(", encryptType='").append(encryptType).append('\'');
sb.append(", secretKey='").append(secretKey).append('\'');
sb.append(", secretType='").append(secretType).append('\'');
sb.append(", signType='").append(signType).append('\'');
sb.append(", privateKey='").append(privateKey).append('\'');
sb.append(", payPublicKey='").append(payPublicKey).append('\'');
......
......@@ -14,6 +14,4 @@ import org.springframework.stereotype.Repository;
@Repository
public interface PayHistoryRepository extends JpaRepository<PayHistoryEntity, PayHistoryIds> {
@Query("")
int counAAAt(PayHistoryIds ids);
}
package cn.quant.baa.pay.model;
/**
* Created by Administrator on 2021/8/23 0023.
*/
public class Acquirer {
private String code;
private String name;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package cn.quant.baa.pay.model;
import cn.quant.baa.pay.acquirer.AcquirerProperties;
import cn.quant.baa.pay.model.web.MerchantAcquirerProperties;
import cn.quant.baa.pay.config.DictionaryViewer;
import cn.quant.baa.pay.dict.DictType;
import cn.quant.baa.pay.model.web.MerchantChannelResponseData;
import cn.quant.spring.UnsupportedException;
import cn.quant.spring.util.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -21,8 +24,8 @@ public class ModelBuilder {
@Autowired
private DictionaryViewer dictionaryViewer;
public MerchantAcquirer toModel(MerchantAcquirerProfile profile) {
MerchantAcquirer response = new MerchantAcquirer();
public MerchantAcquirerProperties toModel(AcquirerProperties profile) {
MerchantAcquirerProperties response = new MerchantAcquirerProperties();
response.setAccessCode(profile.getAccessCode().name());
response.setAccessType(profile.getAccessType().name());
response.setChanCode(profile.getPayChanCode());
......@@ -34,27 +37,30 @@ public class ModelBuilder {
return response;
}
public Collection<MerchantAcquirer> toModel(Collection<MerchantAcquirerProfile> profiles) {
LinkedList<MerchantAcquirer> list = new LinkedList<>();
for (MerchantAcquirerProfile profile : profiles) {
public Collection<MerchantAcquirerProperties> toModel(Collection<AcquirerProperties> profiles) {
LinkedList<MerchantAcquirerProperties> list = new LinkedList<>();
for (AcquirerProperties profile : profiles) {
list.add(toModel(profile));
}
return list;
}
public Map<String, MerchantAcquirerBook> toModel(Map<String, Collection<MerchantAcquirerProfile>> profiles) {
Map<String, MerchantAcquirerBook> models = new HashMap<>();
public Map<String, MerchantChannelResponseData> toModel(Map<String, Collection<AcquirerProperties>> profiles, String access) {
Map<String, MerchantChannelResponseData> models = new HashMap<>();
for (String code : profiles.keySet()) {
DictionaryItem item = dictionaryViewer.get(DictType.PAY, code);
if (item == null) {
throw new UnsupportedException(StringUtils.format("Dictionary item is null({}, {}).", DictType.PAY, code));
}
Collection<MerchantAcquirerProfile> collection = profiles.get(code);
MerchantAcquirerBook book = new MerchantAcquirerBook();
Collection<AcquirerProperties> collection = profiles.get(code);
MerchantChannelResponseData book = new MerchantChannelResponseData();
book.setCode(code);
book.setName(item.getName());
book.setImageUrl(item.getImageUrl());
for (MerchantAcquirerProfile profile : collection) {
for (AcquirerProperties profile : collection) {
if ((access != null) && (!access.equals(profile.getAccessCode().name()))) {
continue;
}
book.add(toModel(profile));
}
models.put(book.getCode(), book);
......
package cn.quant.baa.pay.model;
package cn.quant.baa.pay.model.web;
import javax.validation.constraints.*;
import java.io.Serializable;
......
package cn.quant.baa.pay.model;
package cn.quant.baa.pay.model.web;
import java.io.Serializable;
/**
* Created by Administrator on 2021/8/23 0023.
*/
public class MerchantAcquirer implements Serializable {
public class MerchantAcquirerProperties implements Serializable {
private static final long serialVersionUID = 1777009242558105988L;
private Long chanId;
private String chanCode;
......@@ -82,7 +82,7 @@ public class MerchantAcquirer implements Serializable {
@Override
public String toString() {
final StringBuilder sb = new StringBuilder("MerchantAcquirer{");
final StringBuilder sb = new StringBuilder("MerchantAcquirerProperties{");
sb.append("chanId=").append(chanId);
sb.append(", chanCode='").append(chanCode).append('\'');
sb.append(", chanType='").append(chanType).append('\'');
......
package cn.quant.baa.pay.model;
package cn.quant.baa.pay.model.web;
import java.io.Serializable;
import java.util.HashMap;
......@@ -7,7 +7,7 @@ import java.util.Map;
/**
* Created by Administrator on 2021/8/23 0023.
*/
public class MerchantAcquirerBook implements Serializable {
public class MerchantChannelResponseData implements Serializable {
private static final long serialVersionUID = -7479646457077040392L;
private String code;
......@@ -16,17 +16,17 @@ public class MerchantAcquirerBook implements Serializable {
private String imageUrl;
private Map<String, MerchantAcquirer> acquirers;
private Map<String, MerchantAcquirerProperties> acquirers;
public MerchantAcquirerBook() {
acquirers = new HashMap<String, MerchantAcquirer>();
public MerchantChannelResponseData() {
acquirers = new HashMap<String, MerchantAcquirerProperties>();
}
public Map<String, MerchantAcquirer> getAcquirers() {
public Map<String, MerchantAcquirerProperties> getAcquirers() {
return acquirers;
}
public void add(MerchantAcquirer acquirer) {
public void add(MerchantAcquirerProperties acquirer) {
acquirers.put(acquirer.getAccessCode(), acquirer);
}
......@@ -56,7 +56,7 @@ public class MerchantAcquirerBook implements Serializable {
@Override
public String toString() {
final StringBuilder sb = new StringBuilder("MerchantAcquirerBook{");
final StringBuilder sb = new StringBuilder("MerchantChannelResponseData{");
sb.append("code='").append(code).append('\'');
sb.append(", name='").append(name).append('\'');
sb.append(", imageUrl='").append(imageUrl).append('\'');
......
package cn.quant.baa.pay.model;
package cn.quant.baa.pay.model.web;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
......
package cn.quant.baa.pay.service;
import cn.quant.baa.pay.model.MerchantChannelRequestData;
import cn.quant.baa.pay.config.MerchantAcquirerBuilder;
import cn.quant.baa.pay.model.MerchantAcquirer;
import cn.quant.baa.pay.model.MerchantAcquirerBook;
import cn.quant.baa.pay.model.MerchantAcquirerProfile;
import cn.quant.baa.pay.acquirer.AcquirerProperties;
import cn.quant.baa.pay.model.web.MerchantAcquirerProperties;
import cn.quant.baa.pay.model.web.MerchantChannelResponseData;
import cn.quant.baa.pay.model.web.MerchantChannelRequestData;
import cn.quant.baa.pay.acquirer.AcquirerConfiguration;
import cn.quant.baa.pay.model.ModelBuilder;
import cn.quant.spring.util.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -20,39 +20,39 @@ import java.util.Map;
@Service
public class MerchantService {
@Autowired
private MerchantAcquirerBuilder merchantAcquirerBuilder;
private AcquirerConfiguration acquirerConfiguration;
@Autowired
private ModelBuilder modelBuilder;
@Cacheable(cacheManager = "profileCacheManager"
, cacheNames = "LOCAL_PROFILE"
, key = "#requestData.persistenceKey()")
public Map<String, MerchantAcquirerBook> getChannels(MerchantChannelRequestData requestData) {
// @Cacheable(cacheManager = "profileCacheManager"
// , cacheNames = "LOCAL_PROFILE"
// , key = "#requestData.persistenceKey()")
public Map<String, MerchantChannelResponseData> getChannels(MerchantChannelRequestData requestData) {
String mchId = requestData.getMchId();
String channel = requestData.getChannel();
Map<String, Collection<MerchantAcquirerProfile>> profiles;
Map<String, Collection<AcquirerProperties>> profiles;
if (StringUtils.isEmpty(channel)) {
profiles = merchantAcquirerBuilder.get(mchId);
profiles = acquirerConfiguration.get(mchId);
} else {
profiles = merchantAcquirerBuilder.get(mchId, channel);
profiles = acquirerConfiguration.get(mchId, channel);
}
Map<String, MerchantAcquirerBook> response = modelBuilder.toModel(profiles);
Map<String, MerchantChannelResponseData> response = modelBuilder.toModel(profiles, requestData.getAccess());
return response;
}
public MerchantAcquirer getChannel(MerchantChannelRequestData requestData) {
public MerchantAcquirerProperties getChannel(MerchantChannelRequestData requestData) {
return getChannel(Long.parseLong(requestData.getChanId()));
}
@Cacheable(cacheManager = "profileCacheManager"
, cacheNames = "LOCAL_PROFILE"
, key = "#id")
public MerchantAcquirer getChannel(Long id) {
MerchantAcquirerProfile profile = merchantAcquirerBuilder.get(id);
public MerchantAcquirerProperties getChannel(Long id) {
AcquirerProperties profile = acquirerConfiguration.get(id);
return modelBuilder.toModel(profile);
}
}
package cn.quant.baa.pay.service;
import cn.quant.baa.pay.config.MerchantAcquirerBuilder;
import cn.quant.baa.pay.acquirer.AcquirerConfiguration;
import cn.quant.baa.pay.context.TransactionSession;
import cn.quant.baa.pay.jpa.entity.*;
import cn.quant.baa.pay.model.AssertUtils;
import cn.quant.baa.pay.model.GoodsDetail;
import cn.quant.baa.pay.model.MerchantAcquirerProfile;
import cn.quant.baa.pay.model.PayRequestData;
import cn.quant.baa.pay.util.AssertUtils;
import cn.quant.baa.pay.model.web.GoodsDetail;
import cn.quant.baa.pay.acquirer.AcquirerProperties;
import cn.quant.baa.pay.model.web.PayRequestData;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -28,7 +28,7 @@ public class TransactionService extends BusinessService {
private static final Logger logger = LoggerFactory.getLogger(TransactionService.class);
@Autowired
private MerchantAcquirerBuilder merchantAcquirerBuilder;
private AcquirerConfiguration acquirerConfiguration;
@Transactional(propagation = Propagation.NOT_SUPPORTED)
public void check(PayHistoryIds ids, TransactionSession session) {
......@@ -44,7 +44,7 @@ public class TransactionService extends BusinessService {
validate(data);
String chanId = data.getChanId();
MerchantAcquirerProfile profile = merchantAcquirerBuilder.get(Long.valueOf(chanId));
AcquirerProperties profile = acquirerConfiguration.get(Long.valueOf(chanId));
if (profile == null) {
AssertUtils.throwMessage(ACQUIRER_NOSUCH, chanId);
}
......
package cn.quant.baa.pay.model;
package cn.quant.baa.pay.util;
import cn.quant.baa.pay.BusinessException;
import cn.quant.baa.pay.dict.MessageEnum;
......
......@@ -20,8 +20,8 @@ import java.time.format.DateTimeFormatter;
/**
* <p><b>Application VM Option:</b><br/>
* <code>--spring.config.file=${project.build.directory}/target/config/application-dev.properties </code><br/>
* <code>-Dlogging.config=${project.build.directory}/target/config/logback-spring.xml</code></p>
* <code>--spring.config.file=${project.configure.directory}/target/config/application-dev.properties </code><br/>
* <code>-Dlogging.config=${project.configure.directory}/target/config/logback-spring.xml</code></p>
* <p><b>Enable Dubbo Annotation: </b><br/>
* <code>@org.springframework.context.annotation.ImportResource(locations = {"classpath:application-dubbo.xml"})</code></p>
*/
......
package cn.quant.baa.pay.rest;
import cn.quant.baa.pay.model.AssertUtils;
import cn.quant.spring.IllegalParameterException;
import cn.quant.spring.NullException;
import cn.quant.spring.context.ContextLoader;
import cn.quant.spring.context.ServerApplicationContext;
import cn.quant.spring.rest.AbstractController;
import org.springframework.beans.factory.annotation.Autowired;
import javax.validation.ConstraintViolation;
import javax.validation.Validator;
import java.util.Set;
import static cn.quant.baa.pay.dict.MessageEnum.EMPTY_REQ_DATA;
/**
* Created by Administrator on 2021/8/28 0028.
......
package cn.quant.baa.pay.rest;
import cn.quant.baa.pay.model.MerchantAcquirer;
import cn.quant.baa.pay.model.MerchantAcquirerBook;
import cn.quant.baa.pay.model.MerchantChannelRequestData;
import cn.quant.baa.pay.model.web.MerchantAcquirerProperties;
import cn.quant.baa.pay.model.web.MerchantChannelResponseData;
import cn.quant.baa.pay.model.web.MerchantChannelRequestData;
import cn.quant.baa.pay.annotation.BusinessMapping;
import cn.quant.baa.pay.context.TransactionSession;
import cn.quant.baa.pay.model.AssertUtils;
import cn.quant.baa.pay.util.AssertUtils;
import cn.quant.baa.pay.model.BusinessRequest;
import cn.quant.baa.pay.service.MerchantService;
import cn.quant.spring.http.HttpResponseData;
import cn.quant.spring.rest.AbstractController;
import cn.quant.spring.util.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.CacheManager;
import org.springframework.http.ResponseEntity;
......@@ -46,7 +45,7 @@ public class MerchantController extends AbstractController {
}
Map<String, MerchantAcquirerBook> channels = merchantService.getChannels(data);
Map<String, MerchantChannelResponseData> channels = merchantService.getChannels(data);
ResponseEntity<HttpResponseData> entity = succeed(session.getRequestId(), channels);
return entity;
}
......@@ -64,7 +63,7 @@ public class MerchantController extends AbstractController {
}
MerchantAcquirer channel = merchantService.getChannel(data);
MerchantAcquirerProperties channel = merchantService.getChannel(data);
ResponseEntity<HttpResponseData> entity = succeed(session.getRequestId(), channel);
return entity;
}
......
......@@ -3,18 +3,12 @@ package cn.quant.baa.pay.rest;
import cn.quant.baa.pay.annotation.BusinessMapping;
import cn.quant.baa.pay.jpa.entity.PayHistoryEntity;
import cn.quant.baa.pay.model.BusinessRequest;
import cn.quant.baa.pay.model.GoodsDetail;
import cn.quant.baa.pay.model.PayRequestData;
import cn.quant.baa.pay.model.web.PayRequestData;
import cn.quant.baa.pay.service.TransactionService;
import cn.quant.spring.rest.AbstractController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.ConstraintViolation;
import javax.validation.Validator;
import java.util.Set;
/**
* Created by Administrator on 2021/8/24 0024.
*/
......
......@@ -11,7 +11,7 @@ import org.springframework.test.context.junit4.SpringRunner;
/**
* <p><b>JUnit VM Option:</b><br/>
* <code>-Dspring.config.file=${project.build.directory}/target/config/application-dev.properties </code><br/>
* <code>-Dspring.config.file=${project.configure.directory}/target/config/application-dev.properties </code><br/>
* </p>
*/
@RunWith(SpringRunner.class)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment