From 759ea84461a2858c9ff552de3622dea2557e32a9 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 24 Sep 2021 11:11:52 +0800
Subject: [PATCH] Merge branch 'master' of http://120.27.238.55:7000/r/xc-mall

---
 src/main/java/cc/mrbird/febs/mall/mapper/MallOrderRefundOperationMapper.java |    8 +
 src/main/java/cc/mrbird/febs/mall/controller/ViewMallOrderController.java    |   14 ++
 src/main/resources/templates/febs/views/modules/order/refunding.html         |   54 ++++++++++
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java    |   60 +++++++++--
 src/main/resources/mapper/modules/MallOrderRefundOperationMapper.xml         |    5 +
 src/main/resources/templates/febs/views/modules/order/refundList.html        |   62 +++++++-----
 src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java   |   47 ++++++++-
 src/main/java/cc/mrbird/febs/mall/vo/AdminMallOrderRefundOperationVo.java    |   20 ++++
 src/main/java/cc/mrbird/febs/mall/service/IAdminMallOrderService.java        |   12 +
 9 files changed, 236 insertions(+), 46 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 f8f77ce..3495527 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java
@@ -8,17 +8,16 @@
 import cc.mrbird.febs.mall.dto.MallOrderInfoDto;
 import cc.mrbird.febs.mall.dto.MallOrderRefundDto;
 import cc.mrbird.febs.mall.entity.*;
+import cc.mrbird.febs.mall.mapper.MallOrderRefundOperationMapper;
 import cc.mrbird.febs.mall.service.IAdminMallGoodsService;
 import cc.mrbird.febs.mall.service.IAdminMallOrderService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
 import java.util.Map;
 
 @Slf4j
@@ -52,7 +51,7 @@
     }
 
     /**
-     * 订单退款列表
+     * 订单退款-列表
      * @param mallOrderRefundDto
      * @param request
      * @return
@@ -63,6 +62,44 @@
         return new FebsResponse().success().data(data);
     }
 
+    /**
+     * 订单退款-详情
+     */
+    @GetMapping("/seeRefund")
+    public FebsResponse seeRefund(QueryRequest request, MallOrderRefund mallOrderRefund,Integer parentId) {
+        if(parentId==null){
+            ViewMallOrderController.idFromRefund=0;
+        }
+        mallOrderRefund.setId(ViewMallOrderController.idFromRefund);
+        Map<String, Object> dataTable = getDataTable(adminMallOrderService.seeRefund(request, mallOrderRefund));
+        return new FebsResponse().success().data(dataTable);
+    }
+
+    /**
+     * 订单退款-同意
+     * @param id
+     * @return
+     */
+    @GetMapping("agreeRefund/{id}")
+    @ControllerEndpoint(operation = "订单退款-同意", exceptionMessage = "操作失败")
+    public FebsResponse agreeRefund(@NotNull(message = "{required}") @PathVariable Long id) {
+        return adminMallOrderService.agreeRefund(id);
+    }
+
+    /**
+     * 订单退款-拒绝
+     * @param id
+     * @return
+     */
+    @GetMapping("disagreeRefund/{id}")
+    @ControllerEndpoint(operation = "订单退款-拒绝", exceptionMessage = "操作失败")
+    public FebsResponse disagreeRefund(@NotNull(message = "{required}") @PathVariable Long id) {
+        return adminMallOrderService.disagreeRefund(id);
+    }
+
+
+
+
 
 
 
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 edfabe5..76722b5 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallOrderController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallOrderController.java
@@ -25,6 +25,8 @@
 
     public static long idFromMember;
 
+    public static long idFromRefund;
+
     /**
      * 订单列表
      * @return
@@ -74,4 +76,16 @@
         return FebsUtil.view("modules/order/refundList");
     }
 
+    /**
+     * 退款详情
+      * @param id
+     * @param model
+     * @return
+     */
+    @GetMapping("seeRefund/{id}")
+    public String seeReceiveInfo(@PathVariable long id, Model model) {
+        idFromRefund = id;
+        return FebsUtil.view("modules/order/Refunding");
+    }
+
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderRefundOperationMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderRefundOperationMapper.java
index 8ce4622..771d3c4 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderRefundOperationMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderRefundOperationMapper.java
@@ -1,7 +1,15 @@
 package cc.mrbird.febs.mall.mapper;
 
+import cc.mrbird.febs.mall.entity.MallOrderRefund;
 import cc.mrbird.febs.mall.entity.MallOrderRefundOperation;
+import cc.mrbird.febs.mall.vo.AdminMallOrderRefundOperationVo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Param;
 
 public interface MallOrderRefundOperationMapper extends BaseMapper<MallOrderRefundOperation> {
+
+    IPage<AdminMallOrderRefundOperationVo> selectRefundOperationInPage(Page<AdminMallOrderRefundOperationVo> page, @Param("record") MallOrderRefund mallOrderRefund);
+
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallOrderService.java b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallOrderService.java
index e2c1140..09fced6 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallOrderService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallOrderService.java
@@ -6,10 +6,8 @@
 import cc.mrbird.febs.mall.dto.MallOrderInfoDto;
 import cc.mrbird.febs.mall.dto.MallOrderRefundDto;
 import cc.mrbird.febs.mall.entity.MallOrderInfo;
-import cc.mrbird.febs.mall.vo.AdminMallOrderInfoVo;
-import cc.mrbird.febs.mall.vo.AdminMallOrderRefundVo;
-import cc.mrbird.febs.mall.vo.AdminMallOrderVo;
-import cc.mrbird.febs.mall.vo.AdminOrderDetailVo;
+import cc.mrbird.febs.mall.entity.MallOrderRefund;
+import cc.mrbird.febs.mall.vo.*;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 
@@ -24,4 +22,10 @@
     AdminOrderDetailVo getMallOrderDetailById(long id);
 
     IPage<AdminMallOrderRefundVo> getRefundListInPage(MallOrderRefundDto mallOrderRefundDto, QueryRequest request);
+
+    IPage<AdminMallOrderRefundOperationVo> seeRefund(QueryRequest request, MallOrderRefund mallOrderRefund);
+
+    FebsResponse agreeRefund(Long id);
+
+    FebsResponse disagreeRefund(Long id);
 }
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 27f02ca..b862a1a 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
@@ -5,19 +5,10 @@
 import cc.mrbird.febs.mall.dto.DeliverGoodsDto;
 import cc.mrbird.febs.mall.dto.MallOrderInfoDto;
 import cc.mrbird.febs.mall.dto.MallOrderRefundDto;
-import cc.mrbird.febs.mall.entity.MallExpressInfo;
-import cc.mrbird.febs.mall.entity.MallOrderInfo;
-import cc.mrbird.febs.mall.entity.MallOrderItem;
-import cc.mrbird.febs.mall.entity.MallOrderRefund;
-import cc.mrbird.febs.mall.mapper.MallExpressInfoMapper;
-import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper;
-import cc.mrbird.febs.mall.mapper.MallOrderItemMapper;
-import cc.mrbird.febs.mall.mapper.MallOrderRefundMapper;
+import cc.mrbird.febs.mall.entity.*;
+import cc.mrbird.febs.mall.mapper.*;
 import cc.mrbird.febs.mall.service.IAdminMallOrderService;
-import cc.mrbird.febs.mall.vo.AdminMallOrderInfoVo;
-import cc.mrbird.febs.mall.vo.AdminMallOrderRefundVo;
-import cc.mrbird.febs.mall.vo.AdminMallOrderVo;
-import cc.mrbird.febs.mall.vo.AdminOrderDetailVo;
+import cc.mrbird.febs.mall.vo.*;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
@@ -42,6 +33,8 @@
     private final MallOrderItemMapper mallOrderItemMapper;
 
     private final MallOrderRefundMapper mallOrderRefundMapper;
+
+    private final MallOrderRefundOperationMapper mallOrderRefundOperationMapper;
 
     @Override
     public IPage<AdminMallOrderInfoVo> getOrderListInPage(MallOrderInfoDto mallOrderInfo, QueryRequest request) {
@@ -113,5 +106,48 @@
         return adminMallOrderRefundVos;
     }
 
+    @Override
+    public IPage<AdminMallOrderRefundOperationVo> seeRefund(QueryRequest request, MallOrderRefund mallOrderRefund) {
+        Page<AdminMallOrderRefundOperationVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+        IPage<AdminMallOrderRefundOperationVo> adminMallOrderRefundOperationVos = mallOrderRefundOperationMapper.selectRefundOperationInPage(page, mallOrderRefund);
+        return adminMallOrderRefundOperationVos;
+    }
+
+    @Override
+    public FebsResponse agreeRefund(Long id) {
+        MallOrderRefund mallOrderRefund = mallOrderRefundMapper.selectById(id);
+        if(ObjectUtil.isEmpty(mallOrderRefund)){
+            return new FebsResponse().fail().message("系统繁忙,请刷新重试");
+        }
+        mallOrderRefund.setStatus(2);
+        mallOrderRefundMapper.updateById(mallOrderRefund);
+
+        MallOrderRefundOperation mallOrderRefundOperation = new MallOrderRefundOperation();
+        mallOrderRefundOperation.setRefundId(mallOrderRefund.getId());
+        mallOrderRefundOperation.setOrderId(mallOrderRefund.getOrderId());
+        mallOrderRefundOperation.setContent("已同意退款申请");
+        mallOrderRefundOperationMapper.insert(mallOrderRefundOperation);
+
+        return new FebsResponse().success();
+    }
+
+    @Override
+    public FebsResponse disagreeRefund(Long id) {
+        MallOrderRefund mallOrderRefund = mallOrderRefundMapper.selectById(id);
+        if(ObjectUtil.isEmpty(mallOrderRefund)){
+            return new FebsResponse().fail().message("系统繁忙,请刷新重试");
+        }
+        mallOrderRefund.setStatus(3);
+        mallOrderRefundMapper.updateById(mallOrderRefund);
+
+        MallOrderRefundOperation mallOrderRefundOperation = new MallOrderRefundOperation();
+        mallOrderRefundOperation.setRefundId(mallOrderRefund.getId());
+        mallOrderRefundOperation.setOrderId(mallOrderRefund.getOrderId());
+        mallOrderRefundOperation.setContent("不同意退款申请");
+        mallOrderRefundOperationMapper.insert(mallOrderRefundOperation);
+
+        return new FebsResponse().success();
+    }
+
 
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/AdminMallOrderRefundOperationVo.java b/src/main/java/cc/mrbird/febs/mall/vo/AdminMallOrderRefundOperationVo.java
new file mode 100644
index 0000000..22da543
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/AdminMallOrderRefundOperationVo.java
@@ -0,0 +1,20 @@
+package cc.mrbird.febs.mall.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@ApiModel(value = "AdminMallOrderRefundOperationVo", description = "信息返回类")
+public class AdminMallOrderRefundOperationVo {
+
+    private long id;
+
+    private String content;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdTime;
+
+}
diff --git a/src/main/resources/mapper/modules/MallOrderRefundOperationMapper.xml b/src/main/resources/mapper/modules/MallOrderRefundOperationMapper.xml
index e136417..5a233ed 100644
--- a/src/main/resources/mapper/modules/MallOrderRefundOperationMapper.xml
+++ b/src/main/resources/mapper/modules/MallOrderRefundOperationMapper.xml
@@ -2,4 +2,9 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="cc.mrbird.febs.mall.mapper.MallOrderRefundOperationMapper">
 
+    <select id="selectRefundOperationInPage" resultType="cc.mrbird.febs.mall.vo.AdminMallOrderRefundOperationVo">
+        select * from mall_order_refund_operation a where a.refund_id = #{record.id}
+        order by a.CREATED_TIME desc
+    </select>
+
 </mapper>
\ No newline at end of file
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 e0e3301..6670c4c 100644
--- a/src/main/resources/templates/febs/views/modules/order/refundList.html
+++ b/src/main/resources/templates/febs/views/modules/order/refundList.html
@@ -85,23 +85,36 @@
         table.on('tool(orderRefundTable)', function (obj) {
             var data = obj.data,
                 layEvent = obj.event;
-            if (layEvent === 'deliverGoods') {
-                febs.modal.open('发货', 'modules/order/deliverGoods/' + data.id, {
-                    btn: ['确认', '取消'],
-                    yes: function (index, layero) {
-                        $('#deliver-update').find('#submit').trigger('click');
-                    },
-                    btn2: function () {
-                        layer.closeAll();
-                    }
-                });
-            }
-            if (layEvent === 'seeOrder') {
-                febs.modal.open( '订单详情', 'modules/order/orderDetail/' + data.id, {
+            if (layEvent === 'refunding') {
+                febs.modal.open( '退款进度', 'modules/order/seeRefund/' + data.id, {
                     maxmin: true,
                 });
             }
+            if (layEvent === 'agree') {
+                febs.modal.confirm('同意', '同意此次退款申请?', function () {
+                    agreeRefund(data.id);
+                });
+            }
+            if (layEvent === 'disagree') {
+                febs.modal.confirm('拒绝', '拒绝此次退款申请?', function () {
+                    disagreeRefund(data.id);
+                });
+            }
         });
+
+        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();
+            });
+        }
 
         // 查询按钮
         $query.on('click', function () {
@@ -114,10 +127,6 @@
             $searchForm[0].reset();
             sortObject.type = 'null';
             tableIns.reload({where: getQueryParams(), page: {curr: 1}, initSort: sortObject});
-        });
-
-        $add.on('click', function () {
-            febs.view.tab.change("/modules/goods/goodsAddNew/");
         });
 
         function initTable() {
@@ -157,14 +166,17 @@
                     //             }
                     //         }, minWidth: 80,align:'center'},
                     //     {field: 'createdTime', title: '注册时间', minWidth: 180,align:'center'},
-                    // {title: '操作',
-                    //     templet: function (d) {
-                    //         if (d.status === 1) {
-                    //             return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="deliverGoods" 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>'
-                    //         }
-                    //     },minWidth: 300,align:'center'}
+                    {title: '操作',
+                        templet: function (d) {
+                        if(d.status === 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>'
+                        }else{
+                            return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="refunding" shiro:hasPermission="user:update">退款进度</button>'
+                        }
+
+                        },minWidth: 300,align:'center'}
                 ]]
             });
         }
diff --git a/src/main/resources/templates/febs/views/modules/order/refunding.html b/src/main/resources/templates/febs/views/modules/order/refunding.html
new file mode 100644
index 0000000..2deb0a5
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/order/refunding.html
@@ -0,0 +1,54 @@
+
+<div class="layui-fluid layui-anim febs-anim" id="febs-refunding-child" lay-title="退款进度">
+    <div class="layui-row febs-container">
+        <div class="layui-col-md12">
+            <div class="layui-card">
+                <div class="layui-card-body febs-table-full">
+                    <table lay-filter="refundingTableChild" lay-data="{id: 'refundingTableChild'}"></table>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script data-th-inline="none" type="text/javascript">
+    layui.use(['dropdown', 'jquery', 'laydate', 'form', 'table', 'febs', 'treeSelect' ,'eleTree'], function () {
+        var $ = layui.jquery,
+            laydate = layui.laydate,
+            febs = layui.febs,
+            form = layui.form,
+            table = layui.table,
+            treeSelect = layui.treeSelect,
+            dropdown = layui.dropdown,
+            $view = $('#febs-refunding-child'),
+            $query = $view.find('#queryChild'),
+            $searchForm = $view.find('formChild'),
+            sortObject = {field: 'createTime', type: null},
+            tableIns,
+            createTimeFrom,
+            createTimeTo;
+
+        form.render();
+
+        initTable();
+
+        laydate.render({
+            elem: '#user-createTime',
+            range: true,
+            trigger: 'click'
+        });
+
+
+        function initTable() {
+            tableIns = febs.table.init({
+                elem: $view.find('table'),
+                id: 'refundingTableChild',
+                url: ctx + 'admin/order/seeRefund?parentId=1',
+                cols: [[
+                    {field: 'content', title: '内容', minWidth: 80,align:'center'},
+                    {field: 'createdTime', title: '时间', minWidth: 150,align:'left'},
+                ]]
+            });
+        }
+
+    })
+</script>
\ No newline at end of file

--
Gitblit v1.9.1