记得上下班打卡 | git大法好,push需谨慎

Commit 2877393f authored by 胡佳晨's avatar 胡佳晨

Merge branch 'dev' into test

parents f4052ed3 87381af6
package com.liquidnet.service.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.dto.AdamAddressesParam;
import com.liquidnet.service.adam.dto.vo.AdamAddressesVo;
import com.liquidnet.service.adam.entity.AdamAddresses;
/**
* <p>
......@@ -11,7 +13,7 @@ import com.liquidnet.service.adam.dto.vo.AdamAddressesVo;
* @author liquidnet
* @since 2021-05-11
*/
public interface IAdamAddressesService {
public interface IAdamAddressesService extends IService<AdamAddresses> {
String add(AdamAddressesParam parameter);
......
package com.liquidnet.service.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.adam.dto.vo.AdamCollectBaseVo;
import com.liquidnet.service.adam.dto.vo.AdamCollectVo;
import com.liquidnet.service.adam.entity.AdamCollection;
/**
* <p>
......@@ -12,7 +14,7 @@ import com.liquidnet.service.adam.dto.vo.AdamCollectVo;
* @author liquidnet
* @since 2021-05-10
*/
public interface IAdamCollectionService {
public interface IAdamCollectionService extends IService<AdamCollection> {
void add(AdamCollectBaseVo collectVo);
......
package com.liquidnet.service.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.adam.dto.vo.AdamDisposedBaseVo;
import com.liquidnet.service.adam.dto.vo.AdamDisposedUserVo;
import com.liquidnet.service.adam.dto.vo.AdamDisposedVo;
import com.liquidnet.service.adam.entity.AdamDisposed;
/**
* <p>
......@@ -13,7 +15,7 @@ import com.liquidnet.service.adam.dto.vo.AdamDisposedVo;
* @author liquidnet
* @since 2021-05-18
*/
public interface IAdamDisposedService {
public interface IAdamDisposedService extends IService<AdamDisposed> {
void add(AdamDisposedBaseVo disposedBaseVo);
......
package com.liquidnet.service.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.dto.AdamEntersParam;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.entity.AdamEnters;
/**
* <p>
......@@ -11,7 +13,7 @@ import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
* @author liquidnet
* @since 2021-04-28
*/
public interface IAdamEntersService {
public interface IAdamEntersService extends IService<AdamEnters> {
String add(AdamEntersParam parameter);
void def(String uid, String entersId);
......
package com.liquidnet.service.reconciliation.service.wallet;
package com.liquidnet.service.adam.service;
import com.liquidnet.service.adam.entity.AdamMemberCode;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.reconciliation.entity.wallet.FinWlN07;
/**
* <p>
......@@ -9,8 +9,8 @@ import com.liquidnet.service.reconciliation.entity.wallet.FinWlN07;
* </p>
*
* @author liquidnet
* @since 2020-11-10
* @since 2021-06-23
*/
public interface IFinWlN07Service extends IService<FinWlN07> {
public interface IAdamMemberCodeService extends IService<AdamMemberCode> {
}
......@@ -7,12 +7,9 @@ import com.liquidnet.service.adam.dto.AdamMemberOrderCodeParam;
import com.liquidnet.service.adam.dto.AdamMemberOrderParam;
import com.liquidnet.service.adam.dto.AdamMemberOrderResult;
import com.liquidnet.service.adam.dto.vo.AdamMemberOrderSimpleVo;
import com.liquidnet.service.adam.dto.vo.AdamMemberOrderVo;
import com.liquidnet.service.adam.entity.AdamMemberOrder;
import com.liquidnet.service.base.ResponseDto;
import java.util.List;
/**
* 对客户端API接口
*/
......
package com.liquidnet.service.reconciliation.service;
package com.liquidnet.service.adam.service;
import com.liquidnet.service.adam.entity.AdamThirdParty;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.reconciliation.entity.LrAccountCheckBatchSub;
/**
* <p>
* 服务类
* 用户第三方账号信息 服务类
* </p>
*
* @author liquidnet
* @since 2021-01-04
* @since 2021-06-23
*/
public interface ILrAccountCheckBatchSubService extends IService<LrAccountCheckBatchSub> {
public interface IAdamThirdPartyService extends IService<AdamThirdParty> {
}
......@@ -17,7 +17,7 @@ import java.util.List;
* @author liquidnet
* @since 2021-05-10
*/
public interface IAdamUserService {
public interface IAdamUserService extends IService<AdamUser> {
/**
* 手机号注册
......
package com.liquidnet.service.kylin.dto.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class PerformanceExpressAdminListParam {
@ApiModelProperty(value = "演出名称", example = "")
private String title;
@ApiModelProperty(value = "-2全部状态:-1删除;0未提交;1审核中;2审核中(自动上线);3审核通过;4审核未通过;6上线;7下架;8活动结束;9活动取消退款中;10活动取消退", example = "-2")
private Integer status;
@ApiModelProperty(value = "城市名称", example = "")
private String cityName;
@ApiModelProperty(value = "-2全部,0审核中,2审核拒绝", example = "0")
private Integer auditStatus;
@ApiModelProperty(value = "停售时间(天)-2全部", example = "-2")
private long stopSellDay;
@ApiModelProperty(value = "停售时间", example = "2000-01-01 12:00:00", hidden = true)
private String stopSellTime;
@ApiModelProperty(value = "页数", example = "0")
private Integer pageSize;
@ApiModelProperty(value = "数量", example = "20")
private Integer pageNum;
}
package com.liquidnet.service.kylin.dto.param;
import lombok.Data;
@Data
public class PerformanceExpressSearchAdminParam {
// 演出搜索
private String title;
private String performancesId;
// 分页
private Integer pageSize;
private Integer pageNum;
// 订单搜索
private String orderCode;
private String orderTicketsId;
private String userMobile;
private String orderStatus;
private String expressStatus;
}
package com.liquidnet.service.kylin.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.kylin.entity.KylinOrderTicketRelations;
import com.liquidnet.service.kylin.entity.KylinOrderTicketStatus;
/**
* <p>
* 订单 服务类
* </p>
*
* @author liquidnet
* @since 2021-05-20
*/
public interface IKylinOrderTicketRelationsService extends IService<KylinOrderTicketRelations> {
}
package com.liquidnet.service.kylin.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.param.PayAgainParam;
import com.liquidnet.service.kylin.dto.param.PayOrderParam;
import com.liquidnet.service.kylin.dto.param.SyncOrderParam;
import com.liquidnet.service.kylin.dto.vo.returns.KylinOrderListVo;
import com.liquidnet.service.kylin.dto.vo.returns.OrderDetailsVo;
import com.liquidnet.service.kylin.dto.vo.returns.PayResultVo;
import com.liquidnet.service.kylin.entity.KylinOrderTicketStatus;
import com.liquidnet.service.kylin.entity.KylinOrderTickets;
import java.util.List;
/**
* <p>
* 订单 服务类
* </p>
*
* @author liquidnet
* @since 2021-05-20
*/
public interface IKylinOrderTicketStatusService extends IService<KylinOrderTicketStatus> {
}
......@@ -16,6 +16,20 @@
</description>
<dependencies>
<!-- 集成configServer-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<!-- 这个依赖本来是可以不加的,但是配置没办法刷新,加上它可以手动刷新配置 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- SpringBoot集成thymeleaf模板 -->
<dependency>
......
......@@ -4,6 +4,7 @@ import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.scheduling.annotation.EnableAsync;
/**
......@@ -12,6 +13,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
* @author ruoyi
*/
@EnableAsync
@EnableEurekaClient
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class },scanBasePackages = {"com.liquidnet"})
@MapperScan(basePackages = {"com.liquidnet.service.kylin.mapper","com.liquidnet.service.adam.mapper"})//
public class RuoYiApplication
......
......@@ -87,12 +87,6 @@ public class KylinBannersAdminController extends BaseController {
@Autowired
private KylinBannersServiceImpl kylinBannersServiceImpl;
@RequiresPermissions("kylin:banners:view")
@GetMapping()
public String banners() {
return prefix + "/banners";
}
@GetMapping("/create")
public String create(ModelMap mmap) {
List<Object> bannersTargetType = BannersTargetType.getResultType();
......@@ -184,6 +178,12 @@ public class KylinBannersAdminController extends BaseController {
return prefix + "/details";
}*/
@RequiresPermissions("kylin:banners:view")
@GetMapping()
public String banners() {
return prefix + "/banners";
}
@RequiresPermissions("kylin:banners:list")
@PostMapping("list")
@ResponseBody
......
......@@ -3,12 +3,14 @@ package com.liquidnet.client.admin.web.controller.zhengzai.kylin;
import com.liquidnet.client.admin.common.core.controller.BaseController;
import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.client.admin.zhengzai.kylin.service.impl.PerformancesExpressServiceImpl;
import com.liquidnet.service.kylin.dao.PerformanceExpressAdminListDao;
import com.liquidnet.service.kylin.dto.param.PerformanceExpressAdminListParam;
import com.liquidnet.service.kylin.dao.PerformanceExpressPerformanceListAdminDao;
import com.liquidnet.service.kylin.dao.PerformanceExpressPerformanceOrderListAdminDao;
import com.liquidnet.service.kylin.dto.param.PerformanceExpressSearchAdminParam;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
import java.util.List;
......@@ -38,20 +40,38 @@ public class PerformancesExpressController extends BaseController {
@Autowired
private PerformancesExpressServiceImpl performancesExpressServiceImpl;
/**
* 查询演出列表
*/
@RequiresPermissions("kylin:performancesExpress:view")
@GetMapping()
public String banners() {
return prefix + "/performancesExpress";
public String performancesListView() {
return prefix + "/performancesList";
}
@RequiresPermissions("kylin:performancesExpress:performancesList")
@PostMapping("/performancesList")
@ResponseBody
public TableDataInfo performancesList(PerformanceExpressSearchAdminParam performanceExpressSearchAdminParam) {
List<PerformanceExpressPerformanceListAdminDao> result = performancesExpressServiceImpl.getPerformancesList(performanceExpressSearchAdminParam);
return getDataTable(result);
}
/**
* 查询演出列表
* 查询演出订单列表
*/
@RequiresPermissions("kylin:performances:list")
@PostMapping("/list")
@RequiresPermissions("kylin:performancesExpress:performanceOrderList")
@GetMapping("performanceOrderList/{id}")
public String performanceOrderListView(@PathVariable("id") String id, ModelMap mmap) {
mmap.put("performancesId", id);
return prefix + "/performanceOrderList";
}
@RequiresPermissions("kylin:performancesExpress:performanceOrderList")
@PostMapping("/performanceOrderList")
@ResponseBody
public TableDataInfo list(PerformanceExpressAdminListParam performanceExpressAdminListParam) {
List<PerformanceExpressAdminListDao> result = performancesExpressServiceImpl.getList(performanceExpressAdminListParam);
public TableDataInfo performanceOrderList(PerformanceExpressSearchAdminParam performanceExpressSearchAdminParam) {
List<PerformanceExpressPerformanceOrderListAdminDao> result = performancesExpressServiceImpl.getPerformancesOrderList(performanceExpressSearchAdminParam);
return getDataTable(result);
}
......
# 项目相关配置
ruoyi:
# 名称
name: RuoYi
# 版本
version: 4.6.1
# 版权年份
copyrightYear: 2021
# 实例演示开关
demoEnabled: true
# 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
profile: /usr/local/var/www/uploadPath
# 获取ip地址开关
addressEnabled: false
# 开发环境配置
server:
# 服务器的HTTP端口,默认为80
port: ${liquidnet.info.port}
servlet:
# 应用的访问路径
context-path: ${liquidnet.info.context}
tomcat:
# tomcat的URI编码
uri-encoding: UTF-8
# tomcat最大线程数,默认为200
max-threads: 800
# Tomcat启动初始化的线程数,默认值25
min-spare-threads: 30
# 日志配置-------------------------------------------------------
logging:
# config: ${liquidnet.logfile.config}
file:
name: ${liquidnet.logfile.path}/${liquidnet.logfile.name}.log
max-size: 200MB
pattern:
file: '%d{yyyy-MM-dd HH:mm:ss.SSS} [ %-5level] %thread [%logger{96}:%line] - %msg%n'
console: '%d{yyyy-MM-dd HH:mm:ss.SSS} [ %-5level] %thread [%logger{96}:%line] - %msg%n'
rolling-file-name: ${liquidnet.logfile.path}/${liquidnet.logfile.name}-%d{yyyy-MM-dd}.%i.log
level:
root: info
#以下是为指定包设置日志级别
com:
liquidnet:
client:
admin: debug
org:
springframework: warn
# -----------------------------------------------------------
# 用户配置
user:
password:
# 密码错误{maxRetryCount}次锁定10分钟
maxRetryCount: 5
# Spring配置
spring:
application:
name: liquidnet-client-admin-web
# 模板引擎
thymeleaf:
mode: HTML
encoding: utf-8
# 禁用缓存
cache: false
# 资源信息
messages:
# 国际化资源文件路径
basename: static/i18n/messages
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
profiles:
in: druid
# 文件上传
servlet:
multipart:
# 单个文件大小
max-file-size: 10MB
# 设置总上传的文件大小
max-request-size: 20MB
# 服务模块
devtools:
restart:
# 热部署开关
enabled: false
data:
mongodb:
uri: mongodb://${liquidnet.mongodb.user}:${liquidnet.mongodb.pwd}@${liquidnet.mongodb.host}/?authSource=admin&maxPoolSize=4000&waitQueueMultiple=100
sslEnabled: ${liquidnet.mongodb.sslEnabled}
database: ${liquidnet.mongodb.database}
redis:
database: 15
port: ${liquidnet.redis.port}
host: ${liquidnet.redis.host}
password: ${liquidnet.redis.password}
lettuce:
pool:
max-active: 8
max-wait: -1
max-idle: 8
min-idle: 0
# MyBatis
mybatis:
# 搜索指定包别名
typeAliasesPackage: com.liquidnet.service.kylin.**.entity,com.liquidnet.client.admin.**.domain
# 配置mapper的扫描,找到所有的mapper.xml映射文件
mapperLocations: classpath*:mapper/**/*Mapper.xml,classpath:com.liquidnet.service.kylin.mapper/*Mapper.xml,classpath:com.liquidnet.service.adam.mapper/*Mapper.xml
# 加载全局的配置文件
configLocation: classpath:mybatis/mybatis-config.xml
# PageHelper分页插件
pagehelper:
helperDialect: mysql
reasonable: true
supportMethodsArguments: true
params: count=countSql
# Shiro
shiro:
user:
# 登录地址
loginUrl: /login
# 权限认证失败地址
unauthorizedUrl: /unauth
# 首页地址
indexUrl: /index
# 验证码开关
captchaEnabled: false
# 验证码类型 math 数组计算 char 字符
captchaType: math
cookie:
# 设置Cookie的域名 默认空,即当前访问的域名
domain:
# 设置cookie的有效访问路径
path: /
# 设置HttpOnly属性
httpOnly: true
# 设置Cookie的过期时间,天为单位
maxAge: 30
session:
# Session超时时间,-1代表永不过期(默认30分钟)
expireTime: 30
# 同步session到数据库的周期(默认1分钟)
dbSyncPeriod: 1
# 相隔多久检查一次session的有效性,默认就是10分钟
validationInterval: 10
# 同一个用户最大会话数,比如2的意思是同一个账号允许最多同时两个人登录(默认-1不限制)
maxSession: -1
# 踢出之前登录的/之后登录的用户,默认踢出之前登录的用户
kickoutAfter: false
# 防止XSS攻击
xss:
# 过滤开关
enabled: true
# 排除链接(多个用逗号分隔)
excludes: /system/notice/*
# 匹配链接
urlPatterns: /system/*,/monitor/*,/tool/*
# Swagger配置
swagger:
# 是否开启swagger
enabled: true
# begin-dev-这里是配置信息基本值
liquidnet:
info:
port: 7099
context:
name: liquidnet-client-admin-web
logfile:
path: /data/logs
name: client-admin-web
config: classpath:logback-spring.xml
file-max-size: 200MB
pattern-file: '%d{yyyy-MM-dd HH:mm:ss.SSS} [ %-5level] %thread [%logger{96}:%line] - %msg%n'
pattern-console: '%d{yyyy-MM-dd HH:mm:ss.SSS} [ %-5level] %thread [%logger{96}:%line] - %msg%n'
pattern-rolling-file-name: ${liquidnet.logfile.path}/${liquidnet.logfile.name}-%d{yyyy-MM-dd}.%i.log
level-root: debug
mysql:
master:
urlHostAndPort: 39.106.122.201:3308
username: testmall
password: zhengzai!mYT
database-name: dev_ln_scene
slave:
urlHostAndPort: 39.106.122.201:3308
username: testmall
password: zhengzai!mYT
database-name: dev_ln_scene
mongodb:
host: 39.106.122.201:27017
port: 27017
user: root
pwd: S&y$6d*JwJ
sslEnabled: false
database: dev_ln_scene
redis:
host: 39.106.122.201
port: 6379
password: 3Xa%8p
url-refund:
apply: "http://testpay.zhengzai.tv/refund/single"
notify: "https://devkylin.zhengzai.tv/kylin/refund/callback"
url-banner:
provinces: "https://devservice.zhengzai.tv/provinces" #省份
url1: "https://devmediaapi.zhengzai.tv/api/video/list?per_page=50&page=1&type=1" #PGC点播
url2: "https://devmediaapi.zhengzai.tv/api/video/list?per_page=50&page=1&type=2" #PGC直播
url5: "https://devmall.zhengzai.tv/admin/fieldListForQuick?page=1&per_page=50" #场地
url6: "/kylin/performances/recommend/performance/status?pageNum=1&pageSize=50&status=(3,6,7,8,9,10)&title=''" #票务
url7: "https://devmall.zhengzai.tv/admin/goodListForQuick?page=1&per_page=50" #商品
url8: "https://devkylin.zhengzai.tv/kylin/performances/roadShow/list?pageNum=1&pageSize=50" #巡演
url13: "https://devmall.zhengzai.tv/admin/integrationListForQuick?page=1&per_page=50" #积分商城
url14: "https://devmall.zhengzai.tv/admin/good/collective/quick?page=1&per_page=50" #商品集合
url20: "https://devmerchantapi.zhengzai.tv/admin/mis/musician/quick?page=1&per_page=50" #音乐人
url21: "https://devmerchantapi.zhengzai.tv/admin/mis/song/quick?page=1&per_page=50" #歌曲
url22: "https://devmerchantapi.zhengzai.tv/admin/mis/album/quick?page=1&per_page=50" #专辑
url23: "https://devmediaapi.zhengzai.tv/api/play/list?page=1&per_page=50" #视频播单
url24: "https://devmerchantapi.zhengzai.tv/admin/mis/musician/collect?page=1&per_page=50" #音乐人合集
url26: "https://devpassport.zhengzai.tv/admin/vip/card/list?page=1&per_page=50&status=1" #摩登会员
al-oss:
imgUrl: "https://img.zhengzai.tv/"
endpoint: http://oss-cn-hangzhou.aliyuncs.com
accessKeyId: LTAI4FxrURzMvvu9reFgwY5o
accessKeySecret: Ym5tfAxOf2zX20MgjikLI3Wz3tlwVV
shunfeng:
url: "https://butler-dev-ms.sf-express.com"
sk: 21e9a70f677a2bf29dfa2b3bead4f018
appid: 557104628450889728
# end-dev-这里是配置信息基本值
spring:
profiles:
include:
- druid
- client-admin-web
# begin-dev-这里是配置信息基本值
liquidnet:
info:
port: 7099
context:
name: liquidnet-client-admin-web
logfile:
path: /data/logs
name: client-admin-web
config: classpath:logback-spring.xml
file-max-size: 200MB
pattern-file: '%d{yyyy-MM-dd HH:mm:ss.SSS} [ %-5level] %thread [%logger{96}:%line] - %msg%n'
pattern-console: '%d{yyyy-MM-dd HH:mm:ss.SSS} [ %-5level] %thread [%logger{96}:%line] - %msg%n'
pattern-rolling-file-name: ${liquidnet.logfile.path}/${liquidnet.logfile.name}-%d{yyyy-MM-dd}.%i.log
level-root: info
mysql:
master:
urlHostAndPort: zhengzai-test.rwlb.rds.aliyuncs.com:3306
username: zhengzai
password: $hAh4SGcDQ
database-name: test_ln_scene
slave:
urlHostAndPort: zhengzai-test.rwlb.rds.aliyuncs.com:3306
username: zhengzai
password: $hAh4SGcDQ
database-name: test_ln_scene
mongodb:
host: s-2zef656730e5a1d4.mongodb.rds.aliyuncs.com:3717,s-2ze49872ed6aeb14.mongodb.rds.aliyuncs.com:3717
port: 3717
user: root
pwd: $hAh4SGcDQ
sslEnabled: false
database: test_ln_scene
redis:
host: r-2ze7002ckw5u75fgukpd.redis.rds.aliyuncs.com
# host: r-2zefzyjbij5vbez65y.redis.rds.aliyuncs.com
port: 6380
password: PO@B!Iud32
url-refund:
apply: "http://testpay.zhengzai.tv/refund/single"
notify: "https://testkylin.zhengzai.tv/kylin/refund/callback"
url-banner:
provinces: "https://testservice.zhengzai.tv/provinces" #省份
url1: "https://testmediaapi.zhengzai.tv/api/video/list?per_page=50&page=1&type=1" #PGC点播
url2: "https://testmediaapi.zhengzai.tv/api/video/list?per_page=50&page=1&type=2" #PGC直播
url5: "https://testmall.zhengzai.tv/admin/fieldListForQuick?page=1&per_page=50" #场地
url6: "/kylin/performances/recommend/performance/status?pageNum=1&pageSize=50&status=(3,6,7,8,9,10)&title=''" #票务
url7: "https://testmall.zhengzai.tv/admin/goodListForQuick?page=1&per_page=50" #商品
url8: "https://testkylin.zhengzai.tv/kylin/performances/roadShow/list?pageNum=1&pageSize=50" #巡演
url13: "https://testmall.zhengzai.tv/admin/integrationListForQuick?page=1&per_page=50" #积分商城
url14: "https://testmall.zhengzai.tv/admin/good/collective/quick?page=1&per_page=50" #商品集合
url20: "https://testmerchantapi.zhengzai.tv/admin/mis/musician/quick?page=1&per_page=50" #音乐人
url21: "https://testmerchantapi.zhengzai.tv/admin/mis/song/quick?page=1&per_page=50" #歌曲
url22: "https://testmerchantapi.zhengzai.tv/admin/mis/album/quick?page=1&per_page=50" #专辑
url23: "https://testmediaapi.zhengzai.tv/api/play/list?page=1&per_page=50" #视频播单
url24: "https://testmerchantapi.zhengzai.tv/admin/mis/musician/collect?page=1&per_page=50" #音乐人合集
url26: "https://testpassport.zhengzai.tv/admin/vip/card/list?page=1&per_page=50&status=1" #摩登会员
al-oss:
imgUrl: "https://img.zhengzai.tv/"
endpoint: http://oss-cn-hangzhou.aliyuncs.com
accessKeyId: LTAI4FxrURzMvvu9reFgwY5o
accessKeySecret: Ym5tfAxOf2zX20MgjikLI3Wz3tlwVV
shunfeng:
url: "https://butler-dev-ms.sf-express.com"
sk: 21e9a70f677a2bf29dfa2b3bead4f018
appid: 557104628450889728
# end-dev-这里是配置信息基本值
spring:
profiles:
include:
- druid
- client-admin-web
\ No newline at end of file
# begin-dev-这里是配置信息基本值
liquidnet:
info:
port: 7099
context:
name: liquidnet-client-admin-web
logfile:
path: /data/logs
name: client-admin-web
config: classpath:logback-spring.xml
file-max-size: 200MB
pattern-file: '%d{yyyy-MM-dd HH:mm:ss.SSS} [ %-5level] %thread [%logger{96}:%line] - %msg%n'
pattern-console: '%d{yyyy-MM-dd HH:mm:ss.SSS} [ %-5level] %thread [%logger{96}:%line] - %msg%n'
pattern-rolling-file-name: ${liquidnet.logfile.path}/${liquidnet.logfile.name}-%d{yyyy-MM-dd}.%i.log
level-root: info
mysql:
master:
urlHostAndPort: zhengzai-test.rwlb.rds.aliyuncs.com:3306
username: zhengzai
password: $hAh4SGcDQ
database-name: test_ln_scene
slave:
urlHostAndPort: zhengzai-test.rwlb.rds.aliyuncs.com:3306
username: zhengzai
password: $hAh4SGcDQ
database-name: test_ln_scene
mongodb:
host: s-2zef656730e5a1d4.mongodb.rds.aliyuncs.com:3717,s-2ze49872ed6aeb14.mongodb.rds.aliyuncs.com:3717
port: 3717
user: root
pwd: $hAh4SGcDQ
sslEnabled: false
database: test_ln_scene
redis:
host: r-2ze7002ckw5u75fgukpd.redis.rds.aliyuncs.com
# host: r-2zefzyjbij5vbez65y.redis.rds.aliyuncs.com
port: 6380
password: PO@B!Iud32
url-refund:
apply: "http://testpay.zhengzai.tv/refund/single"
notify: "https://testkylin.zhengzai.tv/kylin/refund/callback"
url-banner:
provinces: "https://testservice.zhengzai.tv/provinces" #省份
url1: "https://testmediaapi.zhengzai.tv/api/video/list?per_page=50&page=1&type=1" #PGC点播
url2: "https://testmediaapi.zhengzai.tv/api/video/list?per_page=50&page=1&type=2" #PGC直播
url5: "https://testmall.zhengzai.tv/admin/fieldListForQuick?page=1&per_page=50" #场地
url6: "/kylin/performances/recommend/performance/status?pageNum=1&pageSize=50&status=(3,6,7,8,9,10)&title=''" #票务
url7: "https://testmall.zhengzai.tv/admin/goodListForQuick?page=1&per_page=50" #商品
url8: "https://testkylin.zhengzai.tv/kylin/performances/roadShow/list?pageNum=1&pageSize=50" #巡演
url13: "https://testmall.zhengzai.tv/admin/integrationListForQuick?page=1&per_page=50" #积分商城
url14: "https://testmall.zhengzai.tv/admin/good/collective/quick?page=1&per_page=50" #商品集合
url20: "https://testmerchantapi.zhengzai.tv/admin/mis/musician/quick?page=1&per_page=50" #音乐人
url21: "https://testmerchantapi.zhengzai.tv/admin/mis/song/quick?page=1&per_page=50" #歌曲
url22: "https://testmerchantapi.zhengzai.tv/admin/mis/album/quick?page=1&per_page=50" #专辑
url23: "https://testmediaapi.zhengzai.tv/api/play/list?page=1&per_page=50" #视频播单
url24: "https://testmerchantapi.zhengzai.tv/admin/mis/musician/collect?page=1&per_page=50" #音乐人合集
url26: "https://testpassport.zhengzai.tv/admin/vip/card/list?page=1&per_page=50&status=1" #摩登会员
al-oss:
imgUrl: "https://img.zhengzai.tv/"
endpoint: http://oss-cn-hangzhou.aliyuncs.com
accessKeyId: LTAI4FxrURzMvvu9reFgwY5o
accessKeySecret: Ym5tfAxOf2zX20MgjikLI3Wz3tlwVV
shunfeng:
url: "https://butler-dev-ms.sf-express.com"
sk: 21e9a70f677a2bf29dfa2b3bead4f018
appid: 557104628450889728
# end-dev-这里是配置信息基本值
spring:
profiles:
include:
- druid
- client-admin-web
\ No newline at end of file
Application Version: ${ruoyi.version}
Spring Boot Version: ${spring-boot.version}
////////////////////////////////////////////////////////////////////
// _ooOoo_ //
// o8888888o //
// 88" . "88 //
// (| ^_^ |) //
// O\ = /O //
// ____/`---'\____ //
// .' \\| |// `. //
// / \\||| : |||// \ //
// / _||||| -:- |||||- \ //
// | | \\\ - /// | | //
// | \_| ''\---/'' | | //
// \ .-\__ `-` ___/-. / //
// ___`. .' /--.--\ `. . ___ //
// ."" '< `.___\_<|>_/___.' >'"". //
// | | : `- \`.;`\ _ /`;.`/ - ` : | | //
// \ \ `-. \_ __\ /__ _/ .-` / / //
// ========`-.____`-.___\_____/___.-`____.-'======== //
// `=---=' //
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //
// 佛祖保佑 永不宕机 永无BUG //
////////////////////////////////////////////////////////////////////
\ No newline at end of file
/$$ /$$ /$$ /$$ /$$ /$$ /$$
| $$ |__/ |__/ | $$| $$$ | $$ | $$
| $$ /$$ /$$$$$$ /$$ /$$ /$$ /$$$$$$$| $$$$| $$ /$$$$$$ /$$$$$$
| $$ | $$ /$$__ $$| $$ | $$| $$ /$$__ $$| $$ $$ $$ /$$__ $$|_ $$_/
| $$ | $$| $$ \ $$| $$ | $$| $$| $$ | $$| $$ $$$$| $$$$$$$$ | $$
| $$ | $$| $$ | $$| $$ | $$| $$| $$ | $$| $$\ $$$| $$_____/ | $$ /$$
| $$$$$$$$| $$| $$$$$$$| $$$$$$/| $$| $$$$$$$| $$ \ $$| $$$$$$$ | $$$$/
|________/|__/ \____ $$ \______/ |__/ \_______/|__/ \__/ \_______/ \___/
| $$
| $$
|__/
Application Version: ${application.version}${application.formatted-version}
Spring Boot Version: ${spring-boot.version}${spring-boot.formatted-version}
#eurekaServer配置
eureka:
client:
register-with-eureka: true
register-with-eureka: false
fetch-registry: true
serviceUrl:
defaultZone: http://${liquidnet.security.username}:${liquidnet.security.password}@${liquidnet.eureka.host}/eureka-server/eureka
......@@ -11,7 +11,7 @@ spring:
config:
# uri: http://127.0.0.1:7002/support-config
profile: ${liquidnet.cloudConfig.profile}
name: ${spring.application.name} #默认为spring.application.name
name: ${spring.application.name},${spring.application.name}-druid #默认为spring.application.name
discovery:
enabled: true
service-id: liquidnet-support-config
\ No newline at end of file
......@@ -6,9 +6,9 @@ liquidnet:
username: user
password: user123
eureka:
host: 127.0.0.1:7001
host: 172.17.192.65:7001
# end-dev-这里是配置信息基本值
spring:
profiles:
include: service-account
\ No newline at end of file
include: client-admin-web
\ No newline at end of file
......@@ -6,9 +6,9 @@ liquidnet:
username: user
password: user123
eureka:
host: 172.18.0.2:7001
host: 172.17.207.177:7001
# end-dev-这里是配置信息基本值
spring:
profiles:
include: service-account
\ No newline at end of file
include: client-admin-web
\ No newline at end of file
......@@ -1011,7 +1011,7 @@ var table = {
if ($.common.isNotEmpty(id)) {
url = table.options.detailUrl.replace("{id}", id);
} else {
var id = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId);
var id = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId);
if (id.length == 0) {
$.modal.alertWarning("请至少选择一条记录");
return;
......
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('演出订单列表')"/>
</head>
<body class="gray-bg">
<div class="container-div">
<div class="row">
<div class="col-sm-12 search-collapse">
<form id="formId">
<input hidden type="text" name="performancesId" th:value="${id}">
<div class="select-list">
<ul>
<li>
<label>订单号:</label>
<input type="text" name="orderCode"/>
</li>
<li>
<label>订单号ID:</label>
<input type="text" name="orderTicketsId"/>
</li>
<li>
<label>购买人电话:</label>
<input type="text" name="userMobile"/>
</li>
<li>
<label>购买人姓名:</label>
<input type="text" name="userName"/>
</li>
<li>
<label>订单状态:</label>
<select name="orderStatus" th:with="type=${@dict.getType('zhengzai_order_status')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}"
th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
<label>快递状态:</label>
<select name="expressStatus" th:with="type=${@dict.getType('zhengzai_express_status')}">
<option th:each="dict : ${type}" th:text="${dict.dictLabel}"
th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i
class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i
class="fa fa-refresh"></i>&nbsp;重置</a>
</li>
</ul>
</div>
</form>
</div>
<div class="col-sm-12 select-table table-bordered">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
<th:block th:include="include :: footer"/>
<script th:inline="javascript">
var prefix = ctx + "kylin/performancesExpress";
var orderStatusDic = [[${@dict.getType('zhengzai_order_status')}]];
$(function () {
var options = {
url: prefix + "/performanceOrderList",
modalName: "演出订单",
columns: [{
checkbox: true
},
{
field: 'orderTicketsId',
title: '订单ID'
},
{
field: 'orderCode',
title: '订单号'
},
{
field: 'status',
title: '订单状态',
formatter: function (value, row, index) {
return $.table.selectDictLabel(orderStatusDic, value);
}
},
{
field: 'priceActual',
title: '总价格'
},
{
field: 'number',
title: '购票量'
},
{
field: 'userId',
title: '用户ID'
},
{
field: 'userMobile',
title: '账户名'
},
{
field: 'userMobile',
title: '手机号'
},
{
title: '操作',
align: 'center',
formatter: function (value, row, index) {
var actions = [];
// actions.push('<a class="btn btn-warning btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="$.operate.detail(\'' + row.orderTicketsId + '\')"><i class="fa fa-search"></i>详细</a>');
return actions.join('');
}
}]
};
$.table.init(options);
});
</script>
</body>
</html>
\ No newline at end of file
......@@ -15,39 +15,8 @@
<input type="text" name="title"/>
</li>
<li>
<label>城市名称:</label>
<input type="text" name="cityName"/>
</li>
<li>
<label>演出状态:</label>
<select name="status">
<option value="-2">全部</option>
<option value="1">审核中</option>
<option value="3">审核通过</option>
<option value="4">审核拒绝</option>
<option value="6">售卖</option>
<option value="7">已下架</option>
<option value="8">售罄</option>
<option value="9">未开始</option>
<option value="10">演出结束</option>
</select>
</li>
<li>
<label>审核状态:</label>
<select name="auditStatus">
<option value="-2">全部</option>
<option value="0">审核中</option>
<option value="2">审核拒绝</option>
</select>
</li>
<li>
<label>停售时间:</label>
<select name="stopSellDay">
<option value="-2">全部</option>
<option value="0">今天</option>
<option value="1">明天</option>
<option value="-1">昨天</option>
</select>
<label>演出ID:</label>
<input type="text" name="performanceId"/>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i
......@@ -67,18 +36,13 @@
</div>
<th:block th:include="include :: footer"/>
<script th:inline="javascript">
var detailFlag = [[${@permission.hasPermi('kylin:performancesExpress:detail')}]];
var expertFlag = [[${@permission.hasPermi('kylin:performancesExpress:expert')}]];
var performanceOrderListFlag = [[${@permission.hasPermi('kylin:performancesExpress:performanceOrderList')}]];
var prefix = ctx + "kylin/performancesExpress";
$(function () {
var options = {
url: prefix + "/list",
detailUrl: prefix + "/details/{id}",
createUrl: prefix + "/add",
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
url: prefix + "/performancesList",
detailUrl: prefix + "/performanceOrderList/{id}",
modalName: "演出快递",
columns: [{
checkbox: true
......@@ -95,10 +59,6 @@
field: 'timeStart',
title: '开演时间'
},
{
field: 'statusName',
title: '演出状态'
},
{
field: '22',
title: '总数'
......@@ -120,8 +80,7 @@
align: 'center',
formatter: function (value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="$.operate.detailTab(\'' + row.performancesId + '\')"><i class="fa fa-edit"></i>管理</a> ');
actions.push('<a class="btn btn-success btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="$.operate.detailTab(\'' + row.performancesId + '\')"><i class="fa fa-edit"></i>查看</a> ');
actions.push('<a class="btn btn-success btn-xs ' + performanceOrderListFlag + '" href="javascript:void(0)" onclick="$.operate.detailTab(\'' + row.performancesId + '\')"><i class="fa fa-edit"></i>查看</a> ');
return actions.join('');
}
}]
......
package com.liquidnet.client.admin.zhengzai.kylin.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.liquidnet.client.admin.zhengzai.kylin.utils.DataUtils;
import com.liquidnet.client.admin.zhengzai.kylin.utils.PerformanceVoUtils;
import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.service.kylin.dao.*;
import com.liquidnet.service.kylin.dto.param.*;
import com.liquidnet.service.kylin.dto.vo.admin.KylinPerformanceAgentVo;
import com.liquidnet.service.kylin.dto.vo.admin.KylinPerformanceDamaiVo;
import com.liquidnet.service.kylin.dto.vo.admin.KylinPerformanceMemberHistoryVo;
import com.liquidnet.service.kylin.dto.vo.partner.KylinPerformanceMisVo;
import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketPartnerVo;
import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketTimesPartnerVo;
import com.liquidnet.service.kylin.entity.*;
import com.liquidnet.service.kylin.mapper.*;
import com.liquidnet.service.kylin.service.admin.IKylinPerformancesAdminService;
import com.mongodb.BasicDBObject;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
import lombok.extern.slf4j.Slf4j;
import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -55,31 +30,32 @@ public class PerformancesExpressServiceImpl extends ServiceImpl<KylinPerformance
@Autowired
MongoTemplate mongoTemplate;
@Autowired
private PerformanceVoUtils performanceVoUtils;
@Autowired
private KylinPerformancesMapper performancesMapper;
@Autowired
private KylinOrderTicketsMapper kylinOrderTicketsMapper;
public KylinPerformanceMisVo performanceDetails(String performancesId) {
log.info(" PERFORMANCE mis演出详情");
KylinPerformanceMisVo createMisVo = performanceVoUtils.getPerformanceMisVo(performancesId);
return createMisVo;
public List<PerformanceExpressPerformanceListAdminDao> getPerformancesList(PerformanceExpressSearchAdminParam performanceExpressSearchAdminParam) {
List<PerformanceExpressPerformanceListAdminDao> voList = new ArrayList();
try {
Map<String, Object> map = BeanUtil.convertBeanToMap(performanceExpressSearchAdminParam);
voList = performancesMapper.performanceExpressPerformanceList(map);
} catch (Exception e) {
e.printStackTrace();
return null;
}
return voList;
}
public List<PerformanceExpressAdminListDao> getList(PerformanceExpressAdminListParam performanceExpressAdminListParam) {
List<PerformanceExpressAdminListDao> voList = new ArrayList();
public List<PerformanceExpressPerformanceOrderListAdminDao> getPerformancesOrderList(PerformanceExpressSearchAdminParam performanceExpressSearchAdminParam) {
List<PerformanceExpressPerformanceOrderListAdminDao> voList = new ArrayList();
try {
Map<String, Object> map = BeanUtil.convertBeanToMap(performanceExpressAdminListParam);
voList = performancesMapper.misPerformanceExpressList(map);
for (PerformanceExpressAdminListDao item : voList) {
item.setStatus(item.getStatus());
}
Map<String, Object> map = BeanUtil.convertBeanToMap(performanceExpressSearchAdminParam);
voList = kylinOrderTicketsMapper.performanceExpressPerformanceOrderList(map);
} catch (Exception e) {
e.printStackTrace();
return null;
}
return voList;
}
}
......@@ -6,7 +6,7 @@ liquidnet:
username: user
password: user123
eureka:
host: 127.0.0.1:7001
host: 172.17.192.65:7001
# end-dev-这里是配置信息基本值
spring:
......
# begin-dev-这里是配置信息基本值
liquidnet:
info:
port: 7099
......@@ -11,6 +12,56 @@ liquidnet:
pattern-file: '%d{yyyy-MM-dd HH:mm:ss.SSS} [ %-5level] %thread [%logger{96}:%line] - %msg%n'
pattern-console: '%d{yyyy-MM-dd HH:mm:ss.SSS} [ %-5level] %thread [%logger{96}:%line] - %msg%n'
pattern-rolling-file-name: ${liquidnet.logfile.path}/${liquidnet.logfile.name}-%d{yyyy-MM-dd}.%i.log
level-root: info
level-root: debug
mysql:
database-name: liquidnet_admin
master:
urlHostAndPort: 39.106.122.201:3308
username: testmall
password: zhengzai!mYT
database-name: dev_ln_scene
slave:
urlHostAndPort: 39.106.122.201:3308
username: testmall
password: zhengzai!mYT
database-name: dev_ln_scene
mongodb:
host: 39.106.122.201:27017
port: 27017
user: root
pwd: S&y$6d*JwJ
sslEnabled: false
database: dev_ln_scene
redis:
host: 39.106.122.201
port: 6379
password: 3Xa%8p
url-refund:
apply: "http://testpay.zhengzai.tv/refund/single"
notify: "https://devkylin.zhengzai.tv/kylin/refund/callback"
url-banner:
provinces: "https://devservice.zhengzai.tv/provinces" #省份
url1: "https://devmediaapi.zhengzai.tv/api/video/list?per_page=50&page=1&type=1" #PGC点播
url2: "https://devmediaapi.zhengzai.tv/api/video/list?per_page=50&page=1&type=2" #PGC直播
url5: "https://devmall.zhengzai.tv/admin/fieldListForQuick?page=1&per_page=50" #场地
url6: "/kylin/performances/recommend/performance/status?pageNum=1&pageSize=50&status=(3,6,7,8,9,10)&title=''" #票务
url7: "https://devmall.zhengzai.tv/admin/goodListForQuick?page=1&per_page=50" #商品
url8: "https://devkylin.zhengzai.tv/kylin/performances/roadShow/list?pageNum=1&pageSize=50" #巡演
url13: "https://devmall.zhengzai.tv/admin/integrationListForQuick?page=1&per_page=50" #积分商城
url14: "https://devmall.zhengzai.tv/admin/good/collective/quick?page=1&per_page=50" #商品集合
url20: "https://devmerchantapi.zhengzai.tv/admin/mis/musician/quick?page=1&per_page=50" #音乐人
url21: "https://devmerchantapi.zhengzai.tv/admin/mis/song/quick?page=1&per_page=50" #歌曲
url22: "https://devmerchantapi.zhengzai.tv/admin/mis/album/quick?page=1&per_page=50" #专辑
url23: "https://devmediaapi.zhengzai.tv/api/play/list?page=1&per_page=50" #视频播单
url24: "https://devmerchantapi.zhengzai.tv/admin/mis/musician/collect?page=1&per_page=50" #音乐人合集
url26: "https://devpassport.zhengzai.tv/admin/vip/card/list?page=1&per_page=50&status=1" #摩登会员
al-oss:
imgUrl: "https://img.zhengzai.tv/"
endpoint: http://oss-cn-hangzhou.aliyuncs.com
accessKeyId: LTAI4FxrURzMvvu9reFgwY5o
accessKeySecret: Ym5tfAxOf2zX20MgjikLI3Wz3tlwVV
shunfeng:
url: "https://butler-dev-ms.sf-express.com"
sk: 21e9a70f677a2bf29dfa2b3bead4f018
appid: 557104628450889728
# end-dev-这里是配置信息基本值
\ No newline at end of file
# 数据源配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
druid:
# 主库数据源
master:
url: jdbc:mysql://${liquidnet.mysql.master.urlHostAndPort}/${liquidnet.mysql.master.database-name}?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: ${liquidnet.mysql.master.username}
password: ${liquidnet.mysql.master.password}
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: false
url: jdbc:mysql://${liquidnet.mysql.slave.urlHostAndPort}/${liquidnet.mysql.slave.database-name}?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: ${liquidnet.mysql.slave.username}
password: ${liquidnet.mysql.slave.password}
# 初始连接数
initialSize: 5
# 最小连接池数量
minIdle: 10
# 最大连接池数量
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
# 控制台管理用户名和密码
login-username: ruoyi
login-password: 123456
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
\ No newline at end of file
# 数据源配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
druid:
# 主库数据源
master:
url: jdbc:mysql://${liquidnet.mysql.master.urlHostAndPort}/${liquidnet.mysql.master.database-name}?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: ${liquidnet.mysql.master.username}
password: ${liquidnet.mysql.master.password}
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: false
url: jdbc:mysql://${liquidnet.mysql.slave.urlHostAndPort}/${liquidnet.mysql.slave.database-name}?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: ${liquidnet.mysql.slave.username}
password: ${liquidnet.mysql.slave.password}
# 初始连接数
initialSize: 5
# 最小连接池数量
minIdle: 10
# 最大连接池数量
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
# 控制台管理用户名和密码
login-username: ruoyi
login-password: 123456
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
\ No newline at end of file
# begin-dev-这里是配置信息基本值
liquidnet:
info:
port: 7099
context:
name: liquidnet-client-admin-web
logfile:
path: /data/logs
name: client-admin-web
config: classpath:logback-spring.xml
file-max-size: 200MB
pattern-file: '%d{yyyy-MM-dd HH:mm:ss.SSS} [ %-5level] %thread [%logger{96}:%line] - %msg%n'
pattern-console: '%d{yyyy-MM-dd HH:mm:ss.SSS} [ %-5level] %thread [%logger{96}:%line] - %msg%n'
pattern-rolling-file-name: ${liquidnet.logfile.path}/${liquidnet.logfile.name}-%d{yyyy-MM-dd}.%i.log
level-root: info
mysql:
master:
urlHostAndPort: zhengzai-test.rwlb.rds.aliyuncs.com:3306
username: zhengzai
password: $hAh4SGcDQ
database-name: test_ln_scene
slave:
urlHostAndPort: zhengzai-test.rwlb.rds.aliyuncs.com:3306
username: zhengzai
password: $hAh4SGcDQ
database-name: test_ln_scene
mongodb:
host: s-2zef656730e5a1d4.mongodb.rds.aliyuncs.com:3717,s-2ze49872ed6aeb14.mongodb.rds.aliyuncs.com:3717
port: 3717
user: root
pwd: $hAh4SGcDQ
sslEnabled: false
database: test_ln_scene
redis:
host: r-2ze7002ckw5u75fgukpd.redis.rds.aliyuncs.com
# host: r-2zefzyjbij5vbez65y.redis.rds.aliyuncs.com
port: 6380
password: PO@B!Iud32
url-refund:
apply: "http://testpay.zhengzai.tv/refund/single"
notify: "https://testkylin.zhengzai.tv/kylin/refund/callback"
url-banner:
provinces: "https://testservice.zhengzai.tv/provinces" #省份
url1: "https://testmediaapi.zhengzai.tv/api/video/list?per_page=50&page=1&type=1" #PGC点播
url2: "https://testmediaapi.zhengzai.tv/api/video/list?per_page=50&page=1&type=2" #PGC直播
url5: "https://testmall.zhengzai.tv/admin/fieldListForQuick?page=1&per_page=50" #场地
url6: "/kylin/performances/recommend/performance/status?pageNum=1&pageSize=50&status=(3,6,7,8,9,10)&title=''" #票务
url7: "https://testmall.zhengzai.tv/admin/goodListForQuick?page=1&per_page=50" #商品
url8: "https://testkylin.zhengzai.tv/kylin/performances/roadShow/list?pageNum=1&pageSize=50" #巡演
url13: "https://testmall.zhengzai.tv/admin/integrationListForQuick?page=1&per_page=50" #积分商城
url14: "https://testmall.zhengzai.tv/admin/good/collective/quick?page=1&per_page=50" #商品集合
url20: "https://testmerchantapi.zhengzai.tv/admin/mis/musician/quick?page=1&per_page=50" #音乐人
url21: "https://testmerchantapi.zhengzai.tv/admin/mis/song/quick?page=1&per_page=50" #歌曲
url22: "https://testmerchantapi.zhengzai.tv/admin/mis/album/quick?page=1&per_page=50" #专辑
url23: "https://testmediaapi.zhengzai.tv/api/play/list?page=1&per_page=50" #视频播单
url24: "https://testmerchantapi.zhengzai.tv/admin/mis/musician/collect?page=1&per_page=50" #音乐人合集
url26: "https://testpassport.zhengzai.tv/admin/vip/card/list?page=1&per_page=50&status=1" #摩登会员
al-oss:
imgUrl: "https://img.zhengzai.tv/"
endpoint: http://oss-cn-hangzhou.aliyuncs.com
accessKeyId: LTAI4FxrURzMvvu9reFgwY5o
accessKeySecret: Ym5tfAxOf2zX20MgjikLI3Wz3tlwVV
shunfeng:
url: "https://butler-dev-ms.sf-express.com"
sk: 21e9a70f677a2bf29dfa2b3bead4f018
appid: 557104628450889728
# end-dev-这里是配置信息基本值
\ No newline at end of file
# 项目相关配置
liquidnet:
ruoyi:
# 名称
name: LiquidNet
name: RuoYi
# 版本
version: 4.4.0
version: 4.6.1
# 版权年份
copyrightYear: 2019
copyrightYear: 2021
# 实例演示开关
demoEnabled: true
# 文件路径 示例( Windows配置D:/LiquidNet/uploadPath,Linux配置 /home/LiquidNet/uploadPath)
profile: D:/LiquidNet/uploadPath
# 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
profile: /usr/local/var/www/uploadPath
# 获取ip地址开关
addressEnabled: false
# 开发环境配置
server:
# 服务器的HTTP端口,默认为80
port: 7099
port: ${liquidnet.info.port}
servlet:
# 应用的访问路径
context-path: /
context-path: ${liquidnet.info.context}
tomcat:
# tomcat的URI编码
uri-encoding: UTF-8
......@@ -28,11 +28,27 @@ server:
# Tomcat启动初始化的线程数,默认值25
min-spare-threads: 30
# 日志配置
# 日志配置-------------------------------------------------------
logging:
# config: ${liquidnet.logfile.config}
file:
name: ${liquidnet.logfile.path}/${liquidnet.logfile.name}.log
max-size: 200MB
pattern:
file: '%d{yyyy-MM-dd HH:mm:ss.SSS} [ %-5level] %thread [%logger{96}:%line] - %msg%n'
console: '%d{yyyy-MM-dd HH:mm:ss.SSS} [ %-5level] %thread [%logger{96}:%line] - %msg%n'
rolling-file-name: ${liquidnet.logfile.path}/${liquidnet.logfile.name}-%d{yyyy-MM-dd}.%i.log
level:
com.liquidnet.client.admin: debug
org.springframework: warn
root: info
#以下是为指定包设置日志级别
com:
liquidnet:
client:
admin: debug
org:
springframework: warn
# -----------------------------------------------------------
# 用户配置
user:
......@@ -42,77 +58,8 @@ user:
# Spring配置
spring:
autoconfigure:
exclude: org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration,org.springframework.cloud.bus.BusAutoConfiguration
application:
name: liquidnet-client-admin-web
profiles:
include: common-service #这里加载management相关公共配置
rabbitmq:
addresses: ${liquidnet.rabbitmq.host}
port: ${liquidnet.rabbitmq.port}
username: ${liquidnet.rabbitmq.username}
password: ${liquidnet.rabbitmq.password}
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
druid:
# 主库数据源
master:
# url: jdbc:mysql://34.92.245.187:3306/liquidnet_bus?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
# url: jdbc:mysql://34.92.245.187:3306/liquidnet_bus?serverTimezone=UTC8&characterEncoding=utf-8&useSSL=false
# url: jdbc:mysql://34.92.245.187:3306/liquidnet_bus?serverTimezone=Asia/Shanghai&characterEncoding=utf-8&useSSL=false
# username: root
# password: ZD0Re0lG~h
url: jdbc:mysql://${liquidnet.mysql.urlHostAndPort}/${liquidnet.mysql.database-name}?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=UTC
username: ${liquidnet.mysql.username}
password: ${liquidnet.mysql.password}
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: false
url:
username:
password:
# 初始连接数
initialSize: 5
# 最小连接池数量
minIdle: 10
# 最大连接池数量
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
# 控制台管理用户名和密码
login-username:
login-password:
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
# 模板引擎
thymeleaf:
mode: HTML
......@@ -128,39 +75,41 @@ spring:
date-format: yyyy-MM-dd HH:mm:ss
# 文件上传
servlet:
multipart:
# 单个文件大小
max-file-size: 10MB
# 设置总上传的文件大小
max-request-size: 20MB
multipart:
# 单个文件大小
max-file-size: 10MB
# 设置总上传的文件大小
max-request-size: 20MB
# 服务模块
devtools:
restart:
# 热部署开关
enabled: true
# Eureka
eureka:
client:
register-with-eureka: true
fetch-registry: true
serviceUrl:
defaultZone: http://${liquidnet.security.username}:${liquidnet.security.password}@${liquidnet.eureka.host}/eureka-server/eureka
instance:
hostname: ${spring.cloud.client.ip-address}
lease-expiration-duration-in-seconds: 15 #服务过期时间配置,超过这个时间没有接收到心跳EurekaServer就会将这个实例剔除
lease-renewal-interval-in-seconds: 5 #服务刷新时间配置,每隔这个时间会主动心跳一次
prefer-ip-address: true
instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}:${spring.application.instance_id:${server.port}}
enabled: false
data:
mongodb:
uri: mongodb://${liquidnet.mongodb.user}:${liquidnet.mongodb.pwd}@${liquidnet.mongodb.host}/?authSource=admin&maxPoolSize=4000&waitQueueMultiple=100
sslEnabled: ${liquidnet.mongodb.sslEnabled}
database: ${liquidnet.mongodb.database}
redis:
database: 15
port: ${liquidnet.redis.port}
host: ${liquidnet.redis.host}
password: ${liquidnet.redis.password}
lettuce:
pool:
max-active: 8
max-wait: -1
max-idle: 8
min-idle: 0
# MyBatis
mybatis:
# 搜索指定包别名
typeAliasesPackage: com.liquidnet.client.admin.**.domain
# 配置mapper的扫描,找到所有的mapper.xml映射文件
mapperLocations: classpath*:mapper/**/*Mapper.xml
# 加载全局的配置文件
configLocation: classpath:mybatis/mybatis-config.xml
# 搜索指定包别名
typeAliasesPackage: com.liquidnet.service.kylin.**.entity,com.liquidnet.client.admin.**.domain
# 配置mapper的扫描,找到所有的mapper.xml映射文件
mapperLocations: classpath*:mapper/**/*Mapper.xml,classpath:com.liquidnet.service.kylin.mapper/*Mapper.xml,classpath:com.liquidnet.service.adam.mapper/*Mapper.xml
# 加载全局的配置文件
configLocation: classpath:mybatis/mybatis-config.xml
# PageHelper分页插件
pagehelper:
......@@ -179,7 +128,7 @@ shiro:
# 首页地址
indexUrl: /index
# 验证码开关
captchaEnabled: true
captchaEnabled: false
# 验证码类型 math 数组计算 char 字符
captchaType: math
cookie:
......@@ -191,8 +140,6 @@ shiro:
httpOnly: true
# 设置Cookie的过期时间,天为单位
maxAge: 30
# 设置密钥,务必保持唯一性(生成方式,直接拷贝到main运行即可)KeyGenerator keygen = KeyGenerator.getInstance("AES"); SecretKey deskey = keygen.generateKey(); System.out.println(Base64.encodeToString(deskey.getEncoded()));
cipherKey: zSyK5Kp6PZAAjlT+eeNMlg==
session:
# Session超时时间,-1代表永不过期(默认30分钟)
expireTime: 30
......
package com.liquidnet.service.kylin.dao;
import lombok.Data;
@Data
public class PerformanceExpressAdminListDao {
//演出数据
private String performancesId;
private String title;
private String timeStart;
private String timeEnd;
private String sponsor;
private Integer status;
private String statusName;
private String auditTime;
private Integer auditStatus;
private Integer totalGeneral;
private Integer saleGeneral;
private Integer totalSalePrice;
private Integer surplusGeneral;
private Integer syncDamai;
private String rejectTxt;
private Integer sort;
private String createdAt;
public void setStatus(Integer status){
this.status=status;
switch (status){
case 1:
this.statusName="审核中";
break;
case 3:
this.statusName="审核通过";
break;
case 4:
this.statusName="审核拒绝";
break;
case 6:
this.statusName="售卖中";
break;
case 7:
this.statusName="已下架";
break;
case 8:
this.statusName="售罄";
break;
case 9:
this.statusName="未开始";
break;
case 10:
this.statusName="已结束";
break;
default:
this.statusName="其他";
break;
}
}
}
package com.liquidnet.service.kylin.dao;
import lombok.Data;
@Data
public class PerformanceExpressPerformanceListAdminDao {
//演出数据
private String performancesId;
private String title;
private String timeStart;
private String timeEnd;
private String createdAt;
}
package com.liquidnet.service.kylin.dao;
import lombok.Data;
@Data
public class PerformanceExpressPerformanceOrderListAdminDao {
String orderTicketsId;
String sponsor;
String orderCode;
String title;
String status;
String getTicketType;
String payType;
String paymentType;
String tied;
String price;
String number;
String priceMember;
String priceTotal;
String priceVoucher;
String priceActual;
String priceExpress;
String priceRefund;
String refundNumber;
String userId;
String userName;
String userMobile;
}
......@@ -203,7 +203,7 @@ public class KylinOrderTickets implements Serializable {
orderTicketsId, userId, userName, userMobile, performanceTitle, orderCode, qrCode, orderType, orderVersion,
number, price, priceMember, priceTotal, priceVoucher, priceActual, priceExpress, priceRefund, refundNumber,
payType, paymentType, timePay, expressContacts, expressAddress, expressPhone, couponType, getTicketType,
getTicketDescribe, payCountdownMinute, comment, createdAt, updatedAt, payCode
getTicketDescribe, payCountdownMinute, comment, createdAt, updatedAt,payCode
};
}
......@@ -212,9 +212,9 @@ public class KylinOrderTickets implements Serializable {
*
* @return
*/
public Object[] getPayAgainObject(LocalDateTime updateTime, LocalDateTime createTime) {
public Object[] getPayAgainObject(LocalDateTime updateTime,LocalDateTime createTime) {
return new Object[]{
orderCode, updatedAt, orderTicketsId, updateTime, createTime
updatedAt, orderCode, orderTicketsId,updateTime,createTime
};
}
......@@ -223,9 +223,9 @@ public class KylinOrderTickets implements Serializable {
*
* @return
*/
public Object[] getSynOrderObject(LocalDateTime updateTime, LocalDateTime createTime) {
public Object[] getSynOrderObject(LocalDateTime updateTime,LocalDateTime createTime) {
return new Object[]{
paymentType, payCode, timePay, qrCode, updatedAt, orderTicketsId, updateTime, createTime
paymentType, payCode, timePay, qrCode, updatedAt, orderTicketsId,updateTime,createTime
};
}
......
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.kylin.dao.OrderPushDamaiDto;
import com.liquidnet.service.kylin.dao.OrderScriptDto;
import com.liquidnet.service.kylin.dao.OrderTicketsListDao;
import com.liquidnet.service.kylin.dao.PerformanceExpressPerformanceOrderListAdminDao;
import com.liquidnet.service.kylin.entity.KylinOrderTickets;
import org.apache.ibatis.annotations.Param;
......@@ -32,4 +33,6 @@ public interface KylinOrderTicketsMapper extends BaseMapper<KylinOrderTickets> {
List<OrderPushDamaiDto> pushDamaiDetailsList(String ticketsId);
List<OrderScriptDto> orderScriptDto(String userId);
List<PerformanceExpressPerformanceOrderListAdminDao> performanceExpressPerformanceOrderList(Map<String, Object> map);
}
......@@ -46,5 +46,5 @@ public interface KylinPerformancesMapper extends BaseMapper<KylinPerformances> {
List<PerformanceSponsorDao> getPerformanceSponsorList(String sponsorType);
List<PerformanceExpressAdminListDao> misPerformanceExpressList(Map<String, Object> map);
List<PerformanceExpressPerformanceListAdminDao> performanceExpressPerformanceList(Map<String, Object> map);
}
......@@ -198,10 +198,48 @@
FROM kylin_order_tickets AS ot
LEFT JOIN kylin_order_ticket_status AS ots ON ots.order_id = ot.order_tickets_id
LEFT JOIN kylin_order_ticket_relations AS otr ON otr.order_id = ot.order_tickets_id
WHERE status = 0 AND NOW() > DATE_SUB(ot.created_at,INTERVAL -(pay_countdown_minute+1) MINUTE)
WHERE status = 0 AND NOW() > DATE_SUB(ot.created_at,INTERVAL -pay_countdown_minute MINUTE)
<if test="userId!=''">
AND user_id = #{userId}
</if>
</select>
<select id="performanceExpressPerformanceOrderList"
resultType="com.liquidnet.service.kylin.dao.PerformanceExpressPerformanceOrderListAdminDao">
SELECT
kot.order_tickets_id,
kot.order_code,
kot.price_express,
kot.number,
kot.user_id,
kot.user_name,
kot.user_mobile,
kot.express_contacts,
kot.express_address,
kot.express_phone,
kots.status
kots.express_type
FROM kylin_order_tickets kot
inner join kylin_order_ticket_status kots on kot.order_tickets_id = kots.order_id
inner join kylin_order_ticket_relations kotr on kot.order_tickets_id = kotr.order_id
<where>
kotr.performance_id = #{performancesId}
AND kot.get_ticket_type = 'express'
AND kots.status IN (1, 3, 4, 6)
AND kots.pay_status = 1
<if test="orderCode != null and orderCode != ''">AND kot.order_code = #{orderCode}</if>
<if test="orderTicketsId != null and orderTicketsId != ''">AND kot.order_tickets_id = #{orderTicketsId}</if>
<if test="userMobile != null and userMobile != ''">AND kot.user_mobile = #{userMobile}</if>
<if test="userName != null and userName != ''">AND kot.user_name like concat('%', #{userName}, '%')</if>
<if test="orderCode != null and orderCode != ''">AND kot.order_code = #{orderCode}</if>
<if test="expressContacts != null and expressContacts != ''">AND kot.express_contacts = #{expressContacts}</if>
<if test="expressPhone != null and expressPhone != ''">AND kot.express_phone = #{expressPhone}</if>
<if test="orderStatus!=null and orderStatus!=''">AND kots.status = #{orderStatus}</if>
</where>
</select>
</mapper>
......@@ -447,15 +447,13 @@
</where>
order by sponsor_id
</select>
<select id="misPerformanceExpressList"
resultType="com.liquidnet.service.kylin.dao.PerformanceExpressAdminListDao">
<select id="performanceExpressPerformanceList"
resultType="com.liquidnet.service.kylin.dao.PerformanceExpressPerformanceListAdminDao">
SELECT
p.performances_id ,
p.title ,
p.type,
p.time_start ,
p.time_end ,
ps.`status` ,
p.created_at
FROM
kylin_performances AS p
......@@ -465,24 +463,10 @@
<if test="title!=''">
AND title LIKE concat('%', #{title}, '%')
</if>
<if test="cityName!=''">
AND city_name LIKE concat('%', #{cityName}, '%')
</if>
<if test="status!='-2'">
AND ps.STATUS = #{status}
</if>
<if test="status=='-2'">
AND (ps.STATUS >= 3 or ps.STATUS = 1)
</if>
<if test="auditStatus!='-2'">
AND ps.audit_status = #{auditStatus}
</if>
<if test="stopSellDay!=-2">
AND p.time_end BETWEEN #{stopSellTime} AND NOW()
<if test="performanceId!=''">
AND performance_id = #{performanceId}
</if>
</where>
<if test="orderItem!=''">
ORDER BY created_at DESC
</if>
ORDER BY created_at DESC
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>liquidnet-service-account</artifactId>
<groupId>com.liquidnet</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>liquidnet-service-account-api</artifactId>
<dependencies>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-service-account-do</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
package com.liquidnet.service.account.common;
public class ErrorConstants {
public static final String PROCESSING_CODE = "1000";
public static final String SUCCESS_CODE = "2000";
public static final String SUCCESS_DETAILS = "isOk";
private static final String FAILED_CODE = "3000";
private static String getFailedErrorCode(String code) {
return FAILED_CODE + code;
}
// 系统异常
public static final String SYSTEM_ERROR_CODE = "5000";
public static final String SYSTEM_ERROR_DESC = "System Abnormal";
// 参数异常
public static final String PARAMS_VALUE_ERROR_CODE = getFailedErrorCode("101");
public static final String PARAMS_VALUE_ERROR_DESC = "Invalid Parameter";
public static final String PARAMS_TYPE_ERROR_CODE = getFailedErrorCode("102");
public static final String PARAMS_TYPE_ERROR_DETAIL = "参数类型不正确";
public static final String PARAMS_INOUT_AMT_ERROR_CODE = getFailedErrorCode("103");
public static final String PARAMS_INOUT_AMT_ERROR_DETAIL = "出入账金额对不上";
public static final String SUBJECT_CREATE_ERROR_CODE = getFailedErrorCode("201");
public static final String SUBJECT_CREATE_ERROR_DESC = "Wallet subject creation failed";
public static final String WALLET_CONFIG_ERROR_CODE = getFailedErrorCode("202");
public static final String WALLET_CONFIG_ERROR_DESC = "Incorrect wallet configuration";
public static final String WALLET_CREATE_ERROR_CODE = getFailedErrorCode("203");
public static final String WALLET_CREATE_ERROR_DESC = "Wallet creation failed";
public static final String WALLET_EDIT_ERROR_CODE = getFailedErrorCode("204");
public static final String WALLET_EDIT_ERROR_DESC = "Wallet edit failed";
public static final String WALLET_QUERY_ERROR_CODE = getFailedErrorCode("205");
public static final String WALLET_QUERY_ERROR_DESC = "Wallet query failed";
public static final String WALLET_TRANS_ERROR_CODE = getFailedErrorCode("206");
public static final String WALLET_TRANS_ERROR_DESC = "Wallet transaction failed";
public static final String WALLET_COST_ERROR_CODE = getFailedErrorCode("207");
public static final String WALLET_COST_ERROR_DESC = "Wallet costing failed";
public static final String WALLET_DASHBOARD_ERROR_CODE = getFailedErrorCode("208");
public static final String WALLET_DASHBOARD_ERROR_DESC = "Wallet dashboard show failed";
// 账户操作异常
public static final String ACCOUNT_CREATE_ERROR_CODE = getFailedErrorCode("201");
public static final String ACCOUNT_CREATE_ERROR_DESC = "Funding account creation failed";
public static final String ACCOUNT_UPDATE_ERROR_CODE = getFailedErrorCode("202");
public static final String ACCOUNT_UPDATE_ERROR_DESC = "Funding account creation failed";
// public static final String ACCOUNT_NOT_FOUND_CODE = getFailedErrorCode("203");
// public static final String ACCOUNT_NOT_FOUND_DETAIL = "账户信息缺失";
// public static final String ACCOUNT_UNNORMAL_CODE = getFailedErrorCode("204");
// public static final String ACCOUNT_UNNORMAL_DETAIL = "账户状态异常";
// public static final String ACCOUNT_CONFIGERR_CODE = getFailedErrorCode("205");
// public static final String ACCOUNT_CONFIGERR_DETAIL = "账户配置有误";
// 账本操作异常
public static final String ACCTRANS_CREATE_ERROR_CODE = getFailedErrorCode("301");
public static final String ACCTRANS_CREATE_ERROR_DETAIL = "账本创建失败";
public static final String ACCTRANS_UPDATE_ERROR_CODE = getFailedErrorCode("302");
public static final String ACCTRANS_UPDATE_ERROR_DETAIL = "账本更新失败";
public static final String ACCTRANS_ORGTRANS_NOTFOUND_CODE = getFailedErrorCode("303");
public static final String ACCTRANS_ORGTRANS_NOTFOUND_DETAIL = "关联账本未找到";
// 业务操作异常
public static final String BUSINESS_ERROR_CODE = getFailedErrorCode("401");
public static final String BUSINESS_ERROR_DESC = "业务处理失败";
public static final String BUSINESS_REQUEST_REFUSED_CODE = getFailedErrorCode("402");
public static final String BUSINESS_REQUEST_REFUSED_DETAIL = "交易拒绝,请确认是否已开通此接口";
public static final String BUSINESS_NODATA_CODE = getFailedErrorCode("403");
public static final String BUSINESS_NODATA_DETAIL = "无相关数据";
public static final String BUSINESS_ORGTRADE_NOTFOUND_CODE = getFailedErrorCode("404");
public static final String BUSINESS_ORGTRADE_NOTFOUND_DETAIL = "原交易不存在";
}
package com.liquidnet.service.account.common;
import org.springframework.util.StringUtils;
import java.util.HashMap;
import java.util.Map;
public class FinConstants {
public static final String FUNDACCOUNT_SERVICE_VERSION = "1.0.0";
public static final String SEQ_WL_NUMBER = "SEQ_WL_N01_";
public static class Dashboard {
public enum Period {
L24H(24, "H", "%d-%b-%y/%H:00", "dd-MMM-yy/HH:mm", "Last 24 Hours"),
L7D(24 * 7, "D", "%d-%b-%y", "dd-MMM-yy", "Last 7 Days"),
L30D(24 * 30, "D", "%d-%b-%y", "dd-MMM-yy", "Last 30 Days"),
;
private final int val;
private final String tag;
private final String fmt;
private final String fmt2;
private final String desc;
Period(int val, String tag, String fmt, String fmt2, String desc) {
this.val = val;
this.tag = tag;
this.fmt = fmt;
this.fmt2 = fmt2;
this.desc = desc;
}
public static Period byFmt(String v) {
if (null != v) {
for (Period s : Period.values()) {
if (s.getFmt().equals(v)) {
return s;
}
}
}
return null;
}
public int getVal() {
return val;
}
public String getTag() {
return tag;
}
public String getFmt() {
return fmt;
}
public String getFmt2() {
return fmt2;
}
public String getDesc() {
return desc;
}
}
public enum Chart {
All, Wallet_Balance
}
public enum Balance {
All("All"),
Pending("Pending Balance"),
Available("Available Balance"),
;
private final String val;
Balance(String val) {
this.val = val;
}
public String getVal() {
return val;
}
}
}
public enum TransType {
CREDIT_ONWAY("C", false),// pending++
CREDIT_CONFIRM("C", true),// pending--,available++
CREDIT_CANCEL("C", true),// pending--
DEBIT_ONWAY("D", false),// available--,pending++
DEBIT_CONFIRM("D", true),// pending--
DEBIT_CANCEL("D", true),// available++,pending--
;
private final String val;
private final boolean force;
TransType(String val, boolean force) {
this.val = val;
this.force = force;
}
public String getVal() {
return val;
}
public boolean isForce() {
return force;
}
}
/**
* 账本操作类型
*/
public enum AccDetailOperType {
/**
* RECHARGE 充值
* ONWAYRECHARGE 在途充值
* FREEZE 冻结
* LINKUNFREEZE 关联解冻
* CUTPAYMENT 扣款
* ONWAYPAYMENT 在途扣款
* LINKRECHARGE 关联返还(充值退回)
* CHARGEUP 挂账
* ONWAYTRANS 内部转在途
* OFFWAYTRANS 在途资金归集
* LINKCHARGEOFF 关联销账
* FEEFIRSTTRANSFER 首付款手续费
* FEETRANSFER 转账手续费
* FEEWITHDRAW 提现手续费
* FEEBACK 冲正手续费
* FEE 手续费
**/
RECHARGE(1, "RECHARGE"),
LINKRECHARGE(1, "LINKRECHARGE"),
ONWAYRECHARGE(1, "ONWAYRECHARGE"),
FREEZE(1, "FREEZE"),
LINKUNFREEZE(1, "LINKUNFREEZE"),
CUTPAYMENT(1, "CUTPAYMENT"),
ONWAYPAYMENT(1, "ONWAYPAYMENT"),
CHARGEUP(1, "CHARGEUP"),
LINKCHARGEOFF(1, "LINKCHARGEOFF"),
ONWAYTRANS(1, "ONWAYTRANS"),
OFFWAYTRANS(1, "OFFWAYTRANS"),
FEEFIRSTTRANSFER(3, "FEEFIRSTTRANSFER"),
FEETRANSFER(3, "FEETRANSFER"),
FEEONWAYTRANSFER(3, "FEEONWAYTRANSFER"),
FEEWITHDRAW(3, "FEEWITHDRAW"),
FEEBACK(3, "FEEBACK"),
FEE(2, "FEE"),
;
private final String value;
private final Integer level;
private AccDetailOperType(Integer level, String value) {
this.level = level;
this.value = value;
}
private AccDetailOperType(String value) {
this.level = 1;
this.value = value;
}
public String getValue() {
return this.value;
}
public Integer getLevel() {
return level;
}
}
/**
* 交易业务类型
* 根据业务需求和财务需求而定
*/
public enum FundTradeType {
RECHARGE("RECHARGE"),//充值(通用充值)
WITHDRAW("WITHDRAW"),//提现(通用提现)
FREEZE("FREEZE"),//冻结(通用冻结)
UNFREEZE("UNFREEZE"),//解冻(通用解冻)
CUTPAYMENT("CUTPAYMENT"),//扣款(通用扣款)
EXCHANGE("EXCHANGE"),//汇兑(通用汇兑)
TRANSFER("TRANSFER"),//转账(通用转账)
FREEZE_EOS("FREEZE_EOS"),//EOS人工冻结
UNFREEZE_EOS("UNFREEZE_EOS"),//EOS人工解冻
;
private final String value;
private FundTradeType(String value) {
this.value = value;
}
public String getValue() {
return this.value;
}
}
public enum TransferNature {
B2B, B2C, C2C, C2B;
public static TransferNature byValue(String v) {
for (TransferNature s : TransferNature.values()) {
if (s.name().equals(v)) {
return s;
}
}
return null;
}
}
public enum Dict {
BIZ_TYPE, ACC_CURRENCY;
}
public enum AccType {
AVAILABLE("000", "Available Balance"),
PENDING("001", "Pending Balance"),
FROZEN("002", "Frozen Balance"),
;
private final String val;
private final String desc;
AccType(String val, String desc) {
this.val = val;
this.desc = desc;
}
public String getVal() {
return val;
}
public String getDesc() {
return desc;
}
public static AccType byVal(String v) {
if (!StringUtils.isEmpty(v)) {
for (AccType s : AccType.values()) {
if (s.getVal().equals(v)) {
return s;
}
}
}
return null;
}
}
public enum Status {
INIT(0),
NORMAL(1),
DISABLE(2),
;
private final int val;
Status(int val) {
this.val = val;
}
public int getVal() {
return this.val;
}
public static Status byVal(Integer v) {
if (null != v) {
for (Status s : Status.values()) {
if (s.getVal() == v) {
return s;
}
}
}
return null;
}
}
/**
* 业务交易状态
*/
public enum TxStatus {
PROCESSING(0),
SUCCESS(1),
FAILED(2),
;
private final int val;
TxStatus(int val) {
this.val = val;
}
public int getVal() {
return this.val;
}
}
/**
* 账户状态
*/
public enum AccStatus {
NORMAL(1, "正常"),
NO_IN(2, "只出不进"),
NO_OUT(3, "只进不出"),
ARCHIVE(4, "封存"),
;
private final int val;
private final String desc;
AccStatus(int val, String desc) {
this.val = val;
this.desc = desc;
}
public static AccStatus byVal(Integer v) {
if (null != v) {
for (AccStatus s : AccStatus.values()) {
if (s.getVal() == v) {
return s;
}
}
}
return null;
}
public int getVal() {
return this.val;
}
public String getDesc() {
return desc;
}
public static final Map<Integer, String> map = new HashMap<Integer, String>();
static {
AccStatus[] vs = AccStatus.values();
for (AccStatus v : vs) {
map.put(v.getVal(), v.getDesc());
}
}
}
/**
* 账户方类型
*/
public enum AccFlag {
/**
* 企业\渠道类账户
*/
BUSINESS("0"),
/**
* 个人用户类账户
*/
PERSONAL("1"),
;
private final String val;
private AccFlag(String val) {
this.val = val;
}
public String getVal() {
return this.val;
}
}
public enum CDType {
CREDIT("C", "+"),
DEBIT("D", "-"),
;
private final String val;
private final String tag;
CDType(String val, String tag) {
this.val = val;
this.tag = tag;
}
public String getVal() {
return val;
}
public String getTag() {
return tag;
}
}
}
package com.liquidnet.service.account.exception;
public class FinaccountException extends RuntimeException {
private static final long serialVersionUID = 918881476056655939L;
private String errorCode;
private String errorMsg;
public String getErrorCode() {
return errorCode;
}
public void setErrorCode(String errorCode) {
this.errorCode = errorCode;
}
public String getErrorMsg() {
return errorMsg;
}
public void setErrorMsg(String errorMsg) {
this.errorMsg = errorMsg;
}
public FinaccountException(String errorCode, String errorMsg) {
super("[" + errorCode + "]" + errorMsg);
this.errorCode = errorCode;
this.errorMsg = errorMsg;
}
public FinaccountException() {
super();
// TODO Auto-generated constructor stub
}
public FinaccountException(String message, Throwable cause) {
super(message, cause);
// TODO Auto-generated constructor stub
}
public FinaccountException(String message) {
super(message);
// TODO Auto-generated constructor stub
}
public FinaccountException(Throwable cause) {
super(cause);
// TODO Auto-generated constructor stub
}
}
package com.liquidnet.service.account.funding.dto;
import com.liquidnet.service.account.funding.dto.base.FundingCallParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* FundingEditorParam.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/10/20
*/
@ApiModel(value = "FundingEditorParam", description = "Parameters of funding account edit")
public class FundingEditorParam extends FundingCallParam {
private static final long serialVersionUID = 1698388587978280459L;
@ApiModelProperty(position = 11, required = true, value = "Funding account number [32]", example = "18400000001000")
private String accNo;
@ApiModelProperty(position = 12, required = false, value = "Funding account alias [100]", example = "184001")
private String accAlias;
@ApiModelProperty(position = 13, required = false, value = "Funding account status [5]", example = "4")
private int accStatus;
public String getAccNo() {
return accNo;
}
public void setAccNo(String accNo) {
this.accNo = accNo;
}
public String getAccAlias() {
return accAlias;
}
public void setAccAlias(String accAlias) {
this.accAlias = accAlias;
}
public int getAccStatus() {
return accStatus;
}
public void setAccStatus(int accStatus) {
this.accStatus = accStatus;
}
}
\ No newline at end of file
package com.liquidnet.service.account.funding.dto;
import com.liquidnet.service.account.funding.dto.base.FundingCallResult;
import io.swagger.annotations.ApiModel;
/**
* FundingEditorResult.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/10/20
*/
@ApiModel(value = "FundingEditorResult", description = "Result of funding account edit")
public class FundingEditorResult extends FundingCallResult<FundingEditorParam> {
private static final long serialVersionUID = -3404593586465175628L;
public FundingEditorResult() {
}
public FundingEditorResult(String code, String message) {
super(code, message);
}
}
package com.liquidnet.service.account.funding.dto;
import com.liquidnet.service.account.funding.dto.base.FundingCallParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
import java.util.Map;
/**
* FundingQueryParam.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/10/22
*/
@ApiModel(value = "FundingQueryBalanceParam", description = "Parameters of account balance query")
public class FundingQueryBalanceParam extends FundingCallParam {
private static final long serialVersionUID = -1185012811804710842L;
@ApiModelProperty(position = 11, required = true, value = "Fund account collection [Map<String,List<String>>]")
private Map<String,List<String>> finIdWithAccNoMap;
public Map<String, List<String>> getFinIdWithAccNoMap() {
return finIdWithAccNoMap;
}
public void setFinIdWithAccNoMap(Map<String, List<String>> finIdWithAccNoMap) {
this.finIdWithAccNoMap = finIdWithAccNoMap;
}
}
package com.liquidnet.service.account.funding.dto;
import com.liquidnet.service.account.funding.dto.base.FundingCallResult;
import com.liquidnet.service.account.funding.vo.FundingAccountInfo;
import io.swagger.annotations.ApiModel;
import java.util.List;
/**
* FundingQueryResult.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/10/22
*/
@ApiModel(value = "FundingQueryBalanceResult", description = "Result of account balance query")
public class FundingQueryBalanceResult extends FundingCallResult<FundingQueryBalanceParam> {
private static final long serialVersionUID = -1815445822958121493L;
private List<FundingAccountInfo> fundingAccountInfoList;
public FundingQueryBalanceResult() {
}
public FundingQueryBalanceResult(List<FundingAccountInfo> fundingAccountInfoList) {
this.fundingAccountInfoList = fundingAccountInfoList;
}
public FundingQueryBalanceResult(String code, String message) {
super(code, message);
}
public List<FundingAccountInfo> getFundingAccountInfoList() {
return fundingAccountInfoList;
}
}
package com.liquidnet.service.account.funding.dto;
import com.liquidnet.service.account.funding.dto.base.FundingCallParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* FundingRegisterParam.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/10/20
*/
@ApiModel(value = "FundingRegisterParam", description = "Parameters of funding account register")
public class FundingRegisterParam extends FundingCallParam {
private static final long serialVersionUID = 3943234839566753953L;
@ApiModelProperty(position = 11, required = true, value = "Funding currency alphabetic code [5]", example = "USD")
private String currency;
@ApiModelProperty(position = 12, required = false, value = "Funding account Alias [100]", example = "184001")
private String accAlias;
@ApiModelProperty(position = 13, required = true, value = "Wallet user ID [32]", example = "1001")
private String finId;
@ApiModelProperty(position = 14, required = true, value = "Funding account type [5]", example = "000")
private String accType;
@ApiModelProperty(position = 15, required = true, value = "Group ID [32]", example = "18400000001")
private String accGroupId;
public String getCurrency() {
return currency;
}
public void setCurrency(String currency) {
this.currency = currency;
}
public String getAccAlias() {
return accAlias;
}
public void setAccAlias(String accAlias) {
this.accAlias = accAlias;
}
public String getFinId() {
return finId;
}
public void setFinId(String finId) {
this.finId = finId;
}
public String getAccGroupId() {
return accGroupId;
}
public void setAccGroupId(String accGroupId) {
this.accGroupId = accGroupId;
}
public String getAccType() {
return accType;
}
public void setAccType(String accType) {
this.accType = accType;
}
}
package com.liquidnet.service.account.funding.dto;
import com.liquidnet.service.account.funding.dto.base.FundingCallResult;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* FundingRegisterResult.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/10/20
*/
@ApiModel(value = "FundingRegisterResult", description = "Result of funding account register")
public class FundingRegisterResult extends FundingCallResult<FundingRegisterParam> {
private static final long serialVersionUID = 5763436491404776607L;
@ApiModelProperty(position = 11, value = "Funding account number [32]")
private String accNo;
@ApiModelProperty(position = 12, value = "Funding account group ID [32]")
private String accGroupId;
public FundingRegisterResult() {
}
public FundingRegisterResult(String... accArr) {
this.accNo = accArr[0];
this.accGroupId = accArr[1];
}
public FundingRegisterResult(String code, String message) {
super(code, message);
}
public String getAccNo() {
return accNo;
}
public String getAccGroupId() {
return accGroupId;
}
public void setAccGroupId(String accGroupId) {
this.accGroupId = accGroupId;
}
}
package com.liquidnet.service.account.funding.dto;
import com.liquidnet.service.account.common.FinConstants;
import com.liquidnet.service.account.funding.dto.base.FundingCallParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* FundingTransactionParam.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/10/27
*/
@ApiModel(value = "FundingTransactionParam", description = "Parameters of funding account transaction")
public class FundingTransactionParam extends FundingCallParam {
private static final long serialVersionUID = 1938744800966310772L;
@ApiModelProperty(position = 11, required = true, value = "Funding account number [32]", example = "18400000001000")
private String accNo;
@ApiModelProperty(position = 12, required = true, value = "Transaction amount [20,6]", example = "1.00")
private BigDecimal amount;
@ApiModelProperty(position = 13, required = true, value = "Type of credit and debit")
private FinConstants.CDType category;
@ApiModelProperty(position = 14, required = true, value = "Wallet user ID [32]")
private String finId;
@ApiModelProperty(position = 15, required = true, value = "Wallet number [32]")
private String walletNo;
@ApiModelProperty(position = 16, required = true, value = "Wallet transaction number [32]")
private String transNo;
@ApiModelProperty(position = 17, required = true, value = "Transaction ID [32]")
private String tracingNo;
@ApiModelProperty(position = 18, required = true, value = "Transaction time [32]")
private LocalDateTime tracingTime;
public String getAccNo() {
return accNo;
}
public void setAccNo(String accNo) {
this.accNo = accNo;
}
public BigDecimal getAmount() {
return amount;
}
public void setAmount(BigDecimal amount) {
this.amount = amount;
}
public FinConstants.CDType getCategory() {
return category;
}
public void setCategory(FinConstants.CDType category) {
this.category = category;
}
public String getFinId() {
return finId;
}
public void setFinId(String finId) {
this.finId = finId;
}
public String getWalletNo() {
return walletNo;
}
public void setWalletNo(String walletNo) {
this.walletNo = walletNo;
}
public String getTransNo() {
return transNo;
}
public void setTransNo(String transNo) {
this.transNo = transNo;
}
public String getTracingNo() {
return tracingNo;
}
public void setTracingNo(String tracingNo) {
this.tracingNo = tracingNo;
}
public LocalDateTime getTracingTime() {
return tracingTime;
}
public void setTracingTime(LocalDateTime tracingTime) {
this.tracingTime = tracingTime;
}
}
package com.liquidnet.service.account.funding.dto;
import com.liquidnet.service.account.funding.dto.base.FundingCallResult;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* FundingTransactionResult.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/10/27
*/
@ApiModel(value = "FundingTransactionResult", description = "Result of funding account transaction")
public class FundingTransactionResult extends FundingCallResult<FundingTransactionParam> {
private static final long serialVersionUID = 4563547732138114122L;
@ApiModelProperty(position = 11, required = true, value = "Funding account bill number [32]")
private String billNo;
public FundingTransactionResult() {
}
public FundingTransactionResult(String billNo) {
this.billNo = billNo;
}
public FundingTransactionResult(String code, String message) {
super(code, message);
}
public String getBillNo() {
return billNo;
}
}
package com.liquidnet.service.account.funding.dto.base;
/**
* FundingCallParam.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/10/20
*/
public class FundingCallParam implements java.io.Serializable {
private static final long serialVersionUID = -2767230370097955743L;
}
package com.liquidnet.service.account.funding.dto.base;
import com.liquidnet.service.account.common.ErrorConstants;
import io.swagger.annotations.ApiModelProperty;
/**
* FundingCallResult.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/10/20
*/
public class FundingCallResult<T> implements java.io.Serializable {
private static final long serialVersionUID = 3689823931373110723L;
@ApiModelProperty(position = 1, value = "状态码")
protected String code;
@ApiModelProperty(position = 2, value = "状态描述")
protected String message;
@ApiModelProperty(position = 3, value = "返回数据")
protected T data;
public FundingCallResult() {
this.code = ErrorConstants.SUCCESS_CODE;
this.message = ErrorConstants.SUCCESS_DETAILS;
}
public FundingCallResult(T data) {
this.code = ErrorConstants.SUCCESS_CODE;
this.message = ErrorConstants.SUCCESS_DETAILS;
this.data = data;
}
public FundingCallResult(String code, String message) {
this.code = code;
this.message = message;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public boolean isProcessing() {
return this.code.equals(ErrorConstants.PROCESSING_CODE);
}
public boolean isSuccess() {
return this.code.equals(ErrorConstants.SUCCESS_CODE);
}
public boolean isFailed() {
return !this.code.equals(ErrorConstants.SUCCESS_CODE) && !this.code.equals(ErrorConstants.PROCESSING_CODE);
}
}
package com.liquidnet.service.account.funding.dto.base;
import com.liquidnet.service.account.common.FinConstants;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
/**
* FundingContextParam.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/10/20
*/
public class FundingContextParam implements Cloneable {
private String currency;
private String accAlias;
// Subject ID
private String finId;
private String accGroupId;
private String accType;
private String accNo;
private int accStatus;
private BigDecimal amount;
private FinConstants.CDType category;
private String walletNo;
private String transNo;
private String tracingNo;
private LocalDateTime tracingTime;
private Map<String, List<String>> finIdWithAccNoMap;
private LocalDateTime createTime;
public String getCurrency() {
return currency;
}
public void setCurrency(String currency) {
this.currency = currency;
}
public String getAccAlias() {
return accAlias;
}
public void setAccAlias(String accAlias) {
this.accAlias = accAlias;
}
public String getFinId() {
return finId;
}
public void setFinId(String finId) {
this.finId = finId;
}
public String getAccGroupId() {
return accGroupId;
}
public void setAccGroupId(String accGroupId) {
this.accGroupId = accGroupId;
}
public String getAccType() {
return accType;
}
public void setAccType(String accType) {
this.accType = accType;
}
public String getAccNo() {
return accNo;
}
public void setAccNo(String accNo) {
this.accNo = accNo;
}
public int getAccStatus() {
return accStatus;
}
public void setAccStatus(int accStatus) {
this.accStatus = accStatus;
}
public BigDecimal getAmount() {
return amount;
}
public void setAmount(BigDecimal amount) {
this.amount = amount;
}
public FinConstants.CDType getCategory() {
return category;
}
public void setCategory(FinConstants.CDType category) {
this.category = category;
}
public String getWalletNo() {
return walletNo;
}
public void setWalletNo(String walletNo) {
this.walletNo = walletNo;
}
public String getTransNo() {
return transNo;
}
public void setTransNo(String transNo) {
this.transNo = transNo;
}
public String getTracingNo() {
return tracingNo;
}
public void setTracingNo(String tracingNo) {
this.tracingNo = tracingNo;
}
public LocalDateTime getTracingTime() {
return tracingTime;
}
public void setTracingTime(LocalDateTime tracingTime) {
this.tracingTime = tracingTime;
}
public Map<String, List<String>> getFinIdWithAccNoMap() {
return finIdWithAccNoMap;
}
public void setFinIdWithAccNoMap(Map<String, List<String>> finIdWithAccNoMap) {
this.finIdWithAccNoMap = finIdWithAccNoMap;
}
public LocalDateTime getCreateTime() {
return createTime;
}
public void setCreateTime(LocalDateTime createTime) {
this.createTime = createTime;
}
private static final FundingContextParam obj = new FundingContextParam();
public static FundingContextParam getNew() {
try {
return (FundingContextParam) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new FundingContextParam();
}
}
package com.liquidnet.service.account.funding.service;
import com.liquidnet.service.account.funding.entity.FinAccountBill;
import com.liquidnet.service.account.funding.vo.AccountBalanceInfo;
import com.liquidnet.service.account.funding.vo.FundingAccountInfo;
import java.math.BigDecimal;
import java.util.List;
public interface FinAccountBillService {
List<FundingAccountInfo> queryByAccNoForGroup(String finId, List<String> accNoList);
int addAccountBill(FinAccountBill record);
BigDecimal queryCurrentBalance(String finId, String accNo, String billNo);
}
package com.liquidnet.service.account.funding.service;
import com.liquidnet.service.account.funding.entity.FinAccount;
public interface FinAccountService {
Long generateSeqForFundingAccNo(String currencyCode);
int addAccount(FinAccount account);
int updateAccount(FinAccount account);
FinAccount queryByAccNo(String accNo);
}
package com.liquidnet.service.account.funding.service;
import com.liquidnet.service.account.funding.dto.*;
/**
* FundingAPIService.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/10/21
*/
public interface FundingAPIService {
FundingRegisterResult register(FundingRegisterParam param);
FundingQueryBalanceResult queryBalance(FundingQueryBalanceParam param);
FundingTransactionResult transaction(FundingTransactionParam param);
}
package com.liquidnet.service.account.funding.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
/**
* FundingAccountInfo.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/10/22
*/
@ApiModel(value = "FundingAccountInfoVo", description = "Funding account details")
public class FundingAccountInfo implements java.io.Serializable {
private static final long serialVersionUID = -7352805462412115521L;
@ApiModelProperty(position = 11, required = true, value = "Funding account number [32]")
private String accNo;
@ApiModelProperty(position = 12, required = true, value = "Funding account balance [20,6]")
private BigDecimal balance;
@ApiModelProperty(position = 13, required = true, value = "Funding account group ID [32]")
private String accGroupId;
public String getAccNo() {
return accNo;
}
public void setAccNo(String accNo) {
this.accNo = accNo;
}
public BigDecimal getBalance() {
return balance;
}
public void setBalance(BigDecimal balance) {
this.balance = balance;
}
public String getAccGroupId() {
accGroupId = accNo.substring(0, accNo.length() - 3);
return accGroupId;
}
public void setAccGroupId(String accGroupId) {
this.accGroupId = accGroupId;
}
}
package com.liquidnet.service.account.wallet.dto;
import com.liquidnet.service.account.wallet.dto.base.WalletCallParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ApiModel(value = "WalletCalTransBalanceParam", description = "Parameters of calculate transaction balance")
public class WalletCalTransBalanceParam extends WalletCallParam {
private static final long serialVersionUID = -8697850672958452901L;
@ApiModelProperty(position = 11, required = true, value = "Limited number of processing [10000]")
private Integer limitedSize;
public Integer getLimitedSize() {
return limitedSize;
}
public void setLimitedSize(Integer limitedSize) {
this.limitedSize = limitedSize;
}
}
package com.liquidnet.service.account.wallet.dto;
import com.liquidnet.service.account.common.FinConstants;
import com.liquidnet.service.account.wallet.dto.base.WalletCallParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* WalletDashboardParam.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/11/9
*/
@ApiModel(value = "WalletDashboardParam", description = "Parameters of wallet recent transaction")
public class WalletDashboardParam extends WalletCallParam {
private static final long serialVersionUID = 5631199951710065819L;
@ApiModelProperty(position = 11, required = true, value = "Wallet number [11]")
private String walletNo;
@ApiModelProperty(position = 12, required = true, value = "Dashboard period [enum]")
private FinConstants.Dashboard.Period dashboardPeriod;
@ApiModelProperty(position = 13, required = true, value = "Dashboard chart [enum]")
private FinConstants.Dashboard.Chart dashboardChart;
@ApiModelProperty(position = 14, required = false, value = "Wallet balance type [enum]")
private FinConstants.Dashboard.Balance[] dashboardBalance;
public String getWalletNo() {
return walletNo;
}
public void setWalletNo(String walletNo) {
this.walletNo = walletNo;
}
public FinConstants.Dashboard.Period getDashboardPeriod() {
return dashboardPeriod;
}
public void setDashboardPeriod(FinConstants.Dashboard.Period dashboardPeriod) {
this.dashboardPeriod = dashboardPeriod;
}
public FinConstants.Dashboard.Chart getDashboardChart() {
return dashboardChart;
}
public void setDashboardChart(FinConstants.Dashboard.Chart dashboardChart) {
this.dashboardChart = dashboardChart;
}
public FinConstants.Dashboard.Balance[] getDashboardBalance() {
return dashboardBalance;
}
public void setDashboardBalance(FinConstants.Dashboard.Balance... dashboardBalance) {
this.dashboardBalance = dashboardBalance;
}
}
package com.liquidnet.service.account.wallet.dto;
import com.liquidnet.service.account.wallet.dto.base.WalletCallResult;
import com.liquidnet.service.account.wallet.vo.WalletDashboardInfoVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
import java.util.Map;
/**
* WalletDashboardResult.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/11/9
*/
@ApiModel(value = "WalletDashboardResult", description = "Result of wallet recent transaction")
public class WalletDashboardResult extends WalletCallResult<WalletDashboardParam> {
private static final long serialVersionUID = 4947141251103097076L;
@ApiModelProperty(position = 11, value = "Wallet dashboard info list")
private Map<String, List<WalletDashboardInfoVo>> voMap;
public WalletDashboardResult() {
}
public WalletDashboardResult(Map<String, List<WalletDashboardInfoVo>> voMap) {
this.voMap = voMap;
}
public WalletDashboardResult(String code, String message) {
super(code, message);
}
public Map<String, List<WalletDashboardInfoVo>> getVoMap() {
return voMap;
}
}
package com.liquidnet.service.account.wallet.dto;
import com.liquidnet.service.account.wallet.dto.base.WalletCallParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* WalletEditParam.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/10/21
*/
@ApiModel(value = "WalletEditParam", description = "Parameters of wallet edit")
public class WalletEditParam extends WalletCallParam {
private static final long serialVersionUID = -169268080009201705L;
@ApiModelProperty(position = 11, required = true, value = "Wallet number [11]")
private String walletNo;
@ApiModelProperty(position = 12, required = false, value = "Wallet status [5]")
private Integer status;
@ApiModelProperty(position = 13, required = false, value = "Wallet alias [100]")
private String alias;
@ApiModelProperty(position = 14, required = false, value = "Wallet operator [64]")
private String operator;
public String getWalletNo() {
return walletNo;
}
public void setWalletNo(String walletNo) {
this.walletNo = walletNo;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public String getAlias() {
return alias;
}
public void setAlias(String alias) {
this.alias = alias;
}
public String getOperator() {
return operator;
}
public void setOperator(String operator) {
this.operator = operator;
}
}
package com.liquidnet.service.account.wallet.dto;
import com.liquidnet.service.account.wallet.dto.base.WalletCallResult;
import io.swagger.annotations.ApiModel;
/**
* WalletEditResult.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/10/21
*/
@ApiModel(value = "WalletEditResult", description = "Result of wallet edited")
public class WalletEditResult extends WalletCallResult<WalletEditParam> {
private static final long serialVersionUID = -6160358297079230214L;
public WalletEditResult() {
}
public WalletEditResult(String code, String message) {
super(code, message);
}
}
package com.liquidnet.service.account.wallet.dto;
import com.liquidnet.service.account.wallet.dto.base.WalletCallParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
import java.util.List;
/**
* WalletQueryParam.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/10/21
*/
@ApiModel(value = "WalletQueryParam", description = "Parameters of wallet list")
public class WalletQueryParam extends WalletCallParam {
private static final long serialVersionUID = -3964458494795359989L;
@ApiModelProperty(position = 11, required = false, value = "User association ID [64]")
private String userExtId;
@ApiModelProperty(position = 12, required = false, value = "User association name [150]")
private String userExtName;
@ApiModelProperty(position = 13, required = false, value = "Wallet number [11]")
private String walletNo;
@ApiModelProperty(position = 14, required = false, value = "Wallet currency code [5]")
private String currency;
@ApiModelProperty(position = 15, required = false, value = "Wallet alias [100]")
private String alias;
@ApiModelProperty(position = 16, required = false, value = "Wallet status code [5]", example = "1")
private Integer status;
@ApiModelProperty(position = 17, required = false, value = "Wallet pay status code [5]", example = "1")
private Integer payStatus;
@ApiModelProperty(position = 18, required = false, value = "Wallet account opening time start")
private LocalDateTime startTime;
@ApiModelProperty(position = 19, required = false, value = "Wallet account opening time end")
private LocalDateTime endTime;
@ApiModelProperty(position = 20, required = false, value = "Wallet account fuzzy query")
private String fuzzySearch;
@ApiModelProperty(position = 21, required = false, value = "Wallet account fuzzy field default:0 [0,1]")
private Integer fuzzyField;
@ApiModelProperty(position = 22, required = false, value = "Page number [1...N]", example = "1")
private Integer pageNum;
@ApiModelProperty(position = 23, required = false, value = "Page list size [10...20]", example = "10")
private Integer pageSize;
@ApiModelProperty(position = 24, required = false, value = "Wallet number list [List<String>]")
private List<String> walletNoList;
public String getUserExtId() {
return userExtId;
}
public void setUserExtId(String userExtId) {
this.userExtId = userExtId;
}
public String getUserExtName() {
return userExtName;
}
public void setUserExtName(String userExtName) {
this.userExtName = userExtName;
}
public String getWalletNo() {
return walletNo;
}
public void setWalletNo(String walletNo) {
this.walletNo = walletNo;
}
public String getCurrency() {
return currency;
}
public void setCurrency(String currency) {
this.currency = currency;
}
public String getAlias() {
return alias;
}
public void setAlias(String alias) {
this.alias = alias;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Integer getPayStatus() {
return payStatus;
}
public void setPayStatus(Integer payStatus) {
this.payStatus = payStatus;
}
public LocalDateTime getStartTime() {
return startTime;
}
public void setStartTime(LocalDateTime startTime) {
this.startTime = startTime;
}
public LocalDateTime getEndTime() {
return endTime;
}
public void setEndTime(LocalDateTime endTime) {
this.endTime = endTime;
}
public String getFuzzySearch() {
return fuzzySearch;
}
public void setFuzzySearch(String fuzzySearch) {
this.fuzzySearch = fuzzySearch;
}
public Integer getFuzzyField() {
return fuzzyField;
}
public void setFuzzyField(Integer fuzzyField) {
this.fuzzyField = fuzzyField;
}
public Integer getPageNum() {
return pageNum;
}
public void setPageNum(Integer pageNum) {
this.pageNum = pageNum;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public List<String> getWalletNoList() {
return walletNoList;
}
public void setWalletNoList(List<String> walletNoList) {
this.walletNoList = walletNoList;
}
}
package com.liquidnet.service.account.wallet.dto;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.account.wallet.dto.base.WalletCallResult;
import com.liquidnet.service.account.wallet.vo.WalletAccountInfoVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Map;
/**
* WalletQueryResult.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/10/21
*/
@ApiModel(value = "WalletQueryResult", description = "Result of wallet query")
public class WalletQueryResult extends WalletCallResult<WalletQueryParam> {
private static final long serialVersionUID = 2139002215454350775L;
@ApiModelProperty(position = 11, value = "Currency code list")
private Map<String, String> currencyMap;
@ApiModelProperty(position = 12, value = "Wallet status list")
private Map<Integer, String> statusMap;
@ApiModelProperty(position = 13, value = "Wallet pay-status list")
private Map<Integer, String> payStatusMap;
@ApiModelProperty(position = 13, value = "Wallet account info list")
private PageInfo<WalletAccountInfoVo> pageInfo;
public WalletQueryResult() {
}
public WalletQueryResult(PageInfo<WalletAccountInfoVo> pageInfo) {
this.pageInfo = pageInfo;
}
public WalletQueryResult(Map<String, String> currencyMap, Map<Integer, String> statusMap, Map<Integer, String> payStatusMap, PageInfo<WalletAccountInfoVo> pageInfo) {
this.currencyMap = currencyMap;
this.statusMap = statusMap;
this.payStatusMap = payStatusMap;
this.pageInfo = pageInfo;
}
public WalletQueryResult(String code, String message) {
super(code, message);
}
public Map<String, String> getCurrencyMap() {
return currencyMap;
}
public Map<Integer, String> getStatusMap() {
return statusMap;
}
public Map<Integer, String> getPayStatusMap() {
return payStatusMap;
}
public PageInfo<WalletAccountInfoVo> getPageInfo() {
return pageInfo;
}
}
package com.liquidnet.service.account.wallet.dto;
import com.liquidnet.service.account.wallet.dto.base.WalletCallParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* WalletRegisterParam.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/10/21
*/
@ApiModel(value = "WalletRegisterParam", description = "Parameters of wallet registration")
public class WalletRegisterParam extends WalletCallParam {
private static final long serialVersionUID = 5388697981117712059L;
@ApiModelProperty(position = 11, required = true, value = "User association ID [64]", example = "1001")
private String userExtId;
@ApiModelProperty(position = 12, required = true, value = "User association name [150]", example = "John")
private String userExtName;
@ApiModelProperty(position = 13, required = true, value = "Wallet currency alphabetic code [5]", example = "USD")
private String currency;
@ApiModelProperty(position = 14, required = false, value = "Wallet alias [100]", example = "TEST184001")
private String alias;
public String getUserExtId() {
return userExtId;
}
public void setUserExtId(String userExtId) {
this.userExtId = userExtId;
}
public String getUserExtName() {
return userExtName;
}
public void setUserExtName(String userExtName) {
this.userExtName = userExtName;
}
public String getCurrency() {
return currency;
}
public void setCurrency(String currency) {
this.currency = currency;
}
public String getAlias() {
return alias;
}
public void setAlias(String alias) {
this.alias = alias;
}
}
package com.liquidnet.service.account.wallet.dto;
import com.liquidnet.service.account.wallet.dto.base.WalletCallResult;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* WalletRegisterResult.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/10/21
*/
@ApiModel(value = "WalletRegisterResult", description = "Result of wallet registered")
public class WalletRegisterResult extends WalletCallResult<WalletRegisterParam> {
private static final long serialVersionUID = 4138076964531590827L;
@ApiModelProperty(position = 11, value = "Wallet user ID [32]")
private String finId;
@ApiModelProperty(position = 12, value = "Wallet id [11]")
private String walletNo;
public WalletRegisterResult() {
}
public WalletRegisterResult(String... arr) {
this.finId = arr[0];
this.walletNo = arr[1];
}
public WalletRegisterResult(String code, String message) {
super(code, message);
}
public String getFinId() {
return finId;
}
public String getWalletNo() {
return walletNo;
}
}
package com.liquidnet.service.account.wallet.dto;
import com.liquidnet.service.account.common.FinConstants;
import com.liquidnet.service.account.wallet.dto.base.WalletCallParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* WalletTransactionParam.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/10/23
*/
@ApiModel(value = "WalletTransactionParam", description = "Parameters of wallet transaction")
public class WalletTransactionParam extends WalletCallParam {
private static final long serialVersionUID = -1863820554930037114L;
@ApiModelProperty(position = 11, required = true, value = "Wallet number [11]")
private String walletNo;
@ApiModelProperty(position = 12, required = true, value = "Wallet transaction type")
private FinConstants.TransType transType;
@ApiModelProperty(position = 13, required = true, value = "Transaction amount [20,6]")
private BigDecimal amount;
@ApiModelProperty(position = 14, required = true, value = "Transaction type [30]")
private String tracingType;
@ApiModelProperty(position = 15, required = true, value = "Transaction ID [64]")
private String tracingNo;
@ApiModelProperty(position = 16, required = true, value = "Transaction time")
private LocalDateTime tracingTime;
@ApiModelProperty(position = 17, required = true, value = "Transaction title [100]")
private String tracingTitle;
@ApiModelProperty(position = 18, required = false, value = "Transaction desc [100]")
private String tracingDesc;
public String getWalletNo() {
return walletNo;
}
public void setWalletNo(String walletNo) {
this.walletNo = walletNo;
}
public FinConstants.TransType getTransType() {
return transType;
}
public void setTransType(FinConstants.TransType transType) {
this.transType = transType;
}
public BigDecimal getAmount() {
return amount;
}
public void setAmount(BigDecimal amount) {
this.amount = amount;
}
public String getTracingType() {
return tracingType;
}
public void setTracingType(String tracingType) {
this.tracingType = tracingType;
}
public String getTracingNo() {
return tracingNo;
}
public void setTracingNo(String tracingNo) {
this.tracingNo = tracingNo;
}
public LocalDateTime getTracingTime() {
return tracingTime;
}
public void setTracingTime(LocalDateTime tracingTime) {
this.tracingTime = tracingTime;
}
public String getTracingTitle() {
return tracingTitle;
}
public void setTracingTitle(String tracingTitle) {
this.tracingTitle = tracingTitle;
}
public String getTracingDesc() {
return tracingDesc;
}
public void setTracingDesc(String tracingDesc) {
this.tracingDesc = tracingDesc;
}
}
package com.liquidnet.service.account.wallet.dto;
import com.liquidnet.service.account.wallet.dto.base.WalletCallParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
/**
* WalletTransactionQueryParam.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/11/5
*/
@ApiModel(value = "WalletTransactionQueryParam", description = "Parameters of wallet transaction query")
public class WalletTransactionQueryParam extends WalletCallParam {
private static final long serialVersionUID = -8387158390306087305L;
@ApiModelProperty(position = 11, required = true, value = "Wallet number [11]")
private String walletNo;
@ApiModelProperty(position = 11, value = "Type of `strList` default:0 [0:transNo,1:tracingNo]", example = "0")
private String strListType;
@ApiModelProperty(position = 13, required = true, value = "Wallet transaction number [List<String>]")
private List<String> strList;
public String getWalletNo() {
return walletNo;
}
public void setWalletNo(String walletNo) {
this.walletNo = walletNo;
}
public String getStrListType() {
return strListType;
}
public void setStrListType(String strListType) {
this.strListType = strListType;
}
public List<String> getStrList() {
return strList;
}
public void setStrList(List<String> strList) {
this.strList = strList;
}
}
package com.liquidnet.service.account.wallet.dto;
import com.liquidnet.service.account.wallet.dto.base.WalletCallResult;
import com.liquidnet.service.account.wallet.vo.WalletTransactionInfoVo;
import io.swagger.annotations.ApiModel;
import java.util.List;
/**
* WalletTransactionQueryResult.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/11/5
*/
@ApiModel(value = "WalletTransactionQueryResult", description = "Result of wallet transaction query")
public class WalletTransactionQueryResult extends WalletCallResult<WalletTransactionQueryParam> {
private static final long serialVersionUID = 4632424467638252670L;
private List<WalletTransactionInfoVo> transDetailList;
public WalletTransactionQueryResult() {
}
public WalletTransactionQueryResult(List<WalletTransactionInfoVo> transDetailList) {
this.transDetailList = transDetailList;
}
public WalletTransactionQueryResult(String code, String message) {
super(code, message);
}
public List<WalletTransactionInfoVo> getTransDetailList() {
return transDetailList;
}
}
package com.liquidnet.service.account.wallet.dto;
import com.liquidnet.service.account.wallet.dto.base.WalletCallResult;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
/**
* WalletTransactionResult.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/10/23
*/
@ApiModel(value = "WalletTransactionResult", description = "Result of wallet transaction")
public class WalletTransactionResult extends WalletCallResult<WalletTransactionParam> {
private static final long serialVersionUID = 6067394499682681231L;
@ApiModelProperty(position = 11, required = true, value = "Wallet transaction number [64]")
private String transNo;
public WalletTransactionResult() {
}
public WalletTransactionResult(String transNo) {
this.transNo = transNo;
}
public WalletTransactionResult(String code, String message) {
super(code, message);
}
public String getTransNo() {
return transNo;
}
}
package com.liquidnet.service.account.wallet.dto.base;
import com.liquidnet.commons.lang.util.JsonUtils;
import io.swagger.annotations.ApiModelProperty;
public class WalletCallParam implements java.io.Serializable {
private static final long serialVersionUID = -5043666161217655387L;
@ApiModelProperty(position = 1, required = true, value = "Wallet channel ID [32]", example = "50001")
private String channelId;
@ApiModelProperty(position = 2, required = true, value = "Wallet channel biz type [16]", example = "000")
private String bizType;
public String getChannelId() {
return channelId;
}
public void setChannelId(String channelId) {
this.channelId = channelId;
}
public String getBizType() {
return bizType;
}
public void setBizType(String bizType) {
this.bizType = bizType;
}
public String txData() {
String sn = this.getClass().getSimpleName();
return String.format("%-" + (50 - sn.length()) + "s" + sn, "") + JsonUtils.toJson(this);
}
}
package com.liquidnet.service.account.wallet.dto.base;
import com.liquidnet.service.account.common.ErrorConstants;
import io.swagger.annotations.ApiModelProperty;
public class WalletCallResult<T> implements java.io.Serializable {
private static final long serialVersionUID = 6882160100387848165L;
@ApiModelProperty(position = 1, value = "State code")
protected String code;
@ApiModelProperty(position = 2, value = "State description")
protected String message;
@ApiModelProperty(position = 3, value = "Return data")
protected T data;
public WalletCallResult() {
this.code = ErrorConstants.SUCCESS_CODE;
this.message = ErrorConstants.SUCCESS_DETAILS;
}
public WalletCallResult(T data) {
this.code = ErrorConstants.SUCCESS_CODE;
this.message = ErrorConstants.SUCCESS_DETAILS;
this.data = data;
}
public WalletCallResult(String code, String message) {
this.code = code;
this.message = message;
}
public String getCode() {
return code;
}
public String getMessage() {
return message;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public boolean isProcessing() {
return this.code.equals(ErrorConstants.PROCESSING_CODE);
}
public boolean isSuccess() {
return this.code.equals(ErrorConstants.SUCCESS_CODE);
}
public boolean isFailed() {
return !this.code.equals(ErrorConstants.SUCCESS_CODE) && !this.code.equals(ErrorConstants.PROCESSING_CODE);
}
}
package com.liquidnet.service.account.wallet.dto.base;
import com.liquidnet.service.account.common.FinConstants;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
/**
* WalletContextParam.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/10/21
*/
public class WalletContextParam implements Cloneable {
private String channelId;
private String bizType;
private String tradeType;
private String tradeNo;
// User association ID
private String userExtId;
// User association name
private String userExtName;
private String finId;
private String walletNo;
private String currency;
private String alias;
private Integer status;
private Integer payStatus;
private FinConstants.TransType transType;
private BigDecimal amount;
private String tracingType;
private String tracingNo;
private LocalDateTime tracingTime;
private String tracingTitle;
private String tracingDesc;
private String transNo;
private LocalDateTime createTime;
private LocalDateTime startTime;
private LocalDateTime endTime;
private String operator;
private String fuzzySearch;
private Integer fuzzyField;
private Integer pageNum;
private Integer pageSize;
private LocalDateTime limitedTime;
private Integer limitedSize;
private List<String> strList;
private String strListType;
private FinConstants.Dashboard.Period dashboardPeriod;
private FinConstants.Dashboard.Chart dashboardChart;
private FinConstants.Dashboard.Balance[] dashboardBalance;
public String getChannelId() {
return channelId;
}
public void setChannelId(String channelId) {
this.channelId = channelId;
}
public String getBizType() {
return bizType;
}
public void setBizType(String bizType) {
this.bizType = bizType;
}
public String getTradeType() {
return tradeType;
}
public void setTradeType(String tradeType) {
this.tradeType = tradeType;
}
public String getTradeNo() {
return tradeNo;
}
public void setTradeNo(String tradeNo) {
this.tradeNo = tradeNo;
}
public String getUserExtId() {
return userExtId;
}
public void setUserExtId(String userExtId) {
this.userExtId = userExtId;
}
public String getUserExtName() {
return userExtName;
}
public void setUserExtName(String userExtName) {
this.userExtName = userExtName;
}
public String getFinId() {
return finId;
}
public void setFinId(String finId) {
this.finId = finId;
}
public String getWalletNo() {
return walletNo;
}
public void setWalletNo(String walletNo) {
this.walletNo = walletNo;
}
public String getCurrency() {
return currency;
}
public void setCurrency(String currency) {
this.currency = currency;
}
public String getAlias() {
return alias;
}
public void setAlias(String alias) {
this.alias = alias;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Integer getPayStatus() {
return payStatus;
}
public void setPayStatus(Integer payStatus) {
this.payStatus = payStatus;
}
public FinConstants.TransType getTransType() {
return transType;
}
public void setTransType(FinConstants.TransType transType) {
this.transType = transType;
}
public BigDecimal getAmount() {
return amount;
}
public void setAmount(BigDecimal amount) {
this.amount = amount;
}
public String getTracingType() {
return tracingType;
}
public void setTracingType(String tracingType) {
this.tracingType = tracingType;
}
public String getTracingNo() {
return tracingNo;
}
public void setTracingNo(String tracingNo) {
this.tracingNo = tracingNo;
}
public LocalDateTime getTracingTime() {
return tracingTime;
}
public void setTracingTime(LocalDateTime tracingTime) {
this.tracingTime = tracingTime;
}
public String getTracingTitle() {
return tracingTitle;
}
public void setTracingTitle(String tracingTitle) {
this.tracingTitle = tracingTitle;
}
public String getTracingDesc() {
return tracingDesc;
}
public void setTracingDesc(String tracingDesc) {
this.tracingDesc = tracingDesc;
}
public String getTransNo() {
return transNo;
}
public void setTransNo(String transNo) {
this.transNo = transNo;
}
public LocalDateTime getCreateTime() {
return createTime;
}
public void setCreateTime(LocalDateTime createTime) {
this.createTime = createTime;
}
public LocalDateTime getStartTime() {
return startTime;
}
public void setStartTime(LocalDateTime startTime) {
this.startTime = startTime;
}
public LocalDateTime getEndTime() {
return endTime;
}
public void setEndTime(LocalDateTime endTime) {
this.endTime = endTime;
}
public String getOperator() {
return operator;
}
public void setOperator(String operator) {
this.operator = operator;
}
public String getFuzzySearch() {
return fuzzySearch;
}
public void setFuzzySearch(String fuzzySearch) {
this.fuzzySearch = fuzzySearch;
}
public Integer getFuzzyField() {
return fuzzyField;
}
public void setFuzzyField(Integer fuzzyField) {
this.fuzzyField = fuzzyField;
}
public Integer getPageNum() {
return pageNum;
}
public void setPageNum(Integer pageNum) {
this.pageNum = pageNum;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public LocalDateTime getLimitedTime() {
return limitedTime;
}
public void setLimitedTime(LocalDateTime limitedTime) {
this.limitedTime = limitedTime;
}
public Integer getLimitedSize() {
return limitedSize;
}
public void setLimitedSize(Integer limitedSize) {
this.limitedSize = limitedSize;
}
public List<String> getStrList() {
return strList;
}
public void setStrList(List<String> strList) {
this.strList = strList;
}
public String getStrListType() {
return strListType;
}
public void setStrListType(String strListType) {
this.strListType = strListType;
}
public FinConstants.Dashboard.Period getDashboardPeriod() {
return dashboardPeriod;
}
public void setDashboardPeriod(FinConstants.Dashboard.Period dashboardPeriod) {
this.dashboardPeriod = dashboardPeriod;
}
public FinConstants.Dashboard.Chart getDashboardChart() {
return dashboardChart;
}
public void setDashboardChart(FinConstants.Dashboard.Chart dashboardChart) {
this.dashboardChart = dashboardChart;
}
public FinConstants.Dashboard.Balance[] getDashboardBalance() {
return dashboardBalance;
}
public void setDashboardBalance(FinConstants.Dashboard.Balance[] dashboardBalance) {
this.dashboardBalance = dashboardBalance;
}
private static final WalletContextParam obj = new WalletContextParam();
public static WalletContextParam getNew() {
try {
return (WalletContextParam) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new WalletContextParam();
}
}
package com.liquidnet.service.account.wallet.service;
import com.liquidnet.service.account.wallet.entity.FinBizTrade;
public interface FinBizTradeService {
int addBizTrade(FinBizTrade bizTrade);
FinBizTrade query(String channelId, String bizType, String reqNo);
int updateTradeStatus(String tradeNo, int tradeStatus);
}
package com.liquidnet.service.account.wallet.service;
import com.liquidnet.service.account.wallet.entity.FinBizTransExtra;
import java.util.List;
/**
* FinBizTransExtraService.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/11/2
*/
public interface FinBizTransExtraService {
List<FinBizTransExtra> queryLastTransBalance(String walletNo);
int addByBatch(List<FinBizTransExtra> records);
}
package com.liquidnet.service.account.wallet.service;
import com.liquidnet.service.account.wallet.entity.FinBizTrans;
import com.liquidnet.service.account.wallet.vo.WalletDashboardInfoVo;
import com.liquidnet.service.account.wallet.vo.WalletTransactionInfoVo;
import java.util.List;
import java.util.Map;
/**
* FinBizTransService.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/10/20
*/
public interface FinBizTransService {
int add(FinBizTrans record);
int update(FinBizTrans record);
List<FinBizTrans> queryTransToBeCalculated(int limitSize);
List<WalletTransactionInfoVo> queryTransDetails(Map<String, Object> parameter);
List<WalletDashboardInfoVo> queryTransBalanceStats(Map<String, Object> parameter);
}
package com.liquidnet.service.account.wallet.service;
import com.liquidnet.service.account.wallet.entity.FinChannel;
import java.util.Map;
public interface FinChannelService {
FinChannel query(String channelId);
Map<String, String> queryForClickList();
}
package com.liquidnet.service.account.wallet.service;
import com.liquidnet.service.account.wallet.entity.FinDictValue;
import java.util.Map;
/**
* FinDictService.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/7/21
*/
public interface FinDictService {
Map<String, String> getDictValueForName(String dictCode);
Map<String, FinDictValue> getDictValueForObj(String dictCode);
}
package com.liquidnet.service.account.wallet.service;
import com.liquidnet.service.account.wallet.entity.FinUser;
import java.util.List;
public interface FinUserService {
int queryForCount(String channelId, List<String> finIds);
FinUser queryByUserExtId(String userExtId);
int addUser(FinUser user);
}
package com.liquidnet.service.account.wallet.service;
import com.liquidnet.service.account.wallet.bo.FinWalletBalanceBo;
import com.liquidnet.service.account.wallet.entity.FinWallet;
import java.util.List;
import java.util.Map;
/**
* FinWalletService.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/10/21
*/
public interface FinWalletService {
String generateSeqForWalletNo(String currencyCode);
int addWallet(FinWallet wallet);
FinWallet query(String walletNo);
int updateWallet(FinWallet wallet);
List<FinWallet> query(Map<String, Object> parameter);
// List<FinWallet> queryByWalletNoAndAliasAndCurrencyForFuzzy(String fuzzySearch, String finId);
FinWalletBalanceBo queryBalance(String finId, String walletNo);
}
package com.liquidnet.service.account.wallet.vo;
import com.liquidnet.service.account.wallet.entity.FinWallet;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* WalletAccountInfo.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/10/21
*/
@ApiModel(value = "WalletAccountInfoVo", description = "Details of wallet account")
public class WalletAccountInfoVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = 1893269218710078026L;
@ApiModelProperty(position = 11, value = "User association ID [64]")
private String userExtId;
@ApiModelProperty(position = 12, value = "User association name [150]")
private String userExtName;
@ApiModelProperty(position = 13, value = "Wallet number [11]")
private String walletNo;
@ApiModelProperty(position = 14, value = "Wallet currency [5]")
private String currency;
@ApiModelProperty(position = 15, value = "Wallet alias [100]")
private String alias;
@ApiModelProperty(position = 16, value = "Wallet status code [5]")
private Integer status;
@ApiModelProperty(position = 17, value = "Wallet pay status code [5]")
private Integer payStatus;
@ApiModelProperty(position = 18, value = "Wallet account opening time")
private LocalDateTime createTime;
@ApiModelProperty(position = 19, value = "Wallet account balance(Reserved field)")
private BigDecimal balance;
@ApiModelProperty(position = 20, value = "Wallet available balance")
private BigDecimal balanceAvailable;
@ApiModelProperty(position = 20, value = "Wallet pending balance")
private BigDecimal balancePending;
@ApiModelProperty(position = 20, value = "Wallet frozen balance")
private BigDecimal balanceFrozen;
public String getUserExtId() {
return userExtId;
}
public void setUserExtId(String userExtId) {
this.userExtId = userExtId;
}
public String getUserExtName() {
return userExtName;
}
public void setUserExtName(String userExtName) {
this.userExtName = userExtName;
}
public String getWalletNo() {
return walletNo;
}
public void setWalletNo(String walletNo) {
this.walletNo = walletNo;
}
public String getCurrency() {
return currency;
}
public void setCurrency(String currency) {
this.currency = currency;
}
public String getAlias() {
return alias;
}
public void setAlias(String alias) {
this.alias = alias;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Integer getPayStatus() {
return payStatus;
}
public void setPayStatus(Integer payStatus) {
this.payStatus = payStatus;
}
public LocalDateTime getCreateTime() {
return createTime;
}
public void setCreateTime(LocalDateTime createTime) {
this.createTime = createTime;
}
public BigDecimal getBalance() {
// return balance;
return null == this.balanceAvailable ? this.balancePending : (this.balanceAvailable.add(null == this.balancePending ? BigDecimal.ZERO : this.balancePending));
}
public void setBalance(BigDecimal balance) {
this.balance = balance;
}
public BigDecimal getBalanceAvailable() {
return balanceAvailable;
}
public void setBalanceAvailable(BigDecimal balanceAvailable) {
this.balanceAvailable = balanceAvailable;
}
public BigDecimal getBalancePending() {
return balancePending;
}
public void setBalancePending(BigDecimal balancePending) {
this.balancePending = balancePending;
}
public BigDecimal getBalanceFrozen() {
return balanceFrozen;
}
public void setBalanceFrozen(BigDecimal balanceFrozen) {
this.balanceFrozen = balanceFrozen;
}
private static final WalletAccountInfoVo obj = new WalletAccountInfoVo();
public static WalletAccountInfoVo getNew() {
try {
return (WalletAccountInfoVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new WalletAccountInfoVo();
}
public WalletAccountInfoVo copy(FinWallet source) {
this.userExtId = source.getUserExtId();
this.userExtName = source.getUserExtName();
this.walletNo = source.getWalletNo();
this.currency = source.getCurrency();
this.alias = source.getAlias();
this.status = source.getStatus();
this.payStatus = source.getPayStatus();
this.createTime = source.getCreateTime();
this.balance = BigDecimal.ZERO;
this.balanceAvailable = BigDecimal.ZERO;
this.balancePending = BigDecimal.ZERO;
this.balanceFrozen = BigDecimal.ZERO;
return this;
}
}
package com.liquidnet.service.account.wallet.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
/**
* WalletDashboardInfoVo.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/11/10
*/
@ApiModel(value = "WalletDashboardInfoVo", description = "Details of wallet dashboard")
public class WalletDashboardInfoVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = 5087728198069789344L;
@ApiModelProperty(position = 11, required = true, value = "Unit data identification [Follow unit changes]")
private String unitId;
@ApiModelProperty(position = 12,value = "Period unit [H,D...]")
private String unit;
@ApiModelProperty(position = 13,value = "Chart name")
private String chart;
@ApiModelProperty(position = 21, value = "Wallet Balance: Available Balance")
private BigDecimal availableBalance;
@ApiModelProperty(position = 22, value = "Wallet Balance: Pending Balance")
private BigDecimal pendingBalance;
public String getUnitId() {
return unitId;
}
public void setUnitId(String unitId) {
this.unitId = unitId;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
public String getChart() {
return chart;
}
public void setChart(String chart) {
this.chart = chart;
}
public BigDecimal getAvailableBalance() {
return availableBalance;
}
public void setAvailableBalance(BigDecimal availableBalance) {
this.availableBalance = availableBalance;
}
public BigDecimal getPendingBalance() {
return pendingBalance;
}
public void setPendingBalance(BigDecimal pendingBalance) {
this.pendingBalance = pendingBalance;
}
private static final WalletDashboardInfoVo obj = new WalletDashboardInfoVo();
public static WalletDashboardInfoVo getNew() {
try {
return (WalletDashboardInfoVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new WalletDashboardInfoVo();
}
}
package com.liquidnet.service.account.wallet.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
/**
* WalletTransactionInfoVo.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2020/10/28
*/
@ApiModel(value = "WalletTransactionInfoVo", description = "Details of wallet transaction")
public class WalletTransactionInfoVo implements java.io.Serializable {
private static final long serialVersionUID = 6166381986321328326L;
@ApiModelProperty(position = 11, required = true, value = "*Wallet transaction number [64]")
private String transNo;
@ApiModelProperty(position = 12, value = "*Wallet available balance after transaction [20,6]")
private BigDecimal balanceAvailable;
@ApiModelProperty(position = 13, value = "*Wallet pending balance after transaction [20,6]")
private BigDecimal balancePending;
@ApiModelProperty(position = 14, value = "*Wallet frozen balance after transaction [20,6]")
private BigDecimal balanceFrozen;
@ApiModelProperty(position = 15, value = "Wallet transaction type [22]")
private String transType;
@ApiModelProperty(position = 16, value = "Wallet transaction status [5]")
private Integer transStatus;
@ApiModelProperty(position = 17, value = "Wallet transaction result description")
private String reasons;
@ApiModelProperty(position = 18, value = "Wallet transaction complete time")
private LocalDateTime completeTime;
@ApiModelProperty(position = 19, value = "Wallet account number [32]")
private String walletNo;
@ApiModelProperty(position = 20, value = "Transaction amount [20,6]")
private BigDecimal amount;
@ApiModelProperty(position = 21, value = "Transaction type [30]")
private String tracingType;
@ApiModelProperty(position = 22, value = "Transaction ID [64]")
private String tracingNo;
@ApiModelProperty(position = 23, value = "Transaction time")
private LocalDateTime tracingTime;
@ApiModelProperty(position = 24, value = "Transaction title [100]")
private String tracingTitle;
@ApiModelProperty(position = 25, value = "Transaction description [100]")
private String tracingDesc;
public String getTransNo() {
return transNo;
}
public void setTransNo(String transNo) {
this.transNo = transNo;
}
public BigDecimal getBalanceAvailable() {
return balanceAvailable;
}
public void setBalanceAvailable(BigDecimal balanceAvailable) {
this.balanceAvailable = balanceAvailable;
}
public BigDecimal getBalancePending() {
return balancePending;
}
public void setBalancePending(BigDecimal balancePending) {
this.balancePending = balancePending;
}
public BigDecimal getBalanceFrozen() {
return balanceFrozen;
}
public void setBalanceFrozen(BigDecimal balanceFrozen) {
this.balanceFrozen = balanceFrozen;
}
public String getTransType() {
return transType;
}
public void setTransType(String transType) {
this.transType = transType;
}
public Integer getTransStatus() {
return transStatus;
}
public void setTransStatus(Integer transStatus) {
this.transStatus = transStatus;
}
public LocalDateTime getCompleteTime() {
return completeTime;
}
public void setCompleteTime(LocalDateTime completeTime) {
this.completeTime = completeTime;
}
public String getReasons() {
return reasons;
}
public void setReasons(String reasons) {
this.reasons = reasons;
}
public String getWalletNo() {
return walletNo;
}
public void setWalletNo(String walletNo) {
this.walletNo = walletNo;
}
public BigDecimal getAmount() {
return amount;
}
public void setAmount(BigDecimal amount) {
this.amount = amount;
}
public String getTracingType() {
return tracingType;
}
public void setTracingType(String tracingType) {
this.tracingType = tracingType;
}
public String getTracingNo() {
return tracingNo;
}
public void setTracingNo(String tracingNo) {
this.tracingNo = tracingNo;
}
public LocalDateTime getTracingTime() {
return tracingTime;
}
public void setTracingTime(LocalDateTime tracingTime) {
this.tracingTime = tracingTime;
}
public String getTracingTitle() {
return tracingTitle;
}
public void setTracingTitle(String tracingTitle) {
this.tracingTitle = tracingTitle;
}
public String getTracingDesc() {
return tracingDesc;
}
public void setTracingDesc(String tracingDesc) {
this.tracingDesc = tracingDesc;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>liquidnet-service-account</artifactId>
<groupId>com.liquidnet</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>liquidnet-service-account-do</artifactId>
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-typehandlers-jsr310</artifactId>
</dependency>
</dependencies>
</project>
This diff is collapsed.
This diff is collapsed.
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