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"></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