1、关闭原有定时结算、手动结算业务,因新业务已完成流程结算功能
2、优化秒杀订单查询活动名称、核销码业务 3、优化订单状态查询业务
This commit is contained in:
@@ -116,7 +116,7 @@ public class DealerCommissionUnfreeze10584Task {
|
|||||||
|
|
||||||
private final AtomicBoolean running = new AtomicBoolean(false);
|
private final AtomicBoolean running = new AtomicBoolean(false);
|
||||||
|
|
||||||
@Scheduled(cron = "${dealer.commission.unfreeze10584.cron:0/50 * * * * ?}")
|
// @Scheduled(cron = "${dealer.commission.unfreeze10584.cron:0/50 * * * * ?}")
|
||||||
@IgnoreTenant("定时任务无登录态,需忽略租户隔离;内部使用 tenantId=10584 精确过滤")
|
@IgnoreTenant("定时任务无登录态,需忽略租户隔离;内部使用 tenantId=10584 精确过滤")
|
||||||
public void run() {
|
public void run() {
|
||||||
if (!running.compareAndSet(false, true)) {
|
if (!running.compareAndSet(false, true)) {
|
||||||
|
|||||||
@@ -183,7 +183,7 @@ public class ShopDealerOrderController extends BaseController {
|
|||||||
@PreAuthorize("hasAuthority('shop:shopDealerOrder:update')")
|
@PreAuthorize("hasAuthority('shop:shopDealerOrder:update')")
|
||||||
@OperationLog
|
@OperationLog
|
||||||
@Operation(summary = "手动触发单条订单佣金解冻")
|
@Operation(summary = "手动触发单条订单佣金解冻")
|
||||||
@PostMapping("/unfreeze")
|
// @PostMapping("/unfreeze")
|
||||||
public ApiResult<String> manualUnfreeze(@RequestBody Map<String, Object> body) {
|
public ApiResult<String> manualUnfreeze(@RequestBody Map<String, Object> body) {
|
||||||
String orderNo = (String) body.get("orderNo");
|
String orderNo = (String) body.get("orderNo");
|
||||||
if (orderNo == null || orderNo.isBlank()) {
|
if (orderNo == null || orderNo.isBlank()) {
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ public class UserOrderStats implements Serializable {
|
|||||||
@Schema(description = "待核销(statusFilter=2)")
|
@Schema(description = "待核销(statusFilter=2)")
|
||||||
private Long waitVerify;
|
private Long waitVerify;
|
||||||
|
|
||||||
@Schema(description = "待收货(statusFilter=3)")
|
@Schema(description = "待收货/使用(statusFilter=3)")
|
||||||
private Long waitReceive;
|
private Long waitReceive;
|
||||||
|
|
||||||
@Schema(description = "待评价(statusFilter=4)")
|
@Schema(description = "待评价(statusFilter=4)")
|
||||||
|
|||||||
@@ -313,6 +313,10 @@ public class ShopOrder implements Serializable {
|
|||||||
@Schema(description = "秒杀活动ID")
|
@Schema(description = "秒杀活动ID")
|
||||||
private Integer activityId;
|
private Integer activityId;
|
||||||
|
|
||||||
|
@Schema(description = "秒杀活动ID")
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String activityName;
|
||||||
|
|
||||||
@Schema(description = "水票订单标识 0-否 1-是")
|
@Schema(description = "水票订单标识 0-否 1-是")
|
||||||
private Integer waterTicketFlag;
|
private Integer waterTicketFlag;
|
||||||
|
|
||||||
|
|||||||
@@ -54,6 +54,14 @@ public class ShopOrderGoods implements Serializable {
|
|||||||
@Schema(description = "商品名称")
|
@Schema(description = "商品名称")
|
||||||
private String goodsName;
|
private String goodsName;
|
||||||
|
|
||||||
|
@Schema(description = "商品名称")
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String activeNam;
|
||||||
|
|
||||||
|
@Schema(description = "核销码")
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String verifyCode;
|
||||||
|
|
||||||
@Schema(description = "商品规格")
|
@Schema(description = "商品规格")
|
||||||
private String spec;
|
private String spec;
|
||||||
|
|
||||||
|
|||||||
@@ -248,8 +248,8 @@
|
|||||||
AND a.pay_status = 1 AND a.order_status = 0 and order_type = 2
|
AND a.pay_status = 1 AND a.order_status = 0 and order_type = 2
|
||||||
</if>
|
</if>
|
||||||
<if test="param.statusFilter == 3">
|
<if test="param.statusFilter == 3">
|
||||||
<!-- 3待收货:已发货但订单状态不是已完成 -->
|
<!-- 3待收货/使用:已发货但订单状态不是已完成 -->
|
||||||
AND a.pay_status = 1 AND a.delivery_status = 20 AND a.order_status = 0
|
AND a.pay_status = 1 AND a.order_status = 0 AND (a.delivery_status = 20 or (a.order_type = 2 and a.delivery_status = 10))
|
||||||
</if>
|
</if>
|
||||||
<if test="param.statusFilter == 4">
|
<if test="param.statusFilter == 4">
|
||||||
<!-- 4待评价:订单已完成但可能需要评价 -->
|
<!-- 4待评价:订单已完成但可能需要评价 -->
|
||||||
@@ -300,7 +300,7 @@
|
|||||||
COALESCE(SUM(CASE WHEN a.deleted = 0 AND a.pay_status = 0 AND a.order_status = 0 THEN 1 ELSE 0 END), 0) AS waitPay,
|
COALESCE(SUM(CASE WHEN a.deleted = 0 AND a.pay_status = 0 AND a.order_status = 0 THEN 1 ELSE 0 END), 0) AS waitPay,
|
||||||
COALESCE(SUM(CASE WHEN a.deleted = 0 AND a.pay_status = 1 AND a.order_status = 0 AND a.order_type in(1, 3, 4) AND a.delivery_status = 10 THEN 1 ELSE 0 END), 0) AS waitDeliver,
|
COALESCE(SUM(CASE WHEN a.deleted = 0 AND a.pay_status = 1 AND a.order_status = 0 AND a.order_type in(1, 3, 4) AND a.delivery_status = 10 THEN 1 ELSE 0 END), 0) AS waitDeliver,
|
||||||
COALESCE(SUM(CASE WHEN a.deleted = 0 AND a.pay_status = 1 AND a.order_status = 0 AND a.order_type = 2 THEN 1 ELSE 0 END), 0) AS waitVerify,
|
COALESCE(SUM(CASE WHEN a.deleted = 0 AND a.pay_status = 1 AND a.order_status = 0 AND a.order_type = 2 THEN 1 ELSE 0 END), 0) AS waitVerify,
|
||||||
COALESCE(SUM(CASE WHEN a.deleted = 0 AND a.pay_status = 1 AND a.order_status = 0 AND a.delivery_status = 20 THEN 1 ELSE 0 END), 0) AS waitReceive,
|
COALESCE(SUM(CASE WHEN a.deleted = 0 AND a.pay_status = 1 AND a.order_status = 0 AND (a.delivery_status = 20 or (a.order_type = 2 and a.delivery_status = 10)) THEN 1 ELSE 0 END), 0) AS waitReceive,
|
||||||
COALESCE(SUM(CASE WHEN a.deleted = 0 AND a.pay_status = 1 AND a.order_status = 1 AND a.evaluate_status = 0 THEN 1 ELSE 0 END), 0) AS waitComment,
|
COALESCE(SUM(CASE WHEN a.deleted = 0 AND a.pay_status = 1 AND a.order_status = 1 AND a.evaluate_status = 0 THEN 1 ELSE 0 END), 0) AS waitComment,
|
||||||
COALESCE(SUM(CASE WHEN a.deleted = 0 AND a.pay_status = 1 AND a.order_status = 1 THEN 1 ELSE 0 END), 0) AS completed,
|
COALESCE(SUM(CASE WHEN a.deleted = 0 AND a.pay_status = 1 AND a.order_status = 1 THEN 1 ELSE 0 END), 0) AS completed,
|
||||||
COALESCE(SUM(CASE WHEN a.deleted = 0 AND a.pay_status = 1 AND a.order_status in(4, 5, 6, 7) THEN 1 ELSE 0 END), 0) AS refund,
|
COALESCE(SUM(CASE WHEN a.deleted = 0 AND a.pay_status = 1 AND a.order_status in(4, 5, 6, 7) THEN 1 ELSE 0 END), 0) AS refund,
|
||||||
|
|||||||
@@ -2,12 +2,17 @@ package com.gxwebsoft.shop.service.impl;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.gxwebsoft.shop.entity.ShopFlashSaleActivity;
|
||||||
|
import com.gxwebsoft.shop.entity.ShopOrder;
|
||||||
|
import com.gxwebsoft.shop.mapper.ShopFlashSaleActivityMapper;
|
||||||
import com.gxwebsoft.shop.mapper.ShopOrderGoodsMapper;
|
import com.gxwebsoft.shop.mapper.ShopOrderGoodsMapper;
|
||||||
|
import com.gxwebsoft.shop.mapper.ShopOrderMapper;
|
||||||
import com.gxwebsoft.shop.service.ShopOrderGoodsService;
|
import com.gxwebsoft.shop.service.ShopOrderGoodsService;
|
||||||
import com.gxwebsoft.shop.entity.ShopOrderGoods;
|
import com.gxwebsoft.shop.entity.ShopOrderGoods;
|
||||||
import com.gxwebsoft.shop.param.ShopOrderGoodsParam;
|
import com.gxwebsoft.shop.param.ShopOrderGoodsParam;
|
||||||
import com.gxwebsoft.common.core.web.PageParam;
|
import com.gxwebsoft.common.core.web.PageParam;
|
||||||
import com.gxwebsoft.common.core.web.PageResult;
|
import com.gxwebsoft.common.core.web.PageResult;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
@@ -21,8 +26,13 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
|
@AllArgsConstructor
|
||||||
public class ShopOrderGoodsServiceImpl extends ServiceImpl<ShopOrderGoodsMapper, ShopOrderGoods> implements ShopOrderGoodsService {
|
public class ShopOrderGoodsServiceImpl extends ServiceImpl<ShopOrderGoodsMapper, ShopOrderGoods> implements ShopOrderGoodsService {
|
||||||
|
|
||||||
|
private ShopOrderMapper shopOrderMapper;
|
||||||
|
|
||||||
|
private ShopFlashSaleActivityMapper shopFlashSaleActivityMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<ShopOrderGoods> pageRel(ShopOrderGoodsParam param) {
|
public PageResult<ShopOrderGoods> pageRel(ShopOrderGoodsParam param) {
|
||||||
PageParam<ShopOrderGoods, ShopOrderGoodsParam> page = new PageParam<>(param);
|
PageParam<ShopOrderGoods, ShopOrderGoodsParam> page = new PageParam<>(param);
|
||||||
@@ -34,6 +44,28 @@ public class ShopOrderGoodsServiceImpl extends ServiceImpl<ShopOrderGoodsMapper,
|
|||||||
@Override
|
@Override
|
||||||
public List<ShopOrderGoods> listRel(ShopOrderGoodsParam param) {
|
public List<ShopOrderGoods> listRel(ShopOrderGoodsParam param) {
|
||||||
List<ShopOrderGoods> list = baseMapper.selectListRel(param);
|
List<ShopOrderGoods> list = baseMapper.selectListRel(param);
|
||||||
|
|
||||||
|
//根据订单ID查询活动并回显对应名称、订单核销码
|
||||||
|
Integer orderId = param.getOrderId();
|
||||||
|
if(orderId != null){
|
||||||
|
ShopOrder order = shopOrderMapper.selectById(orderId);
|
||||||
|
if(order != null){
|
||||||
|
ShopFlashSaleActivity saleActivity = null;
|
||||||
|
if(order.getActivityId() != null){
|
||||||
|
saleActivity = shopFlashSaleActivityMapper.selectById(order.getActivityId());
|
||||||
|
}
|
||||||
|
ShopFlashSaleActivity finalSaleActivity = saleActivity;
|
||||||
|
list.forEach(shopOrderGoods -> {
|
||||||
|
shopOrderGoods.setVerifyCode(order.getVerifyCode());
|
||||||
|
if(finalSaleActivity != null){
|
||||||
|
if(shopOrderGoods.getGoodsId().equals(finalSaleActivity.getGoodsId())){
|
||||||
|
shopOrderGoods.setActiveNam(finalSaleActivity.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 排序
|
// 排序
|
||||||
PageParam<ShopOrderGoods, ShopOrderGoodsParam> page = new PageParam<>();
|
PageParam<ShopOrderGoods, ShopOrderGoodsParam> page = new PageParam<>();
|
||||||
page.setDefaultOrder("sort_number asc, create_time desc");
|
page.setDefaultOrder("sort_number asc, create_time desc");
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import com.gxwebsoft.payment.constants.WechatPayType;
|
|||||||
import com.gxwebsoft.shop.dto.ShopDealerUserReduceDto;
|
import com.gxwebsoft.shop.dto.ShopDealerUserReduceDto;
|
||||||
import com.gxwebsoft.shop.dto.VerifyShopOrderDto;
|
import com.gxwebsoft.shop.dto.VerifyShopOrderDto;
|
||||||
import com.gxwebsoft.shop.entity.*;
|
import com.gxwebsoft.shop.entity.*;
|
||||||
|
import com.gxwebsoft.shop.mapper.ShopFlashSaleActivityMapper;
|
||||||
import com.gxwebsoft.shop.mapper.ShopGoodsMapper;
|
import com.gxwebsoft.shop.mapper.ShopGoodsMapper;
|
||||||
import com.gxwebsoft.shop.mapper.ShopOrderMapper;
|
import com.gxwebsoft.shop.mapper.ShopOrderMapper;
|
||||||
import com.gxwebsoft.shop.mapper.ShopUserAddressMapper;
|
import com.gxwebsoft.shop.mapper.ShopUserAddressMapper;
|
||||||
@@ -41,10 +42,10 @@ import com.wechat.pay.java.service.payments.model.Transaction;
|
|||||||
import com.wechat.pay.java.service.payments.nativepay.NativePayService;
|
import com.wechat.pay.java.service.payments.nativepay.NativePayService;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.CollectionUtils;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
@@ -109,6 +110,8 @@ public class ShopOrderServiceImpl extends ServiceImpl<ShopOrderMapper, ShopOrder
|
|||||||
private ShopDealerUserService shopDealerUserService;
|
private ShopDealerUserService shopDealerUserService;
|
||||||
@Resource
|
@Resource
|
||||||
private UserMapper userMapper;
|
private UserMapper userMapper;
|
||||||
|
@Resource
|
||||||
|
private ShopFlashSaleActivityMapper shopFlashSaleActivityMapper;
|
||||||
|
|
||||||
private static final long USER_ORDER_STATS_CACHE_SECONDS = 60L;
|
private static final long USER_ORDER_STATS_CACHE_SECONDS = 60L;
|
||||||
private static final long WECHAT_PREPAY_SNAPSHOT_TTL_MINUTES = 30L;
|
private static final long WECHAT_PREPAY_SNAPSHOT_TTL_MINUTES = 30L;
|
||||||
@@ -298,10 +301,18 @@ public class ShopOrderServiceImpl extends ServiceImpl<ShopOrderMapper, ShopOrder
|
|||||||
List<ShopOrder> list = baseMapper.selectPageRel(page, param);
|
List<ShopOrder> list = baseMapper.selectPageRel(page, param);
|
||||||
|
|
||||||
// 整理订单数据
|
// 整理订单数据
|
||||||
if (!CollectionUtils.isEmpty(list)) {
|
if (CollectionUtils.isNotEmpty(list)) {
|
||||||
final Set<Integer> orderIds = list.stream().map(ShopOrder::getOrderId).collect(Collectors.toSet());
|
final Set<Integer> orderIds = list.stream().map(ShopOrder::getOrderId).collect(Collectors.toSet());
|
||||||
final List<ShopOrderGoods> goodsList = shopOrderGoodsService.list(new LambdaQueryWrapper<ShopOrderGoods>().in(ShopOrderGoods::getOrderId, orderIds));
|
final List<ShopOrderGoods> goodsList = shopOrderGoodsService.list(new LambdaQueryWrapper<ShopOrderGoods>().in(ShopOrderGoods::getOrderId, orderIds));
|
||||||
final Map<Integer, List<ShopOrderGoods>> collect = goodsList.stream().collect(Collectors.groupingBy(ShopOrderGoods::getOrderId));
|
final Map<Integer, List<ShopOrderGoods>> collect = goodsList.stream().collect(Collectors.groupingBy(ShopOrderGoods::getOrderId));
|
||||||
|
|
||||||
|
List<ShopFlashSaleActivity> activityList = new ArrayList<>();
|
||||||
|
List<Integer> activeIdList = list.stream().filter(shopOrder -> shopOrder.getActivityId() != null).map(ShopOrder::getActivityId).distinct().collect(Collectors.toList());
|
||||||
|
if(CollectionUtils.isNotEmpty(activeIdList)){
|
||||||
|
activityList = shopFlashSaleActivityMapper.selectBatchIds(activeIdList);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<ShopFlashSaleActivity> finalActivityList = activityList;
|
||||||
list.forEach(d -> {
|
list.forEach(d -> {
|
||||||
d.setOrderGoods(collect.get(d.getOrderId()));
|
d.setOrderGoods(collect.get(d.getOrderId()));
|
||||||
|
|
||||||
@@ -320,6 +331,14 @@ public class ShopOrderServiceImpl extends ServiceImpl<ShopOrderMapper, ShopOrder
|
|||||||
}
|
}
|
||||||
d.setShopOrderDelivery(shopOrderDelivery);
|
d.setShopOrderDelivery(shopOrderDelivery);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//回显活动名称
|
||||||
|
if(d.getActivityId() != null){
|
||||||
|
ShopFlashSaleActivity saleActivity = finalActivityList.stream().filter(activity -> d.getActivityId().equals(activity.getId())).findFirst().orElse(null);
|
||||||
|
if(saleActivity != null){
|
||||||
|
d.setActivityName(saleActivity.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return new PageResult<>(list, page.getTotal());
|
return new PageResult<>(list, page.getTotal());
|
||||||
@@ -444,7 +463,7 @@ public class ShopOrderServiceImpl extends ServiceImpl<ShopOrderMapper, ShopOrder
|
|||||||
//7.只有推广结算才会记佣且判断是否在设定有效期内核销订单【是:计算订单核销佣金 否:不计算核销佣金】
|
//7.只有推广结算才会记佣且判断是否在设定有效期内核销订单【是:计算订单核销佣金 否:不计算核销佣金】
|
||||||
if(verifyType == 2 && shopOrder.getVerifyExpTime().isAfter(LocalDateTime.now())){
|
if(verifyType == 2 && shopOrder.getVerifyExpTime().isAfter(LocalDateTime.now())){
|
||||||
List<ShopOrderGoods> orderGoodsList = shopOrderGoodsService.getListByOrderId(shopOrder.getOrderId());
|
List<ShopOrderGoods> orderGoodsList = shopOrderGoodsService.getListByOrderId(shopOrder.getOrderId());
|
||||||
if(!CollectionUtils.isEmpty(orderGoodsList)){
|
if(CollectionUtils.isNotEmpty(orderGoodsList)){
|
||||||
List<Integer> goodsIdList = orderGoodsList.stream().map(ShopOrderGoods::getGoodsId).distinct().collect(Collectors.toList());
|
List<Integer> goodsIdList = orderGoodsList.stream().map(ShopOrderGoods::getGoodsId).distinct().collect(Collectors.toList());
|
||||||
List<ShopGoods> shopGoods = shopGoodsMapper.selectBatchIds(goodsIdList);
|
List<ShopGoods> shopGoods = shopGoodsMapper.selectBatchIds(goodsIdList);
|
||||||
|
|
||||||
|
|||||||
@@ -15,9 +15,8 @@ spring:
|
|||||||
|
|
||||||
redis:
|
redis:
|
||||||
database: 0
|
database: 0
|
||||||
host: 47.107.249.41
|
host: localhost
|
||||||
port: 16379
|
port: 6379
|
||||||
password: redis_t74P8C
|
|
||||||
|
|
||||||
# 日志配置
|
# 日志配置
|
||||||
logging:
|
logging:
|
||||||
|
|||||||
Reference in New Issue
Block a user