This commit is contained in:
quantulr
2024-06-05 17:17:44 +08:00
parent d271da5b0b
commit fc7f296506
8 changed files with 153 additions and 85 deletions

22
.idea/workspace.xml generated
View File

@ -6,15 +6,13 @@
<component name="ChangeListManager">
<list default="true" id="bdad98b9-7a5e-48f7-b79e-ed6a34d55dab" name="Default Changelist" comment="第一次提交">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/wisdo/mmining/api/OrderApi.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/wisdo/mmining/api/OrderApi.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/wisdo/mmining/api/UserApi.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/wisdo/mmining/api/UserApi.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/wisdo/mmining/api/dto/EditOrderAddressDto.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/wisdo/mmining/api/dto/EditOrderAddressDto.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/wisdo/mmining/controller/OrderController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/wisdo/mmining/controller/OrderController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/wisdo/mmining/entity/WisdOeder.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/wisdo/mmining/entity/WisdOeder.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/application-db.yml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/application-db.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/webapp/WEB-INF/view/pages/order/order_edit_address.jsp" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/webapp/WEB-INF/view/pages/order/order_edit_address.jsp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/webapp/WEB-INF/view/pages/order/order_find.jsp" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/webapp/WEB-INF/view/pages/order/order_find.jsp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/webapp/WEB-INF/view/pages/order/order_refund_remarke.jsp" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/webapp/WEB-INF/view/pages/order/order_refund_remarke.jsp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/webapp/WEB-INF/view/pages/order/order_logistics.jsp" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/webapp/WEB-INF/view/pages/order/order_logistics.jsp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/webapp/WEB-INF/view/pages/order/order_refund_list.jsp" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/webapp/WEB-INF/view/pages/order/order_refund_list.jsp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/webapp/WEB-INF/view/pages/package/package_list.jsp" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/webapp/WEB-INF/view/pages/package/package_list.jsp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/webapp/WEB-INF/view/pages/welfare/welfare_list.jsp" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/webapp/WEB-INF/view/pages/welfare/welfare_list.jsp" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -528,8 +526,8 @@
<component name="SharedIndexes">
<attachedChunks>
<set>
<option value="bundled-jdk-9f38398b9061-39b83d9b5494-intellij.indexing.shared.core-IU-241.15989.150" />
<option value="bundled-js-predefined-1d06a55b98c1-91d5c284f522-JavaScript-IU-241.15989.150" />
<option value="bundled-jdk-9f38398b9061-39b83d9b5494-intellij.indexing.shared.core-IU-241.17011.79" />
<option value="bundled-js-predefined-1d06a55b98c1-0b3e54e931b4-JavaScript-IU-241.17011.79" />
</set>
</attachedChunks>
</component>
@ -639,7 +637,13 @@
<workItem from="1716356869975" duration="2517000" />
<workItem from="1716426384292" duration="18207000" />
<workItem from="1716455911988" duration="369000" />
<workItem from="1716512098996" duration="7388000" />
<workItem from="1716512098996" duration="9911000" />
<workItem from="1716772150925" duration="37000" />
<workItem from="1716876377526" duration="754000" />
<workItem from="1716887246099" duration="1175000" />
<workItem from="1717378949557" duration="4511000" />
<workItem from="1717463046217" duration="13312000" />
<workItem from="1717548903642" duration="12582000" />
</task>
<task id="LOCAL-00001" summary="第一次提交">
<created>1623736948713</created>

View File

@ -113,11 +113,7 @@ public class UserApi {
queryWrapper.and(wrapper -> wrapper.eq("after_sales_status", status).or().eq("after_sales_status", 61).or().eq("after_sales_status", 62).or().eq("after_sales_status", 63).or().eq("after_sales_status", 64).or().eq("after_sales_status", 65).or().eq("after_sales_status", 66));
} else {
queryWrapper.eq("status", status).and(wrapper -> wrapper
.ne("after_sales_status", 61)
.ne("after_sales_status", 62)
.ne("after_sales_status", 63)
.ne("after_sales_status", 64)
.ne("after_sales_status", 65)
.isNull("after_sales_status").or().eq("after_sales_status", 66)
);
}
queryWrapper.eq("is_deleted", 0);

View File

@ -1,7 +1,7 @@
#开发环境
spring:
datasource:
url: jdbc:mysql://192.168.0.146:3306/wisdo?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8
url: jdbc:mysql://192.168.0.142:3306/wisdo?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8
# url: jdbc:mysql://146.56.198.32:3306/wisdo?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8
username: yshop
# username: root

View File

@ -121,7 +121,7 @@
</table>
</div>
</div>
<c:if test="${obj.status==61 || obj.status==62 || obj.status==63 || obj.status==64 || obj.status==65 || obj.status==66}">
<c:if test="${obj.afterSalesStatus==61 || obj.afterSalesStatus==62 || obj.afterSalesStatus==63 || obj.afterSalesStatus==64 || obj.afterSalesStatus==65 || obj.afterSalesStatus==66}">
<div class="layui-card">
<div class="layui-card-body">
退换货信息:
@ -151,7 +151,7 @@
</div>
</td>
</tr>
<c:if test="${obj.status==63 || obj.status==64 || obj.status==65 || obj.status==66 }">
<c:if test="${obj.afterSalesStatus==63 || obj.afterSalesStatus==64 || obj.afterSalesStatus==65 || obj.afterSalesStatus==66 }">
<tr>
<td width="30%">回复信息:${obj.orderRefundRemarke}</td>
</tr>
@ -159,7 +159,7 @@
<td width="30%">回复时间:${obj.orderRefundRemarkeTimes}</td>
</tr>
</c:if>
<c:if test="${obj.status==64 || obj.status==65 || obj.status==66 }">
<c:if test="${obj.afterSalesStatus==64 || obj.afterSalesStatus==65 || obj.afterSalesStatus==66 }">
<tr>
<td width="30%">退回运单号快递名称:${obj.orderRefundName}</td>
</tr>
@ -188,7 +188,7 @@
<td width="30%">商家确认时间:${obj.orderRefundMerchantsTimes}</td>
</tr>
</c:if>
<c:if test="${ obj.status==65 && obj.orderRefundType==1}">
<c:if test="${ obj.afterSalesStatus==65 && obj.orderRefundType==1}">
<tr>
<td width="30%">商家换货快递单号:${obj.orderRefundMerchantsNum}</td>
</tr>
@ -198,7 +198,7 @@
</c:if>
<tr>
<td>
<c:if test="${ obj.status==61 && obj.orderRefundType!=3}">
<c:if test="${ obj.afterSalesStatus==61 && obj.orderRefundType!=3}">
<button class="layui-btn layui-btn-sm layui-btn-normal delivery"
lay-event="delivery">
同意换货
@ -208,7 +208,7 @@
拒绝换货
</button>
</c:if>
<c:if test="${ obj.status==62 && obj.orderRefundType!=3}">
<c:if test="${ obj.afterSalesStatus==62 && obj.orderRefundType!=3}">
<button class="layui-btn layui-btn-sm layui-btn-normal delivery"
lay-event="delivery">
同意退款
@ -218,7 +218,7 @@
拒绝退款
</button>
</c:if>
<c:if test="${ obj.status==64 && obj.orderRefundType!=3}">
<c:if test="${ obj.afterSalesStatus==64 && obj.orderRefundType!=3}">
<button class="layui-btn layui-btn-sm layui-btn-normal deliveryMoney"
lay-event="deliveryMoney">完成退换货
</button>
@ -227,7 +227,7 @@
拒绝退换货
</button>
</c:if>
<c:if test="${ obj.status==62 && obj.orderRefundType==3}">
<c:if test="${ obj.afterSalesStatus==62 && obj.orderRefundType==3}">
<button class="layui-btn layui-btn-sm layui-btn-normal deliveryStatus"
lay-event="deliveryStatus">
同意退款

View File

@ -18,6 +18,7 @@
const orderId = ${orderId};
const order = ${order};
const type = ${type};
console.log(order);
</script>
<script>
let layer = null
@ -44,11 +45,74 @@
const [goodsList, setGoodsList] = useState(order?.goodsList ?? [])
const [logisticsName, setLogisticsName] = useState("")
const [activePackage, setActivePackage] = useState(0)
const [goodsOfCoupon, setGoodsCoupon] = useState({
name: "",
num: 1,
spec: ""
})
return <div>
<div className="p-2 flex">
<div className="flex-1 mb-0 layui-card">
<div className="layui-card-body">
<table className="layui-table">
{order.orderPayWay === 3 ?
<div>
<div className="text-lg font-bold">从套餐券向包裹添加商品</div>
{order.goodsList.map(goods => <div key={goods.id}
className="text-md my-1">{goods.goodsName}</div>)}
<form className="p-4 border-[1px] border-gray-300 rounded mt-4">
<div className="layui-form-item">
<label className="layui-form-label w-[100px]">商品名称</label>
<div className="layui-input-block">
<input type="text" name="logisticsName" value={goodsOfCoupon.name}
onInput={(event) => {
setGoodsCoupon(state => ({...state, name: event.target.value}))
// setLogisticsName(() => event.target.value)
}}
placeholder="请输入商品名称"
autoComplete="off" className="layui-input"/>
</div>
</div>
<div className="layui-form-item">
<label className="layui-form-label w-[100px]">商品规格</label>
<div className="layui-input-block">
<input type="text" name="logisticsName" value={goodsOfCoupon.spec}
onInput={(event) => {
setGoodsCoupon(state => ({...state, spec: event.target.value}))
}}
placeholder="请输入商品规格"
autoComplete="off" className="layui-input"/>
</div>
</div>
<div className="layui-form-item">
<label className="layui-form-label w-[100px]">商品数量</label>
<div className="layui-input-block">
<input type="number" name="logisticsName" value={goodsOfCoupon.num}
onInput={(event) => {
setGoodsCoupon(state => ({...state, num: event.target.value}))
}}
placeholder="请输入商品数量"
autoComplete="off" className="layui-input"/>
</div>
</div>
</form>
<div className="mt-4 flex justify-center">
<button className="layui-btn layui-btn-sm" onClick={() => {
const _packages = [...packages]
_packages[activePackage].goods.push({
...goodsOfCoupon,
id: Date.now(),
specId: Date.now() + 1
})
setPackages(() => _packages)
setGoodsCoupon(() => ({
name: "",
num: 1,
spec: ""
}))
}}>添加到包裹
</button>
</div>
</div> : <table className="layui-table">
<thead>
<tr>
<th>名称</th>
@ -59,7 +123,8 @@
</thead>
<tbody>
{
goodsList.filter(el => el.goodsNum > 0).map(goods => <tr key={goods.id}>
goodsList.filter(el => el.goodsNum > 0).map(goods => <tr
key={goods.id}>
<td>{goods.goodsName}</td>
<td>{goods?.wisdGoodsSpec?.specName ?? ""}</td>
<td>{goods.goodsNum}</td>
@ -91,7 +156,7 @@
</tr>)
}
</tbody>
</table>
</table>}
</div>
</div>
<div className="layui-card flex-1 ml-2">
@ -128,13 +193,16 @@
}
setPackages(state => state.filter(el => pack.id !== el.id))
// TODO: 删除该包裹中所有商品
if (order.orderPayWay !== 3) {
const _goodsList = [...goodsList]
for (const p of pack.goods) {
_goodsList.find(g => g.id === p.id && g.wisdGoodsSpec.id === p.specId).goodsNum += p.num
}
setGoodsList(_goodsList)
}
}}
}
}
className="w-4 h-4 rounded-full bg-red-500 absolute -top-2 -right-2 flex justify-center items-center">
<i className="layui-icon layui-icon-close text-white"></i>
</button>}
@ -180,9 +248,12 @@
goods: p.goods.filter(g => g.num > 0)
})))
// TODO: goodsList 中数量 +1
// 仅限非套餐券支付
if (order.orderPayWay !== 3) {
const _goodsList = [...goodsList]
_goodsList.find(el => el.id === _packages[index].goods[idx].id && el.wisdGoodsSpec.id === _packages[index].goods[idx].specId).goodsNum += 1
setGoodsList(_goodsList)
}
}}>移除
</button>
</td>
@ -212,7 +283,7 @@
<div className="flex justify-center">
<button className="layui-btn layui-btn-primary" onClick={() => {
// 验证
if (goodsList.filter(el => el.goodsNum > 0).length) {
if (goodsList.filter(el => el.goodsNum > 0).length && order.orderPayWay !== 3) {
layer.msg('有未添加到包裹中的商品', {icon: 2});
return
}
@ -220,10 +291,6 @@
layer.msg('有空包裹,请向其添加商品,或删除包裹', {icon: 2});
return
}
if (packages.filter(el => el.goods.length === 0).length) {
layer.msg('有空包裹,请向其添加商品,或删除包裹', {icon: 2});
return
}
if (!logisticsName) {
layer.msg('未填写物流名称', {icon: 2});
return

View File

@ -287,7 +287,7 @@
} else if (item.afterSalesStatus == 62 && item.orderRefundType == 3) {
return '<button class="layui-btn layui-btn-sm" lay-event="edit">详情</button><button class="layui-btn layui-btn-sm layui-btn-normal" lay-event="deliveryStatus">同意退款</button><button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="nodeliveryStatus">拒绝退款</button>';
} else if (item.afterSalesStatus == 64 && (item.orderRefundType == 1 || item.orderRefundType == 2)) {
return '<button class="layui-btn layui-btn-sm" lay-event="edit">详情</button><button class="layui-btn layui-btn-sm layui-btn-normal" lay-event="deliveryMoney">退换货发货</button><button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="nodelivery">拒绝退换货</button>';
return '<button class="layui-btn layui-btn-sm" lay-event="edit">详情</button><button class="layui-btn layui-btn-sm layui-btn-normal" lay-event="deliveryMoney">${item.orderRefundType == 1 ? "退换货发货": '退款'}</button><button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="nodelivery">拒绝退换货</button>';
} else {
return '<button class="layui-btn layui-btn-sm" lay-event="edit">详情</button><button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="del">删除</button>';
}

View File

@ -98,7 +98,7 @@
title: '创建时间',
sort: true
},
{fixed: 'right', align: 'center', toolbar: '#bar',width:300, title: '操作'}
{fixed: 'right', align: 'center', toolbar: '#bar',width:300, title: '操作1'}
]],
page: true,
request: {

View File

@ -408,7 +408,7 @@
{
fixed: 'right', align: 'center', width: 300, title: '操作', templet: function (item) {
if (item.status == 1) {
return '<button class="layui-btn layui-btn-sm" lay-event="export1">导出</button><button class="layui-btn layui-btn-sm" lay-event="find">查看</button><button class="layui-btn layui-btn-danger layui-btn-sm" disabled="disabled" lay-event="del">删除</button><button class="layui-btn layui-btn-normal layui-btn-sm" disabled="disabled" lay-event="issue">发放套餐券</button>';
return '<button class="layui-btn layui-btn-sm" lay-event="export1">导出</button><button class="layui-btn layui-btn-sm" lay-event="find">查看</button><button class="layui-btn layui-btn-danger layui-btn-sm layui-btn-disabled" disabled="disabled" lay-event="del">删除</button><button class="layui-btn layui-btn-normal layui-btn-sm layui-btn-disabled" disabled="disabled" lay-event="issue">发放套餐券</button>';
}
if (item.status == 0) {
return '<button class="layui-btn layui-btn-sm" lay-event="export1">导出</button><a class="layui-btn layui-btn-sm" lay-event="edit">编辑</a><a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="del">删除</a><a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="issue">发放套餐券</a>';
@ -475,10 +475,11 @@
//监听工具条
table.on('tool(table_data)', function (obj) {
console.log(1232434)
var data = obj.data; //获得当前行数据
var layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
var tr = obj.tr; //获得当前行 tr 的DOM对象
console.log(layEvent)
console.log(layEvent+12)
if (layEvent === 'del') { //删除
$modal({
type: 'confirm',
@ -1212,8 +1213,8 @@
return {
"code": 0,
"msg": res.message,
"count": res.value.total,
"data": res.value.records
"count": res.value?.total,
"data": res.value?.records
};
},
defaultToolbar: ['filter', 'print'],