refactor(mall): 确认收货功能
- 修改订单列表中的"修改物流信息"按钮为"确认收货"按钮- 移除与物流相关的信息输入和显示
- 更新订单状态为已发货
- 记录收货时间
| | |
| | | * 订单列表-修改物流编号 |
| | | */ |
| | | @PostMapping("deliverGoodsUpdate") |
| | | @ControllerEndpoint(operation = "订单列表-修改物流编号", exceptionMessage = "操作失败") |
| | | @ControllerEndpoint(operation = "订单列表-确认收货", exceptionMessage = "操作失败") |
| | | public FebsResponse deliverGoodsUpdate(@Valid DeliverGoodsDto deliverGoodsDto) { |
| | | return adminMallOrderService.deliverGoodsUpdate(deliverGoodsDto); |
| | | } |
| | |
| | | // String[] header = {"订单编号", "订单金额", "下单时间", "配送方式", "收货姓名", "收货电话", "收货地址", "商品名称", "订单状态", "物流单号", "物流公司", "物流公司码"}; |
| | | // String[] header = {"订单编号", "订单金额", "下单时间", "配送方式", "收货姓名", "收货电话", "收货地址", "商品详情", "物流单号", "物流公司", "物流公司码"}; |
| | | // String[] header = {"订单编号", "收货姓名", "收货电话", "收货地址", "商品详情", "物流单号", "物流公司", "物流公司码"}; |
| | | String[] header = {"订单编号", "收货姓名", "收货电话", "收货地址", "商品详情", "备注", "物流单号", "物流公司", "物流公司码"}; |
| | | // String[] header = {"订单编号", "收货姓名", "收货电话", "收货地址", "商品详情", "备注", "物流单号", "物流公司", "物流公司码"}; |
| | | String[] header = {"订单编号", "收货姓名", "收货电话", "收货地址", "商品详情", "备注"}; |
| | | orderSheet.setHeaders(header); |
| | | |
| | | QueryRequest request = new QueryRequest(); |
| | |
| | | import cc.mrbird.febs.common.entity.FebsConstant; |
| | | import cc.mrbird.febs.common.utils.FebsUtil; |
| | | import cc.mrbird.febs.common.utils.RedisUtils; |
| | | import cc.mrbird.febs.mall.entity.MallExpressInfo; |
| | | import cc.mrbird.febs.mall.entity.MallOrderRefund; |
| | | import cc.mrbird.febs.mall.mapper.MallExpressInfoMapper; |
| | | import cc.mrbird.febs.mall.mapper.MallInvoiceMapper; |
| | |
| | | @RequiresPermissions("deliverGoods:update") |
| | | public String deliverGoods(@PathVariable long id, Model model) { |
| | | AdminMallOrderVo data = adminMallOrderService.getMallOrderInfoById(id); |
| | | data.setExpressCom("百世快递"); |
| | | MallExpressInfo mallExpressInfo = mallExpressInfoMapper.selectByOrderId(id); |
| | | if(ObjectUtil.isNotEmpty(mallExpressInfo)){ |
| | | data.setExpressNo(mallExpressInfo.getExpressNo()); |
| | | data.setExpressCom(mallExpressInfo.getExpressCom()); |
| | | }else{ |
| | | data.setExpressCom("百世快递"); |
| | | // data.setExpressNo("JT"); |
| | | } |
| | | // data.setExpressCom("百世快递"); |
| | | // MallExpressInfo mallExpressInfo = mallExpressInfoMapper.selectByOrderId(id); |
| | | // if(ObjectUtil.isNotEmpty(mallExpressInfo)){ |
| | | // data.setExpressNo(mallExpressInfo.getExpressNo()); |
| | | // data.setExpressCom(mallExpressInfo.getExpressCom()); |
| | | // }else{ |
| | | // data.setExpressCom("百世快递"); |
| | | //// data.setExpressNo("JT"); |
| | | // } |
| | | model.addAttribute("deliverInfo", data); |
| | | return FebsUtil.view("modules/order/deliverGoods"); |
| | | } |
| | |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | @Slf4j |
| | |
| | | if(2 != deliveryType){ |
| | | return new FebsResponse().fail().message("订单的配送方式不是快递"); |
| | | } |
| | | String expressNo = deliverGoodsDto.getExpressNo(); |
| | | if(StrUtil.isEmpty(expressNo)){ |
| | | return new FebsResponse().fail().message("请输入物流单号"); |
| | | } |
| | | String expressCom = deliverGoodsDto.getExpressCom(); |
| | | if(StrUtil.isEmpty(expressCom)){ |
| | | return new FebsResponse().fail().message("请输入物流公司"); |
| | | } |
| | | MallExpressInfo mallExpressInfo = new MallExpressInfo(); |
| | | mallExpressInfo.setMemberId(mallOrderInfo.getMemberId()); |
| | | mallExpressInfo.setOrderId(mallOrderInfo.getId()); |
| | | mallExpressInfo.setExpressNo(expressNo); |
| | | mallExpressInfo.setExpressCom(expressCom); |
| | | mallExpressInfoMapper.insert(mallExpressInfo); |
| | | // String expressNo = deliverGoodsDto.getExpressNo(); |
| | | // if(StrUtil.isEmpty(expressNo)){ |
| | | // return new FebsResponse().fail().message("请输入物流单号"); |
| | | // } |
| | | // String expressCom = deliverGoodsDto.getExpressCom(); |
| | | // if(StrUtil.isEmpty(expressCom)){ |
| | | // return new FebsResponse().fail().message("请输入物流公司"); |
| | | // } |
| | | // MallExpressInfo mallExpressInfo = new MallExpressInfo(); |
| | | // mallExpressInfo.setMemberId(mallOrderInfo.getMemberId()); |
| | | // mallExpressInfo.setOrderId(mallOrderInfo.getId()); |
| | | // mallExpressInfo.setExpressNo(expressNo); |
| | | // mallExpressInfo.setExpressCom(expressCom); |
| | | // mallExpressInfoMapper.insert(mallExpressInfo); |
| | | |
| | | mallOrderInfoMapper.updateOrderStateAndDeliveryState(mallOrderInfo.getId(), |
| | | OrderStatusEnum.WAIT_FINISH.getValue(), |
| | |
| | | if(2 != deliveryType){ |
| | | return new FebsResponse().fail().message("订单的配送方式不是快递"); |
| | | } |
| | | String expressNo = deliverGoodsDto.getExpressNo(); |
| | | if(StrUtil.isEmpty(expressNo)){ |
| | | return new FebsResponse().fail().message("请输入物流单号"); |
| | | } |
| | | String expressCom = deliverGoodsDto.getExpressCom(); |
| | | if(StrUtil.isEmpty(expressCom)){ |
| | | return new FebsResponse().fail().message("请输入物流公司"); |
| | | } |
| | | MallExpressInfo mallExpressInfo = mallExpressInfoMapper.selectByOrderId(mallOrderInfo.getId()); |
| | | |
| | | if(ObjectUtil.isEmpty(mallExpressInfo)){ |
| | | return new FebsResponse().fail().message("请先发货"); |
| | | } |
| | | mallExpressInfo.setExpressNo(expressNo); |
| | | mallExpressInfo.setExpressCom(expressCom); |
| | | mallExpressInfoMapper.updateById(mallExpressInfo); |
| | | mallOrderInfo.setStatus(OrderStatusEnum.FINISH.getValue()); |
| | | mallOrderInfo.setReceivingTime(new Date()); |
| | | mallOrderInfoMapper.updateById(mallOrderInfo); |
| | | |
| | | return new FebsResponse().success(); |
| | | } |
| | |
| | | autocomplete="off" class="layui-input" readonly> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">物流单号:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="expressNo" lay-verify="required" |
| | | autocomplete="off" class="layui-input" > |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">物流公司:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="expressCom" lay-verify="required" |
| | | autocomplete="off" class="layui-input" > |
| | | </div> |
| | | </div> |
| | | <!-- <div class="layui-form-item">--> |
| | | <!-- <label class="layui-form-label febs-form-item-require">物流单号:</label>--> |
| | | <!-- <div class="layui-input-block">--> |
| | | <!-- <input type="text" name="expressNo" lay-verify="required"--> |
| | | <!-- autocomplete="off" class="layui-input" >--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <!-- <div class="layui-form-item">--> |
| | | <!-- <label class="layui-form-label febs-form-item-require">物流公司:</label>--> |
| | | <!-- <div class="layui-input-block">--> |
| | | <!-- <input type="text" name="expressCom" lay-verify="required"--> |
| | | <!-- autocomplete="off" class="layui-input" >--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <div class="layui-form-item febs-hide"> |
| | | <button class="layui-btn" lay-submit="" lay-filter="deliver-update-form-submit" id="submit"></button> |
| | | <button class="layui-btn" lay-submit="" lay-filter="deliverInfo-update-form-submit" id="deliverInfoSubmit"></button> |
| | |
| | | <textarea id="lay_edit" lay-verify="orderItems" name = "orderItems" class="layui-textarea" readonly></textarea> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">物流单号:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="expressNo" |
| | | autocomplete="off" class="layui-input" readonly> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">物流公司:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="expressCom" |
| | | autocomplete="off" class="layui-input" readonly > |
| | | </div> |
| | | </div> |
| | | <!-- <div class="layui-form-item">--> |
| | | <!-- <label class="layui-form-label">物流单号:</label>--> |
| | | <!-- <div class="layui-input-block">--> |
| | | <!-- <input type="text" name="expressNo"--> |
| | | <!-- autocomplete="off" class="layui-input" readonly>--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <!-- <div class="layui-form-item">--> |
| | | <!-- <label class="layui-form-label">物流公司:</label>--> |
| | | <!-- <div class="layui-input-block">--> |
| | | <!-- <input type="text" name="expressCom"--> |
| | | <!-- autocomplete="off" class="layui-input" readonly >--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | </form> |
| | | </div> |
| | | |
| | |
| | | "orderItems": orderDetail.orderItems, |
| | | "addressArea": orderDetail.addressArea, |
| | | "addressInfo": orderDetail.addressInfo, |
| | | "expressNo": orderDetail.expressNo, |
| | | "expressCom": orderDetail.expressCom, |
| | | // "expressNo": orderDetail.expressNo, |
| | | // "expressCom": orderDetail.expressCom, |
| | | // "payImage": orderDetail.payImage, |
| | | // "payOrderNo": orderDetail.payOrderNo, |
| | | "address": orderDetail.address |
| | |
| | | <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="printSelect">自定义打印</button> |
| | | <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="goodsStatistics">统计商品份数</button> |
| | | <!-- <button id="printSelect" type="button" class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain">自定义打印</button>--> |
| | | <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="exportDeliverTwo">导出未发货订单(快递)</button> |
| | | <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" id="importDeliver" lay-event="importDeliver">导入发货</button> |
| | | <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="exportDeliverTwo">导出未发货订单</button> |
| | | <!-- <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" id="importDeliver" lay-event="importDeliver">导入发货</button>--> |
| | | </div> |
| | | </script> |
| | | <!-- 表格操作栏 end --> |
| | |
| | | }); |
| | | } |
| | | if (layEvent === 'updateDeliver') { |
| | | febs.modal.open('修改物流信息', 'modules/order/deliverGoods/' + data.id, { |
| | | febs.modal.open('确认收货', 'modules/order/deliverGoods/' + data.id, { |
| | | btn: ['确认','取消'], |
| | | yes: function (index, layero) { |
| | | $('#deliver-update').find('#deliverInfoSubmit').trigger('click'); |
| | |
| | | {field: 'orderNo', title: '订单编号', minWidth: 200,align:'left' ,totalRowText:"合计"}, |
| | | {field: 'memberName', title: '购买人', minWidth: 100,align:'left'}, |
| | | {field: 'memberPhone', title: '联系方式', minWidth: 120,align:'left'}, |
| | | {field: 'refererName', title: '推荐人', minWidth: 100,align:'left'}, |
| | | // {field: 'refererName', title: '推荐人', minWidth: 100,align:'left'}, |
| | | {field: 'goodsName', title: '商品', minWidth: 160,align:'left'}, |
| | | {field: 'remark', title: '备注', minWidth: 160,align:'left'}, |
| | | {field: 'goodsAmount', title: '价格', minWidth: 80,align:'left', totalRow:true}, |
| | | {field: 'carriage', title: '邮费', minWidth: 80,align:'left', totalRow:true}, |
| | | // {field: 'carriage', title: '邮费', minWidth: 80,align:'left', totalRow:true}, |
| | | {field: 'amount', title: '总金额', minWidth: 100,align:'left', totalRow:true}, |
| | | {field: 'orderTime', title: '下单时间', minWidth: 200,align:'left'}, |
| | | {field: 'status', title: '状态', |
| | |
| | | // return '' |
| | | // } |
| | | // }, minWidth: 80,align:'center'}, |
| | | {field: 'payMethod', title: '支付方式', minWidth: 100,align:'left'}, |
| | | // {field: 'payMethod', title: '支付方式', minWidth: 100,align:'left'}, |
| | | {field: 'payTime', title: '支付时间', minWidth: 120,align:'left'}, |
| | | // {field: 'wxOrderNo', title: '支付订单号', minWidth: 120,align:'left'}, |
| | | {title: '操作', |
| | |
| | | +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="deliverGoods" shiro:hasPermission="user:update">发货</button>' |
| | | }else if(d.status === 3){ |
| | | return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="seeOrder" shiro:hasPermission="user:update">详情</button>' |
| | | +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="updateDeliver" shiro:hasPermission="user:update">修改物流信息</button>' |
| | | +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="updateDeliver" shiro:hasPermission="user:update">确认收货</button>' |
| | | }else{ |
| | | return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="seeOrder" shiro:hasPermission="user:update">详情</button>' |
| | | } |