Browse Source

feat 0 支付工程

devlop
yang_shj 4 years ago
parent
commit
4fa049186b
  1. 21
      payment-base-app/payment-base-app.iml
  2. 5
      payment-base-app/pom.xml
  3. 6
      payment-base-app/src/main/java/com/base/springcloud/aspect/annotation/LoginRequired.java
  4. 42
      payment-base-app/src/main/java/com/base/springcloud/aspect/annotation/Rlock.java
  5. 118
      payment-base-app/src/main/java/com/base/springcloud/aspect/aspect/RlockAspect.java
  6. 4
      payment-base-app/src/main/java/com/base/springcloud/aspect/config/PayConfigurer.java
  7. 61
      payment-base-app/src/main/java/com/base/springcloud/aspect/config/RedisConfig.java
  8. 11
      payment-base-app/src/main/java/com/base/springcloud/aspect/interceptor/PayInterceptor.java
  9. 18
      payment-base-app/src/main/java/com/base/springcloud/bo/DepartBO.java
  10. 16
      payment-base-app/src/main/java/com/base/springcloud/bo/MerchantConfigBO.java
  11. 5
      payment-base-app/src/main/java/com/base/springcloud/constant/ErrorConstant.java
  12. 11
      payment-base-app/src/main/java/com/base/springcloud/controller/MerchantController.java
  13. 24
      payment-base-app/src/main/java/com/base/springcloud/dao/DepartMapper.java
  14. 19
      payment-base-app/src/main/java/com/base/springcloud/dao/PayDepartConfigMapper.java
  15. 2
      payment-base-app/src/main/java/com/base/springcloud/dto/MerchantConfigReqDTO.java
  16. 50
      payment-base-app/src/main/java/com/base/springcloud/entity/Depart.java
  17. 2
      payment-base-app/src/main/java/com/base/springcloud/entity/MerchantConfig.java
  18. 55
      payment-base-app/src/main/java/com/base/springcloud/entity/PayDepartConfig.java
  19. 21
      payment-base-app/src/main/java/com/base/springcloud/service/DepartService.java
  20. 62
      payment-base-app/src/main/java/com/base/springcloud/service/imp/DepartServiceImp.java
  21. 35
      payment-base-app/src/main/java/com/base/springcloud/service/imp/MerchantServiceImp.java
  22. 4
      payment-base-app/src/main/java/com/base/springcloud/service/imp/PaymentServiceImp.java
  23. 63
      payment-base-app/src/main/java/com/base/springcloud/util/TokenUtils.java
  24. 292
      payment-base-app/src/main/resources/com/base/payment/mapper/DepartMapper.xml
  25. 4
      payment-base-app/src/main/resources/com/base/payment/mapper/MerchantConfigMapper.xml
  26. 93
      payment-base-app/src/main/resources/com/base/payment/mapper/PayDepartConfigMapper.xml
  27. 30
      payment-base-app/src/main/resources/generatorConfig.xml

21
payment-base-app/payment-base-app.iml

@ -29,7 +29,7 @@
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.11.2" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.26" level="project" />
<orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.2" level="project" />
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.23" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.23" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.1.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.8" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.8" level="project" />
@ -79,7 +79,7 @@
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:2.23.4" level="project" />
<orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.9.12" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.9.12" level="project" />
<orderEntry type="library" name="Maven: org.objenesis:objenesis:2.6" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.6" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-library:1.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" />
@ -124,24 +124,13 @@
<orderEntry type="library" name="Maven: io.lettuce:lettuce-core:5.1.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-common:4.1.34.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.34.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.34.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.34.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.34.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.34.Final" level="project" />
<orderEntry type="library" name="Maven: io.projectreactor:reactor-core:3.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.2" level="project" />
<orderEntry type="library" name="Maven: org.redisson:redisson-spring-boot-starter:3.11.3" level="project" />
<orderEntry type="library" name="Maven: org.redisson:redisson:3.11.3" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.34.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.34.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-resolver-dns:4.1.34.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-codec-dns:4.1.34.Final" level="project" />
<orderEntry type="library" name="Maven: javax.cache:cache-api:1.1.0" level="project" />
<orderEntry type="library" name="Maven: io.reactivex.rxjava2:rxjava:2.2.8" level="project" />
<orderEntry type="library" name="Maven: de.ruedigermoeller:fst:2.57" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.21.0-GA" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8" level="project" />
<orderEntry type="library" name="Maven: org.jodd:jodd-bean:5.0.13" level="project" />
<orderEntry type="library" name="Maven: org.jodd:jodd-core:5.0.13" level="project" />
<orderEntry type="library" name="Maven: org.redisson:redisson-spring-data-21:3.11.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.6.1" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.47" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-feign:1.4.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-openfeign:2.1.1.RELEASE" level="project" />

5
payment-base-app/pom.xml

@ -111,9 +111,8 @@
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
<version>3.11.3</version>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>

6
payment-base-app/src/main/java/com/base/springcloud/aspect/annotation/LoginRequired.java

@ -6,6 +6,12 @@ import java.lang.annotation.*;
@Documented
@Retention(RetentionPolicy.RUNTIME)
public @interface LoginRequired {
// 用户信息
boolean user() default true;
// 部门 ture - 获取部门信息
boolean department() default false;
// 公司 ture - 获取公司信息
boolean company() default false;
}

42
payment-base-app/src/main/java/com/base/springcloud/aspect/annotation/Rlock.java

@ -1,42 +0,0 @@
package com.base.springcloud.aspect.annotation;
import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface Rlock {
/**
* 分布式锁的key前缀
*/
String prefix() default "redisLockPrefix::";
/**
* 分布式锁的key动态参数
*/
String suffix() default "lockDynamicKey";
/**
* 等待时间 默认五秒
*
* @return
*/
long waitTime() default 5;
/**
* 锁释放时间 默认十秒
*
* @return
*/
long leaseTime() default 10;
/**
* 时间格式 默认
*
* @return
*/
TimeUnit timeUnit() default TimeUnit.SECONDS;
}

118
payment-base-app/src/main/java/com/base/springcloud/aspect/aspect/RlockAspect.java

@ -1,118 +0,0 @@
package com.base.springcloud.aspect.aspect;
import com.base.springcloud.aspect.annotation.Rlock;
import com.base.springcloud.handle.RBSQueueHandler;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.DefaultParameterNameDiscoverer;
import org.springframework.expression.EvaluationContext;
import org.springframework.expression.Expression;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;
import org.springframework.stereotype.Component;
import java.lang.reflect.Method;
@Aspect
@Component
@Slf4j
public class RlockAspect {
Logger logger = LoggerFactory.getLogger(RBSQueueHandler.class);
@Autowired
private RedissonClient redissonClient;
/**
* 用于SpEL表达式解析.
*/
private SpelExpressionParser parser = new SpelExpressionParser();
/**
* 用于获取方法参数定义名字.
*/
private DefaultParameterNameDiscoverer nameDiscoverer = new DefaultParameterNameDiscoverer();
@Pointcut("@annotation(com.base.springcloud.aspect.annotation.Rlock)")
public void RlockAspect() {
}
@Around("RlockAspect()")
public Object arround(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
Object object = null;
RLock lock = null;
try {
// 获取注解信息
Rlock rlockInfo = getRlockInfo(proceedingJoinPoint);
String key = getLocalKey(proceedingJoinPoint, rlockInfo);
// 根据名字获取锁实例
lock = redissonClient.getLock(key);
if (lock != null) {
final boolean status = lock.tryLock(rlockInfo.waitTime(), rlockInfo.leaseTime(), rlockInfo.timeUnit());
if (status) {
logger.info("锁获取成功,加锁成功 : {}........",key);
object = proceedingJoinPoint.proceed();
} else {
logger.info("锁被占用,加锁失败 : {} .........",key);
throw new RuntimeException("加锁失败");
}
}
} finally {
// 方法执行完成释放锁
if (lock != null && lock.isHeldByCurrentThread()) {
lock.unlock();
}
}
return object;
}
public Rlock getRlockInfo(ProceedingJoinPoint proceedingJoinPoint) {
MethodSignature methodSignature = (MethodSignature) proceedingJoinPoint.getSignature();
return methodSignature.getMethod().getAnnotation(Rlock.class);
}
/**
* @param proceedingJoinPoint
* @return
*/
public String getLocalKey(ProceedingJoinPoint proceedingJoinPoint, Rlock rlockInfo) {
StringBuilder localKey = new StringBuilder();
//获取注解参数值
String prefix = rlockInfo.prefix();
String spELString = rlockInfo.suffix();
String key = generateKeyBySpEL(spELString,proceedingJoinPoint);
localKey.append(prefix).append(key);
logger.info("加锁 key :{}",localKey.toString());
return localKey.toString();
}
public String generateKeyBySpEL(String spELString, ProceedingJoinPoint joinPoint) {
// 通过joinPoint获取被注解方法
MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();
Method method = methodSignature.getMethod();
// 使用spring的DefaultParameterNameDiscoverer获取方法形参名数组
String[] paramNames = nameDiscoverer.getParameterNames(method);
// 解析过后的Spring表达式对象
Expression expression = parser.parseExpression(spELString);
// spring的表达式上下文对象
EvaluationContext context = new StandardEvaluationContext();
// 通过joinPoint获取被注解方法的形参
Object[] args = joinPoint.getArgs();
// 给上下文赋值
for(int i = 0 ; i < args.length ; i++) {
context.setVariable(paramNames[i], args[i]);
}
// 表达式从上下文中计算出实际参数值
return expression.getValue(context).toString();
}
}

4
payment-base-app/src/main/java/com/base/springcloud/aspect/config/PayConfigurer.java

@ -2,7 +2,11 @@ package com.base.springcloud.aspect.config;
import com.base.springcloud.aspect.interceptor.PayInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.core.Ordered;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

61
payment-base-app/src/main/java/com/base/springcloud/aspect/config/RedisConfig.java

@ -1,61 +0,0 @@
package com.base.springcloud.aspect.config;
import com.base.springcloud.constant.FastJson2JsonRedisSerializer;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.redisson.Redisson;
import org.redisson.config.Config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;
@Configuration
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport {
@Value("${spring.redis.host}")
private String host;
@Value("${spring.redis.port}")
private String port;
@Value("${spring.redis.password}")
private String password;
@Bean
@SuppressWarnings(value = {"unchecked", "rawtypes"})
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<Object, Object> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory);
FastJson2JsonRedisSerializer serializer = new FastJson2JsonRedisSerializer(Object.class);
ObjectMapper mapper = new ObjectMapper();
mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
serializer.setObjectMapper(mapper);
template.setValueSerializer(serializer);
// 使用StringRedisSerializer来序列化和反序列化redis的key值
template.setKeySerializer(new StringRedisSerializer());
template.afterPropertiesSet();
return template;
}
@Bean
public Redisson redisson() {
Config config = new Config();
config.useSingleServer().setAddress("redis://" + host + ":" + port);
config.useSingleServer().setPassword(password);
// 设置1秒钟ping一次来维持连接
config.useSingleServer().setPingConnectionInterval(1000);
return (Redisson) Redisson.create(config);
}
}

11
payment-base-app/src/main/java/com/base/springcloud/aspect/interceptor/PayInterceptor.java

@ -1,6 +1,7 @@
package com.base.springcloud.aspect.interceptor;
import com.base.springcloud.aspect.annotation.LoginRequired;
import com.base.springcloud.entity.User;
import com.base.springcloud.util.TokenUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.lang.Nullable;
@ -32,10 +33,16 @@ public class PayInterceptor implements HandlerInterceptor {
if (loginRequired == null)
return true;
// token数据验证
tokenUtils.verifyToken(request);
User user = tokenUtils.verifyToken(request);
// 用户信息
if(loginRequired.user())
tokenUtils.userInfo(request,user.getId());
// 部门信息获取
if(loginRequired.department())
tokenUtils.departmentInfo(request);
tokenUtils.departmentInfo(request,user.getId());
// 公司信息获取
if(loginRequired.company())
tokenUtils.companyInfo(request,user.getCtCompanyId());
return true;
}

18
payment-base-app/src/main/java/com/base/springcloud/bo/DepartBO.java

@ -0,0 +1,18 @@
package com.base.springcloud.bo;
import lombok.Data;
import java.util.List;
@Data
public class DepartBO {
// 创建人Id
private String createId;
// 商户支付配置Id
private String merchantConfigureId;
// 部门id集合
private List<String> departIdList;
}

16
payment-base-app/src/main/java/com/base/springcloud/bo/MerchantConfigBO.java

@ -4,6 +4,7 @@ import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.List;
@Data
public class MerchantConfigBO {
@ -37,4 +38,19 @@ public class MerchantConfigBO {
* 支付证书文件
*/
private MultipartFile certFile;
/**
* 创建人
*/
private String createId;
/**
* 部门List
*/
private List<String> departIdList;
/**
* 公司Id
*/
private String companyId;
}

5
payment-base-app/src/main/java/com/base/springcloud/constant/ErrorConstant.java

@ -12,7 +12,10 @@ public enum ErrorConstant {
BILL_WRITE_OFF_FAIL("RBS00007","销售单据核销失败!"),
USER_ERROR("RBS00008","请核对用户信息!"),
USER_LOCKING("RBS00009","账号已被锁定,请联系管理员!"),
TOKEN_EXPIRATION_DATE("RBS00010","TOKEN已失效,请重新登录!");
TOKEN_EXPIRATION_DATE("RBS00010","TOKEN已失效,请重新登录!"),
MERCHANT_CONFIGURE_FAIL("RBS00011","商户支付信息配置失败!"),
USER_DEPART_RELATION_NEED("RBS00012","请用户先关联部门信息!"),
SAVE_PAY_DEPART_CONFIG_FAIL("RBS00013","添加部门商户支付配置信息失败!");
private String code;
private String message;

11
payment-base-app/src/main/java/com/base/springcloud/controller/MerchantController.java

@ -14,6 +14,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.stream.Collectors;
@ -28,10 +29,16 @@ public class MerchantController {
@ApiOperation(value = "商户支付信息配置", notes = "商户信息配置新增接口")
@PostMapping("/merchantConfig")
@LoginRequired(department = true)
public CommonResult paymentConfigure(MerchantConfigReqDTO merchantConfigDTO) {
@LoginRequired(department = true,company = true)
public CommonResult paymentConfigure(MerchantConfigReqDTO merchantConfigDTO, HttpServletRequest request) {
List<String> departIdList = (List<String>) request.getAttribute("departIdList");
String companyId = (String) request.getAttribute("companyId");
String createId = (String) request.getAttribute("createId");
MerchantConfigBO merchantConfigBO = new MerchantConfigBO();
BeanUtils.copyProperties(merchantConfigDTO, merchantConfigBO);
merchantConfigBO.setDepartIdList(departIdList);
merchantConfigBO.setCompanyId(companyId);
merchantConfigBO.setCreateId(createId);
merchantService.paymentConfigure(merchantConfigBO);
return new CommonResult(ErrorConstant.SUECCESS.getCode(), ErrorConstant.SUECCESS.getMessage(), null);
}

24
payment-base-app/src/main/java/com/base/springcloud/dao/DepartMapper.java

@ -0,0 +1,24 @@
package com.base.springcloud.dao;
import com.base.springcloud.entity.Depart;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface DepartMapper {
int deleteByPrimaryKey(String id);
int insert(Depart record);
int insertSelective(Depart record);
Depart selectByPrimaryKey(String id);
int updateByPrimaryKeySelective(Depart record);
int updateByPrimaryKey(Depart record);
List<String> getUserDepart(@Param("userId")String useId);
}

19
payment-base-app/src/main/java/com/base/springcloud/dao/PayDepartConfigMapper.java

@ -0,0 +1,19 @@
package com.base.springcloud.dao;
import com.base.springcloud.entity.PayDepartConfig;
import org.springframework.stereotype.Repository;
@Repository
public interface PayDepartConfigMapper {
int deleteByPrimaryKey(String id);
int insert(PayDepartConfig record);
int insertSelective(PayDepartConfig record);
PayDepartConfig selectByPrimaryKey(String id);
int updateByPrimaryKeySelective(PayDepartConfig record);
int updateByPrimaryKey(PayDepartConfig record);
}

2
payment-base-app/src/main/java/com/base/springcloud/dto/MerchantConfigReqDTO.java

@ -4,7 +4,7 @@ import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
@Data
public class MerchantConfigReqDTO {
public class MerchantConfigReqDTO{
/**
* 微信支付证书文件

50
payment-base-app/src/main/java/com/base/springcloud/entity/Depart.java

@ -0,0 +1,50 @@
package com.base.springcloud.entity;
import lombok.Data;
import java.util.Date;
@Data
public class Depart {
private String id;
private String parentId;
private String departName;
private String departNameEn;
private String departNameAbbr;
private Integer departOrder;
private String description;
private String orgCategory;
private String orgType;
private String orgCode;
private String mobile;
private String fax;
private String address;
private String memo;
private String status;
private String delFlag;
private String createBy;
private Date createTime;
private String updateBy;
private Date updateTime;
private String ctCompanyId;
}

2
payment-base-app/src/main/java/com/base/springcloud/entity/MerchantConfig.java

@ -48,7 +48,7 @@ public class MerchantConfig extends BaseEntity {
/**
* 创建部门ID
*/
private String createDepartId;
private String createCompanyId;
/**
* 创建时间

55
payment-base-app/src/main/java/com/base/springcloud/entity/PayDepartConfig.java

@ -0,0 +1,55 @@
package com.base.springcloud.entity;
import java.util.Date;
public class PayDepartConfig {
private String id;
private String mechantConfigId;
private String departId;
private String createId;
private Date createTime;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getMechantConfigId() {
return mechantConfigId;
}
public void setMechantConfigId(String mechantConfigId) {
this.mechantConfigId = mechantConfigId;
}
public String getDepartId() {
return departId;
}
public void setDepartId(String departId) {
this.departId = departId;
}
public String getCreateId() {
return createId;
}
public void setCreateId(String createId) {
this.createId = createId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
}

21
payment-base-app/src/main/java/com/base/springcloud/service/DepartService.java

@ -0,0 +1,21 @@
package com.base.springcloud.service;
import com.base.springcloud.bo.DepartBO;
import java.util.List;
public interface DepartService {
/**
* 获取用户部门
* @param userId
* @return
*/
List<String> getUserDepart(String userId);
/**
* 保存商户部门信息
* @param departBO
*/
void savePayDepart(DepartBO departBO);
}

62
payment-base-app/src/main/java/com/base/springcloud/service/imp/DepartServiceImp.java

@ -0,0 +1,62 @@
package com.base.springcloud.service.imp;
import com.base.springcloud.aspect.annotation.BusinessException;
import com.base.springcloud.bo.DepartBO;
import com.base.springcloud.constant.ErrorConstant;
import com.base.springcloud.dao.DepartMapper;
import com.base.springcloud.dao.PayDepartConfigMapper;
import com.base.springcloud.entity.PayDepartConfig;
import com.base.springcloud.service.DepartService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
@Service
public class DepartServiceImp implements DepartService {
Logger logger = LoggerFactory.getLogger(DepartServiceImp.class);
@Autowired
private DepartMapper departMapper;
@Autowired
private PayDepartConfigMapper payDepartConfigMapper;
/**
* 获取用户部门
* @param userId
* @return
*/
@Override
public List<String> getUserDepart(String userId) {
return departMapper.getUserDepart(userId);
}
/**
* 保存商户部门信息
* @param departBO
*/
@Override
public void savePayDepart(DepartBO departBO) {
List<String> departIdList = departBO.getDepartIdList();
if(!Optional.ofNullable(departIdList).isPresent())
throw new BusinessException(ErrorConstant.USER_DEPART_RELATION_NEED);
for (String depart : departIdList){
PayDepartConfig payDepartConfig = new PayDepartConfig();
payDepartConfig.setId(UUID.randomUUID().toString().replace("-", ""));
payDepartConfig.setCreateId(departBO.getCreateId());
payDepartConfig.setCreateTime(new Date());
payDepartConfig.setDepartId(depart);
payDepartConfig.setMechantConfigId(departBO.getMerchantConfigureId());
int count = payDepartConfigMapper.insert(payDepartConfig);
if(count < 1)
throw new BusinessException(ErrorConstant.SAVE_PAY_DEPART_CONFIG_FAIL);
}
}
}

35
payment-base-app/src/main/java/com/base/springcloud/service/imp/MerchantServiceImp.java

@ -1,18 +1,15 @@
package com.base.springcloud.service.imp;
import com.base.springcloud.aspect.annotation.BusinessException;
import com.base.springcloud.aspect.annotation.LoginRequired;
import com.base.springcloud.bo.DepartBO;
import com.base.springcloud.bo.MerchantConfigBO;
import com.base.springcloud.bo.OrderBO;
import com.base.springcloud.constant.ErrorConstant;
import com.base.springcloud.dao.MerchantConfigMapper;
import com.base.springcloud.entity.MerchantConfig;
import com.base.springcloud.service.DepartService;
import com.base.springcloud.service.MerchantService;
import com.base.springcloud.util.DateUtil;
import com.base.springcloud.util.FtpUtil;
import com.base.springcloud.wxsdk.MyConfig;
import com.base.springcloud.wxsdk.WXPay;
import com.base.springcloud.wxsdk.WXPayUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -21,7 +18,10 @@ import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.util.*;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
import java.util.stream.Collectors;
@Service
@ -30,6 +30,9 @@ public class MerchantServiceImp implements MerchantService {
@Autowired
private MerchantConfigMapper merchantConfigMapper;
@Autowired
private DepartService departService;
@Autowired
private FtpUtil ftpUtil;
@ -43,16 +46,24 @@ public class MerchantServiceImp implements MerchantService {
@Override
public void paymentConfigure(MerchantConfigBO merchantConfigBO) {
// 证书上传服务器
String certPath = uplodWecWindow(merchantConfigBO.getMchId(),merchantConfigBO.getCertFile());
//String certPath = uplodWecWindow(merchantConfigBO.getMchId(),merchantConfigBO.getCertFile());
// 商户支付信息保存
MerchantConfig merchantConfig = new MerchantConfig();
merchantConfig.setId(UUID.randomUUID().toString().replace("-", ""));
merchantConfig.setCreateId(merchantConfigBO.getCreateId());
merchantConfig.setCreateTime(new Date());
merchantConfig.setCertPath(certPath);
merchantConfig.setCreateCompanyId(merchantConfigBO.getCompanyId());
//merchantConfig.setCertPath(certPath);
BeanUtils.copyProperties(merchantConfigBO,merchantConfig);
int count = merchantConfigMapper.insert(merchantConfig);
if(count > 0) return;
// TODO 抛出业务异常
if(count < 1)
throw new BusinessException(ErrorConstant.MERCHANT_CONFIGURE_FAIL);
// 保存商户部门信息
DepartBO departBO = new DepartBO();
departBO.setDepartIdList(merchantConfigBO.getDepartIdList());
departBO.setMerchantConfigureId(merchantConfig.getId());
departBO.setCreateId(merchantConfigBO.getCreateId());
departService.savePayDepart(departBO);
}
/**
@ -188,7 +199,7 @@ public class MerchantServiceImp implements MerchantService {
return null;
}
public static void main(String[] args) throws Exception {
/*public static void main(String[] args) throws Exception {
MyConfig config = new MyConfig();
WXPay wxPay = new WXPay(config);
@ -212,5 +223,5 @@ public class MerchantServiceImp implements MerchantService {
Map<String, String> responseMap = wxPay.microPay(data);
//判断是否成功
System.out.println("微信返回响应:" + responseMap.toString());
}
}*/
}

4
payment-base-app/src/main/java/com/base/springcloud/service/imp/PaymentServiceImp.java

@ -1,11 +1,8 @@
package com.base.springcloud.service.imp;
import com.base.springcloud.aspect.annotation.Rlock;
import com.base.springcloud.bo.OrderBO;
import com.base.springcloud.bo.SaleBillBO;
import com.base.springcloud.constant.PaymentConstant;
import com.base.springcloud.entity.Order;
import com.base.springcloud.entity.SaleBill;
import com.base.springcloud.service.*;
import com.base.springcloud.util.DecimalUtil;
import org.slf4j.Logger;
@ -74,7 +71,6 @@ public class PaymentServiceImp implements PaymentService {
* @param orderBO
*/
@Override
@Rlock(prefix = PaymentConstant.ORDER_LOCK_PREFIX, suffix = "#orderBO.order.orderNo",waitTime = 0,leaseTime = 60)
public void queryOrder(OrderBO orderBO) {
// 参数检查
Order order = Optional.ofNullable(orderBO).map(o->orderBO.getOrder()).orElse(null);

63
payment-base-app/src/main/java/com/base/springcloud/util/TokenUtils.java

@ -4,13 +4,15 @@ import com.base.springcloud.aspect.annotation.BusinessException;
import com.base.springcloud.constant.ErrorConstant;
import com.base.springcloud.constant.PaymentConstant;
import com.base.springcloud.entity.User;
import com.base.springcloud.service.DepartService;
import com.base.springcloud.service.UserService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Optional;
@Component
public class TokenUtils {
@ -19,22 +21,15 @@ public class TokenUtils {
private UserService userService;
@Autowired
private RedisUtil redisUtil;
private RedisUtil redisService;
private static UserService service;
private static RedisUtil redisService;
@PostConstruct
public void init() {
service= this.userService;
redisService = this.redisUtil;
}
@Autowired
private DepartService departService;
/**
* Token验证
*/
public static void verifyToken(HttpServletRequest request) {
public User verifyToken(HttpServletRequest request) {
// 从请求头获取token
String token = request.getHeader("X-Access-Token");
@ -52,32 +47,62 @@ public class TokenUtils {
throw new BusinessException(ErrorConstant.ILLEGAL_TOKEN);
// 查询用户信息
User user = service.getUser(username);
User user = userService.getUser(username);
// 校验token是否超时失效 & 或者账号密码是否错误
TokenValidity(token,user,redisService);
//this.TokenValidity(token,user);
return user;
}
/**
* TOKEN有效期校验
*
* @param token
* @param user
*/
public static void TokenValidity(String token, User user,RedisUtil redisService) {
public void TokenValidity(String token, User user) {
String redisToken = String.valueOf(redisService.get(PaymentConstant.TOKEN_PREFIX + token));
if(StringUtils.isBlank(redisToken))
if (StringUtils.isBlank(redisToken))
throw new BusinessException(ErrorConstant.TOKEN_EXPIRATION_DATE);
if(!JwtUtil.verify(redisToken, user.getUserName(), user.getPassword()))
if (!JwtUtil.verify(redisToken, user.getUserName(), user.getPassword()))
throw new BusinessException(ErrorConstant.ILLEGAL_TOKEN);
String newAuthorization = JwtUtil.sign(user.getUserName(), user.getPassword());
String newAuthorization = JwtUtil.sign(user.getUserName(), user.getPassword());
// 设置Toekn缓存有效时间
redisService.set(PaymentConstant.TOKEN_PREFIX + token, newAuthorization);
redisService.expire(PaymentConstant.TOKEN_PREFIX + token, JwtUtil.EXPIRE_TIME * 2 / 1000);
}
/**
* 获取用户信息
* @param request
* @param userId
*/
public void userInfo(HttpServletRequest request, String userId) {
if(StringUtils.isBlank(userId)) return;
request.setAttribute("userId",userId);
}
public static void departmentInfo(HttpServletRequest request) {
/**
* 获取用户部门
*
* @param request
* @param userId
*/
public void departmentInfo(HttpServletRequest request, String userId) {
List<String> departIdList = departService.getUserDepart(userId);
if (!Optional.ofNullable(departIdList).isPresent()) return;
request.setAttribute("departIdList",departIdList);
}
/**
* 获取公司信息
* @param request
* @param companyId
*/
public void companyInfo(HttpServletRequest request, String companyId) {
if(StringUtils.isBlank(companyId)) return;
request.setAttribute("companyId",companyId);
}
}

292
payment-base-app/src/main/resources/com/base/payment/mapper/DepartMapper.xml

@ -0,0 +1,292 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.base.springcloud.dao.DepartMapper">
<resultMap id="BaseResultMap" type="com.base.springcloud.entity.Depart">
<id column="id" jdbcType="VARCHAR" property="id" />
<result column="parent_id" jdbcType="VARCHAR" property="parentId" />
<result column="depart_name" jdbcType="VARCHAR" property="departName" />
<result column="depart_name_en" jdbcType="VARCHAR" property="departNameEn" />
<result column="depart_name_abbr" jdbcType="VARCHAR" property="departNameAbbr" />
<result column="depart_order" jdbcType="INTEGER" property="departOrder" />
<result column="description" jdbcType="VARCHAR" property="description" />
<result column="org_category" jdbcType="VARCHAR" property="orgCategory" />
<result column="org_type" jdbcType="VARCHAR" property="orgType" />
<result column="org_code" jdbcType="VARCHAR" property="orgCode" />
<result column="mobile" jdbcType="VARCHAR" property="mobile" />
<result column="fax" jdbcType="VARCHAR" property="fax" />
<result column="address" jdbcType="VARCHAR" property="address" />
<result column="memo" jdbcType="VARCHAR" property="memo" />
<result column="status" jdbcType="VARCHAR" property="status" />
<result column="del_flag" jdbcType="VARCHAR" property="delFlag" />
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_by" jdbcType="VARCHAR" property="updateBy" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="ct_company_id" jdbcType="VARCHAR" property="ctCompanyId" />
</resultMap>
<sql id="Base_Column_List">
id, parent_id, depart_name, depart_name_en, depart_name_abbr, depart_order, description,
org_category, org_type, org_code, mobile, fax, address, memo, status, del_flag, create_by,
create_time, update_by, update_time, ct_company_id
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from sys_depart
where id = #{id,jdbcType=VARCHAR}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
delete from sys_depart
where id = #{id,jdbcType=VARCHAR}
</delete>
<insert id="insert" parameterType="com.base.springcloud.entity.Depart">
insert into sys_depart (id, parent_id, depart_name,
depart_name_en, depart_name_abbr, depart_order,
description, org_category, org_type,
org_code, mobile, fax,
address, memo, status,
del_flag, create_by, create_time,
update_by, update_time, ct_company_id
)
values (#{id,jdbcType=VARCHAR}, #{parentId,jdbcType=VARCHAR}, #{departName,jdbcType=VARCHAR},
#{departNameEn,jdbcType=VARCHAR}, #{departNameAbbr,jdbcType=VARCHAR}, #{departOrder,jdbcType=INTEGER},
#{description,jdbcType=VARCHAR}, #{orgCategory,jdbcType=VARCHAR}, #{orgType,jdbcType=VARCHAR},
#{orgCode,jdbcType=VARCHAR}, #{mobile,jdbcType=VARCHAR}, #{fax,jdbcType=VARCHAR},
#{address,jdbcType=VARCHAR}, #{memo,jdbcType=VARCHAR}, #{status,jdbcType=VARCHAR},
#{delFlag,jdbcType=VARCHAR}, #{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP},
#{updateBy,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, #{ctCompanyId,jdbcType=VARCHAR}
)
</insert>
<insert id="insertSelective" parameterType="com.base.springcloud.entity.Depart">
insert into sys_depart
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="parentId != null">
parent_id,
</if>
<if test="departName != null">
depart_name,
</if>
<if test="departNameEn != null">
depart_name_en,
</if>
<if test="departNameAbbr != null">
depart_name_abbr,
</if>
<if test="departOrder != null">
depart_order,
</if>
<if test="description != null">
description,
</if>
<if test="orgCategory != null">
org_category,
</if>
<if test="orgType != null">
org_type,
</if>
<if test="orgCode != null">
org_code,
</if>
<if test="mobile != null">
mobile,
</if>
<if test="fax != null">
fax,
</if>
<if test="address != null">
address,
</if>
<if test="memo != null">
memo,
</if>
<if test="status != null">
status,
</if>
<if test="delFlag != null">
del_flag,
</if>
<if test="createBy != null">
create_by,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="updateBy != null">
update_by,
</if>
<if test="updateTime != null">
update_time,
</if>
<if test="ctCompanyId != null">
ct_company_id,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=VARCHAR},
</if>
<if test="parentId != null">
#{parentId,jdbcType=VARCHAR},
</if>
<if test="departName != null">
#{departName,jdbcType=VARCHAR},
</if>
<if test="departNameEn != null">
#{departNameEn,jdbcType=VARCHAR},
</if>
<if test="departNameAbbr != null">
#{departNameAbbr,jdbcType=VARCHAR},
</if>
<if test="departOrder != null">
#{departOrder,jdbcType=INTEGER},
</if>
<if test="description != null">
#{description,jdbcType=VARCHAR},
</if>
<if test="orgCategory != null">
#{orgCategory,jdbcType=VARCHAR},
</if>
<if test="orgType != null">
#{orgType,jdbcType=VARCHAR},
</if>
<if test="orgCode != null">
#{orgCode,jdbcType=VARCHAR},
</if>
<if test="mobile != null">
#{mobile,jdbcType=VARCHAR},
</if>
<if test="fax != null">
#{fax,jdbcType=VARCHAR},
</if>
<if test="address != null">
#{address,jdbcType=VARCHAR},
</if>
<if test="memo != null">
#{memo,jdbcType=VARCHAR},
</if>
<if test="status != null">
#{status,jdbcType=VARCHAR},
</if>
<if test="delFlag != null">
#{delFlag,jdbcType=VARCHAR},
</if>
<if test="createBy != null">
#{createBy,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateBy != null">
#{updateBy,jdbcType=VARCHAR},
</if>
<if test="updateTime != null">
#{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="ctCompanyId != null">
#{ctCompanyId,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.base.springcloud.entity.Depart">
update sys_depart
<set>
<if test="parentId != null">
parent_id = #{parentId,jdbcType=VARCHAR},
</if>
<if test="departName != null">
depart_name = #{departName,jdbcType=VARCHAR},
</if>
<if test="departNameEn != null">
depart_name_en = #{departNameEn,jdbcType=VARCHAR},
</if>
<if test="departNameAbbr != null">
depart_name_abbr = #{departNameAbbr,jdbcType=VARCHAR},
</if>
<if test="departOrder != null">
depart_order = #{departOrder,jdbcType=INTEGER},
</if>
<if test="description != null">
description = #{description,jdbcType=VARCHAR},
</if>
<if test="orgCategory != null">
org_category = #{orgCategory,jdbcType=VARCHAR},
</if>
<if test="orgType != null">
org_type = #{orgType,jdbcType=VARCHAR},
</if>
<if test="orgCode != null">
org_code = #{orgCode,jdbcType=VARCHAR},
</if>
<if test="mobile != null">
mobile = #{mobile,jdbcType=VARCHAR},
</if>
<if test="fax != null">
fax = #{fax,jdbcType=VARCHAR},
</if>
<if test="address != null">
address = #{address,jdbcType=VARCHAR},
</if>
<if test="memo != null">
memo = #{memo,jdbcType=VARCHAR},
</if>
<if test="status != null">
status = #{status,jdbcType=VARCHAR},
</if>
<if test="delFlag != null">
del_flag = #{delFlag,jdbcType=VARCHAR},
</if>
<if test="createBy != null">
create_by = #{createBy,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateBy != null">
update_by = #{updateBy,jdbcType=VARCHAR},
</if>
<if test="updateTime != null">
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="ctCompanyId != null">
ct_company_id = #{ctCompanyId,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=VARCHAR}
</update>
<update id="updateByPrimaryKey" parameterType="com.base.springcloud.entity.Depart">
update sys_depart
set parent_id = #{parentId,jdbcType=VARCHAR},
depart_name = #{departName,jdbcType=VARCHAR},
depart_name_en = #{departNameEn,jdbcType=VARCHAR},
depart_name_abbr = #{departNameAbbr,jdbcType=VARCHAR},
depart_order = #{departOrder,jdbcType=INTEGER},
description = #{description,jdbcType=VARCHAR},
org_category = #{orgCategory,jdbcType=VARCHAR},
org_type = #{orgType,jdbcType=VARCHAR},
org_code = #{orgCode,jdbcType=VARCHAR},
mobile = #{mobile,jdbcType=VARCHAR},
fax = #{fax,jdbcType=VARCHAR},
address = #{address,jdbcType=VARCHAR},
memo = #{memo,jdbcType=VARCHAR},
status = #{status,jdbcType=VARCHAR},
del_flag = #{delFlag,jdbcType=VARCHAR},
create_by = #{createBy,jdbcType=VARCHAR},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_by = #{updateBy,jdbcType=VARCHAR},
update_time = #{updateTime,jdbcType=TIMESTAMP},
ct_company_id = #{ctCompanyId,jdbcType=VARCHAR}
where id = #{id,jdbcType=VARCHAR}
</update>
<select id="getUserDepart" parameterType="java.lang.String" resultType="java.lang.String">
select id
from sys_depart
where id in (
select dep_id
from sys_user_depart
where user_id = #{userId,jdbcType=VARCHAR}
)
</select>
</mapper>

4
payment-base-app/src/main/resources/com/base/payment/mapper/MerchantConfigMapper.xml

@ -28,11 +28,11 @@
</delete>
<insert id="insert" parameterType="com.base.springcloud.entity.MerchantConfig">
insert into pay_merchant_config (id, app_id, api_key,
cert_path, serial_no,mch_id,mch_private_key, create_id, create_depart_id,
cert_path, serial_no,mch_id,mch_private_key, create_id, create_company_id,
create_time, time_stamp)
values (#{id,jdbcType=VARCHAR}, #{appId,jdbcType=VARCHAR}, #{apiKey,jdbcType=VARCHAR},
#{certPath,jdbcType=VARCHAR}, #{serialNo,jdbcType=VARCHAR},#{mchId,jdbcType=VARCHAR}, #{mchPrivateKey,jdbcType=VARCHAR},
#{createId,jdbcType=VARCHAR}, #{createDepartId,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP},
#{createId,jdbcType=VARCHAR}, #{createCompanyId,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP},
#{timeStamp,jdbcType=TIMESTAMP})
</insert>
<delete id="removeMerchantConfig" parameterType="java.lang.String">

93
payment-base-app/src/main/resources/com/base/payment/mapper/PayDepartConfigMapper.xml

@ -0,0 +1,93 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.base.springcloud.dao.PayDepartConfigMapper">
<resultMap id="BaseResultMap" type="com.base.springcloud.entity.PayDepartConfig">
<id column="id" jdbcType="VARCHAR" property="id" />
<result column="mechant_config_id" jdbcType="VARCHAR" property="mechantConfigId" />
<result column="depart_id" jdbcType="VARCHAR" property="departId" />
<result column="create_id" jdbcType="VARCHAR" property="createId" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
</resultMap>
<sql id="Base_Column_List">
id, mechant_config_id, depart_id, create_id, create_time
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from pay_depart_config
where id = #{id,jdbcType=VARCHAR}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
delete from pay_depart_config
where id = #{id,jdbcType=VARCHAR}
</delete>
<insert id="insert" parameterType="com.base.springcloud.entity.PayDepartConfig">
insert into pay_depart_config (id, mechant_config_id, depart_id,
create_id, create_time)
values (#{id,jdbcType=VARCHAR}, #{mechantConfigId,jdbcType=VARCHAR}, #{departId,jdbcType=VARCHAR},
#{createId,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP})
</insert>
<insert id="insertSelective" parameterType="com.base.springcloud.entity.PayDepartConfig">
insert into pay_depart_config
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="mechantConfigId != null">
mechant_config_id,
</if>
<if test="departId != null">
depart_id,
</if>
<if test="createId != null">
create_id,
</if>
<if test="createTime != null">
create_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=VARCHAR},
</if>
<if test="mechantConfigId != null">
#{mechantConfigId,jdbcType=VARCHAR},
</if>
<if test="departId != null">
#{departId,jdbcType=VARCHAR},
</if>
<if test="createId != null">
#{createId,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.base.springcloud.entity.PayDepartConfig">
update pay_depart_config
<set>
<if test="mechantConfigId != null">
mechant_config_id = #{mechantConfigId,jdbcType=VARCHAR},
</if>
<if test="departId != null">
depart_id = #{departId,jdbcType=VARCHAR},
</if>
<if test="createId != null">
create_id = #{createId,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
</set>
where id = #{id,jdbcType=VARCHAR}
</update>
<update id="updateByPrimaryKey" parameterType="com.base.springcloud.entity.PayDepartConfig">
update pay_depart_config
set mechant_config_id = #{mechantConfigId,jdbcType=VARCHAR},
depart_id = #{departId,jdbcType=VARCHAR},
create_id = #{createId,jdbcType=VARCHAR},
create_time = #{createTime,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=VARCHAR}
</update>
</mapper>

30
payment-base-app/src/main/resources/generatorConfig.xml

@ -60,39 +60,17 @@
<!-- tableName为对应的数据库表 -->
<!-- domainObjectName是要生成的实体类 -->
<!-- enable*ByExample是否生成 example类 -->
<table tableName="sys_user" domainObjectName="User"
<table tableName="pay_depart_config" domainObjectName="PayDepartConfig"
enableCountByExample="false" enableDeleteByExample="false"
enableSelectByExample="false" enableUpdateByExample="false">
<!-- 忽略列,不生成bean 字段 -->
<!-- <ignoreColumn column="FRED" /> -->
<!-- 指定列的java数据类型 -->
<columnOverride column="id" property="id" jdbcType="VARCHAR" />
<columnOverride column="username" property="userName" jdbcType="VARCHAR" />
<columnOverride column="realname" property="realName" jdbcType="VARCHAR" />
<columnOverride column="password" property="password" jdbcType="VARCHAR" />
<columnOverride column="salt" property="salt" jdbcType="VARCHAR" />
<columnOverride column="avatar" property="avatar" jdbcType="VARCHAR" />
<columnOverride column="birthday" property="birthday" jdbcType="TIMESTAMP" />
<columnOverride column="sex" property="sex" jdbcType="TINYINT" />
<columnOverride column="email" property="email" jdbcType="VARCHAR" />
<columnOverride column="phone" property="phone" jdbcType="VARCHAR" />
<columnOverride column="org_code" property="orgCode" jdbcType="VARCHAR" />
<columnOverride column="status" property="status" jdbcType="TINYINT" />
<columnOverride column="del_flag" property="delFlag" jdbcType="TINYINT" />
<columnOverride column="third_id" property="thirdId" jdbcType="VARCHAR" />
<columnOverride column="third_type" property="thirdType" jdbcType="VARCHAR" />
<columnOverride column="activiti_sync" property="activitiSync" jdbcType="TINYINT" />
<columnOverride column="work_no" property="workNo" jdbcType="VARCHAR" />
<columnOverride column="post" property="post" jdbcType="VARCHAR" />
<columnOverride column="telephone" property="telephone" jdbcType="VARCHAR" />
<columnOverride column="create_by" property="createBy" jdbcType="VARCHAR" />
<columnOverride column="mechant_config_id" property="mechantConfigId" jdbcType="VARCHAR" />
<columnOverride column="depart_id" property="departId" jdbcType="VARCHAR" />
<columnOverride column="create_id" property="createId" jdbcType="VARCHAR" />
<columnOverride column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<columnOverride column="update_by" property="updateBy" jdbcType="VARCHAR" />
<columnOverride column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
<columnOverride column="user_identity" property="userIdentity" jdbcType="TINYINT" />
<columnOverride column="depart_ids" property="departIds" jdbcType="VARCHAR" />
<columnOverride column="ct_company_id" property="ctCompanyId" jdbcType="TIMESTAMP" />
<columnOverride column="account_type" property="accountType" jdbcType="INTEGER" />
</table>
</context>
</generatorConfiguration>
Loading…
Cancel
Save