Merge branch 'master' of http://120.27.238.55:7000/r/xc-mall
1 files added
10 files modified
| | |
| | | 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; |
| | |
| | | public class ViewMallOrderController extends BaseController { |
| | | |
| | | private final IAdminMallOrderService adminMallOrderService; |
| | | |
| | | private final MallOrderRefundMapper mallOrderRefundMapper; |
| | | |
| | | public static long idFromMember; |
| | | |
| | |
| | | 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"); |
| | | } |
| | | |
| | | } |
| | |
| | | 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()); |
| | |
| | | import io.swagger.annotations.ApiModel; |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | |
| | | |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date createdTime; |
| | | |
| | | private BigDecimal amount; |
| | | |
| | | private Integer beforeStatus; |
| | | } |
| | |
| | | </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 |
| | |
| | | <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> |
| | |
| | | |
| | | 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 |
| | | }) |
| | | //(下拉框) |
| | | $.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>"); |
| | | } |
| | | 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('获取分类列表失败'); |
| | | } |
| | | layui.use('form', function () { |
| | | var form = layui.form; |
| | | $("#categarySelect").val(mailGoodsDetail.categoryId) |
| | | form.render(); |
| | | }); |
| | | }); |
| | | |
| | | layedit.set({ //设置图片接口 |
| | |
| | | <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> |
| | |
| | | |
| | | 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 |
| | | }) |
| | | |
| | | //(下拉框) |
| | | $.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>"); |
| | | } |
| | | 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('获取分类列表失败'); |
| | | } |
| | | layui.use('form', function () { |
| | | var form = layui.form; |
| | | // $("#categarySelect").val(member.parentId) |
| | | form.render(); |
| | | }); |
| | | }); |
| | | |
| | | //多图片上传 |
| | | upload.render({ |
| | | elem: '#thumbsBanner' |
| | |
| | | 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>'; |
| | |
| | | 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); |
| | |
| | | {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) { |
| | |
| | | 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'} |
New file |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | <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> |
| | |
| | | } |
| | | layui.use('form', function () { |
| | | var form = layui.form; |
| | | $("#categarySelect").val(member.parentId) |
| | | form.render(); |
| | | }); |
| | | }); |
| | |
| | | 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; |