Compare commits

..

3 Commits

  1. 12
      .idea/compiler.xml
  2. 6
      .idea/vcs.xml
  3. 40
      ruoyi-admin/src/main/java/org/dromara/web/service/impl/XcxAuthStrategy.java
  4. 12
      ruoyi-admin/src/main/resources/application-dev.yml
  5. 2
      ruoyi-admin/src/main/resources/application.yml
  6. 2
      ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/model/LoginUser.java
  7. 4
      ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/model/XcxLoginBody.java
  8. 3
      ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/UserType.java
  9. 2
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/app/AppDeliveryOrderController.java
  10. 4
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/app/AppProductOrderController.java
  11. 17
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/app/AppUserController.java
  12. 3
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/app/BusinessProductOrderController.java
  13. 2
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/app/BusinessSignerOrderController.java
  14. 1
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/app/BusinessStatisticsController.java
  15. 1
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/app/BusinessWithdrawalController.java
  16. 2
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysRegion.java
  17. 5
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysSocial.java
  18. 2
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/PayOrderBo.java
  19. 2
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysRegionBo.java
  20. 5
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysSocialBo.java
  21. 1
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/ProductOrderPriceVo.java
  22. 6
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysRegionVo.java
  23. 5
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysSocialVo.java
  24. 2
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISignerOrderService.java
  25. 2
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysSocialService.java
  26. 2
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysUserService.java
  27. 5
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/OrderService.java
  28. 6
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/WxMpConsumer.java
  29. 12
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/api/ProductOrderExpressApi.java
  30. 3
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/calculate/impl/DeliveryOrderCalculateService.java
  31. 2
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/BusinessDistrictServiceImpl.java
  32. 22
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/OrderServiceImpl.java
  33. 19
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/ProductOrderServiceImpl.java
  34. 9
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SignerOrderServiceImpl.java
  35. 1
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRegionServiceImpl.java
  36. 23
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSocialServiceImpl.java
  37. 9
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java
  38. 6
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysWithdrawalServiceImpl.java
  39. 4
      ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/ProductOrderMapper.xml
  40. 2
      ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/ProductOrderPriceMapper.xml

12
.idea/compiler.xml

@ -25,18 +25,6 @@
<entry name="$MAVEN_REPOSITORY$/org/mapstruct/mapstruct-processor/1.5.5.Final/mapstruct-processor-1.5.5.Final.jar" />
<entry name="$MAVEN_REPOSITORY$/org/mapstruct/tools/gem/gem-api/1.0.0.Alpha3/gem-api-1.0.0.Alpha3.jar" />
<entry name="$MAVEN_REPOSITORY$/org/projectlombok/lombok-mapstruct-binding/0.2.0/lombok-mapstruct-binding-0.2.0.jar" />
<entry name="$MAVEN_REPOSITORY$/com/github/therapi/therapi-runtime-javadoc-scribe/0.15.0/therapi-runtime-javadoc-scribe-0.15.0.jar" />
<entry name="$MAVEN_REPOSITORY$/com/github/therapi/therapi-runtime-javadoc/0.15.0/therapi-runtime-javadoc-0.15.0.jar" />
<entry name="$MAVEN_REPOSITORY$/org/projectlombok/lombok/1.18.34/lombok-1.18.34.jar" />
<entry name="$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-configuration-processor/3.2.11/spring-boot-configuration-processor-3.2.11.jar" />
<entry name="$MAVEN_REPOSITORY$/io/github/linpeilie/mapstruct-plus-processor/1.4.5/mapstruct-plus-processor-1.4.5.jar" />
<entry name="$MAVEN_REPOSITORY$/io/github/linpeilie/mapstruct-plus/1.4.5/mapstruct-plus-1.4.5.jar" />
<entry name="$MAVEN_REPOSITORY$/org/mapstruct/mapstruct/1.5.5.Final/mapstruct-1.5.5.Final.jar" />
<entry name="$MAVEN_REPOSITORY$/io/github/linpeilie/mapstruct-plus-object-convert/1.4.5/mapstruct-plus-object-convert-1.4.5.jar" />
<entry name="$MAVEN_REPOSITORY$/com/baidu/lbsyun/javapoet/1.9.0/javapoet-1.9.0.jar" />
<entry name="$MAVEN_REPOSITORY$/org/mapstruct/mapstruct-processor/1.5.5.Final/mapstruct-processor-1.5.5.Final.jar" />
<entry name="$MAVEN_REPOSITORY$/org/mapstruct/tools/gem/gem-api/1.0.0.Alpha3/gem-api-1.0.0.Alpha3.jar" />
<entry name="$MAVEN_REPOSITORY$/org/projectlombok/lombok-mapstruct-binding/0.2.0/lombok-mapstruct-binding-0.2.0.jar" />
</processorPath>
<module name="ruoyi-common-job" />
<module name="ruoyi-job" />

6
.idea/vcs.xml

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

40
ruoyi-admin/src/main/java/org/dromara/web/service/impl/XcxAuthStrategy.java

@ -88,16 +88,8 @@ public class XcxAuthStrategy implements IAuthStrategy {
String username = authUser.getUsername();
authUser.setSource(loginBody.getSource());
// 框架登录不限制从什么表查询 只要最终构建出 LoginUser 即可
SysUserVo user = loadUserByOpenid(loginBody.getSource()+openid);
//未找到用户信息 注册
if (user == null && StringUtils.isEmpty(loginBody.getPhoneCode())) {
LoginVo loginVo = new LoginVo();
loginVo.setBindingFlag(false);
return loginVo;
}
else if(user == null && StringUtils.isNotEmpty(loginBody.getPhoneCode())){
if( StringUtils.isNotEmpty(loginBody.getPhoneCode())){
//注册用户
username = SocialUtils
.loginXcxAuthPhone(loginBody.getSource(), loginBody.getPhoneCode(), socialProperties);
authUser.setUsername(username);
@ -105,23 +97,23 @@ public class XcxAuthStrategy implements IAuthStrategy {
RegisterBody registerBody = new RegisterBody();
registerBody.setUsername(username);
registerBody.setTenantId(loginBody.getTenantId());
if(StringUtils.isEmpty(loginBody.getUserType())){
loginBody.setUserType(UserType.APP_USER.getUserType());
}
registerBody.setUserType(loginBody.getUserType());
SysUserVo sysUserVo = loadUserByUsername(username);
user = new SysUserVo();
SysUserVo user = new SysUserVo();
if(sysUserVo == null){
//手机号注册账号
SysUserBo register = register(registerBody);
BeanUtil.copyProperties(register, user);
}else{
sysUserVo.setUserType(loginBody.getUserType());
BeanUtil.copyProperties(sysUserVo, user);
}
//注册 第三方
socialRegister(authUser, user.getUserId());
}
if(user == null){
user = new SysUserVo();
}
LoginVo loginVo = new LoginVo();
XcxLoginUser loginUser = loginService.buildLoginXcxUser(user);
loginUser.setClientKey(client.getClientKey());
loginUser.setDeviceType(client.getDeviceType());
@ -141,6 +133,10 @@ public class XcxAuthStrategy implements IAuthStrategy {
loginVo.setOpenid(openid);
loginVo.setBindingFlag(true);
return loginVo;
}else{
throw new ServiceException("未获取到登录手机号");
}
}
private SysUserVo loadUserByOpenid(String authId) {
// 使用 openid 查询绑定用户 如未绑定用户 则根据业务自行处理 例如 创建默认用户
@ -174,8 +170,8 @@ public class XcxAuthStrategy implements IAuthStrategy {
//密码
String password = sysConfigService.selectConfigByKey("sys.user.initPassword");
// app用户
String userType = UserType.APP_USER.getUserType();
String userType = UserType.APP_USER.getUserType();
SysUserBo sysUser = new SysUserBo();
sysUser.setUserName(username);
sysUser.setNickName("微信用户:"+ username.substring(7));
@ -194,8 +190,6 @@ public class XcxAuthStrategy implements IAuthStrategy {
long postId = Long.parseLong(appPostId);
sysUser.setPostIds(new Long[]{postId});
sysUserService.registerUser(sysUser, "000000");
recordLogininfor(tenantId, username, Constants.REGISTER, MessageUtils.message("user.register.success"));
return sysUser;
@ -214,14 +208,14 @@ public class XcxAuthStrategy implements IAuthStrategy {
bo.setUnionId(authUserData.getToken().getUnionId());
bo.setUserName(authUserData.getUsername());
bo.setNickName(authUserData.getNickname());
List<SysSocialVo> checkList = sysSocialService.selectByAuthId(authId);
if (CollUtil.isNotEmpty(checkList)) {
throw new ServiceException("此三方账号已经被绑定!");
}
// 查询是否已经绑定用户
SysSocialBo params = new SysSocialBo();
params.setUserId(userId);
//params.setUserId(userId);
params.setUserName(authUserData.getUsername());
params.setOpenId(authUserData.getUuid());
params.setSource(bo.getSource());
bo.setStatus(0L);
List<SysSocialVo> list = sysSocialService.queryList(params);
if (CollUtil.isEmpty(list)) {
// 没有绑定用户, 新增用户信息

12
ruoyi-admin/src/main/resources/application-dev.yml

@ -47,17 +47,17 @@ spring:
driverClassName: com.mysql.cj.jdbc.Driver
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
#url: jdbc:mysql://rm-bp1r153qwj1m54i8djo.mysql.rds.aliyuncs.com:3306/duodiankeji?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
#username: duodiankeji
#password: duodiankeji@2025
url: jdbc:mysql://rm-bp1r153qwj1m54i8djo.mysql.rds.aliyuncs.com:3306/duodiankeji?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
username: duodiankeji
password: duodiankeji@2025
#master:
#type: ${spring.datasource.type}
#driverClassName: com.mysql.cj.jdbc.Driver
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
url: jdbc:mysql://127.0.0.1:3306/duodiankeji?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
username: root
password: 123456
#url: jdbc:mysql://127.0.0.1:3306/duodiankeji?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
#username: root
#password: 123456
# 从库数据源
# oracle:

2
ruoyi-admin/src/main/resources/application.yml

@ -100,7 +100,7 @@ sa-token:
# token名称 (同时也是cookie名称)
token-name: Authorization
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
is-concurrent: true
is-concurrent: false
# 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)
is-share: false
# jwt秘钥

2
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/model/LoginUser.java

@ -126,6 +126,8 @@ public class LoginUser implements Serializable {
*/
private String deviceType;
private String openid;
/**
* 获取登录id
*/

4
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/model/XcxLoginBody.java

@ -29,6 +29,10 @@ public class XcxLoginBody extends LoginBody {
* 手机号验证码
*/
private String phoneCode;
/**
* 用户类型app_user business_user
*/
private String userType;
/**

3
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/UserType.java

@ -22,7 +22,8 @@ public enum UserType {
/**
* app端
*/
APP_USER("app_user");
APP_USER("app_user"),
BUSINESS_USER("business_user");
private final String userType;

2
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/app/AppDeliveryOrderController.java

@ -52,7 +52,7 @@ public class AppDeliveryOrderController extends BaseController {
}
/**
* 查询配送订单号信息
* 查询配送订单号信息(闪时送)
*
* @param orderNo
*/

4
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/app/AppProductOrderController.java

@ -206,7 +206,9 @@ public class AppProductOrderController extends BaseController {
@RepeatSubmit()
@PostMapping("wx/pay")
public R<PayOrderBo> wxPay(@RequestBody PayOrderBo bo) {
Long userId = LoginHelper.getLoginUser().getUserId();
LoginUser loginUser = LoginHelper.getLoginUser();
Long userId = loginUser.getUserId();
bo.setOpenId(loginUser.getOpenid());
productOrderService.wxPay(bo, userId);
return R.ok(bo);
}

17
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/app/AppUserController.java

@ -72,6 +72,11 @@ public class AppUserController extends BaseController {
return R.ok(userInfoVo);
}
/**
* 修改用户信息
* @param user
* @return
*/
@PutMapping
public R<Void> edit(@Validated @RequestBody SysUserBo user) {
LoginUser loginUser = LoginHelper.getLoginUser();
@ -79,5 +84,15 @@ public class AppUserController extends BaseController {
return toAjax(userService.updateUser(user));
}
/**
* 修改用户类型
* userType=用户app_user 商家business_user
*/
@PostMapping("change/userType")
public R<Void> changeUserType(@Validated @RequestBody SysUserBo user) {
LoginUser loginUser = LoginHelper.getLoginUser();
user.setUserId(loginUser.getUserId());
userService.changeUserType(user);
return R.ok();
}
}

3
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/app/BusinessProductOrderController.java

@ -2,6 +2,7 @@ package org.dromara.system.controller.app;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaIgnore;
import com.github.binarywang.wxpay.exception.WxPayException;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty;
@ -196,7 +197,7 @@ public class BusinessProductOrderController extends BaseController {
*/
@PostMapping("xcx/send/{channelOrder}")
@SaIgnore
public R<Void> wxSend(@PathVariable String channelOrder) throws WxErrorException {
public R<Void> wxSend(@PathVariable String channelOrder) throws WxErrorException, WxPayException {
orderService.xcxSendChannelOrder(channelOrder);
return R.ok();
}

2
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/app/BusinessSignerOrderController.java

@ -75,7 +75,7 @@ public class BusinessSignerOrderController extends BaseController {
if (sysBusinessVo == null) {
throw new ServiceException("你还不是商家");
}
return R.ok(signerOrderService.wxPay(sysBusinessVo));
return R.ok(signerOrderService.wxPay(sysBusinessVo, loginUser.getOpenid()));
}

1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/app/BusinessStatisticsController.java

@ -39,7 +39,6 @@ public class BusinessStatisticsController {
*/
@GetMapping("order")
public R<BusinessStatisticsVo> orderStatistics(){
LoginUser loginUser = LoginHelper.getLoginUser();
SysBusinessVo sysBusinessVo = sysBusinessService.currentInfo();
BusinessStatisticsVo businessStatisticsVo = new BusinessStatisticsVo();
businessStatisticsVo.setTotalAmount(statisticsService.getTotalAmount(sysBusinessVo.getId()));

1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/app/BusinessWithdrawalController.java

@ -76,6 +76,7 @@ public class BusinessWithdrawalController extends BaseController {
LoginUser loginUser = LoginHelper.getLoginUser();
SysBusinessVo sysBusinessVo = sysBusinessService.checkCurrentInfo();
bo.setBusinessId(sysBusinessVo.getId());
bo.setOpenId(loginUser.getOpenid());
return toAjax(sysWithdrawalService.insertByBo(bo));
}

2
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysRegion.java

@ -54,5 +54,7 @@ public class SysRegion extends BaseEntity {
@TableLogic
private String delFlag;
private Long sort;
}

5
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysSocial.java

@ -132,5 +132,10 @@ public class SysSocial extends TenantEntity {
*/
private String oauthTokenSecret;
/**
*
* 0开启 1关闭
*/
private Long status;
}

2
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/PayOrderBo.java

@ -17,4 +17,6 @@ public class PayOrderBo {
* 支付参数信息
*/
private String payStr;
private String openId;
}

2
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysRegionBo.java

@ -52,5 +52,7 @@ public class SysRegionBo extends BaseEntity {
@NotBlank(message = "行政区划级别不能为空", groups = { AddGroup.class, EditGroup.class })
private String level;
private Long sort;
}

5
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysSocialBo.java

@ -138,5 +138,10 @@ public class SysSocialBo extends TenantEntity {
private String oauthTokenSecret;
/**
*
* 0开启 1关闭
*/
private Long status;
}

1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/ProductOrderPriceVo.java

@ -122,4 +122,5 @@ public class ProductOrderPriceVo implements Serializable {
private BigDecimal expressPrice;
private Long totalNum;
}

6
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysRegionVo.java

@ -59,4 +59,8 @@ public class SysRegionVo implements Serializable {
private String level;
private List<SysRegionVo> children;
}
private Long sort;
}

5
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysSocialVo.java

@ -141,4 +141,9 @@ public class SysSocialVo implements Serializable {
* 创建时间
*/
private Date createTime;
/**
*
* 0开启 1关闭
*/
private Long status;
}

2
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISignerOrderService.java

@ -88,7 +88,7 @@ public interface ISignerOrderService {
Long queryCount(SignerOrderBo bo);
AllOrderBo wxPay(SysBusinessVo sysBusinessVo);
AllOrderBo wxPay(SysBusinessVo sysBusinessVo, String openid);
void paySuccess(Long orderId);
}

2
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysSocialService.java

@ -58,6 +58,8 @@ public interface ISysSocialService {
*/
SysSocialVo selectByUserIdAndSource(Long userId, String wechatMiniProgram);
List<SysSocialVo> queryListByUserIdAndSource(Long userId, String source);
/**
* 根据authId获取userId用加个胡
* @param authId

2
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysUserService.java

@ -235,4 +235,6 @@ public interface ISysUserService {
* @return
*/
Long getAppUserCount();
void changeUserType(SysUserBo user);
}

5
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/OrderService.java

@ -1,6 +1,7 @@
package org.dromara.system.service;
import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
import com.github.binarywang.wxpay.exception.WxPayException;
import me.chanjar.weixin.common.error.WxErrorException;
import org.dromara.common.core.domain.R;
import org.dromara.system.domain.bo.CancelOrderBo;
@ -34,9 +35,9 @@ public interface OrderService {
R<Void> jiedanByOrderId(JiedanBo bo, SysBusinessVo sysBusinessVo);
void xcxSend(Long orderId) throws WxErrorException;
void xcxSend(Long orderId) throws WxErrorException, WxPayException;
void xcxSendChannelOrder(String orderNo) throws WxErrorException;
void xcxSendChannelOrder(String orderNo) throws WxErrorException, WxPayException;
AllOrderVo getWxPayInfo(Long orderId) ;

6
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/WxMpConsumer.java

@ -41,6 +41,7 @@ public class WxMpConsumer {
@Autowired
private WxMpService wxMpService;
@RabbitListener(queues = "wxMp.queue")
public void handleReceipt(String json) {
try {
@ -50,7 +51,8 @@ public class WxMpConsumer {
wrapper.eq("user_name", sysBusinessViewVo.getMobile());
wrapper.last("limit 1");
SysUserVo sysUserVo = sysUserMapper.selectVoOne(wrapper);
SysSocialVo sysSocialVo = sysSocialService.selectByUserIdAndSource(sysUserVo.getUserId(), "wechat_mini_program");
List<SysSocialVo> wechatMiniProgram = sysSocialService.queryListByUserIdAndSource(sysUserVo.getUserId(), "wechat_mini_program");
for (SysSocialVo sysSocialVo : wechatMiniProgram) {
String unionId = sysSocialVo.getUnionId();
WeixinMpUserVo weixinMpUserVo = weixinMpUserService.queryByUnionId(unionId);
ProductOrderVo productOrderVo = productOrderService.queryById(Long.parseLong(queue.getParam()));
@ -60,7 +62,6 @@ public class WxMpConsumer {
WxMpTemplateMessage.MiniProgram miniProgram = new WxMpTemplateMessage.MiniProgram();
miniProgram.setAppid(weixinMsgTemplateVo.getMiniprogram());
miniProgram.setPagePath(String.format(weixinMsgTemplateVo.getPage(), productOrderVo.getId()));
//miniProgram.setUsePath(true);
WxMpTemplateMessage wxMpTemplateMessage = new WxMpTemplateMessage();
wxMpTemplateMessage.setTemplateId(weixinMsgTemplateVo.getTemplateId());
wxMpTemplateMessage.setToUser(weixinMpUserVo.getOpenId());
@ -82,6 +83,7 @@ public class WxMpConsumer {
wxMpService.getTemplateMsgService().sendTemplateMsg(wxMpTemplateMessage);
}
}
}
}catch (Exception e) {
log.error("e:", e);
}

12
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/api/ProductOrderExpressApi.java

@ -10,6 +10,8 @@ import cn.hutool.core.util.DesensitizedUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.github.binarywang.wxpay.bean.result.WxPayOrderQueryResult;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.google.gson.Gson;
import com.kuaidi100.sdk.api.*;
import com.kuaidi100.sdk.contant.ApiInfoConstant;
@ -122,10 +124,10 @@ public class ProductOrderExpressApi {
*/
public void xcxSend(ProductOrderVo productOrderVo, ProductOrderExpressBo bo) throws WxErrorException {
public void xcxSend(ProductOrderVo productOrderVo, ProductOrderExpressBo bo) throws WxErrorException, WxPayException {
AllOrderVo allOrderVo = allOrderService.queryByProductOrderIdAndPayStatusAndOrderType(productOrderVo.getId(), "1", "01");
Long userId = allOrderVo.getUserId();
SysSocialVo sysSocialVo = sysSocialService.selectByUserIdAndSource(userId, "wechat_mini_program");
WxPayOrderQueryResult wxPayOrderQueryResult = productOrderService.wxQueryOrder(allOrderVo.getChannelOrder());
SysClientVo sysClientVo = sysClientService.queryByClientId("632c661437d8e1da0c06bdddbaf6ed17");
WxMaService wxMaService = new WxMaServiceImpl();
WxMaDefaultConfigImpl wxMaDefaultConfig = new WxMaDefaultConfigImpl();
@ -133,7 +135,7 @@ public class ProductOrderExpressApi {
wxMaDefaultConfig.setAppid(sysClientVo.getClientKey());
wxMaService.setWxMaConfig(wxMaDefaultConfig);
WxMaShopOrderInfo wxMaShopOrderInfo = new WxMaShopOrderInfo();
wxMaShopOrderInfo.setOpenid(sysSocialVo.getOpenId());
wxMaShopOrderInfo.setOpenid(wxPayOrderQueryResult.getOpenid());
WxMaOrderShippingInfoUploadRequest wxMaOrderShippingInfoUploadRequest = new WxMaOrderShippingInfoUploadRequest();
OrderKeyBean orderKey = new OrderKeyBean();
orderKey.setOrderNumberType(1);
@ -142,7 +144,7 @@ public class ProductOrderExpressApi {
wxMaOrderShippingInfoUploadRequest.setOrderKey(orderKey);
wxMaOrderShippingInfoUploadRequest.setUploadTime(DateUtil.format(new Date(), "yyyy-MM-dd'T'HH:mm:ss.SSS'+08:00'"));
PayerBean payer = new PayerBean();
payer.setOpenid(sysSocialVo.getOpenId());
payer.setOpenid(wxPayOrderQueryResult.getOpenid());
wxMaOrderShippingInfoUploadRequest.setPayer(payer);
ArrayList<ShippingListBean> shippingList = new ArrayList<>();
List<ProductOrderItemsVo> itemsList = productOrderVo.getItemsList();
@ -187,7 +189,7 @@ public class ProductOrderExpressApi {
}else{
try {
xcxSend(productOrderVo, bo);
} catch (WxErrorException e) {
} catch (Exception e) {
log.error("错误:", e);
}
pollByBo(bo, productOrderVo);

3
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/calculate/impl/DeliveryOrderCalculateService.java

@ -60,6 +60,8 @@ public class DeliveryOrderCalculateService implements OrderCalculateService {
private AppProductAttrValueMapper appProductAttrValueMapper;
@Override
public void calculateService(ProductOrderVo productOrderVo, List<UserCartVo> userCartVos, SysBusinessVo sysBusinessVo) {
@ -132,6 +134,7 @@ public class DeliveryOrderCalculateService implements OrderCalculateService {
productOrderPriceVo.setDeliveryPrice(fee);
log.info("配送费:{}", fee);
orderPriceCalculatorServiceList.forEach(service->service.calculateDiscount(productOrderVo));
orderPriceCalculatorServiceList.forEach(service->service.calculateTotalAmount(productOrderVo));
//配送费

2
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/BusinessDistrictServiceImpl.java

@ -74,7 +74,7 @@ public class BusinessDistrictServiceImpl implements IBusinessDistrictService {
private QueryWrapper<BusinessDistrict> buildQueryWrapper(BusinessDistrictBo bo) {
Map<String, Object> params = bo.getParams();
QueryWrapper<BusinessDistrict> lqw = Wrappers.query();
lqw.eq(StringUtils.isNotBlank(bo.getArea()), "area", bo.getArea());
lqw.like(StringUtils.isNotBlank(bo.getArea()), "area", bo.getArea());
lqw.like(StringUtils.isNotBlank(bo.getName()), "name", bo.getName());
lqw.eq(bo.getSort() != null, "sort", bo.getSort());
lqw.eq("del_flag", "0");

22
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/OrderServiceImpl.java

@ -8,6 +8,8 @@ import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.DesensitizedUtil;
import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
import com.github.binarywang.wxpay.bean.result.WxPayOrderQueryResult;
import com.github.binarywang.wxpay.exception.WxPayException;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException;
@ -189,7 +191,6 @@ public class OrderServiceImpl implements OrderService {
public void xcxSendNianfeiChannelOrder(String orderNo, String outTradeNo, String openId, String itemDesc){
try {
AllOrderVo allOrderVo = allOrderService.queryByChannelOrder(orderNo);
SysClientVo sysClientVo = sysClientService.queryByClientId("632c661437d8e1da0c06bdddbaf6ed17");
WxMaService wxMaService = new WxMaServiceImpl();
WxMaDefaultConfigImpl wxMaDefaultConfig = new WxMaDefaultConfigImpl();
@ -266,11 +267,10 @@ public class OrderServiceImpl implements OrderService {
}
@Override
public void xcxSend(Long orderId) throws WxErrorException {
public void xcxSend(Long orderId) throws WxErrorException, WxPayException {
ProductOrderVo productOrderVo = productOrderService.queryById(orderId);
AllOrderVo allOrderVo = allOrderService.queryByProductOrderIdAndPayStatusAndOrderType(orderId, "1", "01");
Long userId = allOrderVo.getUserId();
SysSocialVo sysSocialVo = sysSocialService.selectByUserIdAndSource(userId, "wechat_mini_program");
WxPayOrderQueryResult wxPayOrderQueryResult = productOrderService.wxQueryOrder(allOrderVo.getChannelOrder());
SysClientVo sysClientVo = sysClientService.queryByClientId("632c661437d8e1da0c06bdddbaf6ed17");
WxMaService wxMaService = new WxMaServiceImpl();
WxMaDefaultConfigImpl wxMaDefaultConfig = new WxMaDefaultConfigImpl();
@ -278,7 +278,7 @@ public class OrderServiceImpl implements OrderService {
wxMaDefaultConfig.setAppid(sysClientVo.getClientKey());
wxMaService.setWxMaConfig(wxMaDefaultConfig);
WxMaShopOrderInfo wxMaShopOrderInfo = new WxMaShopOrderInfo();
wxMaShopOrderInfo.setOpenid(sysSocialVo.getOpenId());
wxMaShopOrderInfo.setOpenid(wxPayOrderQueryResult.getOpenid());
WxMaOrderShippingInfoUploadRequest wxMaOrderShippingInfoUploadRequest = new WxMaOrderShippingInfoUploadRequest();
OrderKeyBean orderKey = new OrderKeyBean();
orderKey.setOrderNumberType(1);
@ -287,7 +287,7 @@ public class OrderServiceImpl implements OrderService {
wxMaOrderShippingInfoUploadRequest.setOrderKey(orderKey);
wxMaOrderShippingInfoUploadRequest.setUploadTime(DateUtil.format(new Date(), "yyyy-MM-dd'T'HH:mm:ss.SSS'+08:00'"));
PayerBean payer = new PayerBean();
payer.setOpenid(sysSocialVo.getOpenId());
payer.setOpenid(wxPayOrderQueryResult.getOpenid());
wxMaOrderShippingInfoUploadRequest.setPayer(payer);
ArrayList<ShippingListBean> shippingList = new ArrayList<>();
List<ProductOrderItemsVo> itemsList = productOrderVo.getItemsList();
@ -313,12 +313,12 @@ public class OrderServiceImpl implements OrderService {
@Override
public void xcxSendChannelOrder(String orderNo) throws WxErrorException {
public void xcxSendChannelOrder(String orderNo) throws WxErrorException, WxPayException {
AllOrderVo allOrderVo = allOrderService.queryByChannelOrder(orderNo);
ProductOrderVo productOrderVo = productOrderService.queryById(allOrderVo.getOrderId());
WxPayOrderQueryResult wxPayOrderQueryResult = productOrderService.wxQueryOrder(orderNo);
String openid = wxPayOrderQueryResult.getOpenid();
if (productOrderVo != null) {
Long userId = allOrderVo.getUserId();
SysSocialVo sysSocialVo = sysSocialService.selectByUserIdAndSource(userId, "wechat_mini_program");
SysClientVo sysClientVo = sysClientService.queryByClientId("632c661437d8e1da0c06bdddbaf6ed17");
WxMaService wxMaService = new WxMaServiceImpl();
WxMaDefaultConfigImpl wxMaDefaultConfig = new WxMaDefaultConfigImpl();
@ -326,7 +326,7 @@ public class OrderServiceImpl implements OrderService {
wxMaDefaultConfig.setAppid(sysClientVo.getClientKey());
wxMaService.setWxMaConfig(wxMaDefaultConfig);
WxMaShopOrderInfo wxMaShopOrderInfo = new WxMaShopOrderInfo();
wxMaShopOrderInfo.setOpenid(sysSocialVo.getOpenId());
wxMaShopOrderInfo.setOpenid(openid);
WxMaOrderShippingInfoUploadRequest wxMaOrderShippingInfoUploadRequest = new WxMaOrderShippingInfoUploadRequest();
OrderKeyBean orderKey = new OrderKeyBean();
orderKey.setOrderNumberType(1);
@ -335,7 +335,7 @@ public class OrderServiceImpl implements OrderService {
wxMaOrderShippingInfoUploadRequest.setOrderKey(orderKey);
wxMaOrderShippingInfoUploadRequest.setUploadTime(DateUtil.format(new Date(), "yyyy-MM-dd'T'HH:mm:ss.SSS'+08:00'"));
PayerBean payer = new PayerBean();
payer.setOpenid(sysSocialVo.getOpenId());
payer.setOpenid(openid);
wxMaOrderShippingInfoUploadRequest.setPayer(payer);
ArrayList<ShippingListBean> shippingList = new ArrayList<>();
List<ProductOrderItemsVo> itemsList = productOrderVo.getItemsList();

19
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/ProductOrderServiceImpl.java

@ -411,6 +411,9 @@ public class ProductOrderServiceImpl implements IProductOrderService {
orderCalculateService.calculateService(productOrderVo, userCartVos, sysBusinessVo);
productOrderVo.getProductOrderPriceVo().setCurrentPrice(productOrderVo.getProductOrderPriceVo().getPayPrice());
ProductOrderPriceVo productOrderPriceVo = productOrderVo.getProductOrderPriceVo();
if(productOrderPriceVo.getPayPrice().compareTo(BigDecimal.ZERO) == 0){
//支付成功
productOrderVo.setStatus("1");
@ -423,6 +426,17 @@ public class ProductOrderServiceImpl implements IProductOrderService {
throw new ServiceException("付款金额不能为负数");
}
log.info("价格:{}", productOrderVo.getProductOrderPriceVo());
Long businessCouponId = productOrderVo.getBusinessCouponId();
Long systemCouponId = productOrderVo.getSystemCouponId();
if(businessCouponId != null && systemCouponId != null){
BusinessCouponVo businessCouponVo = businessCouponService.queryById(businessCouponId);
PromotionCouponVo promotionCouponVo = promotionCouponService.queryById(systemCouponId);
if(businessCouponVo != null && promotionCouponVo != null){
if (businessCouponVo.getProductScopeType() == 5L && promotionCouponVo.getProductScopeType() == 4L) {
throw new ServiceException("新人优惠券不能共同使用", 200);
}
}
}
return productOrderVo;
}
@ -532,8 +546,7 @@ public class ProductOrderServiceImpl implements IProductOrderService {
request.setBody("购买商品");
request.setOutTradeNo(orderBo.getOrderNo());
request.setTimeExpire(DateUtil.format(orderBo.getPayTime(), "yyyy-MM-dd HH:mm:ss"));
SysSocialVo sysSocialVo = sysSocialService.selectByUserIdAndSource(userId, "wechat_mini_program");
request.setOpenid(sysSocialVo.getOpenId());
request.setOpenid(bo.getOpenId());
request.setSpbillCreateIp(ServletUtils.getClientIP());
request.setTradeType(WxPayConstants.TradeType.JSAPI);
payWxCreateOrder(bo, orderBo, request);
@ -802,7 +815,7 @@ public class ProductOrderServiceImpl implements IProductOrderService {
Date jdkDate = DateUtil.offsetDay(new Date(), -1).toJdkDate();
QueryWrapper<ProductOrderPrice> queryWrapper = new QueryWrapper<>();
queryWrapper.select(" sum(pay_price ) as pay_price");
queryWrapper.apply(" order_id in ( select po.id from product_order po where po.status in ('1', '2', '4', '5', '6', 7) and cast(po.create_time as date) = cast({0} as date) and po.del_flag = '0')", jdkDate);
queryWrapper.apply(" order_id in ( select po.id from product_order po where po.status in ('1', '2', '4', '5', '6') and cast(po.create_time as date) = cast({0} as date) and po.del_flag = '0')", jdkDate);
ProductOrderPrice productOrder = productOrderPriceMapper.selectOne(queryWrapper);
return productOrder == null ? BigDecimal.ZERO : productOrder.getPayPrice();
}

9
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SignerOrderServiceImpl.java

@ -149,7 +149,7 @@ public class SignerOrderServiceImpl implements ISignerOrderService {
@Override
@Transactional
public AllOrderBo wxPay(SysBusinessVo sysBusinessVo) {
public AllOrderBo wxPay(SysBusinessVo sysBusinessVo, String openid) {
SysContractVo sysContractVo = sysContractService.queryByService();
if (sysContractVo == null) {
throw new ServiceException("改功能被关闭了, 请联系管理员");
@ -158,7 +158,7 @@ public class SignerOrderServiceImpl implements ISignerOrderService {
signerOrderBo.setContractId(sysContractVo.getId());
signerOrderBo.setBusinessId(sysBusinessVo.getId());
saveByBo(signerOrderBo);
return payJsapiOrderVo(signerOrderBo, sysBusinessVo.getUserId());
return payJsapiOrderVo(signerOrderBo, sysBusinessVo.getUserId(), openid);
}
@Override
@ -196,7 +196,7 @@ public class SignerOrderServiceImpl implements ISignerOrderService {
}
public AllOrderBo payJsapiOrderVo(SignerOrderBo bo, Long userId){
public AllOrderBo payJsapiOrderVo(SignerOrderBo bo, Long userId, String openid){
{
//SignerOrderVo vo = queryById(bo.getId());
AllOrderBo orderBo = new AllOrderBo();
@ -216,8 +216,7 @@ public class SignerOrderServiceImpl implements ISignerOrderService {
request.setOutTradeNo(orderBo.getOrderNo());
request.setNotifyUrl(wxPayConfiguration.getContractNotifyUrl());
request.setTimeExpire(DateUtil.format(orderBo.getPayTime(), "yyyy-MM-dd HH:mm:ss"));
SysSocialVo sysSocialVo = sysSocialService.selectByUserIdAndSource(userId, "wechat_mini_program");
request.setOpenid(sysSocialVo.getOpenId());
request.setOpenid(openid);
request.setSpbillCreateIp(ServletUtils.getClientIP());
request.setTradeType(WxPayConstants.TradeType.JSAPI);
payWxCreateOrder(orderBo, request);

1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRegionServiceImpl.java

@ -76,6 +76,7 @@ public class SysRegionServiceImpl implements ISysRegionService {
lqw.eq(StringUtils.isNotBlank(bo.getAdCode()), SysRegion::getAdCode, bo.getAdCode());
lqw.like(StringUtils.isNotBlank(bo.getName()), SysRegion::getName, bo.getName());
lqw.eq(StringUtils.isNotBlank(bo.getLevel()), SysRegion::getLevel, bo.getLevel());
lqw.orderByAsc(SysRegion::getSort);
return lqw;
}

23
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSocialServiceImpl.java

@ -2,8 +2,8 @@ package org.dromara.system.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import jakarta.annotation.Resource;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.system.domain.SysSocial;
@ -46,6 +46,7 @@ public class SysSocialServiceImpl implements ISysSocialService {
public List<SysSocialVo> queryList(SysSocialBo bo) {
LambdaQueryWrapper<SysSocial> lqw = new LambdaQueryWrapper<SysSocial>()
.eq(ObjectUtil.isNotNull(bo.getUserId()), SysSocial::getUserId, bo.getUserId())
.eq(ObjectUtil.isNotNull(bo.getStatus()), SysSocial::getStatus, bo.getStatus())
.eq(StringUtils.isNotBlank(bo.getAuthId()), SysSocial::getAuthId, bo.getAuthId())
.eq(StringUtils.isNotBlank(bo.getSource()), SysSocial::getSource, bo.getSource());
return baseMapper.selectVoList(lqw);
@ -90,6 +91,11 @@ public class SysSocialServiceImpl implements ISysSocialService {
*/
private void validEntityBeforeSave(SysSocial entity) {
//TODO 做一些数据校验,如唯一约束
LambdaUpdateWrapper<SysSocial> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(SysSocial::getStatus, 1L);
updateWrapper.eq(SysSocial::getUserId, entity.getUserId());
updateWrapper.eq(SysSocial::getSource, entity.getScope());
baseMapper.update(updateWrapper);
}
@ -124,10 +130,20 @@ public class SysSocialServiceImpl implements ISysSocialService {
public SysSocialVo selectByUserIdAndSource(Long userId, String source) {
LambdaQueryWrapper<SysSocial> lqw = new LambdaQueryWrapper<SysSocial>()
.eq(SysSocial::getUserId, userId)
.eq(SysSocial::getSource, source);
.eq(SysSocial::getSource, source)
.eq(SysSocial::getStatus, 0L);
return baseMapper.selectVoOne(lqw);
}
@Override
public List<SysSocialVo> queryListByUserIdAndSource(Long userId, String source) {
LambdaQueryWrapper<SysSocial> lqw = new LambdaQueryWrapper<SysSocial>()
.eq(SysSocial::getUserId, userId)
.eq(SysSocial::getSource, source)
.eq(SysSocial::getStatus, 0L);
return baseMapper.selectVoList(lqw);
}
/**
* 根据authId获取userId用加个胡
*
@ -137,7 +153,8 @@ public class SysSocialServiceImpl implements ISysSocialService {
@Override
public SysUserVo queryByAuthId(String authId) {
LambdaQueryWrapper<SysSocial> lqw = new LambdaQueryWrapper<SysSocial>()
.eq(SysSocial::getAuthId, authId);
.eq(SysSocial::getAuthId, authId)
.eq(SysSocial::getStatus, 0L);
SysSocialVo sysSocialVo = baseMapper.selectVoOne(lqw);
if(sysSocialVo == null){
return null;

9
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java

@ -594,6 +594,15 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
return baseMapper.selectCount(queryWrapper);
}
@Override
@Transactional
public void changeUserType(SysUserBo user) {
UpdateWrapper<SysUser> uw = new UpdateWrapper<>();
uw.set("user_type", user.getUserType());
uw.eq("user_id", user.getUserId());
baseMapper.selectCount(uw);
}
/**
* 通过用户ID查询用户账户
*

6
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysWithdrawalServiceImpl.java

@ -280,12 +280,6 @@ public class SysWithdrawalServiceImpl implements ISysWithdrawalService {
}else{
SysBusinessViewVo sysBusinessViewVo = sysBusinessMapper.queryViewById(bo.getBusinessId());
bo.setAccount(sysBusinessViewVo.getLeader());
SysBusinessVo sysBusinessVo = sysBusinessService.queryById(bo.getBusinessId());
SysSocialVo sysSocialVo = sysSocialService.selectByUserIdAndSource(sysBusinessVo.getUserId(), "wechat_mini_program");
if (sysSocialVo == null) {
throw new ServiceException("微信信息不存在");
}
bo.setOpenId(sysSocialVo.getOpenId());
bo.setBankNo("");
bo.setBankName("");
}

4
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/ProductOrderMapper.xml

@ -285,6 +285,7 @@
<result column="service_price" property="servicePrice"></result>
<result column="express_price" property="expressPrice"></result>
<result column="settlement_current_price" property="settlementCurrentPrice"></result>
<result column="total_num" property="totalNum"></result>
</resultMap>
<select id="querySysPageStatistics" resultMap="ProductOrderPriceVoResult"
parameterType="org.dromara.system.domain.bo.ProductOrderBo">
@ -295,7 +296,8 @@
sum(pop.delivery_price ) as delivery_price,
sum(pop.service_price ) as service_price,
sum(pop.express_price ) as express_price,
sum(pop.settlement_current_price ) as settlement_current_price
sum(pop.settlement_current_price ) as settlement_current_price,
sum(po.num) as total_num
from product_order po inner join product_order_price pop on pop.order_id = po.id
left join sys_business sb on po.business_id = sb.id
where po.del_flag = 0

2
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/ProductOrderPriceMapper.xml

@ -16,7 +16,7 @@
<if test="businessId != null">
and business_id = #{businessId}
</if>
and status in ('1', '2', '4', '5')
and status in ('1', '2', '4', '5', '9')
<if test="createTime != null and dateFormat != '' ">
and date_format(create_time, #{dateFormat}) = date_format(#{createTime}, #{dateFormat})
</if>

Loading…
Cancel
Save