fix: 修复商城问题文档中的bug

This commit is contained in:
lele0521 2024-03-25 16:26:21 +08:00
parent 42ea2dc986
commit ecfe1524d4
7 changed files with 98 additions and 28 deletions

View File

@ -177,10 +177,6 @@ public class OrderEveryDayTaskExecute implements EveryDayExecute {
* @param orderSetting 订单设置
*/
private void closeAfterSale(OrderSetting orderSetting) {
//为0则不限制
if (orderSetting.getCloseAfterSale() == null || orderSetting.getCloseAfterSale() == 0) {
return;
}
//订单关闭售后申请时间 = 当前时间 - 自动关闭售后申请天数
DateTime receiveTime = DateUtil.offsetDay(DateUtil.date(), -orderSetting.getCloseAfterSale());
//关闭售后订单=未售后订单+小于订单关闭售后申请时间
@ -189,25 +185,9 @@ public class OrderEveryDayTaskExecute implements EveryDayExecute {
//判断是否有符合条件的订单关闭允许售后申请处理
if (!orderItems.isEmpty()) {
//获取订单货物ID
List<String> orderItemIdList = orderItems.stream().map(OrderItem::getId).collect(Collectors.toList());
//修改订单售后状态
LambdaUpdateWrapper<OrderItem> lambdaUpdateWrapper = new LambdaUpdateWrapper<OrderItem>()
.set(OrderItem::getAfterSaleStatus, OrderItemAfterSaleStatusEnum.EXPIRED.name())
.in(OrderItem::getId, orderItemIdList);
orderItemService.update(lambdaUpdateWrapper);
orderItemService.expiredAfterSaleStatusExecuteByAfterSale(receiveTime);
//修改订售后状态
List<OrderItem> orderItemsList = orderItems.stream()
.map((orderItem) -> {
orderItem.setAfterSaleStatus(OrderItemAfterSaleStatusEnum.EXPIRED.name());
return orderItem;
})
.collect(Collectors.toList());
orderItemService.expiredAfterSaleStatus(receiveTime);
//修改对应分销订单状态
distributionOrderService.updateDistributionOrderStatus(orderItemsList);
distributionOrderService.updateDistributionOrderStatus(orderItems);
}
}

View File

@ -1,6 +1,8 @@
package cn.lili.modules.member.serviceimpl;
import cn.lili.common.security.AuthUser;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.security.enums.UserEnums;
import cn.lili.common.vo.PageVO;
import cn.lili.modules.member.entity.dos.MemberAddress;
import cn.lili.modules.member.mapper.MemberAddressMapper;
@ -35,10 +37,15 @@ public class MemberAddressServiceImpl extends ServiceImpl<MemberAddressMapper, M
@Override
public MemberAddress getMemberAddress(String id) {
return this.getOne(
new QueryWrapper<MemberAddress>()
.eq("member_id", Objects.requireNonNull(UserContext.getCurrentUser()).getId())
.eq("id", id));
AuthUser authUser = UserContext.getCurrentUser();
if (authUser.getIsSuper() || UserEnums.MANAGER.equals(authUser.getRole())){
return this.getOne(new QueryWrapper<MemberAddress>().eq("id", id));
}else{
return this.getOne(
new QueryWrapper<MemberAddress>()
.eq("member_id", Objects.requireNonNull(UserContext.getCurrentUser()).getId())
.eq("id", id));
}
}
/**

View File

@ -29,6 +29,15 @@ public interface OrderItemMapper extends BaseMapper<OrderItem> {
@Select("SELECT * FROM li_order_item AS oi INNER JOIN li_order AS o ON oi.order_sn=o.sn ${ew.customSqlSegment}")
List<OrderItem> waitOperationOrderItem(@Param(Constants.WRAPPER) Wrapper<OrderSimpleVO> queryWrapper);
/**
* 未申请售后的订单进行售后过期标识
*
* @param expiredTime 过期时间
*/
@Update("update li_order_item oi INNER JOIN li_order AS o ON oi.order_sn=o.sn set after_sale_status = 'EXPIRED' where after_sale_status = " +
"'NOT_APPLIED' and o.complete_time < #{expiredTime}")
void expiredAfterSaleStatus(DateTime expiredTime);
/**
* 检查售后表根据售后表中的业务判定是否需要更新售后状态
*

View File

@ -77,5 +77,5 @@ public interface OrderItemService extends IService<OrderItem> {
List<OrderItem> waitOperationOrderItem(OrderItemOperationDTO orderItemOperationDTO);
void expiredAfterSaleStatusExecuteByAfterSale(DateTime receiveTime);
void expiredAfterSaleStatus(DateTime expiredTime);
}

View File

@ -110,4 +110,10 @@ public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem
public void expiredAfterSaleStatusExecuteByAfterSale(DateTime receiveTime) {
this.baseMapper.expiredAfterSaleStatusExecuteByAfterSale(receiveTime);
}
@Override
public void expiredAfterSaleStatus(DateTime expiredTime) {
this.baseMapper.expiredAfterSaleStatus(expiredTime);
this.baseMapper.expiredAfterSaleStatusExecuteByAfterSale(expiredTime);
}
}

View File

@ -40,8 +40,12 @@ import cn.lili.modules.store.entity.dto.StoreDeliverGoodsAddressDTO;
import cn.lili.modules.store.service.StoreDetailService;
import cn.lili.modules.system.aspect.annotation.SystemLogPoint;
import cn.lili.modules.system.entity.dos.Logistics;
import cn.lili.modules.system.entity.dos.Setting;
import cn.lili.modules.system.entity.dto.OrderSetting;
import cn.lili.modules.system.entity.enums.SettingEnum;
import cn.lili.modules.system.entity.vo.Traces;
import cn.lili.modules.system.service.LogisticsService;
import cn.lili.modules.system.service.SettingService;
import cn.lili.mybatis.util.PageUtil;
import cn.lili.rocketmq.RocketmqSendCallbackBuilder;
import cn.lili.rocketmq.tags.GoodsTagsEnum;
@ -154,6 +158,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
@Autowired
private OrderPackageItemService orderPackageItemService;
@Autowired
private SettingService settingService;
@Override
@Transactional(rollbackFor = Exception.class)
public void intoDB(TradeDTO tradeDTO) {
@ -558,11 +565,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
@Transactional(rollbackFor = Exception.class)
public void complete(Order order, String orderSn) {//修改订单状态为完成
this.updateStatus(orderSn, OrderStatusEnum.COMPLETED);
//修改订单货物可以进行评价
orderItemService.update(new UpdateWrapper<OrderItem>().eq(ORDER_SN_COLUMN, orderSn)
.set("comment_status", CommentStatusEnum.UNFINISHED));
this.update(new LambdaUpdateWrapper<Order>().eq(Order::getSn, orderSn).set(Order::getCompleteTime, new Date()));
//修改订单投诉状态
updateOrderComplainStatus(orderSn);
//发送订单状态改变消息
OrderMessage orderMessage = new OrderMessage();
orderMessage.setNewStatus(OrderStatusEnum.COMPLETED);
@ -1136,4 +1146,26 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
throw new ServiceException(ResultCode.ORDER_TAKE_ERROR);
}
}
/**
* 根据订单设置修改订单投诉状态
* @param orderSn
*/
private void updateOrderComplainStatus(String orderSn) {
Setting setting = settingService.get(SettingEnum.ORDER_SETTING.name());
//订单设置
OrderSetting orderSetting = JSONUtil.toBean(setting.getSettingValue(), OrderSetting.class);
if (orderSetting == null) {
return;
}
//设置投诉天数大于0 则走每日定时任务处理=0 则即可关闭订单的投诉状态
if (orderSetting.getCloseComplaint() > 0) {
return;
}
//关闭订单投诉状态
LambdaUpdateWrapper<OrderItem> lambdaUpdateWrapper = new LambdaUpdateWrapper<OrderItem>()
.eq(OrderItem::getOrderSn, orderSn)
.set(OrderItem::getComplainStatus, OrderComplaintStatusEnum.EXPIRED.name());
orderItemService.update(lambdaUpdateWrapper);
}
}

View File

@ -183,4 +183,40 @@ public class StoreEditDTO {
@ApiModelProperty(value = "腾讯云智服小程序唯一标识")
private String yzfMpSign;
public String getSalesConsigneeName() {
return getDefaultValue(salesConsigneeName);
}
public String getSalesConsigneeMobile() {
return getDefaultValue(salesConsigneeMobile);
}
public String getSalesConsigneeAddressId() {
return getDefaultValue(salesConsigneeAddressId);
}
public String getSalesConsigneeAddressPath() {
return getDefaultValue(salesConsigneeAddressPath);
}
public String getSalesConsigneeDetail() {
return getDefaultValue(salesConsigneeDetail);
}
public String getYzfSign() {
return getDefaultValue(yzfSign);
}
public String getYzfMpSign() {
return getDefaultValue(yzfMpSign);
}
/**
* JSON转换中的null 会转成 "null"
* @param value
* @return
*/
private String getDefaultValue(String value){
return (value == null || "null".equals(value)) ? "" : value;
}
}