From 439fc7bb98129cd1d6f9dab10589d4a24401a5f1 Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期一, 13 一月 2025 16:20:31 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/OrderActivityInfoController.java | 4
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java | 25 +++++
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WithdrawalRequestsController.java | 2
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/GoodsAppUser.java | 3
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/NearbyReferrerVo.java | 2
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/payment/model/SinglePayCallbackResult.java | 7 +
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopWithdrawController.java | 11 +
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/payment/model/SinglePayCallbackResult.java | 11 ++
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java | 136 ++++++++++++++++++++++++--
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 2
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/TechnicianClient.java | 2
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java | 5
ruoyi-service/ruoyi-other/src/main/resources/mapper/other/SeckillActivityInfoMapper.xml | 2
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java | 6
ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java | 12 +-
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java | 4
ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AppUserMapper.xml | 3
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/SeckillActivityInfoController.java | 7
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java | 1
19 files changed, 205 insertions(+), 40 deletions(-)
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java
index 91a8228..6d3c044 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java
@@ -59,7 +59,7 @@
R<Long> getVipCount(@RequestParam("userId")Long userId, @RequestParam("vipId") Integer vipId );
- @GetMapping("/app-user/listByIds")
+ @PostMapping("/app-user/listByIds")
List<AppUser> listByIds(@RequestParam("ids") List<Long> list);
/**
@@ -87,7 +87,7 @@
* @param userId
* @return
*/
- @PutMapping("/app-user/setLowerUserShop")
+ @PostMapping("/app-user/setLowerUserShop")
R<List<AppUser>> setLowerUserShop(@RequestParam("userId") Long userId,@RequestParam("shopId") Integer shopId);
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/GoodsAppUser.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/GoodsAppUser.java
index 89d1a01..d6fdd0e 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/GoodsAppUser.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/GoodsAppUser.java
@@ -39,6 +39,9 @@
private Long appUserId;
@TableField(exist = false)
+ private String appUserIdStr;
+
+ @TableField(exist = false)
@ApiModelProperty(value = "用户名称")
private String userName;
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/TechnicianClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/TechnicianClient.java
index f3783fa..71f6c8d 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/TechnicianClient.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/TechnicianClient.java
@@ -29,6 +29,6 @@
* @param ids
* @return
*/
- @PostMapping("/technician-subscribe/getTechnicianByIds")
+ @PostMapping("/technician/getTechnicianByIds")
R<List<Technician>> getTechnicianByIds(@RequestParam("ids") Collection<Integer> ids);
}
diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
index 746f018..a5735e6 100644
--- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
+++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
@@ -5,6 +5,7 @@
import java.util.concurrent.TimeUnit;
import javax.servlet.http.HttpServletRequest;
+import com.ruoyi.common.core.exception.auth.NotPermissionException;
import com.ruoyi.system.api.model.LoginUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -90,7 +91,7 @@
public LoginUser getLoginUserApplet() {
LoginUser loginUserAppletToken = getLoginUserAppletToken(ServletUtils.getRequest());
if (loginUserAppletToken == null) {
- throw new RuntimeException("令牌已过期,请重新登录!");
+ throw new NotPermissionException("令牌已过期,请重新登录!");
}
return loginUserAppletToken;
}
@@ -128,7 +129,7 @@
public LoginUser getLoginUser() {
LoginUser loginUser = getLoginUser(ServletUtils.getRequest());
if (loginUser == null) {
- throw new RuntimeException("令牌已过期,请重新登录!");
+ throw new NotPermissionException("令牌已过期,请重新登录!");
}
if(null == loginUser.getUserid()){
loginUser.setUserid(loginUser.getSysUser().getUserId());
diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java
index bf60f1c..12d0cdc 100644
--- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java
+++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java
@@ -1,5 +1,6 @@
package com.ruoyi.gateway.filter;
+import com.ruoyi.common.core.exception.auth.NotPermissionException;
import com.ruoyi.gateway.config.properties.AntiShakeProperties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -131,7 +132,7 @@
/**
* 防抖处理
*/
- public void antiShake(ServerHttpRequest request) throws Exception{
+ public void antiShake(ServerHttpRequest request) {
HttpMethod method = request.getMethod();
if(HttpMethod.OPTIONS == method || !antiShakeProperties.getEnable()){
return;
@@ -174,20 +175,19 @@
/**
* 验证token
* @param request
- * @throws Exception
*/
- public void verifyToken(ServerHttpRequest request) throws Exception{
+ public void verifyToken(ServerHttpRequest request) {
String token = getToken(request);
if (StringUtils.isEmpty(token)) {
- throw new RuntimeException("令牌不能为空");
+ throw new NotPermissionException("令牌不能为空");
}
Claims claims = JwtUtils.parseToken(token);
if (claims == null) {
- throw new RuntimeException("令牌已过期或验证不正确!");
+ throw new NotPermissionException("令牌已过期或验证不正确!");
}
String userid = JwtUtils.getUserId(claims);
if (StringUtils.isEmpty(userid)) {
- throw new RuntimeException("令牌验证失败");
+ throw new NotPermissionException("令牌验证失败");
}
}
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
index 54069b0..62b4272 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
@@ -643,8 +643,8 @@
}
- @GetMapping("/listByIds")
- List<AppUser> listByIds(@RequestParam("ids") List<Long> ids) {
+ @PostMapping("/listByIds")
+ public List<AppUser> listByIds(@RequestParam("ids") List<Long> ids) {
if(ids.size() == 0){
return new ArrayList<>();
}
@@ -664,7 +664,7 @@
/**
* 设置指定用户的下级用户绑定门店
*/
- @PutMapping("setLowerUserShop")
+ @PostMapping("/setLowerUserShop")
public R<Void> setLowerUserShop(@RequestParam("userId") Long userId,@RequestParam("shopId") Integer shopId) {
appUserService.update(new LambdaUpdateWrapper<AppUser>()
.set(AppUser::getShopId,shopId)
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WithdrawalRequestsController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WithdrawalRequestsController.java
index 3faa99c..8039212 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WithdrawalRequestsController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WithdrawalRequestsController.java
@@ -157,7 +157,7 @@
@PostMapping("/withdrawalCallback")
public Object withdrawalCallback(@RequestBody SinglePayCallbackResult singlePayCallbackResult){
Integer status = singlePayCallbackResult.getStatus();
- if(203 == status){
+ if(203 == status || 205 == status){
String merchantOrderNo = singlePayCallbackResult.getMerchantOrderNo();
WithdrawalRequests withdrawalRequests = withdrawalRequestsService.getById(merchantOrderNo);
if(1 == withdrawalRequests.getStatus()){
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
index 6fe833e..384a27e 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
@@ -689,6 +689,31 @@
String cityCode = citycode.substring(0, 4) + "00";
PageInfo<NearbyReferrerVo> pageInfo = new PageInfo(nearbyReferrer.getPageCurr(), nearbyReferrer.getPageSize());
List<NearbyReferrerVo> list = this.baseMapper.getNearbyReferrer(pageInfo, cityCode, nearbyReferrer);
+ for (NearbyReferrerVo nearbyReferrerVo : list) {
+ switch (nearbyReferrerVo.getVip()){
+ case "1":
+ nearbyReferrerVo.setVip("普通会员");
+ break;
+ case "2":
+ nearbyReferrerVo.setVip("黄金会员");
+ break;
+ case "3":
+ nearbyReferrerVo.setVip("钻石会员");
+ break;
+ case "4":
+ nearbyReferrerVo.setVip("准代理");
+ break;
+ case "5":
+ nearbyReferrerVo.setVip("代理");
+ break;
+ case "6":
+ nearbyReferrerVo.setVip("总代");
+ break;
+ case "7":
+ nearbyReferrerVo.setVip("合伙人");
+ break;
+ }
+ }
return pageInfo.setRecords(list);
}
return null;
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/payment/model/SinglePayCallbackResult.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/payment/model/SinglePayCallbackResult.java
index 973b2ef..ad66df7 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/payment/model/SinglePayCallbackResult.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/payment/model/SinglePayCallbackResult.java
@@ -15,6 +15,13 @@
* 202 处理中 批次正在处理中状态
* 203 处理完成 批次中的每笔明细都明确了代付结果
* 204 批次不存在 汇聚未受理该批次的请求,找不到该批次,明确失败
+ * 205 交易成功 明确交易成功的状态码
+ * 208 订单已取消 代付订单被商户审核为拒绝付款
+ * 210 账务冻结中 确认出款后对商户的账户余额进行冻结处理
+ * 211 账务解冻中 确认失败后对商户的账户余额进行解冻处理
+ * 212 订单取消中 商户审核为拒绝付款的中间状态
+ * 213 账务扣款中 确认成功后对商户的账户冻结款的扣款处理
+ * 214 订单不存在 汇聚未受理该笔代付请求,找不到该笔订单,明确失败
*/
private Integer status;
/**
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/NearbyReferrerVo.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/NearbyReferrerVo.java
index e598dfa..b0f84a2 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/NearbyReferrerVo.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/NearbyReferrerVo.java
@@ -23,4 +23,6 @@
private String vip;
@ApiModelProperty("距离(m)")
private BigDecimal distance;
+ @ApiModelProperty("手机号")
+ private String phone;
}
diff --git a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AppUserMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AppUserMapper.xml
index 2bb301d..73e0486 100644
--- a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AppUserMapper.xml
+++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AppUserMapper.xml
@@ -44,7 +44,8 @@
ST_Distance_Sphere(
point(#{nearbyReferrer.longitude},#{nearbyReferrer.latitude}),
point(longitude, latitude)
- ) as distance
+ ) as distance,
+ phone
from t_app_user where city_code = #{cityCode} and del_flag = 0 and status = 1 and vip_id >= 4
<if test="null != nearbyReferrer.name and '' != nearbyReferrer.name">
and `name` like CONCAT('%', #{nearbyReferrer.name}, '%')
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
index 843d6e9..45a70ba 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -744,7 +744,7 @@
orderInfo.setRecipient(userAddress.getRecieveName() + "-" + userAddress.getRecievePhone());
orderInfo.setAddress(userAddress.getRecieveAddress());
}
- if(StringUtils.isNotEmpty(order.getExpressJson())){
+ if(StringUtils.isNotEmpty(order.getExpressJson()) && !"NULL".equals(order.getExpressJson())){
JSONObject jsonObject = JSON.parseObject(order.getExpressJson());
String com = jsonObject.getString("com");
String num = jsonObject.getString("num");
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
index 81f8194..aa8cea0 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
@@ -144,8 +144,31 @@
//查询符合商品类型的商品数据
List<ShoppingCart> list = this.list(new LambdaQueryWrapper<ShoppingCart>().eq(ShoppingCart::getAppUserId, userid)
.in(ShoppingCart::getGoodsId, goodsIds).eq(ShoppingCart::getStatus, 1));
+ //删除过期的秒杀活动商品
+ List<ShoppingCart> list1 = new ArrayList<>();
+ for (ShoppingCart shoppingCart : list) {
+ if(shoppingCart.getType() == 2){
+ GetSeckillActivityInfo info = new GetSeckillActivityInfo();
+ info.setGoodsId(shoppingCart.getGoodsId());
+ info.setVip(appUser.getVipId());
+ GoodsSeckill data1 = seckillActivityInfoClient.getSeckillActivityInfo(info).getData();
+ if(null != data1){
+ SeckillActivityInfo seckillActivityInfo = seckillActivityInfoClient.getSeckillActivityInfoById(data1.getSeckillActivityInfoId()).getData();
+ if(null != seckillActivityInfo && (seckillActivityInfo.getIsShelves() == 1 &&
+ seckillActivityInfo.getStartTime().isBefore(LocalDateTime.now()) && seckillActivityInfo.getEndTime().isAfter(LocalDateTime.now()))){
+
+ list1.add(shoppingCart);
+ continue;
+ }
+ }
+ this.removeById(shoppingCart.getId());
+ }else{
+ list1.add(shoppingCart);
+ }
+ }
+
//构建返回数据
- List<MyShoppingCartVo> page = buildDetail(appUser, shopId, list, null);
+ List<MyShoppingCartVo> page = buildDetail(appUser, shopId, list1, null);
return page;
}
@@ -509,6 +532,10 @@
confirmOrderVo.setDiscountAmount(activityAmount);
int earnPoint = goodsList.stream().mapToInt(MyShoppingCartVo::getEarnSpendingPoints).sum();
confirmOrderVo.setEarnPoint(earnPoint);
+ if(BigDecimal.ZERO.compareTo(paymentMoney) > 0){
+ paymentMoney = BigDecimal.ZERO;
+ }
+
//支付金额,订单金额-订单优惠
confirmOrderVo.setPayMoney(paymentMoney);
confirmOrderVo.setResidualPoint(appUser.getAvailablePoint().intValue());
@@ -916,6 +943,10 @@
}
}
}
+ if(BigDecimal.ZERO.compareTo(paymentMoney) > 0){
+ paymentMoney = BigDecimal.ZERO;
+ }
+
//构建订单明细
Order order = new Order();
order.setAppUserId(userid);
@@ -1036,21 +1067,98 @@
//开始构建支付数据
//现金支付
paymentMoney = paymentMoney.add(expressFee).setScale(2, RoundingMode.HALF_EVEN);
+ if(BigDecimal.ZERO.compareTo(paymentMoney) > 0){
+ paymentMoney = BigDecimal.ZERO;
+ }
if(1 == shoppingCartPayment.getPaymentType()){
- //调起微信支付
- String goodsNames = goodsList.stream().map(MyShoppingCartVo::getName).collect(Collectors.joining("\n"));
- UniPayResult uniPayResult = PaymentUtil.uniPay(order.getOrderNumber(), paymentMoney.doubleValue(), order.getOrderType() == 1 ? "购买服务商品" : "购买单品商品",
- goodsNames, "", "/order/shopping-cart/shoppingCartPaymentCallback", appUser.getWxOpenid(), null);
- if(null == uniPayResult || !"100".equals(uniPayResult.getRa_Code())){
- return R.fail(null == uniPayResult ? "支付失败" : uniPayResult.getRb_CodeMsg());
+ if(BigDecimal.ZERO.compareTo(paymentMoney) < 0){
+ //调起微信支付
+ String goodsNames = goodsList.stream().map(MyShoppingCartVo::getName).collect(Collectors.joining("\n"));
+ UniPayResult uniPayResult = PaymentUtil.uniPay(order.getOrderNumber(), paymentMoney.doubleValue(), order.getOrderType() == 1 ? "购买服务商品" : "购买单品商品",
+ goodsNames, "", "/order/shopping-cart/shoppingCartPaymentCallback", appUser.getWxOpenid(), null);
+ if(null == uniPayResult || !"100".equals(uniPayResult.getRa_Code())){
+ return R.fail(null == uniPayResult ? "支付失败" : uniPayResult.getRb_CodeMsg());
+ }
+ String rc_result = uniPayResult.getRc_Result();
+ JSONObject jsonObject = JSON.parseObject(rc_result);
+ jsonObject.put("orderId", order.getId().toString());
+ //将支付数据添加到redis队列中,便于定时任务去校验是否完成支付,没有完成支付支付,15分钟后关闭订单。
+ long second = LocalDateTime.now().plusMinutes(15).toEpochSecond(ZoneOffset.UTC);
+ redisTemplate.opsForZSet().add("OrderPayment", order.getOrderNumber(), second);
+ return R.ok(jsonObject.toJSONString());
+ }else{
+
+ earnPoint = order.getGetPoint();
+ appUser = appUserClient.getAppUserById(order.getAppUserId());
+ Integer lavePoint = appUser.getLavePoint();
+ paymentMoney = order.getPaymentAmount();
+ //构建积分流水记录
+ if(earnPoint > 0){
+ PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
+ int earnPoint1 = 0;
+ if(null != pointSetting && 1 == pointSetting.getBuyPointOpen()){
+ earnPoint1 = new BigDecimal(earnPoint).multiply(pointSetting.getBuyPoint().divide(new BigDecimal(100))).intValue();
+ }
+ appUser.setShopPoint(appUser.getShopPoint() + earnPoint);
+ appUser.setLavePoint(appUser.getLavePoint() + earnPoint);
+ appUser.setTotalPoint(appUser.getTotalPoint() + earnPoint);
+ appUser.setAvailablePoint(appUser.getAvailablePoint() + earnPoint1);
+ appUser.setTotalAvailablePoint(appUser.getTotalAvailablePoint() + earnPoint1);
+
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.put("shopPoint", earnPoint);
+ jsonObject.put("availablePoint", earnPoint1);
+ if(null != pointSetting && 1 == pointSetting.getBuyPointGift()){
+ appUser.setTransferablePoint(appUser.getTransferablePoint() + earnPoint1);
+ jsonObject.put("transferablePoint", earnPoint1);
+ }
+
+ UserPoint userPoint = new UserPoint();
+ userPoint.setType(1);
+ userPoint.setHistoricalPoint(lavePoint);
+ userPoint.setVariablePoint(earnPoint);
+ userPoint.setBalance(appUser.getLavePoint());
+ userPoint.setCreateTime(LocalDateTime.now());
+ userPoint.setAppUserId(appUser.getId());
+ userPoint.setObjectId(order.getId());
+ userPoint.setExtention(jsonObject.toJSONString());
+ userPointClient.saveUserPoint(userPoint);
+ }
+ appUser.setShopAmount(appUser.getShopAmount().add(paymentMoney).setScale(2, RoundingMode.HALF_EVEN));
+ appUser.setLastShopTime(LocalDateTime.now());
+ appUserClient.editAppUserById(appUser);
+ //变更等级
+ appUserClient.vipUpgrade(appUser.getId());
+ //修改订支付状态
+ order.setPayStatus(2);
+ //自提
+ if(order.getOrderType() == 1 && StringUtils.isEmpty(order.getAddressJson())){
+ order.setOrderStatus(2);
+ }
+ orderService.updateById(order);
+
+ //处理优惠券
+ if(null != order.getUserCouponId()){
+ UserCoupon userCoupon = userCouponClient.getUserCoupon(order.getUserCouponId()).getData();
+ if(null != userCoupon && null == userCoupon.getUseTime()){
+ userCoupon.setStatus(2);
+ userCoupon.setUseTime(LocalDateTime.now());
+ userCouponClient.editUserCoupon(userCoupon);
+ }
+ }
+ //添加查询快递信息队列
+ if(StringUtils.isNotEmpty(order.getExpressJson())){
+ //一小时后定时查询快递信息
+ redisTemplate.opsForZSet().add("order_express", order.getId(), LocalDateTime.now().plusHours(1).toEpochSecond(ZoneOffset.UTC));
+ }
+
+ //删除购物车数据
+ userid = tokenService.getLoginUserApplet().getUserid();
+ List<OrderGood> list1 = orderGoodService.list(new LambdaQueryWrapper<OrderGood>().eq(OrderGood::getOrderId, order.getId()));
+ List<Integer> goodsIds1 = list1.stream().map(OrderGood::getGoodsId).collect(Collectors.toList());
+ this.remove(new LambdaQueryWrapper<ShoppingCart>().eq(ShoppingCart::getAppUserId, userid).in(ShoppingCart::getGoodsId, goodsIds1));
+
}
- String rc_result = uniPayResult.getRc_Result();
- JSONObject jsonObject = JSON.parseObject(rc_result);
- jsonObject.put("orderId", order.getId().toString());
- //将支付数据添加到redis队列中,便于定时任务去校验是否完成支付,没有完成支付支付,15分钟后关闭订单。
- long second = LocalDateTime.now().plusMinutes(15).toEpochSecond(ZoneOffset.UTC);
- redisTemplate.opsForZSet().add("OrderPayment", order.getOrderNumber(), second);
- return R.ok(jsonObject.toJSONString());
}
//账户余额
BigDecimal redPacketAmount = BigDecimal.ZERO;
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/OrderActivityInfoController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/OrderActivityInfoController.java
index 16009ad..ad23743 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/OrderActivityInfoController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/OrderActivityInfoController.java
@@ -62,7 +62,7 @@
public R<Void> saveActivityConfig(@RequestBody OrderActivityInfo orderActivityInfo){
orderActivityInfo.setIsShelf(0);
if (org.springframework.util.StringUtils.hasLength(orderActivityInfo.getVipIds())){
- List<String> vipIds = Arrays.asList(orderActivityInfo.getVipIds().split(","));
+ List<String> vipIds = new ArrayList<>(Arrays.asList(orderActivityInfo.getVipIds().split(",")));
List<OrderActivityInfo> list = orderActivityInfoService.lambdaQuery()
.le(OrderActivityInfo::getStartTime, orderActivityInfo.getStartTime())
.or()
@@ -70,7 +70,7 @@
if (!list.isEmpty()){
for (OrderActivityInfo activityInfo : list) {
List<String> vips = Arrays.asList(activityInfo.getVipIds().split(","));
- vipIds.retainAll(vips);
+ vipIds.addAll(vips);
if (!vipIds.isEmpty()){
StringBuilder message = new StringBuilder();
List<String> collect = vips.stream().sorted().collect(Collectors.toList());
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/SeckillActivityInfoController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/SeckillActivityInfoController.java
index fcb62b8..5e750ee 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/SeckillActivityInfoController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/SeckillActivityInfoController.java
@@ -195,8 +195,9 @@
.set(SeckillActivityInfo::getIsShelves, seckillActivityVO.getShowStatus()));
return R.ok();
}
-
-
-
+
+
+
+
}
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopWithdrawController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopWithdrawController.java
index e7e7757..af6ba86 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopWithdrawController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopWithdrawController.java
@@ -26,6 +26,7 @@
import com.ruoyi.other.util.payment.model.SinglePayCallbackResult;
import com.ruoyi.other.util.payment.model.SinglePayResult;
import com.ruoyi.system.api.domain.SysUser;
+import com.ruoyi.system.api.feignClient.SysUserClient;
import com.ruoyi.system.api.model.LoginUser;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -65,6 +66,9 @@
@Resource
private AppUserClient appUserClient;
+
+ @Resource
+ private SysUserClient sysUserClient;
@@ -121,7 +125,8 @@
@GetMapping("/shop/with")
@ApiOperation(value = "提现申请", notes = "提现申请列表", tags = {"门店后台"})
public R shopwith(@RequestParam BigDecimal money){
- SysUser sysUser = tokenService.getLoginUser().getSysUser();
+ Long userid = tokenService.getLoginUser().getUserid();
+ SysUser sysUser = sysUserClient.getSysUser(userid).getData();
Integer objectId = sysUser.getObjectId();
Shop shop = shopService.getById(objectId);
if (money.compareTo(shop.getCanWithdrawMoney())>0){
@@ -179,7 +184,7 @@
return R.fail("查询账户余额出错");
}
Double useAbleSettAmount = accountBalanceQueryResult.getUseAbleSettAmount();
- if(useAbleSettAmount < shopWithdraw1.getMoney().doubleValue()){
+ if(useAbleSettAmount < (shopWithdraw1.getMoney().doubleValue() + 1)){
return R.fail("账户可用余额不足,请先补充账户余额");
}
//银行卡转账
@@ -238,7 +243,7 @@
@PostMapping("/withdrawalCallback")
public Object withdrawalCallback(@RequestBody SinglePayCallbackResult singlePayCallbackResult){
Integer status = singlePayCallbackResult.getStatus();
- if(203 == status){
+ if(203 == status || 205 == status){
String merchantOrderNo = singlePayCallbackResult.getMerchantOrderNo();
ShopWithdraw shopWithdraw = shopWithdrawService.getById(merchantOrderNo);
if(1 == shopWithdraw.getStatus()){
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java
index f44c255..2fbcf1b 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java
@@ -459,6 +459,7 @@
List<AppUser> appUsers = appUserClient.listByIds(userIds);
for (GoodsAppUser goodsAppUser : goodsAppUserList) {
appUsers.stream().filter(u -> u.getId().equals(goodsAppUser.getAppUserId())).findFirst().ifPresent( u -> {
+ goodsAppUser.setAppUserIdStr(goodsAppUser.getAppUserId().toString());
goodsAppUser.setUserName(u.getName());
goodsAppUser.setPhone(u.getPhone());
VipSetting vipSetting = vipSettingService.getById(u.getVipId());
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/payment/model/SinglePayCallbackResult.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/payment/model/SinglePayCallbackResult.java
index 6953a5a..c511075 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/payment/model/SinglePayCallbackResult.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/payment/model/SinglePayCallbackResult.java
@@ -11,6 +11,17 @@
public class SinglePayCallbackResult {
/**
* 交易状态
+ * 201 批次已创建 汇聚受理并创建该批次的初始状态
+ * 202 处理中 批次正在处理中状态
+ * 203 处理完成 批次中的每笔明细都明确了代付结果
+ * 204 批次不存在 汇聚未受理该批次的请求,找不到该批次,明确失败
+ * 205 交易成功 明确交易成功的状态码
+ * 208 订单已取消 代付订单被商户审核为拒绝付款
+ * 210 账务冻结中 确认出款后对商户的账户余额进行冻结处理
+ * 211 账务解冻中 确认失败后对商户的账户余额进行解冻处理
+ * 212 订单取消中 商户审核为拒绝付款的中间状态
+ * 213 账务扣款中 确认成功后对商户的账户冻结款的扣款处理
+ * 214 订单不存在 汇聚未受理该笔代付请求,找不到该笔订单,明确失败
*/
private Integer status;
/**
diff --git a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/SeckillActivityInfoMapper.xml b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/SeckillActivityInfoMapper.xml
index 287a6be..e867c1b 100644
--- a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/SeckillActivityInfoMapper.xml
+++ b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/SeckillActivityInfoMapper.xml
@@ -64,7 +64,7 @@
tgc.`name` goodsCategoryName,
tg.operating_cost,
tg.shop_cost,
- tg.purchase_limit maxNum,
+ tsai.max_num maxNum,
tg.home_page_picture,
tg.original_price,
tg.sale_num,
--
Gitblit v1.7.1