Browse Source

first commit

master
xyiege 4 years ago
commit
593d7ce7a9
  1. 1
      README.md
  2. 63
      build.gradle
  3. 52
      cert/distribute/private_key.pem
  4. 14
      cert/distribute/public_key.pem
  5. 52
      cert/entrust/private_key.pem
  6. 14
      cert/entrust/public_key.pem
  7. 16
      cert/user_real/private_key.pem
  8. 6
      cert/user_real/public_key.pem
  9. BIN
      docs/6_委托提供交易所接口文档.docx
  10. BIN
      docs/masget-sdk-paydemo(java).zip
  11. 1692
      docs/why_mysqlall_20220607.sql
  12. BIN
      docs/交易系统提供接口0425.xlsx
  13. BIN
      docs/接口文档-修订-20220325.docx
  14. BIN
      docs/核心元数据-2022-03-22.xls
  15. BIN
      docs/玖扬-认证信息接口.docx
  16. BIN
      docs/记录.docx
  17. BIN
      docs/银联供应链综合服务平台-企业结算户-标准版.doc
  18. BIN
      docs/银联供应链综合服务平台-融合支付对接文档(对接版)V4.31.doc
  19. BIN
      lib/commons-codec-1.9.jar
  20. 1
      settings.gradle
  21. 17
      src/main/java/cn/pelerin/wh/transaction/WHTransactionApplication.java
  22. 34
      src/main/java/cn/pelerin/wh/transaction/auth/controller/AuthController.java
  23. 54
      src/main/java/cn/pelerin/wh/transaction/auth/entity/AccountRatioDetail.java
  24. 48
      src/main/java/cn/pelerin/wh/transaction/auth/entity/AccountRatioSetting.java
  25. 29
      src/main/java/cn/pelerin/wh/transaction/auth/entity/Admin.java
  26. 47
      src/main/java/cn/pelerin/wh/transaction/auth/entity/Cert.java
  27. 63
      src/main/java/cn/pelerin/wh/transaction/auth/entity/Channel.java
  28. 54
      src/main/java/cn/pelerin/wh/transaction/auth/entity/Classify.java
  29. 24
      src/main/java/cn/pelerin/wh/transaction/auth/entity/Festivals.java
  30. 35
      src/main/java/cn/pelerin/wh/transaction/auth/entity/OperationLog.java
  31. 35
      src/main/java/cn/pelerin/wh/transaction/auth/entity/PaySetting.java
  32. 79
      src/main/java/cn/pelerin/wh/transaction/auth/entity/Ticket.java
  33. 150
      src/main/java/cn/pelerin/wh/transaction/auth/entity/User.java
  34. 133
      src/main/java/cn/pelerin/wh/transaction/auth/entity/UserAccountBill.java
  35. 39
      src/main/java/cn/pelerin/wh/transaction/auth/feign/FeignAuthClient.java
  36. 7
      src/main/java/cn/pelerin/wh/transaction/auth/mapper/AccountRatioDetailMapper.java
  37. 7
      src/main/java/cn/pelerin/wh/transaction/auth/mapper/AccountRatioSettingMapper.java
  38. 7
      src/main/java/cn/pelerin/wh/transaction/auth/mapper/AdminMapper.java
  39. 9
      src/main/java/cn/pelerin/wh/transaction/auth/mapper/CertMapper.java
  40. 7
      src/main/java/cn/pelerin/wh/transaction/auth/mapper/ChannelMapper.java
  41. 7
      src/main/java/cn/pelerin/wh/transaction/auth/mapper/ClassifyMapper.java
  42. 7
      src/main/java/cn/pelerin/wh/transaction/auth/mapper/FestivalsMapper.java
  43. 7
      src/main/java/cn/pelerin/wh/transaction/auth/mapper/OperationLogMapper.java
  44. 7
      src/main/java/cn/pelerin/wh/transaction/auth/mapper/PaySettingMapper.java
  45. 13
      src/main/java/cn/pelerin/wh/transaction/auth/mapper/TicketMapper.java
  46. 7
      src/main/java/cn/pelerin/wh/transaction/auth/mapper/UserAccountBillMapper.java
  47. 7
      src/main/java/cn/pelerin/wh/transaction/auth/mapper/UserMapper.java
  48. 27
      src/main/java/cn/pelerin/wh/transaction/configure/AuthInterceptorConfig.java
  49. 36
      src/main/java/cn/pelerin/wh/transaction/configure/CustomerBigDecimalCodec.java
  50. 148
      src/main/java/cn/pelerin/wh/transaction/configure/WebMvcConfig.java
  51. 15
      src/main/java/cn/pelerin/wh/transaction/constant/CertTypeConst.java
  52. 20
      src/main/java/cn/pelerin/wh/transaction/constant/NumberConst.java
  53. 16
      src/main/java/cn/pelerin/wh/transaction/constant/OrderStatus.java
  54. 20
      src/main/java/cn/pelerin/wh/transaction/constant/SysConst.java
  55. 46
      src/main/java/cn/pelerin/wh/transaction/controller/AdminGoodsController.java
  56. 31
      src/main/java/cn/pelerin/wh/transaction/controller/InvoiceController.java
  57. 136
      src/main/java/cn/pelerin/wh/transaction/controller/OrderController.java
  58. 219
      src/main/java/cn/pelerin/wh/transaction/generator/CodeGenerator.java
  59. 165
      src/main/java/cn/pelerin/wh/transaction/goods/entity/Goods.java
  60. 196
      src/main/java/cn/pelerin/wh/transaction/goods/entity/GoodsDetail.java
  61. 165
      src/main/java/cn/pelerin/wh/transaction/goods/entity/GoodsSource.java
  62. 11
      src/main/java/cn/pelerin/wh/transaction/goods/mapper/GoodsDetailMapper.java
  63. 15
      src/main/java/cn/pelerin/wh/transaction/goods/mapper/GoodsMapper.java
  64. 7
      src/main/java/cn/pelerin/wh/transaction/goods/mapper/GoodsSourceMapper.java
  65. 51
      src/main/java/cn/pelerin/wh/transaction/interceptor/AuthInterceptor.java
  66. 9
      src/main/java/cn/pelerin/wh/transaction/model/base/BaseReq.java
  67. 78
      src/main/java/cn/pelerin/wh/transaction/model/base/BaseResp.java
  68. 63
      src/main/java/cn/pelerin/wh/transaction/model/base/ConvertPage.java
  69. 31
      src/main/java/cn/pelerin/wh/transaction/model/base/SysLogin.java
  70. 27
      src/main/java/cn/pelerin/wh/transaction/model/db/AccountCloseList.java
  71. 39
      src/main/java/cn/pelerin/wh/transaction/model/db/InvoiceList.java
  72. 39
      src/main/java/cn/pelerin/wh/transaction/model/db/OrderDetailAndGoods.java
  73. 29
      src/main/java/cn/pelerin/wh/transaction/model/db/OrderList.java
  74. 40
      src/main/java/cn/pelerin/wh/transaction/model/db/RatioList.java
  75. 38
      src/main/java/cn/pelerin/wh/transaction/model/entrust/ApplyLinkCode.java
  76. 37
      src/main/java/cn/pelerin/wh/transaction/model/entrust/ExchangeRevokeEntrust.java
  77. 53
      src/main/java/cn/pelerin/wh/transaction/model/exception/ServiceException.java
  78. 23
      src/main/java/cn/pelerin/wh/transaction/model/req/BasePageReq.java
  79. 53
      src/main/java/cn/pelerin/wh/transaction/model/req/GoodListReq.java
  80. 16
      src/main/java/cn/pelerin/wh/transaction/model/req/GoodsDetailReq.java
  81. 14
      src/main/java/cn/pelerin/wh/transaction/model/req/IdReq.java
  82. 45
      src/main/java/cn/pelerin/wh/transaction/model/req/InvoiceListReq.java
  83. 50
      src/main/java/cn/pelerin/wh/transaction/model/req/OrderListReq.java
  84. 35
      src/main/java/cn/pelerin/wh/transaction/model/req/RatioListReq.java
  85. 39
      src/main/java/cn/pelerin/wh/transaction/model/req/SetRatioReq.java
  86. 19
      src/main/java/cn/pelerin/wh/transaction/model/resp/AccountRatioDetailResp.java
  87. 64
      src/main/java/cn/pelerin/wh/transaction/model/resp/GoodsDetailResp.java
  88. 30
      src/main/java/cn/pelerin/wh/transaction/model/resp/GoodsListResp.java
  89. 75
      src/main/java/cn/pelerin/wh/transaction/model/resp/OrderDetailResp.java
  90. 115
      src/main/java/cn/pelerin/wh/transaction/model/resp/OrderInfoResp.java
  91. 31
      src/main/java/cn/pelerin/wh/transaction/model/resp/PaySettingResp.java
  92. 11
      src/main/java/cn/pelerin/wh/transaction/model/validate/Page.java
  93. 190
      src/main/java/cn/pelerin/wh/transaction/order/entity/Order.java
  94. 283
      src/main/java/cn/pelerin/wh/transaction/order/entity/OrderGoodsDetail.java
  95. 171
      src/main/java/cn/pelerin/wh/transaction/order/entity/OrderGoodsSource.java
  96. 199
      src/main/java/cn/pelerin/wh/transaction/order/entity/OrderUser.java
  97. 7
      src/main/java/cn/pelerin/wh/transaction/order/mapper/OrderGoodsDetailMapper.java
  98. 14
      src/main/java/cn/pelerin/wh/transaction/order/mapper/OrderGoodsDetailMapperExt.java
  99. 7
      src/main/java/cn/pelerin/wh/transaction/order/mapper/OrderGoodsSourceMapper.java
  100. 7
      src/main/java/cn/pelerin/wh/transaction/order/mapper/OrderMapper.java

1
README.md

@ -0,0 +1 @@
文交所交易结算系统

63
build.gradle

@ -0,0 +1,63 @@
plugins {
id 'org.springframework.boot' version '2.2.4.RELEASE'
id 'io.spring.dependency-management' version '1.0.10.RELEASE'
id 'java'
}
group = 'cn.pelerin'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'https://maven.aliyun.com/nexus/content/repositories/central/' }
mavenCentral()
}
dependencies {
implementation ('org.springframework.boot:spring-boot-starter-web') {
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-json'
}
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0'
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
implementation 'com.baomidou:mybatis-plus-boot-starter:3.4.0'
implementation 'com.alibaba:druid-spring-boot-starter:+'
implementation 'com.alibaba:fastjson:1.2.83'
implementation 'com.google.guava:guava:+'
implementation 'org.apache.commons:commons-lang3:+'
implementation 'org.apache.commons:commons-collections4:4.1'
//openfeign
implementation 'org.springframework.cloud:spring-cloud-starter-openfeign:2.2.6.RELEASE'
implementation 'org.springframework.cloud:spring-cloud-starter-config:2.2.6.RELEASE'
//
implementation 'com.baomidou:mybatis-plus-generator:3.4.0'
implementation 'org.apache.velocity:velocity-engine-core:2.2'
//pagehelper
implementation 'com.github.pagehelper:pagehelper-spring-boot-starter:1.3.1'
implementation 'io.jsonwebtoken:jjwt:0.9.1'
implementation 'com.auth0:java-jwt:3.18.1'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'mysql:mysql-connector-java'
annotationProcessor 'org.projectlombok:lombok'
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
// jar
compile fileTree(dir: 'lib', includes: ['commons-code-1.9.jar'])
}
test {
useJUnitPlatform()
}

52
cert/distribute/private_key.pem

@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
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
HykFkdGcDqftaxq8ztgBWA+meCLg
-----END PRIVATE KEY-----

14
cert/distribute/public_key.pem

@ -0,0 +1,14 @@
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp9Q+brhWTLd7oKRXcRe3
k1X5F7OvayzP7QkwxpvU9UeXM0uUT2PCpM72GyqUn1an/rchELCaekDvHz1j4r9B
dGo+7AO6WNXCg1fbrJKZN3JTqgL73SFchJerKBRk6ZhvXQBfEFK4+PUklvk3X8Bt
wklTDGA/3Pz0bmwUcP9badb1WHOs+k7xR5V3kCfrLaLJ21UdzmbG0SL3bgcQso1B
gVgy3HFZWf3Gq0VXGb8XAfVFKGeYL/rMp3khfX9qOY7PSH3gkxnczq/OwM9ACtUY
42VUzy0lZFVzqAUOlpgXTRBGSGdTb36Jsi9+axde1I9zpw2mAn5XyuIrndzFYRNy
oHQh31Izr4GFgb3HNuMp/3AE/EYwW/SPNyRgIJpDUVV537pWVwyn7I6G2fbFiej3
z3VbBealNDxXj8bvwDPrsP4iEiTf0bIFg1EIQiI+ZIaJEtx3INuaf+vw9py+cl6+
1ZNigfarQ3NhGz1RNrWJLIYqLGdfAxWcVjseIecwonW4YO6S2jws10L09kmI6pd9
xDiGHiLredqHMm6x9s8u7ZRDusXA5PhqrMX6QXhp2u87ZJAi/EtLbdG/SkzaDCVc
zmkfZKkkrTxmT4b1D9v1+PQidQp6Ej9HOR+7Y0xQyoYsDCg3DfR/ue9CZ1J4W7cZ
zkDpfdYEMoZ1c9Iv10GHwVcCAwEAAQ==
-----END PUBLIC KEY-----

52
cert/entrust/private_key.pem

@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
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
xLbJz5Sl6gVj8/rJwUX1D1oSP0t/7A==
-----END PRIVATE KEY-----

14
cert/entrust/public_key.pem

@ -0,0 +1,14 @@
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnFgumK3HxdnMAh5/RuGi
4sLBOZhC3JKZdU8AB8bH0cNdCmg5BnBImfN2VgTyc1ihUCivpOXrT4/Dwufs6U23
3aNFJUFDcKSEXhbwYzlQ+uhYjpDejwwNDE1jKBf4aIh1AzQXh1Q1XnVH7suinKxF
7vd+FihlD68vsEnCYcJZZ4q3LEePmNCSE+zFvhga2gdFWLfhuMkl1Wz9NJBxQ/2J
eVgjzwNwLDnyeOvx7cZxKspe8MzVa4hyobIF6Pxl2FKcB8G8iOSzVVpgHQe4vQSw
O5NJx7wnJZ4mGqH30nwqa/Qoio4/k7CURdW+0aC4PVd97ysqTsgcAme8jVIT9HSM
XccJtai0zWn8aVyZAKdJ84f7o94hHOZPmzYK7rBJQDjmrqpahHnBwGRUKubt97ct
hR71KJbLKT/NMET+Yn3mN0hw1MsWNGt+bm0LLsbdwTUQGnoUi6gNARN0SAyXvYTf
nLfiIHt9BoxIdeutvy3KI993JUrPU67PKvV6eDtHth8Yp/QY0ovQsDZFlKfsTMe4
ST0ma1dMHOBnTrW4zlLEbn2ovT1FO7ZKSIznVhaPhJvGGBoHA609hd0NePKp33DA
+rvxlozuaN/wMidSOxsSuGLf40GIAauKx0Qo/B5YffGp+KZwiBIVxbhS8fbMWeVG
TbTVNkRqdv6Jej23HeWBNwkCAwEAAQ==
-----END PUBLIC KEY-----

16
cert/user_real/private_key.pem

@ -0,0 +1,16 @@
-----BEGIN PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAO/lIZiFw52gTaRF
KDtwxS3qMw+j1/sqePrSeZll+TC+nHigS0N0AHvROYd7irXZ19BLKR/NLNfuKc4O
BYEU5WIkvQZgchGaZukxihtTJ06S/PvVK5FAkE7NSWAhRjqEMXlr7KGnA/da12Jv
lWmtIGysjLm7wn1SWfjA2LZeAa8hAgMBAAECgYArRSwLI82F5/05LRQ1rICUaJLv
NkFl12Jc84vlZGRPK4Jzq44Hy6uuqa1zx4/cfz+THYt8Zfi5tgaqWRMbFlbNRKSb
WWn3eHfRt65D2MGT0l/mIUQicxiaA79a8I1D5LKZM/5fKrIiI1hoSPt8ZHPlXUnI
/HnlzD55e3gQDf+g8QJBAPtYKWyMHOTey+sRLWDazF0Qb1tRXxktlc7B1H50Wr9A
ijEyvZ4KDVO2OczpHbzZYjs4K9VXyLiX1PJicvY9Ck0CQQD0Vq2nnh/Lvq807lxO
kUbZ/66aVMbzJjvmRC3jOLBdQu1768iYUDJfFf32xQqwcy4xgXazT28lQ0hipQ0n
oPolAkBRy88vVCnTEe6rAVwTOSFo6ABVZ5XbS8qFDu9od9VQiGBwwmKTHBJaO+Nz
nCnhW51sSEt7kqXv7PmQKBnhqNvBAkBkx0eS5iZpK/oqE9Jg2Yzmp43FvAffDDsS
i7Z9jMk5fjxjq2muYQ2VqIV6feUdyDQaWTKzXKUUMn8tqLQXT089AkEAyHX6NXSA
eMxyAN9YfYFsoo6b9xEViHlnDEPfrQhlHoMOBUx0PhplgPernluCA50lALHby0h+
1Fjr+wGdYuodWg==
-----END PRIVATE KEY-----

6
cert/user_real/public_key.pem

@ -0,0 +1,6 @@
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDv5SGYhcOdoE2kRSg7cMUt6jMP
o9f7Knj60nmZZfkwvpx4oEtDdAB70TmHe4q12dfQSykfzSzX7inODgWBFOViJL0G
YHIRmmbpMYobUydOkvz71SuRQJBOzUlgIUY6hDF5a+yhpwP3Wtdib5VprSBsrIy5
u8J9Uln4wNi2XgGvIQIDAQAB
-----END PUBLIC KEY-----

BIN
docs/6_委托提供交易所接口文档.docx

Binary file not shown.

BIN
docs/masget-sdk-paydemo(java).zip

Binary file not shown.

1692
docs/why_mysqlall_20220607.sql

File diff suppressed because one or more lines are too long

BIN
docs/交易系统提供接口0425.xlsx

Binary file not shown.

BIN
docs/接口文档-修订-20220325.docx

Binary file not shown.

BIN
docs/核心元数据-2022-03-22.xls

Binary file not shown.

BIN
docs/玖扬-认证信息接口.docx

Binary file not shown.

BIN
docs/记录.docx

Binary file not shown.

BIN
docs/银联供应链综合服务平台-企业结算户-标准版.doc

Binary file not shown.

BIN
docs/银联供应链综合服务平台-融合支付对接文档(对接版)V4.31.doc

Binary file not shown.

BIN
lib/commons-codec-1.9.jar

Binary file not shown.

1
settings.gradle

@ -0,0 +1 @@
rootProject.name = 'wenhua_transaction'

17
src/main/java/cn/pelerin/wh/transaction/WHTransactionApplication.java

@ -0,0 +1,17 @@
package cn.pelerin.wh.transaction;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
@MapperScan("cn.pelerin.wh.transaction.**.mapper")
@EnableFeignClients
@SpringBootApplication
public class WHTransactionApplication {
public static void main(String[] args) {
SpringApplication.run(WHTransactionApplication.class, args);
}
}

34
src/main/java/cn/pelerin/wh/transaction/auth/controller/AuthController.java

@ -0,0 +1,34 @@
package cn.pelerin.wh.transaction.auth.controller;
import cn.pelerin.wh.transaction.model.base.BaseResp;
import cn.pelerin.wh.transaction.service.AuthService;
import cn.pelerin.wh.transaction.util.AssertUtil;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* 描述:
*
* @author dong.jun
* @create 2022-03-10 16:55
* @company 深圳亿起融网络科技有限公司
*/
@RestController
@RequestMapping()
public class AuthController {
@Resource
private AuthService authService;
@GetMapping("/admin/user.User/getUserData")
public BaseResp getUserData(@RequestHeader(name = "token") String token, @RequestHeader(name = "url") String url) {
AssertUtil.notNull(token, "缺少TOKEN");
AssertUtil.notNull(url, "缺少模块名");
return authService.getUserData(url, token);
}
@PostMapping("/admin/Index/home")
public BaseResp home() {
return null;
}
}

54
src/main/java/cn/pelerin/wh/transaction/auth/entity/AccountRatioDetail.java

@ -0,0 +1,54 @@
package cn.pelerin.wh.transaction.auth.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import lombok.Data;
@Data
@TableName(value = "account_ratio_detail")
public class AccountRatioDetail implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 比例设置ID
*/
@TableField(value = "setting_id")
private Integer settingId;
/**
* 角色类型1委托方2购买方3平台方
*/
@TableField(value = "role_type")
private Integer roleType;
/**
* 费用类型1平台服务费用
*/
@TableField(value = "cost_type")
private Integer costType;
/**
* 计算方式1比例2固定
*/
@TableField(value = "calculate")
private Integer calculate;
/**
* 计算方式为固定时计算额度
*/
@TableField(value = "amount")
private BigDecimal amount;
/**
* 计算方式为比例时计算额度
*/
@TableField(value = "ratio")
private BigDecimal ratio;
private static final long serialVersionUID = 1L;
}

48
src/main/java/cn/pelerin/wh/transaction/auth/entity/AccountRatioSetting.java

@ -0,0 +1,48 @@
package cn.pelerin.wh.transaction.auth.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
@Data
@TableName(value = "account_ratio_setting")
public class AccountRatioSetting implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 用户ID
*/
@TableField(value = "user_id")
private Integer userId;
/**
* 规则名称
*/
@TableField(value = "rule_name")
private String ruleName;
/**
* 状态0禁用1启用
*/
@TableField(value = "`status`")
private String status;
/**
* 删除01
*/
@TableField(value = "is_deleted")
private Integer isDeleted;
/**
* 创建时间
*/
@TableField(value = "createtime")
private Date createtime;
private static final long serialVersionUID = 1L;
}

29
src/main/java/cn/pelerin/wh/transaction/auth/entity/Admin.java

@ -0,0 +1,29 @@
package cn.pelerin.wh.transaction.auth.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import lombok.Data;
@Data
@TableName(value = "`admin`")
public class Admin implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 名称
*/
@TableField(value = "account_name")
private String accountName;
/**
* 用户名称
*/
@TableField(value = "account_id")
private String accountId;
private static final long serialVersionUID = 1L;
}

47
src/main/java/cn/pelerin/wh/transaction/auth/entity/Cert.java

@ -0,0 +1,47 @@
package cn.pelerin.wh.transaction.auth.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import lombok.Data;
@Data
@TableName(value = "cert")
public class Cert implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 公钥地址
*/
@TableField(value = "public_key")
private String publicKey;
/**
* 私钥地址
*/
@TableField(value = "private_key")
private String privateKey;
/**
* 系统标识
*/
@TableField(value = "token")
private String token;
/**
* 状态0启用1禁用
*/
@TableField(value = "`status`")
private Integer status;
/**
* 类型
*/
@TableField(value = "`type`")
private String type;
private static final long serialVersionUID = 1L;
}

63
src/main/java/cn/pelerin/wh/transaction/auth/entity/Channel.java

@ -0,0 +1,63 @@
package cn.pelerin.wh.transaction.auth.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 渠道表
*/
@Data
@TableName(value = "channel")
public class Channel implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 标识码
*/
@TableField(value = "token")
private String token;
/**
* 类别
*/
@TableField(value = "`type`")
private String type;
/**
* key
*/
@TableField(value = "appkey")
private String appkey;
/**
* 状态0无效1有效
*/
@TableField(value = "`status`")
private Integer status;
/**
* 是否删除01
*/
@TableField(value = "is_deleted")
private Integer isDeleted;
/**
* 创建时间
*/
@TableField(value = "createtime")
private Date createtime;
/**
* 修改时间
*/
@TableField(value = "updatetime")
private Date updatetime;
private static final long serialVersionUID = 1L;
}

54
src/main/java/cn/pelerin/wh/transaction/auth/entity/Classify.java

@ -0,0 +1,54 @@
package cn.pelerin.wh.transaction.auth.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
@Data
@TableName(value = "classify")
public class Classify implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 一级分类
*/
@TableField(value = "top_class")
private String topClass;
/**
* 二级分类
*/
@TableField(value = "son_class")
private String sonClass;
/**
* 创建用户
*/
@TableField(value = "user_id")
private Integer userId;
/**
* 状态0启用1启用
*/
@TableField(value = "`status`")
private Integer status;
/**
* 创建时间
*/
@TableField(value = "createtime")
private Date createtime;
/**
* 删除0未删除1删除
*/
@TableField(value = "is_deleted")
private Integer isDeleted;
private static final long serialVersionUID = 1L;
}

24
src/main/java/cn/pelerin/wh/transaction/auth/entity/Festivals.java

@ -0,0 +1,24 @@
package cn.pelerin.wh.transaction.auth.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
@Data
@TableName(value = "festivals")
public class Festivals implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField(value = "`year`")
private Integer year;
@TableField(value = "`date`")
private Date date;
private static final long serialVersionUID = 1L;
}

35
src/main/java/cn/pelerin/wh/transaction/auth/entity/OperationLog.java

@ -0,0 +1,35 @@
package cn.pelerin.wh.transaction.auth.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import lombok.Data;
@Data
@TableName(value = "operation_log")
public class OperationLog implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 类型class分类
*/
@TableField(value = "`type`")
private String type;
/**
* 操作id
*/
@TableField(value = "log_id")
private Integer logId;
/**
* 操作记录
*/
@TableField(value = "message")
private String message;
private static final long serialVersionUID = 1L;
}

35
src/main/java/cn/pelerin/wh/transaction/auth/entity/PaySetting.java

@ -0,0 +1,35 @@
package cn.pelerin.wh.transaction.auth.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import lombok.Data;
@Data
@TableName(value = "pay_setting")
public class PaySetting implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 支付宝0禁用1启用
*/
@TableField(value = "alipay")
private Integer alipay;
/**
* 微信0禁用1启用
*/
@TableField(value = "wechat_pay")
private Integer wechatPay;
/**
* 网银0禁用1启用
*/
@TableField(value = "ebank_pay")
private Integer ebankPay;
private static final long serialVersionUID = 1L;
}

79
src/main/java/cn/pelerin/wh/transaction/auth/entity/Ticket.java

@ -0,0 +1,79 @@
package cn.pelerin.wh.transaction.auth.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;
@Data
@TableName(value = "ticket")
public class Ticket implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 订单号
*/
@TableField(value = "batchcode")
private String batchcode;
/**
* 用户ISLI标识码
*/
@TableField(value = "islicode")
private String islicode;
/**
* 开票编号
*/
@TableField(value = "ticketid")
private Long ticketid;
/**
* 开票金额
*/
@TableField(value = "ticketmoney")
private BigDecimal ticketmoney;
/**
* 接口返回PDF
*/
@TableField(value = "pdfUrl")
private String pdfurl;
/**
* 开票下载url
*/
@TableField(value = "ticketurl")
private String ticketurl;
/**
* 开票图片url
*/
@TableField(value = "ticketimage")
private String ticketimage;
/**
* 开票状态1未开票2开票中3已开票4开票失败
*/
@TableField(value = "ticket_status")
private Integer ticketStatus;
/**
* 发票错误信息
*/
@TableField(value = "ticketApiMessage")
private String ticketapimessage;
/**
* 开票时间
*/
@TableField(value = "tickettime")
private Date tickettime;
private static final long serialVersionUID = 1L;
}

150
src/main/java/cn/pelerin/wh/transaction/auth/entity/User.java

@ -0,0 +1,150 @@
package cn.pelerin.wh.transaction.auth.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
@Data
@TableName(value = "`user`")
public class User implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 用户ISLI标识码
*/
@TableField(value = "user_isli")
private String userIsli;
/**
* 用户名称
*/
@TableField(value = "username")
private String username;
/**
* 机构代码
*/
@TableField(value = "institution_code")
private String institutionCode;
/**
* 机构类型1个人2组织
*/
@TableField(value = "agency_type")
private Integer agencyType;
/**
* 个人-证件类型
*/
@TableField(value = "cert_type")
private String certType;
/**
* 个人-证件号码
*/
@TableField(value = "idNumber")
private String idnumber;
/**
* 个人-手机号码
*/
@TableField(value = "cell_phone")
private String cellPhone;
/**
* 银行账户
*/
@TableField(value = "bank_account")
private String bankAccount;
/**
* 机构-法人名称
*/
@TableField(value = "legals_name")
private String legalsName;
/**
* 机构-法人证件类型
*/
@TableField(value = "legals_type")
private String legalsType;
/**
* 机构-法人证件号
*/
@TableField(value = "legals_idnum")
private String legalsIdnum;
/**
* 机构-法人手机号
*/
@TableField(value = "legals_phone")
private String legalsPhone;
/**
* 银行卡类型
*/
@TableField(value = "bank_card_type")
private String bankCardType;
/**
* 银行行别
*/
@TableField(value = "bank_type")
private String bankType;
/**
* 开户行名称
*/
@TableField(value = "bank_name")
private String bankName;
/**
* 开户人姓名
*/
@TableField(value = "bank_username")
private String bankUsername;
/**
* 开户人身份证号码
*/
@TableField(value = "bank_userid")
private String bankUserid;
/**
* 开户行预留手机号码
*/
@TableField(value = "bank_userphone")
private String bankUserphone;
/**
* 开户行所在地
*/
@TableField(value = "bank_address")
private String bankAddress;
/**
* 认证状态1认证中2认证成功3认证失败
*/
@TableField(value = "attest_status")
private Integer attestStatus;
/**
* 注册时间
*/
@TableField(value = "registertime")
private Date registertime;
/**
* 认证时间
*/
@TableField(value = "attesttime")
private Date attesttime;
private static final long serialVersionUID = 1L;
}

133
src/main/java/cn/pelerin/wh/transaction/auth/entity/UserAccountBill.java

@ -0,0 +1,133 @@
package cn.pelerin.wh.transaction.auth.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;
@Data
@TableName(value = "user_account_bill")
public class UserAccountBill implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 用户ISLI码
*/
@TableField(value = "user_isli")
private String userIsli;
/**
* 订单号
*/
@TableField(value = "batchcode")
private String batchcode;
/**
* 订单用户信息ID
*/
@TableField(value = "order_user_id")
private Integer orderUserId;
/**
* 分中心编号
*/
@TableField(value = "center_number")
private String centerNumber;
/**
* 分中心名称
*/
@TableField(value = "center_name")
private String centerName;
/**
* 服务机构编号
*/
@TableField(value = "service_number")
private String serviceNumber;
/**
* 服务机构名称
*/
@TableField(value = "service_name")
private String serviceName;
/**
* 佣金/服务费
*/
@TableField(value = "service_charge")
private BigDecimal serviceCharge;
/**
* 当日买入金额
*/
@TableField(value = "thatday_buy_money")
private BigDecimal thatdayBuyMoney;
/**
* 期初资金
*/
@TableField(value = "preliminary_capital")
private BigDecimal preliminaryCapital;
/**
* 可用资金
*/
@TableField(value = "available_capital")
private BigDecimal availableCapital;
/**
* 可出资金
*/
@TableField(value = "disburse_capital")
private BigDecimal disburseCapital;
/**
* 委托费
*/
@TableField(value = "entrust_cost")
private BigDecimal entrustCost;
/**
* 当日卖出金额
*/
@TableField(value = "thatday_sale_money")
private BigDecimal thatdaySaleMoney;
/**
* 服务费分配
*/
@TableField(value = "service_charge_allot")
private BigDecimal serviceChargeAllot;
/**
* 资金余额
*/
@TableField(value = "capital_remaining")
private BigDecimal capitalRemaining;
/**
* 冻结保证金
*/
@TableField(value = "freeze_earnest_money")
private BigDecimal freezeEarnestMoney;
/**
* 创建时间
*/
@TableField(value = "createtime")
private Date createtime;
/**
* 结算时间
*/
@TableField(value = "close_time")
private Date closeTime;
private static final long serialVersionUID = 1L;
}

39
src/main/java/cn/pelerin/wh/transaction/auth/feign/FeignAuthClient.java

@ -0,0 +1,39 @@
package cn.pelerin.wh.transaction.auth.feign;
import com.alibaba.fastjson.JSONObject;
import feign.Headers;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
/**
* 描述:
*
* @author dong.jun
* @create 2022-03-10 16:57
* @company 深圳亿起融网络科技有限公司
*/
@FeignClient(name = "auth", url = "${feign.real.url}")
public interface FeignAuthClient {
/**
* 3.1 查询用户的权限列表
*
* @param accountId
* @param loginToken
* @param nick
* @return
*/
@Headers({"Content-Type:application/json"})
@RequestMapping(value = "/adminmgt/v1/permission/getPathByNick", method = RequestMethod.GET)
JSONObject getPathByNick(@RequestParam("accountId") String accountId, @RequestHeader(name = "login_token") String loginToken, @RequestHeader(name = "nick") String nick);
/**
* 3.1 根据账号ID查询用户信息
*
* @param userIsli
* @param loginToken
* @return
*/
@Headers({"Content-Type:application/json"})
@RequestMapping(value = "/usermgt/v1/user-info/{islicode}", method = RequestMethod.GET)
JSONObject getUserInfo(@PathVariable("islicode") String userIsli, @RequestHeader(name = "login_token") String loginToken);
}

7
src/main/java/cn/pelerin/wh/transaction/auth/mapper/AccountRatioDetailMapper.java

@ -0,0 +1,7 @@
package cn.pelerin.wh.transaction.auth.mapper;
import cn.pelerin.wh.transaction.auth.entity.AccountRatioDetail;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface AccountRatioDetailMapper extends BaseMapper<AccountRatioDetail> {
}

7
src/main/java/cn/pelerin/wh/transaction/auth/mapper/AccountRatioSettingMapper.java

@ -0,0 +1,7 @@
package cn.pelerin.wh.transaction.auth.mapper;
import cn.pelerin.wh.transaction.auth.entity.AccountRatioSetting;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface AccountRatioSettingMapper extends BaseMapper<AccountRatioSetting> {
}

7
src/main/java/cn/pelerin/wh/transaction/auth/mapper/AdminMapper.java

@ -0,0 +1,7 @@
package cn.pelerin.wh.transaction.auth.mapper;
import cn.pelerin.wh.transaction.auth.entity.Admin;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface AdminMapper extends BaseMapper<Admin> {
}

9
src/main/java/cn/pelerin/wh/transaction/auth/mapper/CertMapper.java

@ -0,0 +1,9 @@
package cn.pelerin.wh.transaction.auth.mapper;
import org.apache.ibatis.annotations.Param;
import cn.pelerin.wh.transaction.auth.entity.Cert;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface CertMapper extends BaseMapper<Cert> {
Cert selectOneByStatusAndType(@Param("status")Integer status,@Param("type")String type);
}

7
src/main/java/cn/pelerin/wh/transaction/auth/mapper/ChannelMapper.java

@ -0,0 +1,7 @@
package cn.pelerin.wh.transaction.auth.mapper;
import cn.pelerin.wh.transaction.auth.entity.Channel;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface ChannelMapper extends BaseMapper<Channel> {
}

7
src/main/java/cn/pelerin/wh/transaction/auth/mapper/ClassifyMapper.java

@ -0,0 +1,7 @@
package cn.pelerin.wh.transaction.auth.mapper;
import cn.pelerin.wh.transaction.auth.entity.Classify;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface ClassifyMapper extends BaseMapper<Classify> {
}

7
src/main/java/cn/pelerin/wh/transaction/auth/mapper/FestivalsMapper.java

@ -0,0 +1,7 @@
package cn.pelerin.wh.transaction.auth.mapper;
import cn.pelerin.wh.transaction.auth.entity.Festivals;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface FestivalsMapper extends BaseMapper<Festivals> {
}

7
src/main/java/cn/pelerin/wh/transaction/auth/mapper/OperationLogMapper.java

@ -0,0 +1,7 @@
package cn.pelerin.wh.transaction.auth.mapper;
import cn.pelerin.wh.transaction.auth.entity.OperationLog;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface OperationLogMapper extends BaseMapper<OperationLog> {
}

7
src/main/java/cn/pelerin/wh/transaction/auth/mapper/PaySettingMapper.java

@ -0,0 +1,7 @@
package cn.pelerin.wh.transaction.auth.mapper;
import cn.pelerin.wh.transaction.auth.entity.PaySetting;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface PaySettingMapper extends BaseMapper<PaySetting> {
}

13
src/main/java/cn/pelerin/wh/transaction/auth/mapper/TicketMapper.java

@ -0,0 +1,13 @@
package cn.pelerin.wh.transaction.auth.mapper;
import cn.pelerin.wh.transaction.auth.entity.Ticket;
import cn.pelerin.wh.transaction.model.db.InvoiceList;
import cn.pelerin.wh.transaction.model.req.InvoiceListReq;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
public interface TicketMapper extends BaseMapper<Ticket> {
List<InvoiceList> selectInvoiceList(InvoiceListReq invoiceListReq);
}

7
src/main/java/cn/pelerin/wh/transaction/auth/mapper/UserAccountBillMapper.java

@ -0,0 +1,7 @@
package cn.pelerin.wh.transaction.auth.mapper;
import cn.pelerin.wh.transaction.auth.entity.UserAccountBill;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface UserAccountBillMapper extends BaseMapper<UserAccountBill> {
}

7
src/main/java/cn/pelerin/wh/transaction/auth/mapper/UserMapper.java

@ -0,0 +1,7 @@
package cn.pelerin.wh.transaction.auth.mapper;
import cn.pelerin.wh.transaction.auth.entity.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface UserMapper extends BaseMapper<User> {
}

27
src/main/java/cn/pelerin/wh/transaction/configure/AuthInterceptorConfig.java

@ -0,0 +1,27 @@
package cn.pelerin.wh.transaction.configure;
import cn.pelerin.wh.transaction.interceptor.AuthInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* 描述:
*
* @author dong.jun
* @create 2022-03-10 16:35
* @company 深圳亿起融网络科技有限公司
*/
@Configuration
public class AuthInterceptorConfig implements WebMvcConfigurer {
@Bean
public AuthInterceptor initAuthInterceptor() {
return new AuthInterceptor();
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(initAuthInterceptor()).addPathPatterns("/**").excludePathPatterns("/auth/login", "/order/wxNotify", "/**");
}
}

36
src/main/java/cn/pelerin/wh/transaction/configure/CustomerBigDecimalCodec.java

@ -0,0 +1,36 @@
package cn.pelerin.wh.transaction.configure;
import com.alibaba.fastjson.serializer.BigDecimalCodec;
import com.alibaba.fastjson.serializer.ContextObjectSerializer;
import com.alibaba.fastjson.serializer.JSONSerializer;
import com.alibaba.fastjson.serializer.SerializeWriter;
import java.io.IOException;
import java.text.DecimalFormat;
/**
* 描述:
*
* @outhor dong.jun
* @create 2019-09-25 09:43
* @company 深圳亿起融网络科技有限公司
*/
public class CustomerBigDecimalCodec extends BigDecimalCodec implements ContextObjectSerializer {
public final static CustomerBigDecimalCodec INSTANCE = new CustomerBigDecimalCodec();
/**
* 当BigDecimal类型的属性上有@JsonFiled注解且该注解中的format有值时使用该方法进行序列化否则使用fastjson的
* BigDecimalCodec中的write方法进行序列化
*/
@Override
public void write(JSONSerializer serializer, Object object, com.alibaba.fastjson.serializer.BeanContext context) throws IOException {
SerializeWriter out = serializer.out;
if (object == null) {
out.writeString("");
return;
}
String format = context.getFormat();
DecimalFormat decimalFormat = new DecimalFormat(format);
out.writeString(decimalFormat.format(object));
}
}

148
src/main/java/cn/pelerin/wh/transaction/configure/WebMvcConfig.java

@ -0,0 +1,148 @@
package cn.pelerin.wh.transaction.configure;
import cn.pelerin.wh.transaction.model.base.BaseResp;
import cn.pelerin.wh.transaction.model.exception.ServiceException;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializeConfig;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.NoHandlerFoundException;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Value("${download.file.pre}")
private String preFilePath;
public static final String downloadPre = "/uploads/pdf";
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
//1、先定义一个convert转换消息的对象
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
//2、添加fastjson的配置信息,比如是否要格式化返回的json数据;
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
fastJsonConfig.setSerializerFeatures(
//是否需要格式化
SerializerFeature.PrettyFormat,
SerializerFeature.WriteMapNullValue,
SerializerFeature.WriteNullListAsEmpty,
SerializerFeature.DisableCircularReferenceDetect
);
//fastJsonConfig.setSerializeFilters(new BigDecimalValueFilter());
//BigDecimal数据处理
SerializeConfig serializeConfig = SerializeConfig.getGlobalInstance();
serializeConfig.put(BigDecimal.class, CustomerBigDecimalCodec.INSTANCE);
fastJsonConfig.setSerializeConfig(serializeConfig);
//附加:处理中文乱码(后期添加)
List<MediaType> fastMedisTypes = new ArrayList<MediaType>();
fastMedisTypes.add(MediaType.APPLICATION_JSON);
fastConverter.setSupportedMediaTypes(fastMedisTypes);
//3、在convert中添加配置信息
fastConverter.setFastJsonConfig(fastJsonConfig);
//4、将convert添加到converters
converters.add(0, fastConverter);
}
//统一异常处理
@Override
public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) {
exceptionResolvers.add((request, response, handler, e) -> {
BaseResp result = new BaseResp();
if (e instanceof NoHandlerFoundException) {
result.setCode(400);
result.setMsg("接口 [" + request.getRequestURI() + "] 不存在");
} else if (e instanceof ServletException) {
result.setCode(400);
result.setMsg(e.getMessage());
} else if (e instanceof MethodArgumentNotValidException) {
MethodArgumentNotValidException exception = (MethodArgumentNotValidException) e;
result.setCode(400);
result.setMsg(exception.getBindingResult().getFieldError().getDefaultMessage());
} else if (e instanceof ServiceException) {
ServiceException e1 = (ServiceException) e;
result.setCode(400);
result.setMsg(e.getMessage());
} else {
result.setCode(400);
result.setMsg("接口 [" + request.getRequestURI() + "] 内部错误,请联系管理员");
String message;
if (handler instanceof HandlerMethod) {
HandlerMethod handlerMethod = (HandlerMethod) handler;
message = String.format("接口 [%s] 出现异常,方法:%s.%s,异常摘要:%s",
request.getRequestURI(),
handlerMethod.getBean().getClass().getName(),
handlerMethod.getMethod().getName(),
e.getMessage());
} else {
message = e.getMessage();
}
log.error(message, e);
result.setMsg(message);
}
responseResult(response, result);
return new ModelAndView();
});
}
//解决跨域问题
@Override
public void addCorsMappings(CorsRegistry registry) {
//registry.addMapping("/**");
}
private void responseResult(HttpServletResponse response, BaseResp result) {
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-type", "application/json;charset=UTF-8");
response.setStatus(200);
try {
response.getWriter().write(JSON.toJSONString(result));
} catch (IOException ex) {
log.error(ex.getMessage());
}
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
File file = new File(preFilePath);
try {
FileUtils.forceMkdir(file);
}catch (IOException e) {
log.error("创建下载文件夹错误", e);
throw new RuntimeException("创建下载文件夹错误");
}
if (preFilePath.indexOf(preFilePath.length() - 1) != '/' && preFilePath.indexOf(preFilePath.length() - 1) != '\\') {
preFilePath += "/";
}
registry.addResourceHandler(downloadPre + "/**").addResourceLocations("file:" + preFilePath.replace("\\", "/"));
}
}

15
src/main/java/cn/pelerin/wh/transaction/constant/CertTypeConst.java

@ -0,0 +1,15 @@
package cn.pelerin.wh.transaction.constant;
/**
* 描述:
*
* @outhor dong.jun
* @create 2022-06-13 16:35
* @company 深圳亿起融网络科技有限公司
*/
public class CertTypeConst {
public static final String ENTRUST = "entrust";
public static final String APPLY_CODE = "apply_code";
public static final String USER_REAL = "user_real";
public static final String DISTRIBUTE = "distribute";
}

20
src/main/java/cn/pelerin/wh/transaction/constant/NumberConst.java

@ -0,0 +1,20 @@
package cn.pelerin.wh.transaction.constant;
/**
* 描述:
*
* @outhor dong.jun
* @create 2020-08-25 17:12
* @company 深圳亿起融网络科技有限公司
*/
public class NumberConst {
public static final int ONE = 1;
public static final int TWO = 2;
public static final int THREE = 3;
public static final int FOUR = 4;
public static final int FIVE = 5;
public static final int SIX = 6;
public static final int SEVEN = 7;
public static final int EIGHT = 8;
public static final int NINE = 9;
}

16
src/main/java/cn/pelerin/wh/transaction/constant/OrderStatus.java

@ -0,0 +1,16 @@
package cn.pelerin.wh.transaction.constant;
/**
* 描述:
*
* @author dong.jun
* @create 2022-03-11 18:05
* @company 深圳亿起融网络科技有限公司
*/
public class OrderStatus {
public static final String UNPAID = "unpaid";//待支付
public static final String CANCEL = "cancel";//取消订单
public static final String PAY_SUCCESS = "pay_success";//支付成功
}

20
src/main/java/cn/pelerin/wh/transaction/constant/SysConst.java

@ -0,0 +1,20 @@
package cn.pelerin.wh.transaction.constant;
public class SysConst {
public static final String OK = "OK";//响应结果成功
public static final String FAIL = "FAIL";//响应结果失败
public static final String STD_MISSING = "std_missing";//缺失值
public static final String CUSTOM = "CUSTOM";//自定义提示信息
public static final String CONFIRM = "CONFIRM";//确认窗口提示
public static final String WX_RETURN_CODE_SUCCESS = "SUCCESS";//微信调用成功
public static final String TOKEN = "token"; // 请求头的token
public static final String API_CODE_SUSS = "00000000";//其他对接系统调用成功
}

46
src/main/java/cn/pelerin/wh/transaction/controller/AdminGoodsController.java

@ -0,0 +1,46 @@
package cn.pelerin.wh.transaction.controller;
import cn.pelerin.wh.transaction.model.base.BaseResp;
import cn.pelerin.wh.transaction.model.base.ConvertPage;
import cn.pelerin.wh.transaction.model.req.GoodListReq;
import cn.pelerin.wh.transaction.model.req.GoodsDetailReq;
import cn.pelerin.wh.transaction.model.resp.GoodsDetailResp;
import cn.pelerin.wh.transaction.model.resp.GoodsListResp;
import cn.pelerin.wh.transaction.model.validate.Page;
import cn.pelerin.wh.transaction.service.impl.AdminGoodsServiceImpl;
import com.github.pagehelper.PageInfo;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* 描述:
*
* @author xu.jin.feng
* @create 2022/6/13 10:33
* @company 深圳亿起融网络科技有限公司
*/
@RequestMapping("/admin")
@RestController
public class AdminGoodsController {
@Resource
private AdminGoodsServiceImpl adminGoodsService;
@PostMapping("/goods.Goods/list")
public BaseResp<ConvertPage<GoodsListResp>> list(@RequestBody @Validated({Page.class}) GoodListReq req){
PageInfo<GoodsListResp> pageInfo = PageInfo.of(adminGoodsService.getAdminGoodsList(req));
return BaseResp.success(ConvertPage.of(pageInfo));
}
@PostMapping("/goods.Goods/goodsDetail")
public BaseResp<GoodsDetailResp> goodsDetail(@RequestBody GoodsDetailReq req){
return BaseResp.success(adminGoodsService.getAdminGoodsDetail(req));
}
}

31
src/main/java/cn/pelerin/wh/transaction/controller/InvoiceController.java

@ -0,0 +1,31 @@
package cn.pelerin.wh.transaction.controller;
import cn.pelerin.wh.transaction.auth.mapper.TicketMapper;
import cn.pelerin.wh.transaction.model.base.BaseResp;
import cn.pelerin.wh.transaction.model.db.InvoiceList;
import cn.pelerin.wh.transaction.model.req.InvoiceListReq;
import cn.pelerin.wh.transaction.service.InvoiceService;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
* @author xie.xinquan
* @create 2022/6/13 10:16
* @company 深圳亿起融网络科技有限公司
*/
@RestController
public class InvoiceController {
@Resource
private InvoiceService invoiceService;
@PostMapping("/admin/order.InvoiceManagement/list")
public BaseResp invoiceList(@RequestBody InvoiceListReq invoiceListReq) {
return new BaseResp(200, invoiceService.selectInvoiceList(invoiceListReq), "成功");
}
}

136
src/main/java/cn/pelerin/wh/transaction/controller/OrderController.java

@ -0,0 +1,136 @@
package cn.pelerin.wh.transaction.controller;
import cn.pelerin.wh.transaction.model.base.BaseResp;
import cn.pelerin.wh.transaction.model.base.ConvertPage;
import cn.pelerin.wh.transaction.model.base.SysLogin;
import cn.pelerin.wh.transaction.model.db.AccountCloseList;
import cn.pelerin.wh.transaction.model.req.IdReq;
import cn.pelerin.wh.transaction.model.req.OrderListReq;
import cn.pelerin.wh.transaction.model.req.RatioListReq;
import cn.pelerin.wh.transaction.model.req.SetRatioReq;
import cn.pelerin.wh.transaction.model.resp.PaySettingResp;
import cn.pelerin.wh.transaction.service.impl.OrderServiceImpl;
import cn.pelerin.wh.transaction.util.JwtRsaUtil;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* @author liu.baoying
* @date 2022/6/13 11:34
* @company 深圳亿起融网络科技有限公司
*/
@RestController
public class OrderController {
@Resource
private OrderServiceImpl orderService;
@PostMapping("/admin/order.Order/list")
public BaseResp orderList(@RequestBody OrderListReq orderListReq) {
return new BaseResp(orderService.selectOrderList(orderListReq));
}
@PostMapping("/admin/order.Order/orderDetail")
public BaseResp selectOrderDetail(@RequestParam(name = "batchcode", required = false) String batchcode) {
return new BaseResp(orderService.selectOrderDetail(batchcode));
}
@PostMapping("/admin/order.Order/orderInfo")
public BaseResp selectOrderInfo(@RequestParam(name = "batchcode", required = false) String batchcode) {
return new BaseResp(orderService.selectOrderInfo(batchcode));
}
@PostMapping("/admin/order.Order/orderGoodsDetail")
public BaseResp selectOrderGoodsDetail(@RequestParam(name = "batchcode", required = false) String batchcode) {
return new BaseResp(orderService.selectOrderGoodsDetail(batchcode));
}
/**
* 资金结算分账管理 -> 资金结算对账单
* @param userName
* @param closeAccount
* @param bankAccount
* @param status
* @param type
* @param limit
* @param page
* @return
*/
@GetMapping("/admin/order.AccountClose/closeList")
public BaseResp closeList(@RequestParam(name = "user_name", required = false) String userName,
@RequestParam(name = "close_account", required = false) String closeAccount,
@RequestParam(name = "bank_account", required = false) String bankAccount,
@RequestParam(name = "status", required = false) Integer status,
@RequestParam(name = "type", required = false) Integer type,
@RequestParam(name = "limit", required = false) Integer limit,
@RequestParam(name = "page", required = false) Integer page) {
ConvertPage<AccountCloseList> accountCloseListConvertPage = orderService.accountCloseList(userName, closeAccount, bankAccount, status, type, limit, page);
return new BaseResp(200, accountCloseListConvertPage, "成功");
}
@PostMapping("/admin/order.AccountClose/ratioList")
public BaseResp ratioList(@RequestBody RatioListReq req) {
return new BaseResp(orderService.accountCloseRatioList(req));
}
/**
* 资金结算分账管理/分账比例设置 创建规则
* @param req
* @param token
* @return
*/
@PostMapping("/admin/order.AccountClose/setRatio")
public BaseResp setRatio(@RequestBody SetRatioReq req, @RequestHeader("token") String token) {
SysLogin userFromToken = JwtRsaUtil.getUserFromToken(token);
String accountId = userFromToken.getAccountId();
return orderService.setRatio(req);
}
@PostMapping("/admin/order.AccountClose/ratioDetail")
public BaseResp ratioDetail(@RequestBody IdReq idReq) {
return new BaseResp(orderService.getRatioDetail(idReq.getId()));
}
/**
* 资金结算分账管理 -> 分账比例设置 启用/禁用
* @param idReq
* @return
*/
@PostMapping("/admin/order.AccountClose/ratioStatus")
public BaseResp updateRatioStatus(@RequestBody IdReq idReq) {
orderService.updateRatioStatus(idReq.getId());
return new BaseResp();
}
/**
* 资金结算分账管理/支付方式设置
* @return
*/
@GetMapping("/admin/order.AccountClose/getPaySetting")
public BaseResp getPaySetting() {
return new BaseResp(orderService.getPaySetting());
}
/**
* 资金结算分账管理/支付方式设置 应用
* @param req
* @return
*/
@PostMapping("/admin/order.AccountClose/setPaySetting")
public BaseResp setPaySetting(@RequestBody PaySettingResp req) {
return new BaseResp(orderService.setPaySetting(req));
}
/**
* 数据展示布局管理 : 点鸡量排行榜/销售量排行榜/推荐排行榜
* @return
*/
@PostMapping("/admin/goods.Goods/rankingList")
public BaseResp rankingList() {
return new BaseResp();
}
}

219
src/main/java/cn/pelerin/wh/transaction/generator/CodeGenerator.java

@ -0,0 +1,219 @@
package cn.pelerin.wh.transaction.generator;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import java.util.*;
/**
* 描述:代码自动构造器
*
* @outhor dong.jun
* @create 2020-09-21 18:27
* @company 深圳亿起融网络科技有限公司
*/
public class CodeGenerator {
private static final String JDBC_URL = "jdbc:postgresql://192.168.10.191:5432/rb_store";
private static final String JDBC_USERNAME = "postgres";
private static final String JDBC_PASSWORD = "postgres";
private static final String JDBC_DIVER_CLASS_NAME = "org.postgresql.Driver";
//是否生成实体类
private static final boolean IS_GENERATOR_ENTITY = true;
//是否生成mapper.xml
private static final boolean IS_GENERATOR_MAPPER_XML = true;
//是否生成mapper.java
private static final boolean IS_GENERATOR_MAPPER_JAVA = true;
//是否生成mapperExt.java
private static final boolean IS_GENERATOR_MAPPER_EXT_JAVA = true;
//是否生成mapperExt.xml
private static final boolean IS_GENERATOR_MAPPER_EXT_XML = true;
//是否生成service.java
private static final boolean IS_GENERATOR_SERVICE = false;
//是否生成serviceImpl.java
private static final boolean IS_GENERATOR_SERVICE_IMPL = false;
//是否生成controller.java
private static final boolean IS_GENERATOR_CONTROLLER = false;
//数据库模块名
private static final String SCHEMANAME = "public";
/**
* <p>
* 读取控制台内容
* </p>
*/
public static String scanner(String tip) {
Scanner scanner = new Scanner(System.in);
StringBuilder help = new StringBuilder();
help.append("请输入" + tip + ":");
System.out.println(help.toString());
if (scanner.hasNext()) {
String ipt = scanner.next();
if (StringUtils.isNotBlank(ipt)) {
return ipt;
}
}
throw new MybatisPlusException("请输入正确的" + tip + "!");
}
public static void main(String[] args) {
// 代码生成器
AutoGenerator mpg = new AutoGenerator();
// 全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
gc.setOutputDir(projectPath + "/src/main/java");
gc.setAuthor("pelerin");
gc.setOpen(false);
gc.setBaseColumnList(true);
gc.setBaseResultMap(true);
gc.setFileOverride(true);
mpg.setGlobalConfig(gc);
// 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl(JDBC_URL);
dsc.setSchemaName(SCHEMANAME);
dsc.setDriverName(JDBC_DIVER_CLASS_NAME);
dsc.setUsername(JDBC_USERNAME);
dsc.setPassword(JDBC_PASSWORD);
dsc.setDbType(DbType.POSTGRE_SQL);
mpg.setDataSource(dsc);
// 包配置
PackageConfig pc = new PackageConfig();
pc.setModuleName(scanner("模块名"));
pc.setParent("cn.pelerin.wh.transaction");
mpg.setPackageInfo(pc);
//如果模板引擎是 velocity
String mapperXmlPath = "mybatis/mapper.xml.vm";
String mapperExtXmlPath = "mybatis/mapperExt.xml.vm";
String mapperExtJavaPath = "mybatis/mapperExt.java.vm";
String upperCaseEntityPath = "mybatis/upperCaseEntity.java.vm";
String serviceImplPath = "mybatis/serviceImpl.java.vm";
// 自定义配置
InjectionConfig cfg = new InjectionConfig() {
@Override
public void initMap() {
// to do nothing
Map<String, Object> map = new HashMap<>(10);
/// 这里可以在 VM 文件中用 ${cfg.MapperExt} 引用该值
map.put("MapperExt", pc.getParent().replace("/", "."));
this.setMap(map);
}
};
// 自定义输出配置
List<FileOutConfig> focList = new ArrayList<>();
// 自定义配置会被优先输出
//mapperXML文件
if (IS_GENERATOR_MAPPER_XML) {
focList.add(new FileOutConfig(mapperXmlPath) {
@Override
public String outputFile(TableInfo tableInfo) {
if (tableInfo.getFieldNames().indexOf("\"") != 0) {
String[] array = tableInfo.getFieldNames().split(", ");
String[] toArray = new String[array.length];
for (int i = 0; i < array.length; i++) {
toArray[i] = "\"" + array[i] + "\"";
}
String str = org.springframework.util.StringUtils.arrayToDelimitedString(toArray, ", ");
tableInfo.setFieldNames(str);
}
System.out.println(tableInfo.toString());
// 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
return projectPath + "/src/main/resources/mybatis/mapper/" + pc.getModuleName()
+ "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
}
});
}
//mapperExt.xml文件
if (IS_GENERATOR_MAPPER_EXT_XML) {
focList.add(new FileOutConfig(mapperExtXmlPath) {
@Override
public String outputFile(TableInfo tableInfo) {
// 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
return projectPath + "/src/main/resources/mybatis/mapper/" + pc.getModuleName()
+ "/" + tableInfo.getEntityName() + "MapperExt" + StringPool.DOT_XML;
}
});
}
//mapperExt.java文件
if (IS_GENERATOR_MAPPER_EXT_JAVA) {
focList.add(new FileOutConfig(mapperExtJavaPath) {
@Override
public String outputFile(TableInfo tableInfo) {
// 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
return projectPath + "/src/main/java/" + pc.getParent().replace(".", "/")
+ "/mapper/" + tableInfo.getEntityName() + "MapperExt" + StringPool.DOT_JAVA;
}
});
}
//serviceImpl.java文件
if (IS_GENERATOR_SERVICE_IMPL) {
focList.add(new FileOutConfig(serviceImplPath) {
@Override
public String outputFile(TableInfo tableInfo) {
// 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
return projectPath + "/src/main/java/" + pc.getParent().replace(".", "/")
+ "/service/impl/" + tableInfo.getEntityName() + "ServiceImpl" + StringPool.DOT_JAVA;
}
});
}
//entity.java文件
if (IS_GENERATOR_ENTITY) {
focList.add(new FileOutConfig(upperCaseEntityPath) {
@Override
public String outputFile(TableInfo tableInfo) {
// 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
return projectPath + "/src/main/java/" + pc.getParent().replace(".", "/")
+ "/entity/" + tableInfo.getEntityName() + StringPool.DOT_JAVA;
}
});
}
cfg.setFileOutConfigList(focList);
mpg.setCfg(cfg);
// 配置模板
TemplateConfig templateConfig = new TemplateConfig();
//不生成如下类型模板
if (!IS_GENERATOR_CONTROLLER) {
templateConfig.setController(null);
}
if (!IS_GENERATOR_SERVICE) {
templateConfig.setService(null);
}
if (!IS_GENERATOR_MAPPER_JAVA) {
templateConfig.setMapper(null);
}
templateConfig.setServiceImpl(null);
templateConfig.setXml(null);
templateConfig.setEntity(null);
mpg.setTemplate(templateConfig);
// 策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
strategy.setEntityLombokModel(true);
strategy.setRestControllerStyle(true);
strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));
strategy.setControllerMappingHyphenStyle(true);
strategy.setTablePrefix(pc.getModuleName() + "_");
mpg.setStrategy(strategy);
mpg.execute();
}
}

165
src/main/java/cn/pelerin/wh/transaction/goods/entity/Goods.java

@ -0,0 +1,165 @@
package cn.pelerin.wh.transaction.goods.entity;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 商品
*/
@Data
@TableName(value = "goods")
public class Goods implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 用户ID
*/
@TableField(value = "user_id")
@JSONField(name = "user_id")
private Integer userId;
/**
* 委托方isli标识码
*/
@TableField(value = "user_islicode")
@JSONField(name = "user_islicode")
private String userIslicode;
/**
* 委托方名称
*/
@TableField(value = "username")
private String username;
/**
* 商品明细ID
*/
@TableField(value = "goods_detail_id")
@JSONField(name = "goods_detail_id")
private Integer goodsDetailId;
/**
* 商品isli标识码
*/
@TableField(value = "goods_islicode")
@JSONField(name = "goods_islicode")
private String goodsIslicode;
/**
* isliCode
*/
@TableField(value = "islicode")
private String islicode;
/**
* 销售量
*/
@TableField(value = "sale_count")
@JSONField(name = "sale_count")
private Integer saleCount;
/**
* 点击量
*/
@TableField(value = "click_count")
@JSONField(name = "click_count")
private Integer clickCount;
/**
* 是否推荐01
*/
@TableField(value = "is_recommend")
@JSONField(name = "is_recommend")
private Integer isRecommend;
/**
* 推荐排序
*/
@TableField(value = "recommend_sort")
@JSONField(name = "recommend_sort")
private Integer recommendSort;
/**
* 创建时间
*/
@TableField(value = "createtime")
private Date createtime;
/**
* 修改时间
*/
@TableField(value = "updatetime")
private Date updatetime;
/**
* 撤销时间
*/
@TableField(value = "canceltime")
private Date canceltime;
/**
* 商品状态1上架中2下架中3已转让4已失效5冻结中6下架中
*/
@TableField(value = "goods_status")
@JSONField(name = "goods_status")
private Integer goodsStatus;
/**
* 是否是旧周期数据
*/
@TableField(value = "old_status")
@JSONField(name = "old_status")
private Integer oldStatus;
/**
* 委托接口委托数据状态
*/
@TableField(value = "entrust_status")
@JSONField(name = "entrust_status")
private Integer entrustStatus;
/**
* 是否申请下架01
*/
@TableField(value = "apply_out")
@JSONField(name = "apply_out")
private Integer applyOut;
/**
* 删除状态0未删除1已删除
*/
@TableField(value = "is_deleted")
@JSONField(name = "is_deleted")
private Integer isDeleted;
/**
* 是否申请合约关联0失败1成功
*/
@TableField(value = "contract_status")
@JSONField(name = "contract_status")
private Integer contractStatus;
/**
* 委托开始时间
*/
@TableField(value = "contractual_start_time")
@JSONField(name = "contractual_start_time")
private Date contractualStartTime;
/**
* 委托结束时间
*/
@TableField(value = "contractualtime_end_time")
@JSONField(name = "contractualtime_end_time")
private Date contractualtimeEndTime;
private static final long serialVersionUID = 1L;
}

196
src/main/java/cn/pelerin/wh/transaction/goods/entity/GoodsDetail.java

@ -0,0 +1,196 @@
package cn.pelerin.wh.transaction.goods.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;
/**
* 商品明细
*/
@Data
@TableName(value = "goods_detail")
public class GoodsDetail implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 商品名称
*/
@TableField(value = "goods_name")
private String goodsName;
/**
* 商品图片
*/
@TableField(value = "goods_image")
private String goodsImage;
/**
* 资源isli
*/
@TableField(value = "identifier")
private String identifier;
/**
* 合约ISLI标志码/商品ISLI编码
*/
@TableField(value = "identifiers")
private String identifiers;
/**
* 库存
*/
@TableField(value = "stock")
private Integer stock;
/**
* 单价
*/
@TableField(value = "price")
private BigDecimal price;
/**
* 商品类型1所有权2使用权
*/
@TableField(value = "goods_ownership")
private Integer goodsOwnership;
/**
* 商品权属
*/
@TableField(value = "goods_ownership_str")
private String goodsOwnershipStr;
/**
* 商品类型1文化资源数据2文化数字内容
*/
@TableField(value = "goods_type")
private Integer goodsType;
/**
* 商品费用类型1免费2付费
*/
@TableField(value = "charges_type")
private Integer chargesType;
/**
* 商品isli标识码
*/
@TableField(value = "goods_islicode")
private String goodsIslicode;
/**
* 商品委托类型1转让2许可
*/
@TableField(value = "goods_entrust")
private Integer goodsEntrust;
/**
* 委托周期1永久2单次3周期
*/
@TableField(value = "contractual_period")
private Integer contractualPeriod;
/**
* 商品保证金
*/
@TableField(value = "earnest_money")
private BigDecimal earnestMoney;
/**
* 交易种类1权属2商品
*/
@TableField(value = "transaction_class")
private Integer transactionClass;
/**
* 描述
*/
@TableField(value = "contract")
private String contract;
/**
* 权属自有标识符商品自有标识符
*/
@TableField(value = "otherIdentifiers")
private String otheridentifiers;
/**
* 标的商品的分类交易种类为商品时候用的
*/
@TableField(value = "classification")
private String classification;
/**
* 资源isli标识码
*/
@TableField(value = "source_islicode")
private String sourceIslicode;
/**
* 资源名称
*/
@TableField(value = "source_islicode_name")
private String sourceIslicodeName;
/**
* 资源下载链接
*/
@TableField(value = "source_url")
private String sourceUrl;
/**
* 资源下载状态
*/
@TableField(value = "source_status")
private Integer sourceStatus;
/**
* 数据json格式
*/
@TableField(value = "data_json")
private String dataJson;
/**
* 数据json格式
*/
@TableField(value = "source_json")
private String sourceJson;
@TableField(value = "join_field")
private String joinField;
/**
* sourceData里的islicode
*/
@TableField(value = "sourcedata_islicode")
private String sourcedataIslicode;
/**
* 创建时间
*/
@TableField(value = "createtime")
private Date createtime;
/**
* 修改时间
*/
@TableField(value = "updatetime")
private Date updatetime;
/**
* 删除状态0未删除1已删除
*/
@TableField(value = "is_deleted")
private Integer isDeleted;
@TableField(value = "is_join")
private Boolean isJoin;
private static final long serialVersionUID = 1L;
}

165
src/main/java/cn/pelerin/wh/transaction/goods/entity/GoodsSource.java

@ -0,0 +1,165 @@
package cn.pelerin.wh.transaction.goods.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 商品资源
*/
@Data
@TableName(value = "goods_source")
public class GoodsSource implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 商品isli标识码
*/
@TableField(value = "goods_isli_code")
private String goodsIsliCode;
/**
* 服务编码
*/
@TableField(value = "servicecode")
private String servicecode;
/**
* isli编码
*/
@TableField(value = "linkcode")
private String linkcode;
/**
* 文化单位ID
*/
@TableField(value = "publisherid")
private Integer publisherid;
/**
* 编码登记者文化单位
*/
@TableField(value = "registrant")
private String registrant;
/**
* 解析地址-关联的目标资源地址URL
*/
@TableField(value = "resolution_url")
private String resolutionUrl;
/**
* 源类型1图书/2期刊/3报纸/4音像/5音频/6视频/7其他文献/8图片/9文化产品
*/
@TableField(value = "source_type")
private String sourceType;
/**
* 源名称类型-->源标识符类型ISBN/ISLI/CN
*/
@TableField(value = "source_name_type")
private String sourceNameType;
/**
* 源名称
*/
@TableField(value = "source_name")
private String sourceName;
/**
* 源标识符源标识符类型 + 源标识符ISBN000000XXXXXX
*/
@TableField(value = "sourceIdentify")
private String sourceidentify;
/**
* 源片段
*/
@TableField(value = "source_fragment")
private String sourceFragment;
/**
* 目标名称-->整体目标作品名称
*/
@TableField(value = "target_name")
private String targetName;
/**
* 目标名称类型-->目标标识符类型ISBN/ISLI
*/
@TableField(value = "target_name_type")
private String targetNameType;
/**
* 目标标识符-->整体目标标识符目标标识符类型 + 目标标识符ISBN000000XXXXXX
*/
@TableField(value = "targetIdentify")
private String targetidentify;
/**
* 目标片段
*/
@TableField(value = "target_fragment")
private String targetFragment;
/**
* 目标类型服务关联创建的实体1其他文献/2音频/3视频/4图片/5文化产品
*/
@TableField(value = "targetFormat")
private String targetformat;
/**
* isli元数据其他文献实体/音频实体/视频实体/ json格式
*/
@TableField(value = "source_data")
private String sourceData;
/**
* isli元数据其他文献实体/音频实体/视频实体/ json格式
*/
@TableField(value = "target_data")
private String targetData;
/**
* isli元数据其他文献实体/音频实体/视频实体/ json格式
*/
@TableField(value = "metadataXml")
private String metadataxml;
/**
* 注销说明
*/
@TableField(value = "cancellation_reason")
private String cancellationReason;
/**
* 注销时间
*/
@TableField(value = "cancellationtime")
private Date cancellationtime;
/**
* 分配日期
*/
@TableField(value = "allocationtime")
private Date allocationtime;
/**
* 数据类型
*/
@TableField(value = "datatype")
private Integer datatype;
/**
* 删除状态0未删除1已删除
*/
@TableField(value = "is_deleted")
private Integer isDeleted;
private static final long serialVersionUID = 1L;
}

11
src/main/java/cn/pelerin/wh/transaction/goods/mapper/GoodsDetailMapper.java

@ -0,0 +1,11 @@
package cn.pelerin.wh.transaction.goods.mapper;
import cn.pelerin.wh.transaction.goods.entity.GoodsDetail;
import cn.pelerin.wh.transaction.model.resp.GoodsDetailResp;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface GoodsDetailMapper extends BaseMapper<GoodsDetail> {
GoodsDetailResp.EntrustGoods selectGoodsDetail(String islicode);
}

15
src/main/java/cn/pelerin/wh/transaction/goods/mapper/GoodsMapper.java

@ -0,0 +1,15 @@
package cn.pelerin.wh.transaction.goods.mapper;
import cn.pelerin.wh.transaction.goods.entity.Goods;
import cn.pelerin.wh.transaction.model.req.GoodListReq;
import cn.pelerin.wh.transaction.model.resp.GoodsListResp;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
public interface GoodsMapper extends BaseMapper<Goods> {
List<GoodsListResp> selectAdminGoodsList(GoodListReq req);
}

7
src/main/java/cn/pelerin/wh/transaction/goods/mapper/GoodsSourceMapper.java

@ -0,0 +1,7 @@
package cn.pelerin.wh.transaction.goods.mapper;
import cn.pelerin.wh.transaction.goods.entity.GoodsSource;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface GoodsSourceMapper extends BaseMapper<GoodsSource> {
}

51
src/main/java/cn/pelerin/wh/transaction/interceptor/AuthInterceptor.java

@ -0,0 +1,51 @@
package cn.pelerin.wh.transaction.interceptor;
import cn.pelerin.wh.transaction.auth.entity.Cert;
import cn.pelerin.wh.transaction.auth.mapper.CertMapper;
import cn.pelerin.wh.transaction.model.base.BaseResp;
import cn.pelerin.wh.transaction.model.base.SysLogin;
import cn.pelerin.wh.transaction.util.JwtRsaUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 描述: 登录拦截器
*
* @author dong.jun
* @create 2022-03-10 16:15
* @company 深圳亿起融网络科技有限公司
*/
public class AuthInterceptor implements HandlerInterceptor {
@Resource
private CertMapper certMapper;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
response.setStatus(200);
response.setCharacterEncoding("UTF-8");
response.setContentType("application/json; charset=utf-8");
String token = request.getHeader("token");
LambdaQueryWrapper<Cert> cqw = new LambdaQueryWrapper<>();
cqw.eq(Cert::getStatus, 0).eq(Cert::getType, "entrust").last("limit 1");
Cert cert = certMapper.selectOne(cqw);
if (null == cert) {
BaseResp resp = BaseResp.fail("缺少证书");
response.getWriter().print(JSON.toJSONString(resp));
response.getWriter().flush();
return false;
}
SysLogin sysLogin = JwtRsaUtil.getUserFromToken(token);
if (null == sysLogin) {
BaseResp resp = BaseResp.fail("请重新登录");
response.getWriter().print(JSON.toJSONString(resp));
response.getWriter().flush();
return false;
}
return true;
}
}

9
src/main/java/cn/pelerin/wh/transaction/model/base/BaseReq.java

@ -0,0 +1,9 @@
package cn.pelerin.wh.transaction.model.base;
/**
* @author liu.baoying
* @create 2020/9/4 9:40
* @company 深圳亿起融网络科技有限公司
*/
public class BaseReq {
}

78
src/main/java/cn/pelerin/wh/transaction/model/base/BaseResp.java

@ -0,0 +1,78 @@
package cn.pelerin.wh.transaction.model.base;
import java.io.Serializable;
public class BaseResp<T> implements Serializable {
private int code;
private T data;
private String msg;
public BaseResp() {
this.code = 200;
this.msg = "成功";
}
public BaseResp(T data) {
this.code = 200;
this.data = data;
this.msg = "成功";
}
public BaseResp(int code, T data, String summary) {
this.code = code;
this.data = data;
this.msg = summary;
}
public BaseResp(int code, String summary) {
this.code = code;
this.msg = summary;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public static <T> BaseResp<T> success() {
return new BaseResp<>();
}
public static <T> BaseResp<T> success(T data) {
return new BaseResp<>(data);
}
public static <T> BaseResp<T> fail(String msg) {
return new BaseResp<>(400, msg);
}
public static <T> BaseResp<T> fail(int code, String msg) {
return new BaseResp<>(code, msg);
}
public static <T> BaseResp<T> fail(int code, T data, String msg) {
return new BaseResp<>(code, data, msg);
}
}

63
src/main/java/cn/pelerin/wh/transaction/model/base/ConvertPage.java

@ -0,0 +1,63 @@
package cn.pelerin.wh.transaction.model.base;
import com.alibaba.fastjson.annotation.JSONField;
import com.github.pagehelper.PageInfo;
import lombok.Data;
import org.springframework.beans.BeanUtils;
import java.util.List;
/**
* @author xie.xinquan
* @create 2022/6/13 11:28
* @company 深圳亿起融网络科技有限公司
*/
@Data
public class ConvertPage<T> {
/**
* 当前第*
*/
@JSONField(name = "current_page")
private Integer pageNum;
@JSONField(name = "data")
private List<T> list;
/**
* 当前页的第一条的下标+1
*/
@JSONField(name = "start")
private Long startRow;
/**
* 当前页的最后一条的下标+1
*/
@JSONField(name = "end")
private Long endRow;
/**
* 总共有*
*/
@JSONField(name = "last_page")
private Integer pages;
/**
* 一页有多少条记录
*/
@JSONField(name = "per_page")
private Integer pageSize;
/**
* 总记录数
*/
private Long total;
public ConvertPage(PageInfo<T> pageInfo) {
BeanUtils.copyProperties(pageInfo, this);
}
public static <T> ConvertPage<T> of(PageInfo<T> pageInfo){
return new ConvertPage<>(pageInfo);
}
}

31
src/main/java/cn/pelerin/wh/transaction/model/base/SysLogin.java

@ -0,0 +1,31 @@
package cn.pelerin.wh.transaction.model.base;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 描述:
*
* @author dong.jun
* @create 2022-03-10 16:11
* @company 深圳亿起融网络科技有限公司
*/
@Data
public class SysLogin implements Serializable {
private static final long serialVersionUID = 7491847909458723669L;
private String accountId;
private String accountName;
private String aud;
private List<String> auth;
private int iat;
private List<String> menuPermission;
private String jti;
}

27
src/main/java/cn/pelerin/wh/transaction/model/db/AccountCloseList.java

@ -0,0 +1,27 @@
package cn.pelerin.wh.transaction.model.db;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
/**
* @author xie.xinquan
* @create 2022/6/13 17:50
* @company 深圳亿起融网络科技有限公司
*/
@Data
public class AccountCloseList {
private String islicode;
private String name;
private String publicAccount;
private String bankName;
private String userType;
@JSONField(name = "close_status")
private Integer closeStatus;
}

39
src/main/java/cn/pelerin/wh/transaction/model/db/InvoiceList.java

@ -0,0 +1,39 @@
package cn.pelerin.wh.transaction.model.db;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author xie.xinquan
* @create 2022/6/13 10:47
* @company 深圳亿起融网络科技有限公司
*/
@Data
public class InvoiceList {
/**
* select
*/
private Integer status;
private String name;
private Integer id;
private String pdfUrl;
private String uscc;
private Date tickettime;
private Long ticketid;
private String batchcode;
private Integer ticket_status;
private String ticketimage;
private String ticketurl;
private BigDecimal ticketmoney;
private String islicode;
private String ticketApiMessage;
/**
* 后端设置
*/
private String seller_name;
private String seller_number;
}

39
src/main/java/cn/pelerin/wh/transaction/model/db/OrderDetailAndGoods.java

@ -0,0 +1,39 @@
package cn.pelerin.wh.transaction.model.db;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author liu.baoying
* @date 2022/6/16 11:30
* @company 深圳亿起融网络科技有限公司
*/
@Data
public class OrderDetailAndGoods {
private String goods_image;
private String goods_name;
private String goods_islicode;
private Integer goods_type;
private String goods_entrust;
private String goods_ownership_str;
private String contractual_period;
private Integer charges_type;
private BigDecimal earnest_money;
private BigDecimal price;
private String entrust_islicode;
private Integer goods_detail_id;
private String service_charge;
private BigDecimal goods_price;
private Integer transaction_count;
private Integer source_id;
private BigDecimal money;
private String contract_code;
private String batchcode;
private Integer status;
private String contractualtime_end_time;
private String contractual_start_time;
private String islicode;
}

29
src/main/java/cn/pelerin/wh/transaction/model/db/OrderList.java

@ -0,0 +1,29 @@
package cn.pelerin.wh.transaction.model.db;
import cn.pelerin.wh.transaction.order.entity.Order;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* @author liu.baoying
* @date 2022/6/13 14:10
* @company 深圳亿起融网络科技有限公司
*/
@Data
public class OrderList extends Order {
private String entrust_name;
private String entrust_type;
private String goods_name;
private String buy_username;
private String goods_price;
}

40
src/main/java/cn/pelerin/wh/transaction/model/db/RatioList.java

@ -0,0 +1,40 @@
package cn.pelerin.wh.transaction.model.db;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import java.util.Date;
/**
* @author xie.xinquan
* @create 2022/6/15 14:01
* @company 深圳亿起融网络科技有限公司
*/
@Data
public class RatioList {
/**
* db select
*/
private Integer id;
private Integer userId;
@JSONField(name = "rule_name")
private String ruleName;
@JSONField(name = "createtime")
private Date createTime;
private String status;
@JSONField(name = "is_deleted")
private Integer isDeleted;
/**
* set
*/
@JSONField(name = "username")
private String userName;
}

38
src/main/java/cn/pelerin/wh/transaction/model/entrust/ApplyLinkCode.java

@ -0,0 +1,38 @@
package cn.pelerin.wh.transaction.model.entrust;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 描述: 1.5申请合约关联编码目标为买方
*
* @author dong.jun
* @create 2022-06-15 13:49
* @company 深圳亿起融网络科技有限公司
*/
@Data
public class ApplyLinkCode implements Serializable {
private static final long serialVersionUID = 9092962190472828097L;
/**
* 合约ISLI标志码
*/
private String contractISLIFlag;
/**
* 买方ISLI身份码
*/
private String buyerISLIFlag;
/**
* 各参与方的占比
*/
private BigDecimal shareProportion;
/**
* 购买单价的总数量 为永久时purchaseQuantity=1authorizationDate=永久
*/
private Integer purchaseQuantity;
/**
* 买家购买的许可有效期限或永久 yyyy-MM-dd 或永久
*/
private String authorizationDate;
}

37
src/main/java/cn/pelerin/wh/transaction/model/entrust/ExchangeRevokeEntrust.java

@ -0,0 +1,37 @@
package cn.pelerin.wh.transaction.model.entrust;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import java.io.Serializable;
/**
* 描述: 交易所撤销委托
*
* @author dong.jun
* @create 2022-06-15 10:41
* @company 深圳亿起融网络科技有限公司
*/
@Data
public class ExchangeRevokeEntrust implements Serializable {
private static final long serialVersionUID = 852892994939089433L;
@JSONField(serialize = false)
public static int STATUS_END = 1;
@JSONField(serialize =false)
public static int STATUS_TRANSFER = 2;
@JSONField(serialize =false)
public static int STATUS_REVOKE = 3;
/**
* 撤销原因
*/
private String revokeReason;
private String isliCode;
/**
* 1:委托周期结束
* 2:已转让
* 3:申请撤销
* (1和2只能传对应的字段,3可以填写撤销原因)
*/
private int status;
}

53
src/main/java/cn/pelerin/wh/transaction/model/exception/ServiceException.java

@ -0,0 +1,53 @@
package cn.pelerin.wh.transaction.model.exception;
import cn.pelerin.wh.transaction.constant.SysConst;
/**
* 描述: 自定义业务异常
*
* @outhor dong.jun
* @create 2020-01-10 14:45
* @company 深圳亿起融网络科技有限公司
*/
public class ServiceException extends RuntimeException {
/**
* 错误码
*/
private String code;
/**
* Constructs a new runtime exception with the specified detail message.
* The cause is not initialized, and may subsequently be initialized by a
* call to {@link #initCause}.
*
* @param message the detail message. The detail message is saved for
* later retrieval by the {@link #getMessage()} method.
*/
public ServiceException(String message) {
this(SysConst.FAIL, message);
}
public static ServiceException of(String message){
return new ServiceException(message);
}
public static ServiceException of(String code, String message){
return new ServiceException(code, message);
}
/**
* 构造器
* @param code
* @param message
*/
public ServiceException(String code, String message) {
super(message);
this.code = code;
}
public String getCode() {
return this.code;
}
}

23
src/main/java/cn/pelerin/wh/transaction/model/req/BasePageReq.java

@ -0,0 +1,23 @@
package cn.pelerin.wh.transaction.model.req;
import cn.pelerin.wh.transaction.model.validate.Page;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* 描述: 需要分页校验 这样使用@validate({Page.class})
*
* @author xu.jin.feng
* @create 2022/6/13 10:45
* @company 深圳亿起融网络科技有限公司
*/
@Data
public class BasePageReq {
@NotNull(message = "缺少分页参数", groups = {Page.class})
private Integer limit;
@NotNull(message = "缺少分页参数", groups = {Page.class})
private Integer page;
}

53
src/main/java/cn/pelerin/wh/transaction/model/req/GoodListReq.java

@ -0,0 +1,53 @@
package cn.pelerin.wh.transaction.model.req;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import java.util.Date;
import java.util.List;
/**
* 描述:
*
* @author xu.jin.feng
* @create 2022/6/13 10:51
* @company 深圳亿起融网络科技有限公司
*/
@Data
public class GoodListReq extends BasePageReq{
@JSONField(name = "goods_name")
private String goodsName;
private List<Date> createtime;
@JSONField(name = "data_type")
private String dataType;
@JSONField(name = "entrust_name")
private String entrustName;
private String goods;
@JSONField(name = "entrust_status")
private String entrustStatus;
@JSONField(name = "goods_type")
private String goodsType;
private String islicode;
@JSONField(name = "goods_entrust")
private String goodsEntrust;
private String transaction;
private Integer show;
@JSONField(name = "order_status")
@Min(1)
@Max(3)
private Integer orderStatus;
}

16
src/main/java/cn/pelerin/wh/transaction/model/req/GoodsDetailReq.java

@ -0,0 +1,16 @@
package cn.pelerin.wh.transaction.model.req;
import lombok.Data;
/**
* 描述:
*
* @author xu.jin.feng
* @create 2022/6/15 16:43
* @company 深圳亿起融网络科技有限公司
*/
@Data
public class GoodsDetailReq {
private String islicode;
}

14
src/main/java/cn/pelerin/wh/transaction/model/req/IdReq.java

@ -0,0 +1,14 @@
package cn.pelerin.wh.transaction.model.req;
import lombok.Data;
/**
* @author xie.xinquan
* @create 2022/6/15 18:02
* @company 深圳亿起融网络科技有限公司
*/
@Data
public class IdReq {
private Integer id;
}

45
src/main/java/cn/pelerin/wh/transaction/model/req/InvoiceListReq.java

@ -0,0 +1,45 @@
package cn.pelerin.wh.transaction.model.req;
import cn.pelerin.wh.transaction.util.DateUtil;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import org.apache.http.client.utils.DateUtils;
import org.springframework.util.CollectionUtils;
import java.util.Date;
import java.util.List;
/**
* @author xie.xinquan
* @create 2022/6/13 10:19
* @company 深圳亿起融网络科技有限公司
*/
@Data
public class InvoiceListReq extends BasePageReq {
@JSONField(name = "invoice_number")
private String invoiceNumber;
private String seller;
private String buy;
@JSONField(name = "batchcode")
private String batchCode;
private Integer status;
@JSONField(name = "ticketstatus")
private Integer ticketStatus;
private Date startDate;
private Date endDate;
public void setCreatetime(List<String> createtime) {
Date[] dates = DateUtil.dateRangeConvert(createtime);
startDate = dates[0];
endDate = dates[1];
}
}

50
src/main/java/cn/pelerin/wh/transaction/model/req/OrderListReq.java

@ -0,0 +1,50 @@
package cn.pelerin.wh.transaction.model.req;
import cn.pelerin.wh.transaction.util.DateUtil;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @author liu.baoying
* @date 2022/6/13 14:04
* @company 深圳亿起融网络科技有限公司
*/
@Data
public class OrderListReq extends BasePageReq {
private String batchcode;
private String entrust_name;
private String entrust_type;
private String buy_name;
private String goods_name;
private String order_type;
private String transaction_status;
private List<String> entrustIsliIds;
private String goods_isli;
private String charges_type;
private List<Long> batchcodeIds;
private List<String> buyIsliBatchcode;
private List<String> buyIsliIslicodes;
private Date startDate;
private Date endDate;
private List<String> createtime;
}

35
src/main/java/cn/pelerin/wh/transaction/model/req/RatioListReq.java

@ -0,0 +1,35 @@
package cn.pelerin.wh.transaction.model.req;
import cn.pelerin.wh.transaction.util.DateUtil;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @author xie.xinquan
* @create 2022/6/14 14:17
* @company 深圳亿起融网络科技有限公司
*/
@Data
public class RatioListReq extends BasePageReq {
@JSONField(name = "rule_name")
private String ruleName;
@JSONField(name = "user_id")
private Integer userId;
private Integer status;
private Date startDate;
private Date endDate;
public void setCreatetime(List<String> createtime) {
Date[] dates = DateUtil.dateRangeConvert(createtime);
startDate = dates[0];
endDate = dates[1];
}
}

39
src/main/java/cn/pelerin/wh/transaction/model/req/SetRatioReq.java

@ -0,0 +1,39 @@
package cn.pelerin.wh.transaction.model.req;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
* @author xie.xinquan
* @create 2022/6/15 15:37
* @company 深圳亿起融网络科技有限公司
*/
@Data
public class SetRatioReq {
private String accountId;
@JSONField(name = "rule_name")
private String ruleName;
private List<Ratio> ratio;
@Data
public static class Ratio {
@JSONField(name = "role_type")
private Integer roleType;
@JSONField(name = "cost_type")
private Integer costType;
private Integer calculate;
private BigDecimal amount;
private BigDecimal ratio;
}
}

19
src/main/java/cn/pelerin/wh/transaction/model/resp/AccountRatioDetailResp.java

@ -0,0 +1,19 @@
package cn.pelerin.wh.transaction.model.resp;
import cn.pelerin.wh.transaction.model.req.SetRatioReq;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
/**
* @author xie.xinquan
* @create 2022/6/15 18:08
* @company 深圳亿起融网络科技有限公司
*/
@Data
public class AccountRatioDetailResp extends SetRatioReq.Ratio {
private Integer id;
@JSONField(name = "setting_id")
private Integer settingId;
}

64
src/main/java/cn/pelerin/wh/transaction/model/resp/GoodsDetailResp.java

@ -0,0 +1,64 @@
package cn.pelerin.wh.transaction.model.resp;
import cn.pelerin.wh.transaction.auth.entity.User;
import cn.pelerin.wh.transaction.goods.entity.GoodsDetail;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 描述:
*
* @author xu.jin.feng
* @create 2022/6/15 16:47
* @company 深圳亿起融网络科技有限公司
*/
@Data
public class GoodsDetailResp {
private User userinfo;
private EntrustGoods entrust_goods;
private List<Map<String, Object>> gather_arr;
private List oneSource;
@Data
public static class EntrustGoods extends GoodsDetail {
@JSONField(name = "goods_detail_id")
private Integer goodsDetailId;
@JSONField(name = "goods_islicode")
private String goodsIslicode;
@JSONField(name = "contractual_start_time")
private Date contractualStartTime;
@JSONField(name = "contractualtime_end_time")
private Date contractualtimeEndTime;
@JSONField(name = "user_islicode")
private String userIslicode;
private String islicode;
}
@Data
public static class GatherArr{
private String identifier;
private String name;
private Integer count;
private String jsonMemberClass;
private Date registerDate;
}
}

30
src/main/java/cn/pelerin/wh/transaction/model/resp/GoodsListResp.java

@ -0,0 +1,30 @@
package cn.pelerin.wh.transaction.model.resp;
import cn.pelerin.wh.transaction.goods.entity.Goods;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
/**
* 描述:
*
* @author xu.jin.feng
* @create 2022/6/13 11:22
* @company 深圳亿起融网络科技有限公司
*/
@Data
public class GoodsListResp extends Goods {
private String key;
/**
* 商品名称
*/
@JSONField(name = "goods_name")
private String goodsName;
/**
* 商品类型1文化资源数据2文化数字内容
*/
@JSONField(name = "goods_type")
private Integer goodsType;
}

75
src/main/java/cn/pelerin/wh/transaction/model/resp/OrderDetailResp.java

@ -0,0 +1,75 @@
package cn.pelerin.wh.transaction.model.resp;
import cn.pelerin.wh.transaction.auth.entity.User;
import cn.pelerin.wh.transaction.goods.entity.Goods;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
* @author liu.baoying
* @date 2022/6/16 10:17
* @company 深圳亿起融网络科技有限公司
*/
@Data
public class OrderDetailResp {
private List<String> gather_arr;
private Goods goods;
private List<OnSource> onSource;
private UserInfo userInfo;
@Data
public class OnSource{
public String name;
public String text;
public String filesize;
public String identifier;
public String metadataFileFormat;
public String registerDate;
public Integer download_status;
}
@Data
public class UserInfo extends User {
public String attesttime;
public String authType;
public String bankAccountName;
public String bankAddress;
public String bankCardType;
public String bankCellPhone;
public String bankName;
public String bankType;
public String cellPhone;
public String certIdnum;
public String certType;
public String idNumber;
public String islicode;
public String legalsCellPhone;
public String legalsIdnum;
public String legalsName;
public String legalsType;
public String name;
public String publicAccount;
public String registertime;
public String tickettime;
public Integer state;
public Integer ticket_status;
public Integer ticketid;
public String ticketimage;
public BigDecimal ticketmoney;
public String ticketurl;
public String uscc;
public String userType;
}
}

115
src/main/java/cn/pelerin/wh/transaction/model/resp/OrderInfoResp.java

@ -0,0 +1,115 @@
package cn.pelerin.wh.transaction.model.resp;
import cn.pelerin.wh.transaction.model.db.OrderList;
import cn.pelerin.wh.transaction.order.entity.Order;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
* @author liu.baoying
* @date 2022/6/16 10:50
* @company 深圳亿起融网络科技有限公司
*/
@Data
public class OrderInfoResp {
private List<String> bill;
private BuyUser buyuser;
private List<Close> close;
private OrderList order;
private OrderInfo order_info;
private RatioSetting ratio_setting;
@Data
public class BuyUser {
private String attesttime;
private String authType;
private String bankAccountName;
private String bankAddress;
private String bankCardType;
private String bankCellPhone;
private String bankName;
private String bankType;
private String batchcode;
private String cellPhone;
private String certIdnum;
private String certType;
private String idNumber;
private String islicode;
private String legalsCellPhone;
private String legalsIdnum;
private String legalsName;
private String legalsType;
private String name;
private String publicAccount;
private String registertime;
private Integer state;
private Integer ticket_status;
private Integer ticketid;
private String ticketimage;
private BigDecimal ticketmoney;
private String tickettime;
private String ticketurl;
private String uscc;
private String userType;
}
@Data
public class OrderInfo {
private String batchcode;
private String close_serial_number;
private String contract_code;
private Integer earnest_money;
private String entrust_name;
private String goods_entrust;
private String goods_name;
private String goods_ownership_str;
private String goods_type;
private BigDecimal price;
private Integer service_charge;
private String total_money;
private Integer transaction_count;
private Integer type;
}
@Data
public class Close {
private String close_message;
private BigDecimal close_money;
private String close_number;
private String close_side;
private Integer close_status;
private String money;
private String tax_rate;
private String tax_rate_money;
}
@Data
public class RatioSetting {
private String createtime;
private List<Detail> detail;
private String id;
private Integer is_deleted;
private String rule_name;
private String status;
private Integer user_id;
}
@Data
public class Detail {
private BigDecimal amount;
private Integer calculate;
private Integer cost_type;
private Integer id;
private BigDecimal ratio;
private BigDecimal role_type;
private Integer setting_id;
}
}

31
src/main/java/cn/pelerin/wh/transaction/model/resp/PaySettingResp.java

@ -0,0 +1,31 @@
package cn.pelerin.wh.transaction.model.resp;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
/**
* @author xie.xinquan
* @create 2022/6/16 10:12
* @company 深圳亿起融网络科技有限公司
*/
@Data
public class PaySettingResp {
/**
* 支付宝0禁用1启用
*/
@JSONField(name = "alipay")
private Integer alipay;
/**
* 微信0禁用1启用
*/
@JSONField(name = "wechat_pay")
private Integer wechatPay;
/**
* 网银0禁用1启用
*/
@JSONField(name = "ebank_pay")
private Integer ebankPay;
}

11
src/main/java/cn/pelerin/wh/transaction/model/validate/Page.java

@ -0,0 +1,11 @@
package cn.pelerin.wh.transaction.model.validate;
/**
* 描述: 分页参数标记接口
*
* @author xu.jin.feng
* @create 2022/6/13 10:48
* @company 深圳亿起融网络科技有限公司
*/
public interface Page {
}

190
src/main/java/cn/pelerin/wh/transaction/order/entity/Order.java

@ -0,0 +1,190 @@
package cn.pelerin.wh.transaction.order.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;
@Data
@TableName(value = "`order`")
public class Order implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 用户ID
*/
@TableField(value = "user_id")
private Integer userId;
/**
* 购买方isli标识码
*/
@TableField(value = "buy_islicode")
private String buyIslicode;
/**
* 订单号
*/
@TableField(value = "batchcode")
private String batchcode;
/**
* 分账比例ID
*/
@TableField(value = "account_ratio_id")
private Integer accountRatioId;
/**
* 历史购买方名称
*/
@TableField(value = "history_buy_name")
private String historyBuyName;
/**
* 历史购买方组织机构代码
*/
@TableField(value = "history_buy_code")
private String historyBuyCode;
/**
* 订单服务费金额
*/
@TableField(value = "total_service_charge")
private BigDecimal totalServiceCharge;
/**
* 订单总金额
*/
@TableField(value = "total_money")
private BigDecimal totalMoney;
/**
* 订单类型1委托订单2认证订单3服务订单
*/
@TableField(value = "`type`")
private Integer type;
/**
* 订单状态1待付款2待交付3待结算4已完成5已关闭
*/
@TableField(value = "`status`")
private Integer status;
/**
* 交易isli标识码
*/
@TableField(value = "transaction_islicode")
private String transactionIslicode;
/**
* 开票编号
*/
@TableField(value = "ticketid")
private Integer ticketid;
/**
* 开票金额
*/
@TableField(value = "ticketmoney")
private BigDecimal ticketmoney;
/**
* 开票下载地址
*/
@TableField(value = "ticketurl")
private String ticketurl;
/**
* 发票图片url
*/
@TableField(value = "ticketimage")
private String ticketimage;
/**
* 开票状态1未开票2开票中3已开票4开票失败
*/
@TableField(value = "ticket_status")
private Integer ticketStatus;
/**
* 收费类型1微信2支付宝3银联
*/
@TableField(value = "charge_channel")
private Integer chargeChannel;
/**
* 支付状态1未支付2支付成功3支付失败
*/
@TableField(value = "pay_status")
private Integer payStatus;
/**
* 结算状态1无结算信息2结算中3用户名和收款人不一致4收款信息错误5结算成功
*/
@TableField(value = "close_status")
private Integer closeStatus;
/**
* 是否发送结算请求
*/
@TableField(value = "is_close")
private Integer isClose;
/**
* 结算流水号
*/
@TableField(value = "close_serial_number")
private String closeSerialNumber;
@TableField(value = "payid")
private String payid;
/**
* 订单创建时间
*/
@TableField(value = "createtime")
private Date createtime;
/**
* 订单付款时间
*/
@TableField(value = "paymenttime")
private Date paymenttime;
/**
* 订单交付时间
*/
@TableField(value = "receivetime")
private Date receivetime;
/**
* 订单结算时间
*/
@TableField(value = "closetime")
private Date closetime;
/**
* 订单完成时间
*/
@TableField(value = "completetime")
private Date completetime;
/**
* 订单关闭时间
*/
@TableField(value = "shuttime")
private Date shuttime;
/**
* 订单开票时间
*/
@TableField(value = "tickettime")
private Date tickettime;
private static final long serialVersionUID = 1L;
}

283
src/main/java/cn/pelerin/wh/transaction/order/entity/OrderGoodsDetail.java

@ -0,0 +1,283 @@
package cn.pelerin.wh.transaction.order.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;
/**
* 订单商品明细
*/
@Data
@TableName(value = "order_goods_detail")
public class OrderGoodsDetail implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 订单号
*/
@TableField(value = "batchcode")
private Long batchcode;
/**
* 用户id
*/
@TableField(value = "user_id")
private Integer userId;
/**
* 委托方isli标识码
*/
@TableField(value = "entrust_islicode")
private String entrustIslicode;
/**
* isliCode
*/
@TableField(value = "islicode")
private String islicode;
/**
* 商品名称
*/
@TableField(value = "goods_name")
private String goodsName;
/**
* 商品图片
*/
@TableField(value = "goods_image")
private String goodsImage;
/**
* 合约关联编码(订单交易isli标识码)
*/
@TableField(value = "contract_code")
private String contractCode;
@TableField(value = "orderIslicode")
private String orderislicode;
/**
* 历史委托方名称
*/
@TableField(value = "history_entrust_name")
private String historyEntrustName;
/**
* 历史委托方组织机构代码
*/
@TableField(value = "history_entrust_code")
private String historyEntrustCode;
/**
* 资源isli
*/
@TableField(value = "identifier")
private String identifier;
/**
* 合约ISLI标志码/商品ISLI编码
*/
@TableField(value = "identifiers")
private String identifiers;
/**
* sourceData里的islicode
*/
@TableField(value = "sourcedata_islicode")
private String sourcedataIslicode;
/**
* 结算流水号
*/
@TableField(value = "close_serial_number")
private String closeSerialNumber;
/**
* 单价
*/
@TableField(value = "price")
private BigDecimal price;
/**
* 标的金额不算服务费
*/
@TableField(value = "goods_price")
private BigDecimal goodsPrice;
/**
* 服务费金额
*/
@TableField(value = "service_charge")
private BigDecimal serviceCharge;
/**
* 商品保证金
*/
@TableField(value = "earnest_money")
private BigDecimal earnestMoney;
/**
* 交易数量
*/
@TableField(value = "transaction_count")
private Integer transactionCount;
/**
* 商品总金额
*/
@TableField(value = "money")
private BigDecimal money;
/**
* 委托方服务费
*/
@TableField(value = "entrust_service_charge")
private BigDecimal entrustServiceCharge;
/**
* 委托方金额
*/
@TableField(value = "entrust_money")
private BigDecimal entrustMoney;
/**
* 商品类型1所有权2使用权
*/
@TableField(value = "goods_ownership")
private Integer goodsOwnership;
/**
* 商品权属
*/
@TableField(value = "goods_ownership_str")
private String goodsOwnershipStr;
/**
* 商品类型1文化资源数据2文化数字内容
*/
@TableField(value = "goods_type")
private Integer goodsType;
/**
* 商品费用类型1免费2付费
*/
@TableField(value = "charges_type")
private Integer chargesType;
/**
* 商品isli标识码
*/
@TableField(value = "goods_islicode")
private String goodsIslicode;
/**
* 商品委托类型1转让2许可
*/
@TableField(value = "goods_entrust")
private Integer goodsEntrust;
/**
* 委托周期1永久2单次3周期
*/
@TableField(value = "contractual_period")
private Integer contractualPeriod;
/**
* 交易种类1权属2商品
*/
@TableField(value = "transaction_class")
private Integer transactionClass;
/**
* 描述
*/
@TableField(value = "contract")
private String contract;
/**
* 权属自有标识符商品自有标识符
*/
@TableField(value = "otherIdentifiers")
private String otheridentifiers;
/**
* 标的商品的分类交易种类为商品时候用的
*/
@TableField(value = "classification")
private String classification;
/**
* 资源isli标识码
*/
@TableField(value = "source_islicode")
private String sourceIslicode;
/**
* 资源名称
*/
@TableField(value = "source_islicode_name")
private String sourceIslicodeName;
/**
* 数据json格式
*/
@TableField(value = "data_json")
private String dataJson;
/**
* 数据json格式
*/
@TableField(value = "source_json")
private String sourceJson;
/**
* 资源下载数据
*/
@TableField(value = "source_download")
private String sourceDownload;
/**
* 该次结算批次号
*/
@TableField(value = "close_id")
private String closeId;
/**
* 1无结算信息2结算中3用户名和收款人不一致4收款信息错误5结算成功
*/
@TableField(value = "close_status")
private Integer closeStatus;
@TableField(value = "is_close")
private Integer isClose;
@TableField(value = "callback_msg")
private String callbackMsg;
/**
* 创建时间
*/
@TableField(value = "createtime")
private Date createtime;
/**
* 修改时间
*/
@TableField(value = "updatetime")
private Date updatetime;
/**
* 删除状态0未删除1已删除
*/
@TableField(value = "is_deleted")
private Integer isDeleted;
private static final long serialVersionUID = 1L;
}

171
src/main/java/cn/pelerin/wh/transaction/order/entity/OrderGoodsSource.java

@ -0,0 +1,171 @@
package cn.pelerin.wh.transaction.order.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 订单商品资源
*/
@Data
@TableName(value = "order_goods_source")
public class OrderGoodsSource implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 订单商品明细ID
*/
@TableField(value = "detail_id")
private Integer detailId;
/**
* 订单号
*/
@TableField(value = "batchcode")
private String batchcode;
/**
* 服务编码
*/
@TableField(value = "servicecode")
private String servicecode;
/**
* isli编码
*/
@TableField(value = "linkcode")
private String linkcode;
/**
* 文化单位ID
*/
@TableField(value = "publisherid")
private Integer publisherid;
/**
* 编码登记者文化单位
*/
@TableField(value = "registrant")
private String registrant;
/**
* 解析地址-关联的目标资源地址URL
*/
@TableField(value = "resolution_url")
private String resolutionUrl;
/**
* 源类型1图书/2期刊/3报纸/4音像/5音频/6视频/7其他文献/8图片/9文化产品
*/
@TableField(value = "source_type")
private String sourceType;
/**
* 源名称类型-->源标识符类型ISBN/ISLI/CN
*/
@TableField(value = "source_name_type")
private String sourceNameType;
/**
* 源名称
*/
@TableField(value = "source_name")
private String sourceName;
/**
* 源标识符源标识符类型 + 源标识符ISBN000000XXXXXX
*/
@TableField(value = "sourceIdentify")
private String sourceidentify;
/**
* 源片段
*/
@TableField(value = "source_fragment")
private String sourceFragment;
/**
* 目标名称-->整体目标作品名称
*/
@TableField(value = "target_name")
private String targetName;
/**
* 目标名称类型-->目标标识符类型ISBN/ISLI
*/
@TableField(value = "target_name_type")
private String targetNameType;
/**
* 目标标识符-->整体目标标识符目标标识符类型 + 目标标识符ISBN000000XXXXXX
*/
@TableField(value = "targetIdentify")
private String targetidentify;
/**
* 目标片段
*/
@TableField(value = "target_fragment")
private String targetFragment;
/**
* 目标类型服务关联创建的实体1其他文献/2音频/3视频/4图片/5文化产品
*/
@TableField(value = "targetFormat")
private String targetformat;
/**
* isli元数据其他文献实体/音频实体/视频实体/ json格式
*/
@TableField(value = "source_data")
private String sourceData;
/**
* isli元数据其他文献实体/音频实体/视频实体/ json格式
*/
@TableField(value = "target_data")
private String targetData;
/**
* isli元数据其他文献实体/音频实体/视频实体/ json格式
*/
@TableField(value = "metadataXml")
private String metadataxml;
/**
* 注销说明
*/
@TableField(value = "cancellation_reason")
private String cancellationReason;
/**
* 注销时间
*/
@TableField(value = "cancellationtime")
private Date cancellationtime;
/**
* 分配日期
*/
@TableField(value = "allocationtime")
private Date allocationtime;
/**
* 数据类型
*/
@TableField(value = "datatype")
private Integer datatype;
/**
* 删除状态0未删除1已删除
*/
@TableField(value = "is_deleted")
private Integer isDeleted;
private static final long serialVersionUID = 1L;
}

199
src/main/java/cn/pelerin/wh/transaction/order/entity/OrderUser.java

@ -0,0 +1,199 @@
package cn.pelerin.wh.transaction.order.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;
@Data
@TableName(value = "order_user")
public class OrderUser implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 订单号
*/
@TableField(value = "batchcode")
private String batchcode;
/**
* 用户ISLI标识码
*/
@TableField(value = "islicode")
private String islicode;
/**
* 用户名称
*/
@TableField(value = "`name`")
private String name;
/**
* 机构代码
*/
@TableField(value = "uscc")
private String uscc;
/**
* 机构类型个人组织
*/
@TableField(value = "userType")
private String usertype;
/**
* 认证类型
*/
@TableField(value = "authType")
private String authtype;
/**
* 个人-证件类型
*/
@TableField(value = "certType")
private String certtype;
/**
* 个人-证件号码
*/
@TableField(value = "idNumber")
private String idnumber;
/**
* 个人-手机号码
*/
@TableField(value = "cellPhone")
private String cellphone;
/**
* 银行账户
*/
@TableField(value = "publicAccount")
private String publicaccount;
/**
* 机构-法人名称
*/
@TableField(value = "legalsName")
private String legalsname;
/**
* 机构-法人证件类型
*/
@TableField(value = "legalsType")
private String legalstype;
/**
* 机构-法人证件号
*/
@TableField(value = "legalsIdnum")
private String legalsidnum;
/**
* 机构-法人手机号
*/
@TableField(value = "legalsCellPhone")
private String legalscellphone;
/**
* 银行卡类型
*/
@TableField(value = "bankCardType")
private String bankcardtype;
/**
* 银行行别
*/
@TableField(value = "bankType")
private String banktype;
/**
* 开户行名称
*/
@TableField(value = "bankName")
private String bankname;
/**
* 开户人姓名
*/
@TableField(value = "bankAccountName")
private String bankaccountname;
/**
* 开户人身份证号码
*/
@TableField(value = "certIdnum")
private String certidnum;
/**
* 开户行预留手机号码
*/
@TableField(value = "bankCellPhone")
private String bankcellphone;
/**
* 开户行所在地
*/
@TableField(value = "bankAddress")
private String bankaddress;
/**
* 0-认证中 1-认证成功 2-认证失败
*/
@TableField(value = "`state`")
private Integer state;
/**
* 注册时间
*/
@TableField(value = "registertime")
private Date registertime;
/**
* 认证时间
*/
@TableField(value = "attesttime")
private Date attesttime;
/**
* 开票时间
*/
@TableField(value = "tickettime")
private Date tickettime;
/**
* 开票编号
*/
@TableField(value = "ticketid")
private Integer ticketid;
/**
* 开票金额
*/
@TableField(value = "ticketmoney")
private BigDecimal ticketmoney;
/**
* 开票下载url
*/
@TableField(value = "ticketurl")
private String ticketurl;
/**
* 开票图片url
*/
@TableField(value = "ticketimage")
private String ticketimage;
/**
* 开票状态1未开票2开票中3已开票4开票失败
*/
@TableField(value = "ticket_status")
private Integer ticketStatus;
private static final long serialVersionUID = 1L;
}

7
src/main/java/cn/pelerin/wh/transaction/order/mapper/OrderGoodsDetailMapper.java

@ -0,0 +1,7 @@
package cn.pelerin.wh.transaction.order.mapper;
import cn.pelerin.wh.transaction.order.entity.OrderGoodsDetail;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface OrderGoodsDetailMapper extends BaseMapper<OrderGoodsDetail> {
}

14
src/main/java/cn/pelerin/wh/transaction/order/mapper/OrderGoodsDetailMapperExt.java

@ -0,0 +1,14 @@
package cn.pelerin.wh.transaction.order.mapper;
import cn.pelerin.wh.transaction.model.req.OrderListReq;
import cn.pelerin.wh.transaction.order.entity.OrderGoodsDetail;
import cn.pelerin.wh.transaction.order.entity.OrderUser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
public interface OrderGoodsDetailMapperExt extends OrderGoodsDetailMapper {
List<OrderGoodsDetail> selectOrderGoodsDetailList(OrderListReq orderListReq);
}

7
src/main/java/cn/pelerin/wh/transaction/order/mapper/OrderGoodsSourceMapper.java

@ -0,0 +1,7 @@
package cn.pelerin.wh.transaction.order.mapper;
import cn.pelerin.wh.transaction.order.entity.OrderGoodsSource;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface OrderGoodsSourceMapper extends BaseMapper<OrderGoodsSource> {
}

7
src/main/java/cn/pelerin/wh/transaction/order/mapper/OrderMapper.java

@ -0,0 +1,7 @@
package cn.pelerin.wh.transaction.order.mapper;
import cn.pelerin.wh.transaction.order.entity.Order;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface OrderMapper extends BaseMapper<Order> {
}

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save