feat(config): 更新测试环境配置并优化订单导入逻辑
- 修改Redis主机地址和端口以适配新环境- 更新SocketIO监听地址为0.0.0.0 - 配置文件服务器地址及上传路径- 添加阿里云OSS存储配置信息 - 调整证书加载模式为VOLUME并设置根路径 - 新增支付配置缓存键前缀和过期时间- 修改订单导入时使用的字段匹配条件 -修正导入参数类中的字段类型和注解说明- 更新实体类ShopDealerOrder增加title字段 -优化订单价格处理逻辑避免空指针异常 - 注释掉部分冗余的推荐关系查询代码 - 调整订单无效状态默认值为0(有效)
This commit is contained in:
2
pom.xml
2
pom.xml
@@ -4,7 +4,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<groupId>com.gxwebsoft</groupId>
|
<groupId>com.gxwebsoft</groupId>
|
||||||
<artifactId>com-gxwebsoft-modules</artifactId>
|
<artifactId>mp-api</artifactId>
|
||||||
<version>1.5.0</version>
|
<version>1.5.0</version>
|
||||||
|
|
||||||
<name>com-gxwebsoft-api</name>
|
<name>com-gxwebsoft-api</name>
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ public class SdyDealerOrderController extends BaseController {
|
|||||||
for (SdyDealerOrderImportParam d : list) {
|
for (SdyDealerOrderImportParam d : list) {
|
||||||
// 检查是否已存在相同的记录(根据comments字段和未结算状态)
|
// 检查是否已存在相同的记录(根据comments字段和未结算状态)
|
||||||
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<ShopDealerOrder> queryWrapper = new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<>();
|
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<ShopDealerOrder> queryWrapper = new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<>();
|
||||||
queryWrapper.eq(ShopDealerOrder::getComments, d.getComments()); // 使用comments字段
|
queryWrapper.eq(ShopDealerOrder::getTitle, d.getTitle()); // 使用comments字段
|
||||||
queryWrapper.eq(ShopDealerOrder::getIsSettled, 0); // 未结算状态
|
queryWrapper.eq(ShopDealerOrder::getIsSettled, 0); // 未结算状态
|
||||||
|
|
||||||
if (shopDealerOrderService.count(queryWrapper) == 0) {
|
if (shopDealerOrderService.count(queryWrapper) == 0) {
|
||||||
@@ -91,61 +91,66 @@ public class SdyDealerOrderController extends BaseController {
|
|||||||
String orderNo = Long.toString(IdUtil.getSnowflakeNextId());
|
String orderNo = Long.toString(IdUtil.getSnowflakeNextId());
|
||||||
|
|
||||||
// 手动映射字段
|
// 手动映射字段
|
||||||
item.setOrderNo(d.getOrderNo());
|
// item.setOrderNo(d.getOrderNo());
|
||||||
item.setOrderNo(orderNo);
|
item.setOrderNo(orderNo);
|
||||||
item.setOrderPrice(d.getOrderPrice());
|
item.setOrderPrice(d.getOrderPrice());
|
||||||
|
item.setTitle(d.getTitle());
|
||||||
item.setDegreePrice(d.getOrderPrice().multiply(new BigDecimal(1000)));
|
item.setDegreePrice(d.getOrderPrice().multiply(new BigDecimal(1000)));
|
||||||
item.setFirstUserId(d.getFirstUserId());
|
item.setFirstUserId(Integer.valueOf(d.getFirstUserId()));
|
||||||
item.setSecondUserId(d.getSecondUserId());
|
item.setSecondUserId(Integer.valueOf(d.getSecondUserId()));
|
||||||
item.setThirdUserId(d.getThirdUserId());
|
item.setThirdUserId(Integer.valueOf(d.getThirdUserId()));
|
||||||
item.setFirstMoney(d.getFirstMoney());
|
item.setFirstMoney(d.getFirstMoney());
|
||||||
item.setSecondMoney(d.getSecondMoney());
|
item.setSecondMoney(d.getSecondMoney());
|
||||||
item.setThirdMoney(d.getThirdMoney());
|
item.setThirdMoney(d.getThirdMoney());
|
||||||
item.setTenantId(d.getTenantId());
|
item.setTenantId(d.getTenantId());
|
||||||
item.setComments(d.getComments());
|
item.setComments(d.getComments());
|
||||||
// 假设d.getPrice()返回的BigDecimal未设置精度
|
// 假设d.getPrice()返回的BigDecimal未设置精度
|
||||||
item.setPrice(d.getPrice().divide(new BigDecimal(1000), 3, BigDecimal.ROUND_HALF_UP));
|
if(d.getPrice() == null){
|
||||||
|
item.setPrice(d.getPrice().divide(new BigDecimal(1000), 3, BigDecimal.ROUND_HALF_UP));
|
||||||
|
}else {
|
||||||
|
item.setPrice(d.getPrice());
|
||||||
|
}
|
||||||
item.setSettledPrice(d.getSettledPrice());
|
item.setSettledPrice(d.getSettledPrice());
|
||||||
item.setPayPrice(d.getPayPrice());
|
item.setPayPrice(d.getPayPrice());
|
||||||
item.setRate(d.getRate());
|
item.setRate(d.getRate());
|
||||||
item.setMonth(d.getMonth());
|
item.setMonth(d.getMonth());
|
||||||
item.setIsInvalid(1);
|
item.setIsInvalid(0);
|
||||||
item.setIsSettled(0); // 新导入的数据设为未结算
|
item.setIsSettled(0); // 新导入的数据设为未结算
|
||||||
|
|
||||||
// TODO 导入指定用户ID
|
// TODO 导入指定用户ID
|
||||||
if(d.getUserId() != null){
|
// if(d.getUserId() != null){
|
||||||
item.setUserId(d.getUserId());
|
// item.setUserId(d.getUserId());
|
||||||
item.setIsInvalid(1);
|
// item.setIsInvalid(1);
|
||||||
|
//
|
||||||
}else {
|
// }else {
|
||||||
// TODO 通过报备客户信息查询绑定关系
|
// // TODO 通过报备客户信息查询绑定关系
|
||||||
ShopDealerApply dealerApply = shopDealerApplyService.getByDealerNameRel(d.getComments());
|
// ShopDealerApply dealerApply = shopDealerApplyService.getByDealerNameRel(d.getComments());
|
||||||
|
//
|
||||||
// 已签约客户
|
// // 已签约客户
|
||||||
if(dealerApply != null){
|
// if(dealerApply != null){
|
||||||
item.setIsInvalid(0);
|
// item.setIsInvalid(0);
|
||||||
item.setUserId(dealerApply.getUserId());
|
// item.setUserId(dealerApply.getUserId());
|
||||||
item.setFirstUserId(dealerApply.getRefereeId());
|
// item.setFirstUserId(dealerApply.getRefereeId());
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 查询推荐关系
|
// 查询推荐关系
|
||||||
if(ObjectUtil.isNotEmpty(item.getUserId())){
|
// if(ObjectUtil.isNotEmpty(item.getUserId())){
|
||||||
ShopDealerReferee referee = shopDealerRefereeService.getByUserIdRel(item.getUserId());
|
// ShopDealerReferee referee = shopDealerRefereeService.getByUserIdRel(item.getUserId());
|
||||||
item.setFirstUserId(referee.getDealerId());
|
// item.setFirstUserId(referee.getDealerId());
|
||||||
item.setFirstNickname(referee.getDealerName());
|
// item.setFirstNickname(referee.getDealerName());
|
||||||
ShopDealerReferee referee2 = shopDealerRefereeService.getByUserIdRel(referee.getDealerId());
|
// ShopDealerReferee referee2 = shopDealerRefereeService.getByUserIdRel(referee.getDealerId());
|
||||||
if(ObjectUtil.isNotEmpty(referee2)){
|
// if(ObjectUtil.isNotEmpty(referee2)){
|
||||||
item.setSecondUserId(referee2.getDealerId());
|
// item.setSecondUserId(referee2.getDealerId());
|
||||||
item.setSecondNickname(referee2.getDealerName());
|
// item.setSecondNickname(referee2.getDealerName());
|
||||||
ShopDealerReferee referee3 = shopDealerRefereeService.getByUserIdRel(referee2.getDealerId());
|
// ShopDealerReferee referee3 = shopDealerRefereeService.getByUserIdRel(referee2.getDealerId());
|
||||||
if(ObjectUtil.isNotEmpty(referee3)){
|
// if(ObjectUtil.isNotEmpty(referee3)){
|
||||||
item.setThirdUserId(referee3.getDealerId());
|
// item.setThirdUserId(referee3.getDealerId());
|
||||||
item.setThirdNickname(referee3.getDealerName());
|
// item.setThirdNickname(referee3.getDealerName());
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
item.setIsInvalid(0);
|
// item.setIsInvalid(0);
|
||||||
}
|
// }
|
||||||
|
|
||||||
System.out.println("准备导入数据: " + item);
|
System.out.println("准备导入数据: " + item);
|
||||||
if (ObjectUtil.isNotEmpty(item)) {
|
if (ObjectUtil.isNotEmpty(item)) {
|
||||||
|
|||||||
@@ -19,12 +19,15 @@ import java.time.LocalDateTime;
|
|||||||
public class SdyDealerOrderImportParam implements Serializable {
|
public class SdyDealerOrderImportParam implements Serializable {
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
@Excel(name = "实际收款人")
|
@Excel(name = "业务员ID")
|
||||||
private Integer userId;
|
private String userId;
|
||||||
|
|
||||||
@Excel(name = "订单编号")
|
@Excel(name = "订单编号")
|
||||||
private String orderNo;
|
private String orderNo;
|
||||||
|
|
||||||
|
@Excel(name = "公司名称")
|
||||||
|
private String title;
|
||||||
|
|
||||||
@Excel(name = "结算电量")
|
@Excel(name = "结算电量")
|
||||||
private BigDecimal orderPrice;
|
private BigDecimal orderPrice;
|
||||||
|
|
||||||
@@ -47,24 +50,24 @@ public class SdyDealerOrderImportParam implements Serializable {
|
|||||||
private String month;
|
private String month;
|
||||||
|
|
||||||
@Excel(name = "一级分销商ID")
|
@Excel(name = "一级分销商ID")
|
||||||
private Integer firstUserId;
|
private String firstUserId;
|
||||||
|
|
||||||
@Excel(name = "二级分销商ID")
|
@Excel(name = "二级分销商ID")
|
||||||
private Integer secondUserId;
|
private String secondUserId;
|
||||||
|
|
||||||
@Excel(name = "三级分销商ID")
|
@Excel(name = "三级分销商ID")
|
||||||
private Integer thirdUserId;
|
private String thirdUserId;
|
||||||
|
|
||||||
@Excel(name = "一级佣金")
|
@Excel(name = "一级佣金30%")
|
||||||
private BigDecimal firstMoney;
|
private BigDecimal firstMoney;
|
||||||
|
|
||||||
@Excel(name = "二级佣金")
|
@Excel(name = "二级佣金10%")
|
||||||
private BigDecimal secondMoney;
|
private BigDecimal secondMoney;
|
||||||
|
|
||||||
@Excel(name = "三级佣金")
|
@Excel(name = "三级佣金60%")
|
||||||
private BigDecimal thirdMoney;
|
private BigDecimal thirdMoney;
|
||||||
|
|
||||||
@Excel(name = "公司名称")
|
@Excel(name = "备注")
|
||||||
private String comments;
|
private String comments;
|
||||||
|
|
||||||
@Excel(name = "租户ID")
|
@Excel(name = "租户ID")
|
||||||
|
|||||||
@@ -36,6 +36,9 @@ public class ShopDealerOrder implements Serializable {
|
|||||||
@Excel(name = "订单编号")
|
@Excel(name = "订单编号")
|
||||||
private String orderNo;
|
private String orderNo;
|
||||||
|
|
||||||
|
@Excel(name = "商品名称")
|
||||||
|
private String title;
|
||||||
|
|
||||||
@Schema(description = "买家用户昵称")
|
@Schema(description = "买家用户昵称")
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String nickname;
|
private String nickname;
|
||||||
|
|||||||
@@ -16,8 +16,8 @@ spring:
|
|||||||
# redis
|
# redis
|
||||||
redis:
|
redis:
|
||||||
database: 0
|
database: 0
|
||||||
host: 8.134.169.209
|
host: 1Panel-redis-Q1LE
|
||||||
port: 16379
|
port: 6379
|
||||||
password: redis_WSDb88
|
password: redis_WSDb88
|
||||||
|
|
||||||
# 日志配置
|
# 日志配置
|
||||||
@@ -29,7 +29,7 @@ logging:
|
|||||||
org.apache.ibatis: DEBUG
|
org.apache.ibatis: DEBUG
|
||||||
|
|
||||||
socketio:
|
socketio:
|
||||||
host: localhost #IP地址
|
host: 0.0.0.0 #IP地址
|
||||||
|
|
||||||
# MQTT配置
|
# MQTT配置
|
||||||
mqtt:
|
mqtt:
|
||||||
@@ -44,22 +44,32 @@ mqtt:
|
|||||||
keep-alive-interval: 20
|
keep-alive-interval: 20
|
||||||
auto-reconnect: true
|
auto-reconnect: true
|
||||||
|
|
||||||
|
|
||||||
# 框架配置
|
# 框架配置
|
||||||
config:
|
config:
|
||||||
# 开发环境接口
|
# 文件服务器
|
||||||
|
file-server: https://file-s209.shoplnk.cn
|
||||||
|
# 生产环境接口
|
||||||
server-url: https://server.websoft.top/api
|
server-url: https://server.websoft.top/api
|
||||||
upload-path: /Users/gxwebsoft/JAVA/mp-java/src/main/resources # window(D:\Temp)
|
upload-path: /www/wwwroot/file.ws
|
||||||
|
|
||||||
# JWT配置
|
# 阿里云OSS云存储
|
||||||
jwt:
|
endpoint: https://oss-cn-shenzhen.aliyuncs.com
|
||||||
secret: websoft-jwt-secret-key-2025-dev-environment
|
accessKeyId: LTAI4GKGZ9Z2Z8JZ77c3GNZP
|
||||||
expire: 86400 # token过期时间(秒) 24小时
|
accessKeySecret: BiDkpS7UXj72HWwDWaFZxiXjNFBNCM
|
||||||
|
bucketName: oss-gxwebsoft
|
||||||
|
bucketDomain: https://oss.wsdns.cn
|
||||||
|
aliyunDomain: https://oss-gxwebsoft.oss-cn-shenzhen.aliyuncs.com
|
||||||
|
|
||||||
# 开发环境证书配置
|
# 生产环境证书配置
|
||||||
certificate:
|
certificate:
|
||||||
load-mode: CLASSPATH # 开发环境从classpath加载
|
load-mode: VOLUME # 生产环境从Docker挂载卷加载
|
||||||
wechat-pay:
|
cert-root-path: /www/wwwroot/file.ws
|
||||||
dev:
|
|
||||||
private-key-file: "apiclient_key.pem"
|
# 支付配置缓存
|
||||||
apiclient-cert-file: "apiclient_cert.pem"
|
payment:
|
||||||
wechatpay-cert-file: "wechatpay_cert.pem"
|
cache:
|
||||||
|
# 支付配置缓存键前缀,生产环境使用 Payment:1* 格式
|
||||||
|
key-prefix: "Payment:1"
|
||||||
|
# 缓存过期时间(小时)
|
||||||
|
expire-hours: 24
|
||||||
|
|||||||
Reference in New Issue
Block a user