From c2af97c87774e9e675381106cac483f0e3d8f3f7 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Sun, 26 Sep 2021 16:47:10 +0800 Subject: [PATCH] Merge branch 'master' of http://120.27.238.55:7000/r/xc-mall --- src/main/java/cc/mrbird/febs/mall/controller/ViewMallOrderController.java | 20 +++ src/main/resources/templates/febs/views/modules/order/refundOrderDetail.html | 128 +++++++++++++++++++++ src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html | 44 ++----- src/main/resources/templates/febs/views/modules/product/categoryUpdate.html | 7 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java | 18 ++ src/main/java/cc/mrbird/febs/mall/vo/AdminMallOrderRefundVo.java | 5 src/main/resources/templates/febs/views/modules/goods/detailGoods.html | 40 ++---- src/main/resources/templates/febs/views/modules/order/refundList.html | 31 +++++ src/main/resources/templates/febs/views/modules/order/withAddress.html | 3 src/main/resources/templates/febs/views/modules/order/orderList.html | 8 src/main/resources/mapper/modules/MallOrderRefundMapper.xml | 2 11 files changed, 239 insertions(+), 67 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallOrderController.java b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallOrderController.java index 86fe6b0..f631e57 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallOrderController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallOrderController.java @@ -3,6 +3,8 @@ import cc.mrbird.febs.common.controller.BaseController; import cc.mrbird.febs.common.entity.FebsConstant; import cc.mrbird.febs.common.utils.FebsUtil; +import cc.mrbird.febs.mall.entity.MallOrderRefund; +import cc.mrbird.febs.mall.mapper.MallOrderRefundMapper; import cc.mrbird.febs.mall.service.IAdminMallOrderService; import cc.mrbird.febs.mall.vo.*; import lombok.RequiredArgsConstructor; @@ -19,6 +21,8 @@ public class ViewMallOrderController extends BaseController { private final IAdminMallOrderService adminMallOrderService; + + private final MallOrderRefundMapper mallOrderRefundMapper; public static long idFromMember; @@ -161,4 +165,20 @@ return FebsUtil.view("modules/order/payMethodEdit"); } + /** + * 退款记录-订单详情 + * @param id + * @param model + * @return + */ + @GetMapping("refundOrderDetail/{id}") + @RequiresPermissions("refundOrderDetail:view") + public String refundOrderDetail(@PathVariable long id, Model model) { + MallOrderRefund mallOrderRefund = mallOrderRefundMapper.selectById(id); + Long orderId = mallOrderRefund.getOrderId(); + AdminOrderDetailVo data = adminMallOrderService.getMallOrderDetailById(orderId); + model.addAttribute("refundOrderDetail", data); + return FebsUtil.view("modules/order/refundOrderDetail"); + } + } diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java index 1cfe28a..c184959 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java @@ -131,9 +131,25 @@ if(status != 1){ return new FebsResponse().fail().message("申请记录不是已申请状态,请刷新页面"); } - mallOrderRefund.setStatus(2); + mallOrderRefund.setStatus(5); mallOrderRefundMapper.updateById(mallOrderRefund); + MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(mallOrderRefund.getOrderId()); + mallOrderInfo.setStatus(6); + mallOrderInfoMapper.updateById(mallOrderInfo); + + if(!"微信支付".equals(mallOrderInfo.getPayMethod()) && !"支付宝支付".equals(mallOrderInfo.getPayMethod())){ + //用户钱包增加对应的余额 + iApiMallMemberWalletService.addBalance(mallOrderInfo.getAmount(),mallOrderInfo.getMemberId()); + //新增一条资金流水 + MallMoneyFlow mallMoneyFlow = new MallMoneyFlow(); + mallMoneyFlow.setMemberId(mallOrderRefund.getMemberId()); + mallMoneyFlow.setOrderNo(mallOrderInfo.getOrderNo()); + mallMoneyFlow.setType(4); + mallMoneyFlow.setAmount(mallOrderInfo.getAmount()); + mallMoneyFlowMapper.insert(mallMoneyFlow); + } + MallOrderRefundOperation mallOrderRefundOperation = new MallOrderRefundOperation(); mallOrderRefundOperation.setRefundId(mallOrderRefund.getId()); mallOrderRefundOperation.setOrderId(mallOrderRefund.getOrderId()); diff --git a/src/main/java/cc/mrbird/febs/mall/vo/AdminMallOrderRefundVo.java b/src/main/java/cc/mrbird/febs/mall/vo/AdminMallOrderRefundVo.java index 18be1e5..a8fd141 100644 --- a/src/main/java/cc/mrbird/febs/mall/vo/AdminMallOrderRefundVo.java +++ b/src/main/java/cc/mrbird/febs/mall/vo/AdminMallOrderRefundVo.java @@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModel; import lombok.Data; +import java.math.BigDecimal; import java.util.Date; @Data @@ -44,4 +45,8 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createdTime; + + private BigDecimal amount; + + private Integer beforeStatus; } diff --git a/src/main/resources/mapper/modules/MallOrderRefundMapper.xml b/src/main/resources/mapper/modules/MallOrderRefundMapper.xml index 8156a21..cc6ebec 100644 --- a/src/main/resources/mapper/modules/MallOrderRefundMapper.xml +++ b/src/main/resources/mapper/modules/MallOrderRefundMapper.xml @@ -7,7 +7,7 @@ </select> <select id="selectRefundListInPage" resultType="cc.mrbird.febs.mall.vo.AdminMallOrderRefundVo"> - select a.*,b.name buyName ,b.phone buyPhone,c.order_no,CONCAT(a.name,a.phone,a.address) addressDetail + select a.*,b.name buyName ,b.phone buyPhone,c.order_no,c.amount,CONCAT(a.name,a.phone,a.address) addressDetail from mall_order_refund a left join mall_member b on b.id = a.member_id diff --git a/src/main/resources/templates/febs/views/modules/goods/detailGoods.html b/src/main/resources/templates/febs/views/modules/goods/detailGoods.html index 52640f8..2e55f91 100644 --- a/src/main/resources/templates/febs/views/modules/goods/detailGoods.html +++ b/src/main/resources/templates/febs/views/modules/goods/detailGoods.html @@ -43,11 +43,8 @@ <div class="layui-col-lg6"> <label class="layui-form-label febs-form-item-require">所属分类:</label> <div class="layui-input-block"> - <select name="categoryId" - lay-verify="required" - xm-select-direction="down" - xm-select="user-add-goods" - xm-select-skin="default"> + <select name="parentId" class="categary-update-category" id="categarySelect" readonly> + <option value="">请选择</option> </select> </div> </div> @@ -131,30 +128,17 @@ form.render(); - formSelects.config('user-add-goods', { - searchUrl: ctx + 'admin/goodsCategory/categorys', - response: { - statusCode: 200 - }, - beforeSuccess: function (id, url, searchVal, result) { - var data = result.data; - var tranData = []; - for (var i = 0; i < data.length; i++) { - tranData.push({ - name: data[i].name, - value: data[i].id - }) - } - result.data = tranData; - return result; - }, - success: function () { - // formSelects.value('user-add-goods', result.id); - }, - error: function (id, url, searchVal, err) { - console.error(err); - febs.alert.error('获取分类列表失败'); + //(下拉框) + $.get(ctx + 'admin/goodsCategory/categorys/tree', function (data) { + for (var k in data) + { + $(".categary-update-category").append("<option value='" + data[k].parentId + "'>" + data[k].name + "</option>"); } + layui.use('form', function () { + var form = layui.form; + $("#categarySelect").val(mailGoodsDetail.categoryId) + form.render(); + }); }); layedit.set({ //设置图片接口 diff --git a/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html b/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html index 029250f..5a414a2 100644 --- a/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html +++ b/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html @@ -23,12 +23,8 @@ <div class="layui-col-lg6"> <label class="layui-form-label febs-form-item-require">所属分类:</label> <div class="layui-input-block"> - <select name="categoryId" - value="categoryId" - lay-verify="required" - xm-select-direction="down" - xm-select="user-add-goods" - xm-select-skin="default"> + <select name="parentId" class="categary-update-category" > + <option value="">请选择</option> </select> </div> </div> @@ -158,32 +154,20 @@ formSelects.render(); - formSelects.config('user-add-goods', { - searchUrl: ctx + 'admin/goodsCategory/categorys', - response: { - statusCode: 200 - }, - beforeSuccess: function (id, url, searchVal, result) { - var data = result.data; - var tranData = []; - for (var i = 0; i < data.length; i++) { - tranData.push({ - name: data[i].name, - value: data[i].id - }) - } - result.data = tranData; - console.log(result); - return result; - }, - success: function () { - formSelects.value('user-add-goods', result.id); - }, - error: function (id, url, searchVal, err) { - console.error(err); - febs.alert.error('获取分类列表失败'); + + //(下拉框) + $.get(ctx + 'admin/goodsCategory/categorys/tree', function (data) { + for (var k in data) + { + $(".categary-update-category").append("<option value='" + data[k].parentId + "'>" + data[k].name + "</option>"); } + layui.use('form', function () { + var form = layui.form; + // $("#categarySelect").val(member.parentId) + form.render(); + }); }); + //多图片上传 upload.render({ elem: '#thumbsBanner' diff --git a/src/main/resources/templates/febs/views/modules/order/orderList.html b/src/main/resources/templates/febs/views/modules/order/orderList.html index 9e76b4a..c7d2e94 100644 --- a/src/main/resources/templates/febs/views/modules/order/orderList.html +++ b/src/main/resources/templates/febs/views/modules/order/orderList.html @@ -172,14 +172,14 @@ id: 'orderTable', url: ctx + 'admin/order/orderList', cols: [[ - {field: 'orderNo', title: '订单编号', minWidth: 120,align:'left'}, + {field: 'orderNo', title: '订单编号', minWidth: 200,align:'left'}, {field: 'memberName', title: '购买人', minWidth: 120,align:'left'}, {field: 'memberPhone', title: '联系方式', minWidth: 120,align:'left'}, {field: 'amount', title: '订单金额', minWidth: 120,align:'left'}, - {field: 'orderTime', title: '下单时间', minWidth: 120,align:'left'}, + {field: 'orderTime', title: '下单时间', minWidth: 200,align:'left'}, {field: 'payMethod', title: '支付方式', minWidth: 120,align:'left'}, - {field: 'payTime', title: '支付时间', minWidth: 120,align:'left'}, - {field: 'payOrderNo', title: '支付订单号', minWidth: 120,align:'left'}, + {field: 'payTime', title: '支付时间', minWidth: 200,align:'left'}, + {field: 'payOrderNo', title: '支付订单号', minWidth: 200,align:'left'}, {field: 'payImage', title: '支付凭证', templet: function (d) { return '<a lay-event="seePayImage"><img id="seePayImage'+d.id+'" src="'+d.payImage+'" alt=""></a>'; diff --git a/src/main/resources/templates/febs/views/modules/order/refundList.html b/src/main/resources/templates/febs/views/modules/order/refundList.html index 1a1e006..1692e17 100644 --- a/src/main/resources/templates/febs/views/modules/order/refundList.html +++ b/src/main/resources/templates/febs/views/modules/order/refundList.html @@ -90,6 +90,11 @@ maxmin: true, }); } + if (layEvent === 'refundOrderDetail') { + febs.modal.open( '订单详情', 'modules/order/refundOrderDetail/' + data.id, { + maxmin: true, + }); + } if (layEvent === 'agree') { febs.modal.confirm('同意', '同意此次退款申请?', function () { agreeRefund(data.id); @@ -161,6 +166,27 @@ {field: 'orderNo', title: '订单编号', minWidth: 150,align:'left'}, {field: 'buyName', title: '用户名', minWidth: 150,align:'left'}, {field: 'buyPhone', title: '电话', minWidth: 150,align:'left'}, + {field: 'beforeStatus', title: '发货状态', + templet: function (d) { + if (d.status === 1) { + return '<span style="color:red;">待支付</span>' + } else if (d.status === 2) { + return '<span style="color:green;">待发货</span>' + }else if (d.status === 3) { + return '<span style="color:green;">待收货</span>' + }else if (d.status === 4) { + return '<span style="color:green;">已完成</span>' + }else if (d.status === 5) { + return '<span style="color:green;">退款中</span>' + }else if (d.status === 6) { + return '<span style="color:green;">已退款</span>' + }else if (d.status === 7) { + return '<span style="color:green;">已取消</span>' + }else{ + return '' + } + }, minWidth: 80,align:'center'}, + {field: 'amount', title: '退款金额', minWidth: 150,align:'left'}, {field: 'type', title: '退款类型', templet: function (d) { if (d.type === 1) { @@ -197,20 +223,25 @@ return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="agree" shiro:hasPermission="user:update">同意</button>' +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="disagree" shiro:hasPermission="user:update">拒绝</button>' +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="refunding" shiro:hasPermission="user:update">退款进度</button>' + +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="refundOrderDetail" shiro:hasPermission="user:update">订单详情</button>' }else if(d.type === 2){ return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="agreeWithAddress" shiro:hasPermission="user:update">同意</button>' +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="disagree" shiro:hasPermission="user:update">拒绝</button>' +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="refunding" shiro:hasPermission="user:update">退款进度</button>' + +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="refundOrderDetail" shiro:hasPermission="user:update">订单详情</button>' }else{ return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="agree" shiro:hasPermission="user:update">同意</button>' +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="disagree" shiro:hasPermission="user:update">拒绝</button>' +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="refunding" shiro:hasPermission="user:update">退款进度</button>' + +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="refundOrderDetail" shiro:hasPermission="user:update">订单详情</button>' } }else if(d.status === 4){ return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="refunding" shiro:hasPermission="user:update">退款进度</button>' +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="refundConfirm" shiro:hasPermission="user:update">退款确认</button>' + +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="refundOrderDetail" shiro:hasPermission="user:update">订单详情</button>' }else{ return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="refunding" shiro:hasPermission="user:update">退款进度</button>' + +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="refundOrderDetail" shiro:hasPermission="user:update">订单详情</button>' } },minWidth: 300,align:'center'} diff --git a/src/main/resources/templates/febs/views/modules/order/refundOrderDetail.html b/src/main/resources/templates/febs/views/modules/order/refundOrderDetail.html new file mode 100644 index 0000000..ed50d43 --- /dev/null +++ b/src/main/resources/templates/febs/views/modules/order/refundOrderDetail.html @@ -0,0 +1,128 @@ +<style> + #refundOrderDetail-info { + padding: 20px 25px 25px 0; + } + + #refundOrderDetail-info .layui-treeSelect .ztree li a, .ztree li span { + margin: 0 0 2px 3px !important; + } + #refundOrderDetail-info #data-permission-tree-block { + border: 1px solid #eee; + border-radius: 2px; + padding: 3px 0; + } + #refundOrderDetail-info .layui-treeSelect .ztree li span.button.switch { + top: 1px; + left: 3px; + } + +</style> +<div class="layui-fluid" id="refundOrderDetail-info"> + <form class="layui-form" action="" lay-filter="refundOrderDetail-info-form"> + <div class="layui-form-item febs-hide"> + <label class="layui-form-label febs-form-item-require">id:</label> + <div class="layui-input-block"> + <input type="text" name="id"> + </div> + </div> + <div class="layui-row layui-col-space10 layui-form-item"> + <div class="layui-col-lg6"> + <label class="layui-form-label">收货人:</label> + <div class="layui-input-block"> + <input type="text" name="name" lay-verify="required" placeholder="" autocomplete="off" class="layui-input" readonly> + </div> + </div> + <div class="layui-col-lg6"> + <label class="layui-form-label">联系方式:</label> + <div class="layui-input-block"> + <input type="text" name="phone" lay-verify="required" placeholder="" autocomplete="off" class="layui-input" readonly> + </div> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">地址:</label> + <div class="layui-input-block"> + <input type="text" name="address" + 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="payOrderNo" + autocomplete="off" class="layui-input" readonly> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">支付凭证:</label> + <div class="layui-input-block"> + <img alt="支付凭证" data-th-src="${refundOrderDetail.payImage}" style="width: 200px"> + </div> + </div> + + <div class="layui-row layui-col-space10 layui-form-item"> + <div class="layui-col-lg6"> + <label class="layui-form-label">总金额:</label> + <div class="layui-input-block"> + <input type="text" name="amount" lay-verify="required" placeholder="" autocomplete="off" class="layui-input" readonly> + </div> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">订单明细:</label> + <div class="layui-input-block"> + <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> + </form> +</div> + +<script data-th-inline="javascript"> + layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree'], function () { + var $ = layui.$, + febs = layui.febs, + layer = layui.layer, + formSelects = layui.formSelects, + treeSelect = layui.treeSelect, + form = layui.form, + eleTree = layui.eleTree, + refundOrderDetail = [[${refundOrderDetail}]], + $view = $('#refundOrderDetail-info'), + validate = layui.validate, + _deptTree; + + form.render(); + + initUserValue(); + + function initUserValue() { + form.val("refundOrderDetail-info-form", { + "id": refundOrderDetail.id, + "name": refundOrderDetail.name, + "phone": refundOrderDetail.phone, + "amount": refundOrderDetail.amount, + "orderItems": refundOrderDetail.orderItems, + "expressNo": refundOrderDetail.expressNo, + "expressCom": refundOrderDetail.expressCom, + "payImage": refundOrderDetail.payImage, + "payOrderNo": refundOrderDetail.payOrderNo, + "address": refundOrderDetail.address + }); + } + + }); +</script> \ No newline at end of file diff --git a/src/main/resources/templates/febs/views/modules/order/withAddress.html b/src/main/resources/templates/febs/views/modules/order/withAddress.html index b8cfc79..4ace8f3 100644 --- a/src/main/resources/templates/febs/views/modules/order/withAddress.html +++ b/src/main/resources/templates/febs/views/modules/order/withAddress.html @@ -35,6 +35,9 @@ </div> </div> </div> + <div class="layui-form-item"> + <div style="text-align:center;color: red">提示:退货地址可到【退货地址管理】里添加/编辑</div> + </div> <div class="layui-form-item febs-hide"> <button class="layui-btn" lay-submit="" lay-filter="address-choose-form-submit" id="submit"></button> </div> diff --git a/src/main/resources/templates/febs/views/modules/product/categoryUpdate.html b/src/main/resources/templates/febs/views/modules/product/categoryUpdate.html index fba11ee..cd8573b 100644 --- a/src/main/resources/templates/febs/views/modules/product/categoryUpdate.html +++ b/src/main/resources/templates/febs/views/modules/product/categoryUpdate.html @@ -36,8 +36,8 @@ <div class="layui-form-item"> <label class="layui-form-label">父类:</label> <div class="layui-input-inline"> - <select name="parentId" class="categary-update-category"> - <option value="'+[[${member}]].parentId+'">请选择</option> + <select name="parentId" class="categary-update-category" id="categarySelect"> + <option value="">请选择</option> </select> </div> </div> @@ -93,6 +93,7 @@ } layui.use('form', function () { var form = layui.form; + $("#categarySelect").val(member.parentId) form.render(); }); }); @@ -135,7 +136,7 @@ form.on('submit(categary-update-form-submit)', function (data) { febs.post(ctx + 'admin/goodsCategory/updateCategory', data.field, function () { layer.closeAll(); - febs.alert.success('新增成功'); + febs.alert.success('操作成功'); $('#febs-user').find('#reset').click(); }); return false; -- Gitblit v1.9.1