From ce6fc16f568cc3c396e141f1f9a7e16d3abf802d Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 30 Aug 2022 16:59:55 +0800
Subject: [PATCH] 20220822

---
 src/main/java/cc/mrbird/febs/mall/dto/ApiLeaderRefundOrderDto.java               |    3 
 src/main/resources/templates/febs/views/modules/order/orderRefundList.html       |  203 ++++++++++------------------------------
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java |   14 ++
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java        |   10 ++
 src/main/resources/mapper/modules/MallRefundMapper.xml                           |    9 +
 src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java       |    2 
 src/main/java/cc/mrbird/febs/mall/entity/MallRefundEntity.java                   |   16 +++
 7 files changed, 103 insertions(+), 154 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java
index 18f99d0..0c6c018 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java
@@ -65,7 +65,7 @@
 
 
     /**
-     * 订单多次退款审核
+     * 订单多次退款列表
      *
      * @param mallRefundEntity
      * @param request
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/ApiLeaderRefundOrderDto.java b/src/main/java/cc/mrbird/febs/mall/dto/ApiLeaderRefundOrderDto.java
index a7071dc..8e54c36 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/ApiLeaderRefundOrderDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/ApiLeaderRefundOrderDto.java
@@ -14,4 +14,7 @@
     @ApiModelProperty(value = "订单详情ID", example = "1")
     private Long ItemId;
 
+    @ApiModelProperty(value = "是否同意 1:同意 2:拒绝", example = "1")
+    private Integer agreeState;
+
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallRefundEntity.java b/src/main/java/cc/mrbird/febs/mall/entity/MallRefundEntity.java
index 71dacc7..16e8be2 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallRefundEntity.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallRefundEntity.java
@@ -1,6 +1,7 @@
 package cc.mrbird.febs.mall.entity;
 
 import cc.mrbird.febs.common.entity.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 
@@ -32,4 +33,19 @@
     //退款图片
     private String refundPic;
 
+    @TableField(exist = false)
+    private String orderNo;
+
+    @TableField(exist = false)
+    private String status;
+
+    @TableField(exist = false)
+    private String goodsName;
+
+    @TableField(exist = false)
+    private Integer cnt;
+
+    @TableField(exist = false)
+    private String[] refundPicList;
+
 }
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 3c6de45..0a5bcbf 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
@@ -409,6 +409,16 @@
     public IPage<MallRefundEntity> getOrderRefundListInPage(MallRefundEntity mallRefundEntity, QueryRequest request) {
         Page<MallRefundEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
         IPage<MallRefundEntity> mallRefundEntityIPage = mallRefundMapper.getOrderRefundListInPage(page, mallRefundEntity);
+        List<MallRefundEntity> records = mallRefundEntityIPage.getRecords();
+        if(CollUtil.isNotEmpty(records)){
+            for(MallRefundEntity mallRefundEntityPic : records){
+                String refundPic = mallRefundEntityPic.getRefundPic();
+                if(StrUtil.isNotEmpty(refundPic)){
+                    String[] split = StrUtil.split(refundPic, ",");
+                    mallRefundEntityPic.setRefundPicList(split);
+                }
+            }
+        }
         return mallRefundEntityIPage;
     }
 
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java
index d7c110a..453bf97 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java
@@ -23,6 +23,7 @@
 import cc.mrbird.febs.pay.util.WechatConfigure;
 import cc.mrbird.febs.pay.util.WeixinServiceUtil;
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -284,6 +285,7 @@
         //获取退款订单信息
         Long orderId = apiLeaderRefundOrderDto.getOrderId();
         Long itemId = apiLeaderRefundOrderDto.getItemId();
+
         MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(orderId);
         MallOrderItem mallOrderItem = mallOrderItemMapper.selectById(itemId);
         List<MallRefundEntity> mallRefundEntities = mallRefundMapper.selectByItemIdAndOrderIdAndState(itemId, orderId, 3);
@@ -291,6 +293,17 @@
             return new FebsResponse().fail().message("退款失败,请联系客服人员");
         }
         MallRefundEntity mallRefundEntity = mallRefundEntities.get(0);
+
+        Integer agreeState = apiLeaderRefundOrderDto.getAgreeState() == null? 2:apiLeaderRefundOrderDto.getAgreeState();
+        if(2 == agreeState){
+            //更新订单详情
+            mallOrderItem.setState(1);
+            mallOrderItemMapper.updateById(mallOrderItem);
+            //更新退款订单
+            mallRefundEntity.setState(2);
+            mallRefundEntity.setUpdatedTime(DateUtil.date());
+            mallRefundMapper.updateById(mallRefundEntity);
+        }
         //退款订单编号
         String orderNo = mallOrderInfo.getOrderNo();
         //退款退款编号
@@ -322,6 +335,7 @@
             mallOrderItemMapper.updateById(mallOrderItem);
             //更新退款订单
             mallRefundEntity.setState(1);
+            mallRefundEntity.setUpdatedTime(DateUtil.date());
             mallRefundMapper.updateById(mallRefundEntity);
             mallMoneyFlowService.addMoneyFlow(mallOrderInfo.getMemberId(), refundAmount, MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue());
 
diff --git a/src/main/resources/mapper/modules/MallRefundMapper.xml b/src/main/resources/mapper/modules/MallRefundMapper.xml
index 2de0197..1cfb987 100644
--- a/src/main/resources/mapper/modules/MallRefundMapper.xml
+++ b/src/main/resources/mapper/modules/MallRefundMapper.xml
@@ -20,7 +20,14 @@
     </select>
 
     <select id="getOrderRefundListInPage" resultType="cc.mrbird.febs.mall.entity.MallRefundEntity">
-        select a.* from mall_refund a
+        select a.*,
+               b.order_no orderNo,
+               b.status,
+               c.goods_name goodsName,
+               c.cnt,
+        from mall_refund a
+        inner join mall_order_info b on a.order_id = b.id
+        inner join mall_order_item c on a.item_id = c.id
         <where>
             <if test="record != null" >
                 <if test="record.state!=null and record.state!=''">
diff --git a/src/main/resources/templates/febs/views/modules/order/orderRefundList.html b/src/main/resources/templates/febs/views/modules/order/orderRefundList.html
index ceb8f7a..649b119 100644
--- a/src/main/resources/templates/febs/views/modules/order/orderRefundList.html
+++ b/src/main/resources/templates/febs/views/modules/order/orderRefundList.html
@@ -34,7 +34,7 @@
 <!--                                        </select>-->
 <!--                                    </div>-->
 <!--                                </div>-->
-                            </div>
+<!--                            </div>-->
 
                             <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area">
                                 <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain table-action" id="query">
@@ -47,6 +47,18 @@
                         </div>
                     </form>
                     <table lay-filter="orderRefundTable" lay-data="{id: 'orderRefundTable'}"></table>
+                    <style type="text/css">
+                        .layui-table-cell{
+                            text-align:center;
+                            height: auto;
+                            white-space: nowrap; /*文本不会换行,在同一行显示*/
+                            overflow: hidden; /*超出隐藏*/
+                            text-overflow: ellipsis; /*省略号显示*/
+                        }
+                        .layui-table img{
+                            max-width:100px
+                        }
+                    </style>
                 </div>
             </div>
         </div>
@@ -59,6 +71,16 @@
     </span>
     <a lay-event="edit" shiro:hasPermission="user:update"><i
             class="layui-icon febs-edit-area febs-blue">&#xe7a5;</i></a>
+</script>
+
+<script type="text/html" id="refundPicItem">
+    {{#  if(d.refundPicList == undefined || d.refundPicList == '' || d.refundPicList == null){ }}
+    暂无图片
+    {{#  } else { }}
+    {{# for(var i=0;i < d.refundPicList.length;i++){ }}
+        <img id="refundPic" width='100' style="cursor: pointer;" height='100' src="{{ d.refundPicList[i]}}" />
+    {{# } }}
+    {{#  } }}
 </script>
 <!-- 表格操作栏 end -->
 <script data-th-inline="none" type="text/javascript">
@@ -85,70 +107,16 @@
         table.on('tool(orderRefundTable)', function (obj) {
             var data = obj.data,
                 layEvent = obj.event;
-            // if (layEvent === 'refunding') {
-            //     febs.modal.open( '退款进度', 'modules/order/refunding/' + data.id, {
-            //         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);
-            //     });
-            // }
-            // if (layEvent === 'agreeWithAddress') {
-            //     febs.modal.open('选择退货地址', 'modules/order/withAddress/' + data.id, {
-            //         btn: ['确认', '取消'],
-            //         yes: function (index, layero) {
-            //             $('#address-choose').find('#submit').trigger('click');
-            //         },
-            //         btn2: function () {
-            //             layer.closeAll();
-            //         }
-            //     });
-            // }
-            // if (layEvent === 'disagree') {
-            //     febs.modal.confirm('拒绝', '拒绝此次退款申请?', function () {
-            //         disagreeRefund(data.id);
-            //     });
-            // }
-            // if (layEvent === 'refundConfirm') {
-            //     febs.modal.confirm('退款确认', '确认已退款?', function () {
-            //         refundConfirm(data.id);
-            //     });
-            // }
-            // if (layEvent === 'paymentInfo') {
-            //     febs.modal.open( '收款信息', 'modules/order/refundPayInfo/' + data.id, {
-            //         maxmin: true,
-            //     });
-            // }
+            switch (obj.event) {
+                case 'show_image':
+                    layer.photos({
+                        photos:{"data": data.image_list}
+                        ,anim: 5 //0-6的选择,指定弹出图片动画类型,默认随机(请注意,3.0之前的版本用shift参数)
+                    });
+                    break;
+
+            }
         });
-
-        // function agreeRefund(id) {
-        //     febs.get(ctx + 'admin/order/agreeRefund/' + id, null, function () {
-        //         febs.alert.success('操作成功');
-        //         $query.click();
-        //     });
-        // }
-        //
-        // function disagreeRefund(id) {
-        //     febs.get(ctx + 'admin/order/disagreeRefund/' + id, null, function () {
-        //         febs.alert.success('操作成功');
-        //         $query.click();
-        //     });
-        // }
-        //
-        // function refundConfirm(id) {
-        //     febs.get(ctx + 'admin/order/refundConfirm/' + id, null, function () {
-        //         febs.alert.success('操作成功');
-        //         $query.click();
-        //     });
-        // }
-
         // 查询按钮
         $query.on('click', function () {
             var params = $.extend(getQueryParams(), {field: sortObject.field, order: sortObject.type});
@@ -168,94 +136,25 @@
                 id: 'orderRefundTable',
                 url: ctx + 'admin/order/orderRefundList',
                 cols: [[
-                    {field: 'id', title: '订单编号', minWidth: 150,align:'left'},
-                    // {field: 'buyName', title: '用户名', minWidth: 150,align:'left'},
-                    // {field: 'buyPhone', title: '账号', minWidth: 150,align:'left'},
-                    // {field: 'buyBindPhone', title: '手机号', minWidth: 150,align:'left'},
-                    // {field: 'beforeStatus', title: '发货状态',
-                    //     templet: function (d) {
-                    //         if (d.beforeStatus === 1) {
-                    //             return '<span style="color:red;">待支付</span>'
-                    //         } else if (d.beforeStatus === 2) {
-                    //             return '<span style="color:green;">待发货</span>'
-                    //         }else if (d.beforeStatus === 3) {
-                    //             return '<span style="color:green;">待收货</span>'
-                    //         }else if (d.beforeStatus === 4) {
-                    //             return '<span style="color:green;">已完成</span>'
-                    //         }else if (d.beforeStatus === 5) {
-                    //             return '<span style="color:green;">退款中</span>'
-                    //         }else if (d.beforeStatus === 6) {
-                    //             return '<span style="color:green;">已退款</span>'
-                    //         }else if (d.beforeStatus === 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 '<span">仅退款不退货</span>'
-                    //         } else if (d.type === 2) {
-                    //             return '<span>退款退货</span>'
-                    //         }else{
-                    //             return ''
-                    //         }
-                    //     }, minWidth: 80,align:'center'},
-                    // {field: 'reason', title: '退款原因', minWidth: 150,align:'left'},
-                    // {field: 'status', title: '状态',
-                    //     templet: function (d) {
-                    //         if (d.status === 1) {
-                    //             return '<span style="color:red;">已申请</span>'
-                    //         } else if (d.status === 2) {
-                    //             return '<span>同意退款</span>'
-                    //         }else if (d.status === 3) {
-                    //             return '<span>驳回退款</span>'
-                    //         }else if (d.status === 4) {
-                    //             return '<span>已提交物流信息</span>'
-                    //         }else if (d.status === 5) {
-                    //             return '<span>已退款</span>'
-                    //         }else{
-                    //             return ''
-                    //         }
-                    //     }, minWidth: 80,align:'center'},
-                    // {field: 'addressDetail', title: '收货信息', minWidth: 150,align:'left'},
-                    // {field: 'createdTime', title: '创建时间', minWidth: 150,align:'left'},
-                    // {title: '操作',
-                    //     templet: function (d) {
-                    //         if(d.status === 1){
-                    //             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>'
-                    //                     +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="paymentInfo" 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>'
-                    //                     +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="paymentInfo" 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>'
-                    //                     +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="paymentInfo" 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>'
-                    //                 +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="paymentInfo" 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>'
-                    //                 +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="paymentInfo" shiro:hasPermission="user:update">收款方式</button>'
-                    //         }
-                    //
-                    //     },minWidth: 300,align:'center'}
+                    {field: 'orderNo', title: '订单编号', minWidth: 150,align:'left'},
+                    {field: 'refundNo', title: '退款编号', minWidth: 150,align:'left'},
+                    {field: 'goodsName', title: '商品名称', minWidth: 150,align:'left'},
+                    {field: 'amount', title: '退款金额', minWidth: 150,align:'left'},
+                    {field: 'refundReason', title: '退款原因', minWidth: 150,align:'left'},
+                    {field: 'refundRemark', title: '退款说明', minWidth: 150,align:'left'},
+                    {field: 'refundPicList', title: '退款图片', templet: '#refundPicItem', minWidth: 200,align:'center'},
+                    {field: 'state', title: '退款状态',
+                        templet: function (d) {
+                            if (d.state === 1) {
+                                return '<span>成功</span>'
+                            } else if (d.state === 2) {
+                                return '<span style="color:red;">失败</span>'
+                            }else if (d.state === 3) {
+                                return '<span style="color:green;">退款中</span>'
+                            }else{
+                                return ''
+                            }
+                        }, minWidth: 80,align:'center'},
                 ]]
             });
         }

--
Gitblit v1.9.1