增加私域订单

This commit is contained in:
Richie 2025-03-24 11:48:34 +08:00
parent 4f59023ef0
commit 71a47383da
7 changed files with 299 additions and 1 deletions

View File

@ -0,0 +1,85 @@
package cn.qihangerp.oms.controller.offline;
import cn.qihangerp.common.AjaxResult;
import cn.qihangerp.common.PageQuery;
import cn.qihangerp.common.ResultVo;
import cn.qihangerp.common.TableDataInfo;
import cn.qihangerp.module.order.domain.OfflineGoodsSku;
import cn.qihangerp.module.order.service.OfflineGoodsSkuService;
import cn.qihangerp.security.common.BaseController;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
/**
* 商品管理Controller
*
* @author qihang
* @date 2023-12-29
*/
@AllArgsConstructor
@RestController
@RequestMapping("/offline_goods")
public class OfflineGoodsController extends BaseController
{
private final OfflineGoodsSkuService skuService;
/**
* 搜索商品SKU
* 条件商品编码SKU商品名称
*/
@GetMapping("/searchSku")
public TableDataInfo searchSkuBy(String keyword)
{
logger.info("========SKU搜索=========",keyword);
List<OfflineGoodsSku> list = skuService.searchGoodsSpec(keyword);
return getDataTable(list);
}
@GetMapping("/sku_list")
public TableDataInfo skuList(OfflineGoodsSku bo, PageQuery pageQuery)
{
var pageList = skuService.querySkuPageList(bo,pageQuery);
return getDataTable(pageList);
}
/**
* 获取商品管理详细信息
*/
@GetMapping(value = "/sku/{id}")
public AjaxResult getSkuInfo(@PathVariable("id") Long id)
{
return success(skuService.getById(id));
}
@PostMapping("/sku")
public AjaxResult addSku(@RequestBody OfflineGoodsSku goodsSku)
{
ResultVo<Long> result = skuService.insertGoodsSku(goodsSku);
if(result.getCode() != 0) return AjaxResult.error(result.getMsg());
else return AjaxResult.success();
}
@PutMapping("/sku")
public AjaxResult editSku(@RequestBody OfflineGoodsSku sku)
{
return toAjax(skuService.updateById(sku));
}
/**
* 删除商品管理
*/
@DeleteMapping("/sku/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(skuService.removeBatchByIds(Arrays.stream(ids).toList()));
}
}

View File

@ -0,0 +1,107 @@
package cn.qihangerp.oms.controller.offline;
import cn.qihangerp.common.AjaxResult;
import cn.qihangerp.common.PageQuery;
import cn.qihangerp.common.TableDataInfo;
import cn.qihangerp.common.enums.EnumShopType;
import cn.qihangerp.common.mq.MqMessage;
import cn.qihangerp.common.mq.MqType;
import cn.qihangerp.common.mq.MqUtils;
import cn.qihangerp.module.order.domain.bo.OfflineOrderCreateBo;
import cn.qihangerp.module.order.domain.bo.OfflineOrderPushBo;
import cn.qihangerp.module.order.service.OfflineOrderService;
import cn.qihangerp.request.OrderSearchRequest;
import cn.qihangerp.security.common.BaseController;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
@AllArgsConstructor
@RestController
@RequestMapping("/offline_order")
public class OfflineOrderController extends BaseController {
private final OfflineOrderService orderService;
private final MqUtils mqUtils;
/**
* 查询店铺订单列表
*/
@GetMapping("/list")
public TableDataInfo list(OrderSearchRequest bo, PageQuery pageQuery)
{
var pageList = orderService.queryPageList(bo,pageQuery);
return getDataTable(pageList);
}
/**
* 获取店铺订单详细信息
*/
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return success(orderService.queryDetailById(id));
}
// @PostMapping("/pushErp/{ids}")
// public AjaxResult remove(@PathVariable Long[] ids) {
// for (Long id : ids) {
// OOrder oOrder = orderService.getById(id);
// if (oOrder != null) {
// oOrder.setItemList(orderItemService.getOrderItemListByOrderId(id));
// ResultVo resultVo = erpPushHelper.pushOrderSingle(oOrder);
// OOrder pushUpdate = new OOrder();
// if (oOrder.getOrderStatus() == 1 || oOrder.getOrderStatus() == 2 || oOrder.getOrderStatus() == 3) {
// // 待发货已发货已完成 订单推送
// pushUpdate.setErpPushStatus(resultVo.getCode() == 0 ? 200 : resultVo.getCode());
//
// } else if (oOrder.getOrderStatus() == 11) {
// pushUpdate.setErpPushStatus(resultVo.getCode() == 0 ? 100 : resultVo.getCode());//推送状态200 订单推送成功 100 取消订单推送成功
// }
// pushUpdate.setErpPushResult(resultVo.getMsg());
// pushUpdate.setErpPushTime(new Date());
// pushUpdate.setUpdateBy("手动推送到ERP");
// pushUpdate.setUpdateTime(new Date());
// pushUpdate.setId(id.toString());
// orderService.updateById(pushUpdate);
// }
// }
//
// return success();
// }
@PostMapping("/create")
public AjaxResult add(@RequestBody OfflineOrderCreateBo order)
{
if(order.getGoodsAmount()==null)return new AjaxResult(1503,"请填写商品价格!");
Long result = orderService.insertOfflineOrder(order,getUsername());
if(result>0) {
logger.info("渠道訂單添加成功");
mqUtils.sendApiMessage(MqMessage.build(EnumShopType.OFFLINE, MqType.ORDER_MESSAGE, order.getOrderNum()));
}
else if(result == -1) return new AjaxResult(501,"订单号已存在!");
else if(result == -2) return new AjaxResult(502,"请添加订单商品!");
else if(result == -3) return new AjaxResult(503,"请完善订单商品明细!");
else if(result == -4) return new AjaxResult(504,"请选择店铺!");
return toAjax(1);
}
/**
* 手动推送到系统
* @param bo
* @return
*/
@PostMapping("/push_oms")
@ResponseBody
public AjaxResult pushOms(@RequestBody OfflineOrderPushBo bo) {
// TODO:需要优化消息格式
if(bo!=null && bo.getIds()!=null) {
for(String id: bo.getIds()) {
mqUtils.sendApiMessage(MqMessage.build(EnumShopType.OFFLINE, MqType.ORDER_MESSAGE, id));
}
}
return success();
}
}

View File

@ -0,0 +1,29 @@
package cn.qihangerp.oms.controller.offline;
import cn.qihangerp.common.PageQuery;
import cn.qihangerp.common.TableDataInfo;
import cn.qihangerp.module.order.service.OfflineRefundService;
import cn.qihangerp.request.RefundSearchRequest;
import cn.qihangerp.security.common.BaseController;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@AllArgsConstructor
@RestController
@RequestMapping("/offline_refund")
public class OfflineRefundController extends BaseController {
private final OfflineRefundService refundService;
/**
* 查询店铺订单列表
*/
@GetMapping("/list")
public TableDataInfo list(RefundSearchRequest bo, PageQuery pageQuery)
{
var pageList = refundService.queryPageList(bo,pageQuery);
return getDataTable(pageList);
}
}

View File

@ -0,0 +1,77 @@
package cn.qihangerp.oms.controller.offline;
import cn.qihangerp.common.AjaxResult;
import cn.qihangerp.common.enums.EnumShopType;
import cn.qihangerp.common.mq.MqMessage;
import cn.qihangerp.common.mq.MqType;
import cn.qihangerp.common.mq.MqUtils;
import cn.qihangerp.module.order.domain.OfflineOrder;
import cn.qihangerp.module.order.domain.bo.OfflineOrderShipBo;
import cn.qihangerp.module.order.domain.bo.OrderShipSendBo;
import cn.qihangerp.module.order.service.OfflineOrderService;
import cn.qihangerp.security.common.BaseController;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.AllArgsConstructor;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
@AllArgsConstructor
@RestController
@RequestMapping("/offline_ship")
public class OfflineShipController extends BaseController {
private final OfflineOrderService orderService;
private final MqUtils mqUtils;
/**
* 手动填写物流单号
* @param bo
* @return
*/
@PostMapping("/order_logistics")
public AjaxResult add(@RequestBody OfflineOrderShipBo bo)
{
int result = orderService.orderLogistics(bo,getUsername());
if(result==-1) return AjaxResult.error("参数错误orderNum不能为空");
else if(result==-2) return AjaxResult.error("参数错误:快递信息不能为空");
else if(result==-3) return AjaxResult.error("参数错误:找不到订单");
else if(result==-4) return AjaxResult.error("数据错误:订单状态不是待发货的状态");
else if(result==-5) return AjaxResult.error("数据错误:订单正在售后中");
return toAjax(1);
}
/**
* 批量发货
* @param bo
* @return
*/
@PostMapping("/order_batch_send")
@ResponseBody
public AjaxResult orderSend(@RequestBody OrderShipSendBo bo) {
// TODO:需要优化消息格式
if(bo!=null && bo.getOrderNums()!=null) {
for(String sn: bo.getOrderNums()) {
List<OfflineOrder> orders = orderService.list(new LambdaQueryWrapper<OfflineOrder>().eq(OfflineOrder::getOrderNum,sn));
if(orders!=null&& orders.size()>0) {
if (orders.get(0).getOrderStatus() == 1 && orders.get(0).getRefundStatus() == 1 && StringUtils.hasText(orders.get(0).getShippingNumber())) {
OfflineOrder update = new OfflineOrder();
update.setId(orders.get(0).getId());
update.setOrderStatus(2);
update.setUpdateTime(new Date());
update.setUpdateBy("批量发货");
update.setShippingTime(new Date());
update.setShippingMan(getUsername());
orderService.updateById(update);
// 通知已发货
mqUtils.sendApiMessage(MqMessage.build(EnumShopType.OFFLINE, MqType.SHIP_SEND_MESSAGE, sn, orders.get(0).getShippingCompany(), orders.get(0).getShippingNumber()));
}
}
}
}
return success();
}
}

View File

@ -38,7 +38,7 @@
import OrderDou from "@/views/dou/order/index"; import OrderDou from "@/views/dou/order/index";
import OrderPdd from "@/views/pdd/order/index"; import OrderPdd from "@/views/pdd/order/index";
import OrderWei from "@/views/wei/order/index"; import OrderWei from "@/views/wei/order/index";
import OrderOffline from "@/views/offline/order/index"; import OrderOffline from "@/views/order/private/index";
import {listPlatform} from "@/api/shop/shop"; import {listPlatform} from "@/api/shop/shop";
export default { export default {
name: "Order", name: "Order",