src/main/java/cc/mrbird/febs/mall/controller/ViewMallOrderController.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/vo/AdminMallOrderRefundVo.java | ●●●●● patch | view | raw | blame | history | |
src/main/resources/mapper/modules/MallOrderRefundMapper.xml | ●●●●● patch | view | raw | blame | history | |
src/main/resources/templates/febs/views/modules/order/refundList.html | ●●●●● patch | view | raw | blame | history | |
src/main/resources/templates/febs/views/modules/order/refundOrderDetail.html | ●●●●● patch | view | raw | blame | history |
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"); } } 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()); 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; } 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 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'} src/main/resources/templates/febs/views/modules/order/refundOrderDetail.html
New file @@ -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>