后台订单发货

pull/1/head
chuzhichao 2 years ago
parent 7b353b2c8a
commit b5ceaeed30

2
.gitignore vendored

@ -43,7 +43,7 @@ nbdist/
!*/build/*.html
!*/build/*.xml
/sql/local.sql
*local*
*local
/ruoyi-admin/src/main/resources/application-dev.yml
/ruoyi-admin/src/main/resources/application-prod.yml

@ -2,11 +2,16 @@ package com.cyl.manager.oms.controller;
import java.util.List;
import com.cyl.h5.config.SecurityUtil;
import com.cyl.manager.oms.pojo.request.DeliverProductRequest;
import com.cyl.manager.oms.pojo.request.ManagerOrderQueryRequest;
import com.cyl.manager.oms.pojo.vo.ManagerOrderDetailVO;
import com.cyl.manager.oms.pojo.vo.ManagerOrderVO;
import com.ruoyi.common.core.redis.RedisService;
import com.ruoyi.common.utils.SecurityUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Page;
@ -39,11 +44,14 @@ import com.ruoyi.common.utils.poi.ExcelUtil;
@Api(description ="订单表接口列表")
@RestController
@RequestMapping("/oms/order")
@Slf4j
public class OrderController extends BaseController {
@Autowired
private OrderService service;
@Autowired
private OrderConvert convert;
@Autowired
private RedisService redisService;
@ApiOperation("查询订单表列表")
@PreAuthorize("@ss.hasPermi('oms:order:list')")
@ -101,4 +109,26 @@ public class OrderController extends BaseController {
public ResponseEntity<Integer> saveMerchantNote(@RequestBody Order order){
return ResponseEntity.ok(service.saveMerchantNote(order));
}
@ApiOperation("管理后台订单发货")
@PreAuthorize("@ss.hasPermi('oms:order:delivery')")
@PostMapping("/deliverProduct")
public ResponseEntity<String> delivery(@RequestBody DeliverProductRequest request){
Long userId = SecurityUtils.getUserId();
String redisKey = "oms_order_deliverProduct" + request.getOrderId();
String redisValue = request.getOrderId() + "_" + System.currentTimeMillis();
try{
redisService.lock(redisKey, redisValue, 60);
return ResponseEntity.ok(service.deliverProduct(request, userId));
}catch (Exception e){
log.error("订单发货接口异常");
throw new RuntimeException("发货失败");
}finally {
try{
redisService.unLock(redisKey, redisValue);;
}catch (Exception e){
log.error("", e);
}
}
}
}

@ -0,0 +1,27 @@
package com.cyl.manager.oms.pojo.request;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
@Getter
@Setter
public class DeliverProductRequest {
@ApiModelProperty("订单id")
@NotBlank(message = "订单id不能为空")
@Excel(name = "订单号")
private Long orderId;
@ApiModelProperty("快递名称")
@NotBlank(message = "快递名称不能为空")
@Excel(name = "快递公司")
private String expressName;
@ApiModelProperty("快递单号")
@NotBlank(message = "快递单号不能为空")
@Excel(name = "运单号")
private String expressSn;
}

@ -21,10 +21,13 @@ import com.cyl.h5.pojo.vo.SkuViewDTO;
import com.cyl.h5.pojo.vo.form.OrderSubmitForm;
import com.cyl.h5.pojo.vo.query.OrderH5Query;
import com.cyl.manager.oms.convert.OrderConvert;
import com.cyl.manager.oms.domain.OrderDeliveryHistory;
import com.cyl.manager.oms.domain.OrderItem;
import com.cyl.manager.oms.domain.OrderOperateHistory;
import com.cyl.manager.oms.mapper.OrderDeliveryHistoryMapper;
import com.cyl.manager.oms.mapper.OrderItemMapper;
import com.cyl.manager.oms.mapper.OrderOperateHistoryMapper;
import com.cyl.manager.oms.pojo.request.DeliverProductRequest;
import com.cyl.manager.oms.pojo.request.ManagerOrderQueryRequest;
import com.cyl.manager.oms.pojo.vo.*;
import com.cyl.manager.pms.convert.SkuConvert;
@ -89,6 +92,8 @@ public class OrderService {
private MemberMapper memberMapper;
@Value("${aes.key}")
private String aesKey;
@Autowired
private OrderDeliveryHistoryMapper orderDeliveryHistoryMapper;
/**
*
@ -280,4 +285,91 @@ public class OrderService {
qw.set("merchant_note", order.getMerchantNote());
return orderMapper.update(null, qw);
}
/**
*
*
* @param request
* @param userId
* @return
*/
@Transactional
public String deliverProduct(DeliverProductRequest request, Long userId) {
//查询订单
Order order = orderMapper.selectById(request.getOrderId());
QueryWrapper<OrderItem> qw = new QueryWrapper<>();
qw.eq("order_id", request.getOrderId());
OrderItem orderItem = orderItemMapper.selectOne(qw);
if (order == null || orderItem == null){
throw new RuntimeException("未找到该订单信息");
}
// 是否为待发货、已发货 、已完成
if (!(Constants.OrderStatus.SEND.equals(order.getStatus())
|| Constants.OrderStatus.GET.equals(order.getStatus())
|| Constants.OrderStatus.CONFIRM.equals(order.getStatus()))){
throw new RuntimeException("订单状态错误");
}
Integer orderStatus =
Constants.OrderStatus.SEND.equals(order.getStatus()) ? Constants.OrderStatus.GET : order.getStatus();
//更新订单
LocalDateTime optDate = LocalDateTime.now();
UpdateWrapper<Order> orderQw = new UpdateWrapper();
orderQw.eq("id", order.getId())
.set("status", orderStatus)
.set("delivery_company", request.getExpressName())
.set("delivery_sn", request.getExpressSn())
.set("update_time", optDate)
.set("update_by", userId)
.set("delivery_time", optDate);
int rows = orderMapper.update(null, orderQw);
if (rows < 1){
throw new RuntimeException("更新订单发货信息失败");
}
//创建新的发货记录
this.createDeliveryHistory(request, userId, optDate);
//创建订单操作记录
this.createOrderOptHistory(order.getId(), orderStatus, userId, optDate);
return "发货成功";
}
/**
*
* @param request
* @param userId
* @param optDate
*/
private void createDeliveryHistory(DeliverProductRequest request, Long userId, LocalDateTime optDate){
OrderDeliveryHistory orderDeliveryHistory = new OrderDeliveryHistory();
orderDeliveryHistory.setOrderId(request.getOrderId());
orderDeliveryHistory.setDeliveryCompany(request.getExpressName());
orderDeliveryHistory.setDeliverySn(request.getExpressSn());
orderDeliveryHistory.setCreateTime(optDate);
orderDeliveryHistory.setCreateBy(userId);
int rows = orderDeliveryHistoryMapper.insert(orderDeliveryHistory);
if (rows < 1) {
throw new RuntimeException("新增订单发货记录失败");
}
}
/**
*
* @param orderId id
* @param orderStatus
* @param userId
* @param optDate
*/
private void createOrderOptHistory(Long orderId, Integer orderStatus, Long userId, LocalDateTime optDate){
OrderOperateHistory optHistory = new OrderOperateHistory();
optHistory.setOrderId(orderId);
optHistory.setOperateMan(userId + "");
optHistory.setOrderStatus(orderStatus);
optHistory.setCreateTime(optDate);
optHistory.setCreateBy(userId);
optHistory.setUpdateBy(userId);
optHistory.setUpdateTime(optDate);
int rows = orderOperateHistoryMapper.insert(optHistory);
if (rows < 1) {
throw new RuntimeException("新增订单操作记录失败");
}
}
}

Loading…
Cancel
Save