订单/退款查询条件修订;修改logback日志;修订配置文件;隐藏普通管理员查询系统品牌管理
This commit is contained in:
parent
0376bf1453
commit
2ef8150f19
@ -187,7 +187,7 @@ public interface Constants {
|
|||||||
/**
|
/**
|
||||||
* 隐藏菜单
|
* 隐藏菜单
|
||||||
*/
|
*/
|
||||||
String HIDE_MENU = "Menu";
|
String HIDE_MENU = "Menu,Brand";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户类型
|
* 用户类型
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package com.cpop.core.handler;
|
|||||||
|
|
||||||
import com.cpop.core.base.exception.UtilException;
|
import com.cpop.core.base.exception.UtilException;
|
||||||
import com.cpop.core.config.TencentCosProperties;
|
import com.cpop.core.config.TencentCosProperties;
|
||||||
|
import com.qcloud.cos.COS;
|
||||||
import com.qcloud.cos.COSClient;
|
import com.qcloud.cos.COSClient;
|
||||||
import com.qcloud.cos.ClientConfig;
|
import com.qcloud.cos.ClientConfig;
|
||||||
import com.qcloud.cos.auth.BasicCOSCredentials;
|
import com.qcloud.cos.auth.BasicCOSCredentials;
|
||||||
@ -20,6 +21,7 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties
|
|||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import javax.annotation.PostConstruct;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
@ -40,13 +42,16 @@ public class TencentCosHandler {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private TencentCosProperties properties;
|
private TencentCosProperties properties;
|
||||||
|
|
||||||
|
private TransferManager transferManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @descriptions 创建 TransferManager 实例,这个实例用来后续调用高级接口
|
* @descriptions 初始化创建TransferManager 实例,这个实例用来后续调用高级接口
|
||||||
* @author DB
|
* @author DB
|
||||||
* @date 2023/10/31 16:48
|
* @date 2023/11/01 10:34
|
||||||
* @return: com.qcloud.cos.transfer.TransferManager
|
* @return: void
|
||||||
*/
|
*/
|
||||||
private TransferManager createTransferManager() {
|
@PostConstruct
|
||||||
|
public void createTransferManager(){
|
||||||
// 创建一个 COSClient 实例,这是访问 COS 服务的基础实例。
|
// 创建一个 COSClient 实例,这是访问 COS 服务的基础实例。
|
||||||
// 详细代码参见本页: 简单操作 -> 创建 COSClient
|
// 详细代码参见本页: 简单操作 -> 创建 COSClient
|
||||||
COSClient cosClient = createCosClient();
|
COSClient cosClient = createCosClient();
|
||||||
@ -54,14 +59,13 @@ public class TencentCosHandler {
|
|||||||
// 对于使用公网传输且网络带宽质量不高的情况,建议减小该值,避免因网速过慢,造成请求超时。
|
// 对于使用公网传输且网络带宽质量不高的情况,建议减小该值,避免因网速过慢,造成请求超时。
|
||||||
ExecutorService threadPool = Executors.newFixedThreadPool(32);
|
ExecutorService threadPool = Executors.newFixedThreadPool(32);
|
||||||
// 传入一个 threadPool, 若不传入线程池,默认 TransferManager 中会生成一个单线程的线程池。
|
// 传入一个 threadPool, 若不传入线程池,默认 TransferManager 中会生成一个单线程的线程池。
|
||||||
TransferManager transferManager = new TransferManager(cosClient, threadPool);
|
transferManager = new TransferManager(cosClient, threadPool);
|
||||||
// 设置高级接口的配置项
|
// 设置高级接口的配置项
|
||||||
// 分块上传阈值和分块大小分别为 5MB 和 1MB
|
// 分块上传阈值和分块大小分别为 5MB 和 1MB
|
||||||
TransferManagerConfiguration transferManagerConfiguration = new TransferManagerConfiguration();
|
TransferManagerConfiguration transferManagerConfiguration = new TransferManagerConfiguration();
|
||||||
transferManagerConfiguration.setMultipartUploadThreshold(5 * 1024 * 1024);
|
transferManagerConfiguration.setMultipartUploadThreshold(5 * 1024 * 1024);
|
||||||
transferManagerConfiguration.setMinimumUploadPartSize(1 * 1024 * 1024);
|
transferManagerConfiguration.setMinimumUploadPartSize(1 * 1024 * 1024);
|
||||||
transferManager.setConfiguration(transferManagerConfiguration);
|
transferManager.setConfiguration(transferManagerConfiguration);
|
||||||
return transferManager;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -106,7 +110,7 @@ public class TencentCosHandler {
|
|||||||
* @param transferManager 管理器
|
* @param transferManager 管理器
|
||||||
* @return: void
|
* @return: void
|
||||||
*/
|
*/
|
||||||
private void shutdownTransferManager(TransferManager transferManager) {
|
public void shutdownTransferManager(TransferManager transferManager) {
|
||||||
// 指定参数为 true, 则同时会关闭 transferManager 内部的 COSClient 实例。
|
// 指定参数为 true, 则同时会关闭 transferManager 内部的 COSClient 实例。
|
||||||
// 指定参数为 false, 则不会关闭 transferManager 内部的 COSClient 实例。
|
// 指定参数为 false, 则不会关闭 transferManager 内部的 COSClient 实例。
|
||||||
transferManager.shutdownNow(true);
|
transferManager.shutdownNow(true);
|
||||||
@ -120,7 +124,6 @@ public class TencentCosHandler {
|
|||||||
* @return: com.qcloud.cos.model.UploadResult
|
* @return: com.qcloud.cos.model.UploadResult
|
||||||
*/
|
*/
|
||||||
public UploadResult cdnUpload(MultipartFile file) {
|
public UploadResult cdnUpload(MultipartFile file) {
|
||||||
TransferManager transferManager = createTransferManager();
|
|
||||||
try {
|
try {
|
||||||
ObjectMetadata objectMetadata = new ObjectMetadata();
|
ObjectMetadata objectMetadata = new ObjectMetadata();
|
||||||
// 上传的流如果能够获取准确的流长度,则推荐一定填写 content-length
|
// 上传的流如果能够获取准确的流长度,则推荐一定填写 content-length
|
||||||
@ -133,12 +136,11 @@ public class TencentCosHandler {
|
|||||||
// 更多存储类型请参见 https://cloud.tencent.com/document/product/436/33417
|
// 更多存储类型请参见 https://cloud.tencent.com/document/product/436/33417
|
||||||
putObjectRequest.setStorageClass(StorageClass.Standard_IA);
|
putObjectRequest.setStorageClass(StorageClass.Standard_IA);
|
||||||
Upload upload = transferManager.upload(putObjectRequest);
|
Upload upload = transferManager.upload(putObjectRequest);
|
||||||
|
UploadResult uploadResult = upload.waitForUploadResult();
|
||||||
inputStream.close();
|
inputStream.close();
|
||||||
return upload.waitForUploadResult();
|
return uploadResult;
|
||||||
} catch (IOException | InterruptedException e) {
|
} catch (IOException | InterruptedException e) {
|
||||||
throw new UtilException(e);
|
throw new UtilException(e);
|
||||||
} finally {
|
|
||||||
shutdownTransferManager(transferManager);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -104,7 +104,13 @@ logging:
|
|||||||
#微信支付
|
#微信支付
|
||||||
wx:
|
wx:
|
||||||
pay:
|
pay:
|
||||||
#通知地址
|
# p12证书的位置,可以指定绝对路径,也可以指定类路径(以classpath:开头)
|
||||||
|
keyPath: E:/Cpop/Cpop-Union/Cpop-Mall/Cpop-Mall-Web/src/main/resources/static/keyPair/wxPay_cert.p12
|
||||||
|
# 私钥证书
|
||||||
|
privateKeyPath: E:/Cpop/Cpop-Union/Cpop-Mall/Cpop-Mall-Web/src/main/resources/static/keyPair/wxPay_key.pem
|
||||||
|
# 私钥文件
|
||||||
|
privateCertPath: E:/Cpop/Cpop-Union/Cpop-Mall/Cpop-Mall-Web/src/main/resources/static/keyPair/wxPay_cert.pem
|
||||||
|
#支付通知地址
|
||||||
notifyUrl: https://frp-oak.top:11899/Cpop-Mall/wxPay/callback/notify/order
|
notifyUrl: https://frp-oak.top:11899/Cpop-Mall/wxPay/callback/notify/order
|
||||||
#支付成功
|
#退款通知地址
|
||||||
notifyRefund: https://frp-oak.top:11899/Cpop-Mall/wxPay/callback/notify/refund
|
notifyRefund: https://frp-oak.top:11899/Cpop-Mall/wxPay/callback/notify/refund
|
||||||
@ -75,7 +75,13 @@ logging:
|
|||||||
#微信支付
|
#微信支付
|
||||||
wx:
|
wx:
|
||||||
pay:
|
pay:
|
||||||
#通知地址
|
# p12证书的位置,可以指定绝对路径,也可以指定类路径(以classpath:开头)
|
||||||
|
keyPath: /root/cpop-union/cpop-mall/script/secretKey/wxPay_cert.p12
|
||||||
|
# 私钥证书
|
||||||
|
privateKeyPath: /root/cpop-union/cpop-mall/script/secretKey/wxPay_key.pem
|
||||||
|
# 私钥文件
|
||||||
|
privateCertPath: /root/cpop-union/cpop-mall/script/secretKey/wxPay_cert.pem
|
||||||
|
#支付通知地址
|
||||||
notifyUrl: https://test.cpopsz.com/onlineShop/Cpop-Mall/wxPay/callback/notify/order
|
notifyUrl: https://test.cpopsz.com/onlineShop/Cpop-Mall/wxPay/callback/notify/order
|
||||||
#支付成功
|
#退款通知地址
|
||||||
notifyRefund: https://test.cpopsz.com/onlineShop/Cpop-Mall/wxPay/callback/notify/refund
|
notifyRefund: https://test.cpopsz.com/onlineShop/Cpop-Mall/wxPay/callback/notify/refund
|
||||||
@ -105,7 +105,13 @@ logging:
|
|||||||
#微信支付
|
#微信支付
|
||||||
wx:
|
wx:
|
||||||
pay:
|
pay:
|
||||||
#通知地址
|
# p12证书的位置,可以指定绝对路径,也可以指定类路径(以classpath:开头)
|
||||||
|
keyPath: /root/cpop-union/cpop-mall/script/secretKey/wxPay_cert.p12
|
||||||
|
# 私钥证书
|
||||||
|
privateKeyPath: /root/cpop-union/cpop-mall/script/secretKey/wxPay_key.pem
|
||||||
|
# 私钥文件
|
||||||
|
privateCertPath: /root/cpop-union/cpop-mall/script/secretKey/wxPay_cert.pem
|
||||||
|
#支付通知地址
|
||||||
notifyUrl: https://test.cpopsz.com/onlineShop/Cpop-Mall/wxPay/callback/notify/order
|
notifyUrl: https://test.cpopsz.com/onlineShop/Cpop-Mall/wxPay/callback/notify/order
|
||||||
#支付成功
|
#退款通知地址
|
||||||
notifyRefund: https://test.cpopsz.com/onlineShop/Cpop-Mall/wxPay/callback/notify/refund
|
notifyRefund: https://test.cpopsz.com/onlineShop/Cpop-Mall/wxPay/callback/notify/refund
|
||||||
@ -137,5 +137,3 @@ wx:
|
|||||||
#微信支付商户密钥
|
#微信支付商户密钥
|
||||||
mchKey: JamBox20230919174000000000000002
|
mchKey: JamBox20230919174000000000000002
|
||||||
apiV3Key: JamBox20230919174000000000000002
|
apiV3Key: JamBox20230919174000000000000002
|
||||||
# p12证书的位置,可以指定绝对路径,也可以指定类路径(以classpath:开头)
|
|
||||||
keyPath:
|
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
<configuration scan="true" scanPeriod="10 seconds">
|
<configuration scan="true" scanPeriod="10 seconds">
|
||||||
<!--<include resource="org/springframework/boot/logging/logback/base.xml" />-->
|
<!--<include resource="org/springframework/boot/logging/logback/base.xml" />-->
|
||||||
<!--定义日志文件的存储地址和前缀名-->
|
<!--定义日志文件的存储地址和前缀名-->
|
||||||
<property name="LOG_HOME" value="."/>
|
<property name="LOG_HOME" value="./logs"/>
|
||||||
<property name="LOG_PREFIX" value="Cpop-Mall"/>
|
<property name="LOG_PREFIX" value="Cpop-Mall"/>
|
||||||
|
|
||||||
<!--控制台输出 -->
|
<!--控制台输出 -->
|
||||||
@ -16,49 +16,55 @@
|
|||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
<appender name="SYS_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<springProfile name="test,prod">
|
||||||
<File>${LOG_HOME}/${LOG_PREFIX}-info.log</File>
|
<appender name="SYS_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||||
<append>true</append>
|
<File>${LOG_HOME}/${LOG_PREFIX}-info.log</File>
|
||||||
<!--过滤器,只打INFO级别的日志-->
|
<append>true</append>
|
||||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
<!--过滤器,只打INFO级别的日志-->
|
||||||
<level>INFO</level>
|
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||||
<onMatch>ACCEPT</onMatch>
|
<level>INFO</level>
|
||||||
<onMismatch>DENY</onMismatch>
|
<onMatch>ACCEPT</onMatch>
|
||||||
</filter>
|
<onMismatch>DENY</onMismatch>
|
||||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
</filter>
|
||||||
<fileNamePattern>${LOG_HOME}/${LOG_PREFIX}-info-%d{yyyyMMdd}.log.%d</fileNamePattern>
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||||
<maxHistory>7</maxHistory>
|
<fileNamePattern>${LOG_HOME}/${LOG_PREFIX}-info-%d{yyyyMMdd}.log.%d</fileNamePattern>
|
||||||
</rollingPolicy>
|
<maxHistory>7</maxHistory>
|
||||||
<encoder charset="UTF-8">
|
</rollingPolicy>
|
||||||
<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n</pattern>
|
<encoder charset="UTF-8">
|
||||||
<charset>UTF-8</charset>
|
<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n</pattern>
|
||||||
</encoder>
|
<charset>UTF-8</charset>
|
||||||
</appender>
|
</encoder>
|
||||||
|
</appender>
|
||||||
|
|
||||||
<appender name="SYS_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<appender name="SYS_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||||
<File>${LOG_HOME}/${LOG_PREFIX}-error.log</File>
|
<File>${LOG_HOME}/${LOG_PREFIX}-error.log</File>
|
||||||
<append>true</append>
|
<append>true</append>
|
||||||
<!--过滤器,只打ERROR级别的日志-->
|
<!--过滤器,只打ERROR级别的日志-->
|
||||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||||
<level>ERROR</level>
|
<level>ERROR</level>
|
||||||
<onMatch>ACCEPT</onMatch>
|
<onMatch>ACCEPT</onMatch>
|
||||||
<onMismatch>DENY</onMismatch>
|
<onMismatch>DENY</onMismatch>
|
||||||
</filter>
|
</filter>
|
||||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||||
<fileNamePattern>${LOG_HOME}/${LOG_PREFIX}-error-%d{yyyyMMdd}.log.%d</fileNamePattern>
|
<fileNamePattern>${LOG_HOME}/${LOG_PREFIX}-error-%d{yyyyMMdd}.log.%d</fileNamePattern>
|
||||||
<maxHistory>7</maxHistory>
|
<maxHistory>7</maxHistory>
|
||||||
</rollingPolicy>
|
</rollingPolicy>
|
||||||
<encoder charset="UTF-8">
|
<encoder charset="UTF-8">
|
||||||
<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n</pattern>
|
<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n</pattern>
|
||||||
<charset>UTF-8</charset>
|
<charset>UTF-8</charset>
|
||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
</springProfile>
|
||||||
|
|
||||||
<!--info和error分开打印-->
|
<!--info和error分开打印-->
|
||||||
<root level="INFO">
|
<root level="INFO">
|
||||||
<appender-ref ref="CONSOLE"/>
|
<springProfile name="dev">
|
||||||
<appender-ref ref="SYS_INFO"/>
|
<appender-ref ref="CONSOLE"/>
|
||||||
<appender-ref ref="SYS_ERROR"/>
|
</springProfile>
|
||||||
|
<springProfile name="test,prod">
|
||||||
|
<appender-ref ref="SYS_INFO"/>
|
||||||
|
<appender-ref ref="SYS_ERROR"/>
|
||||||
|
</springProfile>
|
||||||
</root>
|
</root>
|
||||||
<logger name="com.cpop.mall" level="DEBUG"/>
|
<logger name="com.cpop.mall" level="DEBUG"/>
|
||||||
</configuration>
|
</configuration>
|
||||||
|
|||||||
@ -0,0 +1,41 @@
|
|||||||
|
package com.cpop.mall.web;
|
||||||
|
|
||||||
|
import com.cpop.mall.business.service.ProductRecordService;
|
||||||
|
import org.checkerframework.checker.units.qual.A;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
|
||||||
|
import java.util.concurrent.ExecutorService;
|
||||||
|
import java.util.concurrent.Executors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author DB
|
||||||
|
* @createTime 2023/11/01 12:25
|
||||||
|
* @description 订单测试
|
||||||
|
*/
|
||||||
|
@SpringBootTest
|
||||||
|
public class OrderTests {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ProductRecordService productRecordService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @descriptions 并发更新库存
|
||||||
|
* @author DB
|
||||||
|
* @date 2023/11/01 12:26
|
||||||
|
* @return: void
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void concurrencyUpdateStock(){
|
||||||
|
ExecutorService threadPool = Executors.newFixedThreadPool(10);
|
||||||
|
for (int i = 0; i < 100; i++) {
|
||||||
|
threadPool.submit(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
System.out.println(Thread.currentThread().getName() + "正在执行任务");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -30,10 +30,10 @@ public class OrderPageBo implements Serializable {
|
|||||||
private String payUserName;
|
private String payUserName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 支付用户手机号
|
* 接收人手机号
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty("支付用户手机号")
|
@ApiModelProperty("接收人手机号")
|
||||||
private String payUserPhone;
|
private String receivePhone;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单状态(0:待付款;1:待发货;2:待确认;3:已完成;4:退款/售后中)
|
* 订单状态(0:待付款;1:待发货;2:待确认;3:已完成;4:退款/售后中)
|
||||||
|
|||||||
@ -30,10 +30,10 @@ public class OrderRefundPageBo implements Serializable {
|
|||||||
private String payUserName;
|
private String payUserName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 支付用户手机号
|
* 接收人手机号
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty("支付用户手机号")
|
@ApiModelProperty("接收人手机号")
|
||||||
private String payUserPhone;
|
private String receivePhone;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 退款状态(0:申请中;1:通过;2:驳回)
|
* 退款状态(0:申请中;1:通过;2:驳回)
|
||||||
|
|||||||
@ -130,7 +130,7 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
|
|||||||
return this.mapper.paginateAs(pageDomain.getPageNum(),pageDomain.getPageSize(),
|
return this.mapper.paginateAs(pageDomain.getPageNum(),pageDomain.getPageSize(),
|
||||||
queryWrapper.select(ORDER_REFUND.REFUND_STATUS,ORDER_REFUND.REFUND_REASON,ORDER_REFUND.ID,ORDER_REFUND.ORDER_ID,ORDER_REFUND.CREATE_TIME)
|
queryWrapper.select(ORDER_REFUND.REFUND_STATUS,ORDER_REFUND.REFUND_REASON,ORDER_REFUND.ID,ORDER_REFUND.ORDER_ID,ORDER_REFUND.CREATE_TIME)
|
||||||
//订单相关参数
|
//订单相关参数
|
||||||
.select(ORDER.ORDER_STATUS,ORDER.OUT_ORDER_NO,ORDER.PRODUCT_NAMES,ORDER.TOTAL_AMOUNT,ORDER.PAY_USER_NAME,ORDER.BRAND_ID,ORDER.RECEIVE_NAME,
|
.select(ORDER.ORDER_STATUS,ORDER.OUT_ORDER_NO,ORDER.PAY_USER_ID,ORDER.PRODUCT_NAMES,ORDER.TOTAL_AMOUNT,ORDER.PAY_USER_NAME,ORDER.BRAND_ID,ORDER.RECEIVE_NAME,
|
||||||
ORDER.RECEIVE_PHONE,ORDER.RECEIVE_ADDRESS,ORDER.LOGISTICS_ORDER,ORDER.REMARKS)
|
ORDER.RECEIVE_PHONE,ORDER.RECEIVE_ADDRESS,ORDER.LOGISTICS_ORDER,ORDER.REMARKS)
|
||||||
//品牌/店铺或校区
|
//品牌/店铺或校区
|
||||||
.select(BRAND.BRAND_NAME)
|
.select(BRAND.BRAND_NAME)
|
||||||
@ -140,7 +140,7 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
|
|||||||
.leftJoin(BRAND).on(BRAND.ID.eq(ORDER.BRAND_ID))
|
.leftJoin(BRAND).on(BRAND.ID.eq(ORDER.BRAND_ID))
|
||||||
.and(ORDER.PRODUCT_NAMES.like(bo.getProductName()))
|
.and(ORDER.PRODUCT_NAMES.like(bo.getProductName()))
|
||||||
.and(ORDER.PAY_USER_NAME.like(bo.getPayUserName()))
|
.and(ORDER.PAY_USER_NAME.like(bo.getPayUserName()))
|
||||||
.and(SYS_USER.PHONE_NUMBER.eq(bo.getPayUserPhone())),
|
.and(ORDER.RECEIVE_PHONE.like(bo.getReceivePhone())),
|
||||||
OrderRefundPageVo.class);
|
OrderRefundPageVo.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -93,7 +93,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|||||||
.from(ORDER)
|
.from(ORDER)
|
||||||
.leftJoin(SYS_USER).on(SYS_USER.ID.eq(ORDER.PAY_USER_ID))
|
.leftJoin(SYS_USER).on(SYS_USER.ID.eq(ORDER.PAY_USER_ID))
|
||||||
.and(ORDER.PAY_USER_NAME.like(bo.getPayUserName()))
|
.and(ORDER.PAY_USER_NAME.like(bo.getPayUserName()))
|
||||||
.and(SYS_USER.PHONE_NUMBER.eq(bo.getPayUserPhone()))
|
.and(ORDER.RECEIVE_PHONE.like(bo.getReceivePhone()))
|
||||||
.and(ORDER.PRODUCT_NAMES.like(bo.getProductName()))
|
.and(ORDER.PRODUCT_NAMES.like(bo.getProductName()))
|
||||||
//订单状态
|
//订单状态
|
||||||
.and(ORDER.ORDER_STATUS.eq(bo.getOrderStatus()))
|
.and(ORDER.ORDER_STATUS.eq(bo.getOrderStatus()))
|
||||||
@ -303,8 +303,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|||||||
WxPayOrderNotifyResult notifyResult = wxPayService.parseOrderNotifyResult(xmlData);
|
WxPayOrderNotifyResult notifyResult = wxPayService.parseOrderNotifyResult(xmlData);
|
||||||
String orderId = notifyResult.getOutTradeNo();
|
String orderId = notifyResult.getOutTradeNo();
|
||||||
//修改订单状态
|
//修改订单状态
|
||||||
this.updateChain()
|
this.updateChain().set(ORDER.OUT_ORDER_NO, notifyResult.getTransactionId())
|
||||||
.set(ORDER.OUT_ORDER_NO, notifyResult.getTransactionId())
|
|
||||||
.set(ORDER.ORDER_STATUS, 1).where(ORDER.ID.eq(orderId)).update();
|
.set(ORDER.ORDER_STATUS, 1).where(ORDER.ID.eq(orderId)).update();
|
||||||
//支付成功减库存
|
//支付成功减库存
|
||||||
List<OrderDetail> orderDetails = SpringUtils.getBean(OrderDetailService.class).queryChain()
|
List<OrderDetail> orderDetails = SpringUtils.getBean(OrderDetailService.class).queryChain()
|
||||||
@ -316,7 +315,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|||||||
productRecords.forEach(item -> {
|
productRecords.forEach(item -> {
|
||||||
item.setRecordNum(item.getRecordNum() - orderNumMap.get(item.getId()));
|
item.setRecordNum(item.getRecordNum() - orderNumMap.get(item.getId()));
|
||||||
});
|
});
|
||||||
asyncUpdateRecords(productRecords,0);
|
productRecordService.updateBatch(productRecords);
|
||||||
//TODO:分账先注释
|
//TODO:分账先注释
|
||||||
/*ProfitSharing profitSharing = new ProfitSharing();
|
/*ProfitSharing profitSharing = new ProfitSharing();
|
||||||
profitSharing.setOrderId(orderId)
|
profitSharing.setOrderId(orderId)
|
||||||
@ -350,7 +349,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|||||||
* @Description: 异步更新数据库
|
* @Description: 异步更新数据库
|
||||||
* @param productRecords 产品记录
|
* @param productRecords 产品记录
|
||||||
* @param flag 成功标志
|
* @param flag 成功标志
|
||||||
* @return
|
|
||||||
* @Author DB
|
* @Author DB
|
||||||
* @Date: 2023/11/1 0:09
|
* @Date: 2023/11/1 0:09
|
||||||
*/
|
*/
|
||||||
@ -362,7 +360,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|||||||
throw new ServiceException("更新订单失败");
|
throw new ServiceException("更新订单失败");
|
||||||
} else {
|
} else {
|
||||||
boolean tx = Db.tx(() -> productRecordService.updateBatch(productRecords));
|
boolean tx = Db.tx(() -> productRecordService.updateBatch(productRecords));
|
||||||
if (!tx){
|
if (!tx) {
|
||||||
//更新失败
|
//更新失败
|
||||||
flag++;
|
flag++;
|
||||||
asyncUpdateRecords(productRecords, flag);
|
asyncUpdateRecords(productRecords, flag);
|
||||||
|
|||||||
@ -225,7 +225,7 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
|
|||||||
.leftJoin(ROLE).on(ROLE.ID.eq(ROLE_MENU.ROLE_ID))
|
.leftJoin(ROLE).on(ROLE.ID.eq(ROLE_MENU.ROLE_ID))
|
||||||
.where(MENU.STATUS.eq(1))
|
.where(MENU.STATUS.eq(1))
|
||||||
.and(MENU.TYPE.in(0, 1))
|
.and(MENU.TYPE.in(0, 1))
|
||||||
.and(MENU.NAME.ne(Constants.HIDE_MENU))
|
.and(MENU.NAME.notIn(Constants.HIDE_MENU.split(",")))
|
||||||
.and(ROLE_MENU.ROLE_ID.eq(staffInfo.getRoleId()))
|
.and(ROLE_MENU.ROLE_ID.eq(staffInfo.getRoleId()))
|
||||||
.orderBy(MENU.ORDER_NO.asc()),
|
.orderBy(MENU.ORDER_NO.asc()),
|
||||||
MenuRouteVo.class));
|
MenuRouteVo.class));
|
||||||
|
|||||||
@ -63,7 +63,7 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
|
|||||||
.leftJoin(ROLE).on(ROLE.ID.eq(ROLE_MENU.ROLE_ID))
|
.leftJoin(ROLE).on(ROLE.ID.eq(ROLE_MENU.ROLE_ID))
|
||||||
.where(MENU.STATUS.eq(1))
|
.where(MENU.STATUS.eq(1))
|
||||||
.and(MENU.TYPE.in(0, 1))
|
.and(MENU.TYPE.in(0, 1))
|
||||||
.and(MENU.NAME.ne(Constants.HIDE_MENU))
|
.and(MENU.NAME.notIn(Constants.HIDE_MENU.split(",")))
|
||||||
.and(ROLE_MENU.ROLE_ID.eq(loginStaffInfo.getString("roleId")))
|
.and(ROLE_MENU.ROLE_ID.eq(loginStaffInfo.getString("roleId")))
|
||||||
//构建公共菜单与特有菜单
|
//构建公共菜单与特有菜单
|
||||||
.and(MENU.USER_TYPE.in("COMMON", user.getUserType()))
|
.and(MENU.USER_TYPE.in("COMMON", user.getUserType()))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user