Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
farming
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
郑云飞
farming
Commits
68f4abaf
Commit
68f4abaf
authored
Apr 22, 2024
by
郑云飞
Committed by
zhengyunfei
Apr 22, 2024
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
所有退款方式都可以部分退款
部分退款后还可以继续退款
parent
a8bae801
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
823 additions
and
513 deletions
+823
-513
src/main/java/com/yunniu/farming/app/WxController.java
+3
-10
src/main/java/com/yunniu/farming/webadmin/model/OrderMain.java
+4
-0
src/main/java/com/yunniu/farming/webadmin/model/OrderRefund.java
+86
-0
src/main/java/com/yunniu/farming/webadmin/model/OrderSub.java
+2
-2
src/main/java/com/yunniu/farming/webadmin/service/impl/GroupOrderServiceImpl.java
+30
-16
src/main/java/com/yunniu/farming/webadmin/service/impl/OrderMainServiceImpl.java
+463
-429
src/main/java/com/yunniu/farming/webadmin/service/impl/WxServiceImpl.java
+17
-11
src/main/java/com/yunniu/farming/wx/WxConfigUtil.java
+4
-4
src/main/java/com/yunniu/farming/wx/WxUtil.java
+3
-2
src/main/resources/application.properties
+6
-6
src/main/resources/mappings/OrderMainMapper.xml
+170
-13
src/main/resources/templates/groupBuy/addOrEdit.html
+2
-2
src/main/resources/templates/order/refundList.html
+33
-18
No files found.
src/main/java/com/yunniu/farming/app/WxController.java
View file @
68f4abaf
...
...
@@ -40,7 +40,6 @@ public class WxController {
}
/**
* 微信支付
*
...
...
@@ -65,15 +64,13 @@ public class WxController {
}
/**
* 回调测试
*/
@RequestMapping
(
value
=
"/testNotifyOk/{id}"
,
method
=
RequestMethod
.
GET
)
@ResponseBody
public
String
testNotifyOk
(
@PathVariable
Integer
id
){
if
(
id
==
null
)
return
null
;
public
String
testNotifyOk
(
@PathVariable
Integer
id
)
{
if
(
id
==
null
)
return
null
;
this
.
wxServiceImpl
.
handleNotifyOk
(
id
);
...
...
@@ -100,20 +97,17 @@ public class WxController {
@RequestMapping
(
value
=
"/wxRefund"
,
method
=
RequestMethod
.
POST
)
public
Result
wxRefund
(
Integer
userId
,
Integer
orderId
,
HttpServletRequest
request
)
{
try
{
return
wxService
.
wxRefund
(
userId
,
orderId
,
""
,
request
);
return
wxService
.
wxRefund
(
userId
,
orderId
,
""
,
request
);
}
catch
(
Exception
e
)
{
return
new
Result
(
103
);
}
}
// @RequestMapping(value = "/asd", method = {RequestMethod.POST, RequestMethod.GET})
// public void asd(String outTradeNo) throws IOException, JDOMException {
// wxService.asd(outTradeNo);
// }
}
\ No newline at end of file
src/main/java/com/yunniu/farming/webadmin/model/OrderMain.java
View file @
68f4abaf
...
...
@@ -30,6 +30,8 @@ public class OrderMain {
// 关联查询对象: 关联用户表
@TableField
(
exist
=
false
)
private
Customer
customer
;
@TableField
(
exist
=
false
)
private
OrderRefund
orderRefund
;
//提交订单校验错误信息
@TableField
(
exist
=
false
)
...
...
@@ -76,6 +78,8 @@ public class OrderMain {
//数据库字段
private
Integer
id
;
// id主键
@TableField
(
exist
=
false
)
private
Integer
zid
;
// id主键
private
Integer
customerid
;
// 客户id
private
Integer
productid
;
// 商品id,关联商品信息表id
private
Integer
addressid
;
//地址id,关联地址表
...
...
src/main/java/com/yunniu/farming/webadmin/model/OrderRefund.java
0 → 100644
View file @
68f4abaf
package
com
.
yunniu
.
farming
.
webadmin
.
model
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
@Data
@TableName
(
value
=
"order_refund"
)
public
class
OrderRefund
implements
Serializable
{
/**
* id
*/
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 订单主表id
*/
@TableField
(
value
=
"order_mian_id"
)
private
Long
orderMianId
;
/**
* 退款类型(1:仅退款,2退货退款)
*/
@TableField
(
value
=
"refund_type"
)
private
String
refundType
;
/**
* 是否部分退(0是,1否)
*/
@TableField
(
value
=
"portion"
)
private
String
portion
;
/**
* 退款编码
*/
@TableField
(
value
=
"refund_code"
)
private
String
refundCode
;
/**
* 退款状态(1退款申请,2申请通过,3申请拒绝,4待退货,5退款成功,6待退款)
*/
@TableField
(
value
=
"refund_status"
)
private
String
refundStatus
;
/**
* 退款金额
*/
@TableField
(
value
=
"refund_money"
)
private
Double
refundMoney
;
/**
* 退款申请时间
*/
@TableField
(
value
=
"refund_time"
)
private
Date
refundTime
;
/**
* 退款完成时间
*/
@TableField
(
value
=
"refund_suc_time"
)
private
Date
refundSucTime
;
/**
* 退款原因
*/
@TableField
(
value
=
"refund_reason"
)
private
String
refundReason
;
/**
* 退款图片
*/
@TableField
(
value
=
"refund_img"
)
private
String
refundImg
;
/**
* 退款详情
*/
@TableField
(
value
=
"refund_detail"
)
private
String
refundDetail
;
}
\ No newline at end of file
src/main/java/com/yunniu/farming/webadmin/model/OrderSub.java
View file @
68f4abaf
...
...
@@ -43,9 +43,9 @@ public class OrderSub {
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
private
String
sdef1
;
//自定义项1 退款状态 1申请退款,2申请成功,3申请拒绝,4退款成功
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
private
String
sdef2
;
//自定义项2
private
String
sdef2
;
//自定义项2
退款成功数量
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
private
String
sdef3
;
//自定义项3
private
String
sdef3
;
//自定义项3
退款申请中的数量
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
private
String
sdef4
;
//自定义项4
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
...
...
src/main/java/com/yunniu/farming/webadmin/service/impl/GroupOrderServiceImpl.java
View file @
68f4abaf
...
...
@@ -4,16 +4,11 @@ import com.alibaba.fastjson.JSON;
import
com.baomidou.mybatisplus.core.toolkit.ObjectUtils
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.yunniu.farming.util.StringHelper
;
import
com.yunniu.farming.webadmin.dao.GroupBuyDao
;
import
com.yunniu.farming.webadmin.dao.GroupOrderDao
;
import
com.yunniu.farming.webadmin.dao.OrderMainDao
;
import
com.yunniu.farming.webadmin.dao.OrderSubDao
;
import
com.yunniu.farming.webadmin.model.GroupBuy
;
import
com.yunniu.farming.webadmin.model.GroupOrder
;
import
com.yunniu.farming.webadmin.model.OrderMain
;
import
com.yunniu.farming.webadmin.model.OrderSub
;
import
com.yunniu.farming.webadmin.dao.*
;
import
com.yunniu.farming.webadmin.model.*
;
import
com.yunniu.farming.webadmin.service.GroupOrderService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.aspectj.weaver.ast.Var
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
...
...
@@ -40,15 +35,18 @@ public class GroupOrderServiceImpl implements GroupOrderService {
private
OrderMainDao
orderMainDao
;
@Autowired
private
OrderSubDao
orderSubDao
;
@Autowired
private
OrderRefundMapper
refundMapper
;
/**
* 保存团购订单
*
* @param item
* @return
*/
@Override
public
GroupOrder
addGroupOrder
(
OrderMain
item
)
{
if
(
item
.
getAreaId
()
==
null
){
if
(
item
.
getAreaId
()
==
null
)
{
throw
new
RuntimeException
(
"缺少小区id参数"
);
}
if
(
item
.
getGroupBuyId
()
==
null
)
{
...
...
@@ -82,7 +80,7 @@ public class GroupOrderServiceImpl implements GroupOrderService {
order
.
setCreateTime
(
new
Date
());
orderDao
.
insert
(
order
);
return
order
;
}
else
{
}
else
{
groupOrder
.
setGroupSize
(
groupOrder
.
getGroupSize
()
+
1
);
if
(
Objects
.
equals
(
groupOrder
.
getGroupSize
(),
groupBuy
.
getGroupSize
()))
{
groupOrder
.
setGroupStatus
(
"1"
);
...
...
@@ -94,6 +92,7 @@ public class GroupOrderServiceImpl implements GroupOrderService {
/**
* 查询团购订单列表
*
* @param item
* @return
*/
...
...
@@ -105,13 +104,14 @@ public class GroupOrderServiceImpl implements GroupOrderService {
/**
* 团购订单详情
*
* @param id
* @return
*/
@Override
public
GroupOrder
findById
(
Long
id
)
{
GroupOrder
order
=
orderDao
.
detailById
(
id
);
if
(
order
.
getSuccessTime
()!=
null
)
{
if
(
order
.
getSuccessTime
()
!=
null
)
{
SimpleDateFormat
formatter
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
order
.
setSuccessTimeStr
(
formatter
.
format
(
order
.
getSuccessTime
()));
}
...
...
@@ -120,6 +120,7 @@ public class GroupOrderServiceImpl implements GroupOrderService {
/**
* 团购订单用户信息列表
*
* @param item
* @return
*/
...
...
@@ -131,6 +132,7 @@ public class GroupOrderServiceImpl implements GroupOrderService {
/**
* 购买商品列表
*
* @param item 用户列表id
* @return
*/
...
...
@@ -141,18 +143,28 @@ public class GroupOrderServiceImpl implements GroupOrderService {
/**
* 退款回调修改退款状态
*
* @param outRefundNo
* @return
*/
@Override
public
boolean
updateRefundStatus
(
String
outRefundNo
)
{
OrderMain
order
=
orderDao
.
getBySdef1
(
outRefundNo
);
order
.
setIrefundstatus
(
OrderMain
.
STATUS_REFUND_SUC
);
order
.
setIstatus
(
OrderMain
.
STATUS_COMPLETE
);
int
update
=
orderMainDao
.
updateById
(
order
);
OrderRefund
orderRefund
=
refundMapper
.
selectOne
(
Wrappers
.<
OrderRefund
>
lambdaQuery
()
.
eq
(
OrderRefund:
:
getRefundCode
,
outRefundNo
)
.
eq
(
OrderRefund:
:
getRefundStatus
,
6
));
orderRefund
.
setRefundStatus
(
"5"
);
int
update
=
refundMapper
.
updateById
(
orderRefund
);
OrderMain
order
=
orderMainDao
.
selectById
(
orderRefund
.
getOrderMianId
());
if
(
orderRefund
.
getPortion
().
equals
(
"1"
))
{
order
.
setIrefundstatus
(
OrderMain
.
STATUS_REFUND_SUC
);
order
.
setIstatus
(
OrderMain
.
STATUS_COMPLETE
);
orderMainDao
.
updateById
(
order
);
}
List
<
OrderSub
>
orderSubs
=
this
.
orderSubDao
.
selectList
(
Wrappers
.<
OrderSub
>
lambdaQuery
().
eq
(
OrderSub:
:
getMainid
,
order
.
getId
()).
eq
(
OrderSub:
:
getSdef1
,
2
));
orderSubs
.
forEach
(
sub
->
{
orderSubs
.
forEach
(
sub
->
{
sub
.
setSdef1
(
"4"
);
sub
.
setSdef2
(
sub
.
getSdef3
());
sub
.
setSdef3
(
"0"
);
orderSubDao
.
updateById
(
sub
);
});
if
(
update
>
0
)
{
...
...
@@ -188,6 +200,7 @@ public class GroupOrderServiceImpl implements GroupOrderService {
/**
* 完成
*
* @param id
* @return
*/
...
...
@@ -200,6 +213,7 @@ public class GroupOrderServiceImpl implements GroupOrderService {
/**
* 支付成功后判断团购订单是否成团
*
* @param curOrder
*/
public
void
isSuccess
(
OrderMain
curOrder
)
{
...
...
src/main/java/com/yunniu/farming/webadmin/service/impl/OrderMainServiceImpl.java
View file @
68f4abaf
...
...
@@ -2,24 +2,21 @@ package com.yunniu.farming.webadmin.service.impl;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.toolkit.CollectionUtils
;
import
com.baomidou.mybatisplus.core.toolkit.ObjectUtils
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.yunniu.farming.result.Result
;
import
com.yunniu.farming.util.DateTools
;
import
com.yunniu.farming.util.DateUtils
;
import
com.yunniu.farming.util.StringHelper
;
import
com.yunniu.farming.util.WxPayAppUtils
;
import
com.yunniu.farming.webadmin.dao.CustomerDao
;
import
com.yunniu.farming.webadmin.dao.IntegralrecDao
;
import
com.yunniu.farming.webadmin.dao.OrderMainDao
;
import
com.yunniu.farming.webadmin.dao.OrderSubDao
;
import
com.yunniu.farming.webadmin.model.GroupOrder
;
import
com.yunniu.farming.webadmin.model.Integralrec
;
import
com.yunniu.farming.webadmin.model.OrderMain
;
import
com.yunniu.farming.webadmin.model.OrderSub
;
import
com.yunniu.farming.webadmin.dao.*
;
import
com.yunniu.farming.webadmin.model.*
;
import
com.yunniu.farming.webadmin.service.GroupOrderService
;
import
com.yunniu.farming.webadmin.service.WxService
;
import
com.yunniu.farming.wx.WxConfigUtil
;
import
lombok.Data
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -40,191 +37,190 @@ import java.util.Map;
public
class
OrderMainServiceImpl
{
@Autowired
private
OrderMainDao
orderMainDao
;
@Autowired
private
OrderMainDao
orderMainDao
;
@Autowired
private
OrderSubDao
orderSubDao
;
@Autowired
private
OrderSubDao
orderSubDao
;
@Autowired
private
CustomerDao
customerDao
;
@Autowired
private
CustomerDao
customerDao
;
@Autowired
private
IntegralrecDao
integralrecDao
;
@Autowired
private
IntegralrecDao
integralrecDao
;
@Autowired
private
GroupOrderService
orderService
;
@Autowired
private
GroupOrderService
orderService
;
@Autowired
private
OrderRefundMapper
refundMapper
;
@Autowired
@Lazy
private
WxService
wxService
;
@Autowired
@Lazy
private
WxService
wxService
;
/**
* 分页查询所有数据
* @return
*/
public
List
<
OrderMain
>
selectByParamPageList
(
OrderMain
doc
)
{
return
this
.
orderMainDao
.
selectByParamPageList
(
doc
);
}
/**
* 分页查询所有数据
*
* @return
*/
public
List
<
OrderMain
>
selectByParamPageList
(
OrderMain
doc
)
{
return
this
.
orderMainDao
.
selectByParamPageList
(
doc
);
}
/**
* FRICE TODO 带参 常规查询
*
*/
public
List
<
OrderMain
>
findByParam
(
OrderMain
doc
)
{
return
this
.
orderMainDao
.
selectByParam
(
doc
);
}
/**
* FRICE TODO 带参 常规查询
*/
public
List
<
OrderMain
>
findByParam
(
OrderMain
doc
)
{
return
this
.
orderMainDao
.
selectByParam
(
doc
);
}
/**
* 根据id删除用户
*
*/
public
Result
deleteByid
(
int
id
)
{
/**
* 根据id删除用户
*/
public
Result
deleteByid
(
int
id
)
{
int
i
=
this
.
orderMainDao
.
deleteById
(
id
);
if
(
i
>
0
)
{
return
Result
.
success
(
"删除成功"
);
}
return
Result
.
error
();
}
/**
* 按照订单主表ID查找全部数据
*/
public
OrderMain
findByid
(
Integer
id
)
{
OrderMain
u
=
this
.
orderMainDao
.
selectByPrimaryKey
(
id
);
return
u
;
}
/**
* 创建订单
* @return
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
OrderMain
addOrder
(
OrderMain
item
)
{
if
(
item
.
getId
()
==
null
)
{
if
(
item
.
getItype
()
!=
null
&&
item
.
getItype
().
equals
(
OrderMain
.
ITYPE_GROUP
))
{
GroupOrder
order
=
orderService
.
addGroupOrder
(
item
);
item
.
setGroupOrderId
(
order
.
getId
());
}
// 单据日期
item
.
setSorderdate
(
DateTools
.
getDate
(
"yyyy-MM-dd"
));
// 提交订单时间
item
.
setTordertime
(
DateUtils
.
getToday
().
getTime
());
// 单据编号: 当前系统时间+随机4位数
item
.
setSorderno
(
StringHelper
.
getOrderno
());
// 状态初始化
if
(
item
.
getIpaystatus
()
==
null
)
{
item
.
setIpaystatus
(
OrderMain
.
PAY_STATUS_NO
);
// 未支付
}
if
(
item
.
getItype
()
==
null
)
{
item
.
setItype
(
OrderMain
.
ITYPE_TAKE
);
//外卖订单
}
item
.
setIstatus
(
OrderMain
.
STATUS_NOPAY
);
//未付款
if
(
i
>
0
)
{
return
Result
.
success
(
"删除成功"
);
}
return
Result
.
error
();
}
/**
* 按照订单主表ID查找全部数据
*/
public
OrderMain
findByid
(
Integer
id
)
{
OrderMain
u
=
this
.
orderMainDao
.
selectByPrimaryKey
(
id
);
return
u
;
}
/**
* 创建订单
*
* @return
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
OrderMain
addOrder
(
OrderMain
item
)
{
if
(
item
.
getId
()
==
null
)
{
if
(
item
.
getItype
()
!=
null
&&
item
.
getItype
().
equals
(
OrderMain
.
ITYPE_GROUP
))
{
GroupOrder
order
=
orderService
.
addGroupOrder
(
item
);
item
.
setGroupOrderId
(
order
.
getId
());
}
// 单据日期
item
.
setSorderdate
(
DateTools
.
getDate
(
"yyyy-MM-dd"
));
// 提交订单时间
item
.
setTordertime
(
DateUtils
.
getToday
().
getTime
());
// 单据编号: 当前系统时间+随机4位数
item
.
setSorderno
(
StringHelper
.
getOrderno
());
// 状态初始化
if
(
item
.
getIpaystatus
()
==
null
)
{
item
.
setIpaystatus
(
OrderMain
.
PAY_STATUS_NO
);
// 未支付
}
if
(
item
.
getItype
()
==
null
)
{
item
.
setItype
(
OrderMain
.
ITYPE_TAKE
);
//外卖订单
}
item
.
setIstatus
(
OrderMain
.
STATUS_NOPAY
);
//未付款
item
.
setIpaytype
(
10
);
//微信支付
// 1.保存主表信息
int
i
=
this
.
orderMainDao
.
insert
(
item
);
// 2.批量保存订单子表信息
if
(
item
.
getSubs
()
!=
null
&&
item
.
getSubs
().
size
()
>
0
)
{
for
(
OrderSub
sub
:
item
.
getSubs
())
{
sub
.
setMainid
(
item
.
getId
());
// 添加 主表id
}
// 调用 子表批量保存方法
this
.
orderSubDao
.
insertBatch
(
item
.
getSubs
());
}
}
return
item
;
}
/**
* 创建订单
* @return
*/
public
Result
addIntOrder
(
OrderMain
item
)
{
if
(
item
.
getDactscore
()
==
null
||
item
.
getDactscore
()
<=
0
){
return
Result
.
error
(
"创建订单失败"
);
}
if
(
item
.
getItype
().
equals
(
OrderMain
.
ITYPE_GROUP
)){
GroupOrder
order
=
orderService
.
addGroupOrder
(
item
);
item
.
setGroupOrderId
(
order
.
getId
());
}
// 单据日期
item
.
setSorderdate
(
DateTools
.
getDate
(
"yyyy-MM-dd"
));
// 提交订单时间
item
.
setTordertime
(
DateUtils
.
getToday
().
getTime
());
// 单据编号: 当前系统时间+随机4位数
item
.
setSorderno
(
StringHelper
.
getOrderno
());
// 状态初始化
if
(
item
.
getIpaystatus
()
==
null
)
{
item
.
setIpaystatus
(
OrderMain
.
PAY_STATUS_NO
);
// 未支付
}
if
(
item
.
getItype
()
==
null
)
{
item
.
setItype
(
OrderMain
.
ITYPE_TAKE
);
//外卖订单
}
item
.
setIstatus
(
OrderMain
.
STATUS_NOPAY
);
//未付款
// 1.保存主表信息
int
i
=
this
.
orderMainDao
.
insert
(
item
);
item
.
setIpaytype
(
30
);
//积分支付
// 2.批量保存订单子表信息
if
(
item
.
getSubs
()
!=
null
&&
item
.
getSubs
().
size
()
>
0
)
{
for
(
OrderSub
sub
:
item
.
getSubs
())
{
sub
.
setMainid
(
item
.
getId
());
// 添加 主表id
}
// 调用 子表批量保存方法
this
.
orderSubDao
.
insertBatch
(
item
.
getSubs
());
}
}
return
item
;
}
/**
* 创建订单
*
* @return
*/
public
Result
addIntOrder
(
OrderMain
item
)
{
if
(
item
.
getDactscore
()
==
null
||
item
.
getDactscore
()
<=
0
)
{
return
Result
.
error
(
"创建订单失败"
);
}
// 1.保存主表信息
int
i
=
this
.
orderMainDao
.
insert
(
item
);
if
(
item
.
getItype
().
equals
(
OrderMain
.
ITYPE_GROUP
))
{
GroupOrder
order
=
orderService
.
addGroupOrder
(
item
);
item
.
setGroupOrderId
(
order
.
getId
());
}
// 单据日期
item
.
setSorderdate
(
DateTools
.
getDate
(
"yyyy-MM-dd"
));
// 提交订单时间
item
.
setTordertime
(
DateUtils
.
getToday
().
getTime
());
// 单据编号: 当前系统时间+随机4位数
item
.
setSorderno
(
StringHelper
.
getOrderno
());
// 状态初始化
if
(
item
.
getIpaystatus
()
==
null
)
{
item
.
setIpaystatus
(
OrderMain
.
PAY_STATUS_NO
);
// 未支付
}
if
(
item
.
getItype
()
==
null
)
{
item
.
setItype
(
OrderMain
.
ITYPE_TAKE
);
//外卖订单
}
item
.
setIstatus
(
OrderMain
.
STATUS_NOPAY
);
//未付款
// 2.批量保存订单子表信息
if
(
item
.
getSubs
()
!=
null
&&
item
.
getSubs
().
size
()
>
0
)
{
for
(
OrderSub
sub
:
item
.
getSubs
())
{
sub
.
setMainid
(
item
.
getId
());
// 添加 主表id
}
// 调用 子表批量保存方法
this
.
orderSubDao
.
insertBatch
(
item
.
getSubs
());
}
item
.
setIpaytype
(
30
);
//积分支付
return
Result
.
success
(
item
);
}
// 1.保存主表信息
int
i
=
this
.
orderMainDao
.
insert
(
item
);
// 2.批量保存订单子表信息
if
(
item
.
getSubs
()
!=
null
&&
item
.
getSubs
().
size
()
>
0
)
{
for
(
OrderSub
sub
:
item
.
getSubs
())
{
sub
.
setMainid
(
item
.
getId
());
// 添加 主表id
}
// 调用 子表批量保存方法
this
.
orderSubDao
.
insertBatch
(
item
.
getSubs
());
}
return
Result
.
success
(
item
);
}
/**
* @编辑
*/
public
Result
update
(
OrderMain
doc
)
{
/**
* @编辑
*/
public
Result
update
(
OrderMain
doc
)
{
if
(
doc
.
getId
()
==
null
)
return
Result
.
error
();
if
(
doc
.
getId
()
==
null
)
return
Result
.
error
();
OrderMain
orderMain
=
this
.
orderMainDao
.
selectById
(
doc
.
getId
());
if
(
orderMain
==
null
){
if
(
orderMain
==
null
)
{
return
Result
.
error
(
"订单信息不存在"
);
}
//判断用户积分是否足够
if
(
doc
.
getDactscore
()
!=
null
)
{
if
(
doc
.
getDactscore
()
!=
null
)
{
// 查询该用户的积分
Integralrec
integralrec
=
new
Integralrec
();
integralrec
.
setCustomerid
(
orderMain
.
getCustomerid
());
Double
aDouble
=
this
.
integralrecDao
.
sumIntegral
(
integralrec
);
if
(
aDouble
==
null
||
aDouble
<
0
)
return
Result
.
error
(
"用户积分不足"
);
if
(
aDouble
==
null
||
aDouble
<
0
)
return
Result
.
error
(
"用户积分不足"
);
// 用户收入积分减去支付积分要大于订单积分价格
// 用户余额要大于支付额
if
((
aDouble
!=
null
?
aDouble
:
0
)
<
doc
.
getDactscore
())
{
if
((
aDouble
!=
null
?
aDouble
:
0
)
<
doc
.
getDactscore
())
{
return
Result
.
error
(
"积分不足"
);
}
...
...
@@ -232,7 +228,7 @@ public class OrderMainServiceImpl {
int
i
=
this
.
orderMainDao
.
updateById
(
doc
);
if
(
i
>
0
)
{
if
(
i
>
0
)
{
return
Result
.
success
(
"修改成功"
);
}
...
...
@@ -241,143 +237,154 @@ public class OrderMainServiceImpl {
}
//根据多参数查询订单数量
public
int
findOrderNum
(
OrderMain
orderMain
)
{
return
orderMainDao
.
countOrderNum
(
orderMain
);
}
public
int
findOrderNum
(
OrderMain
orderMain
)
{
return
orderMainDao
.
countOrderNum
(
orderMain
);
}
//根据多参数查询订单金额
public
Double
findOrderMoney
(
OrderMain
orderMain
)
{
return
orderMainDao
.
countOrderMoney
(
orderMain
);
}
//更改订单服务中
public
Result
updateFwStatus
(
OrderMain
order
)
{
if
(
order
.
getId
()
==
null
){
return
Result
.
error
();
}
//待收货
order
.
setIstatus
(
OrderMain
.
STATUS_WAITING
);
this
.
orderMainDao
.
updateById
(
order
);
return
Result
.
success
();
}
//更改订单已完成
public
Result
updateOkStatus
(
OrderMain
order
)
{
if
(
order
.
getId
()
==
null
){
return
Result
.
error
();
}
//已完成
order
.
setIstatus
(
OrderMain
.
STATUS_COMPLETE
);
//完成时间
order
.
setTovertime
(
new
Date
());
this
.
orderMainDao
.
updateById
(
order
);
return
Result
.
success
(
"成功"
);
}
/**
* 更改订单退款申请通过
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
refundApplicationPass
(
OrderMain
order
)
{
if
(
order
.
getId
()
==
null
){
return
Result
.
error
();
}
OrderMain
orderMain
=
this
.
orderMainDao
.
selectById
(
order
.
getId
());
if
(
orderMain
.
getIrefundstatus
().
equals
(
OrderMain
.
STATUS_REFUND_ONLY
))
{
this
.
refundReceive
(
orderMain
);
}
else
{
orderMain
.
setIrefundstatus
(
OrderMain
.
STATUS_RETURN_GOODS
);
this
.
orderMainDao
.
updateById
(
orderMain
);
List
<
OrderSub
>
orderSubs
=
this
.
orderSubDao
.
selectList
(
Wrappers
.<
OrderSub
>
lambdaQuery
().
eq
(
OrderSub:
:
getMainid
,
order
.
getId
()).
eq
(
OrderSub:
:
getSdef1
,
1
));
orderSubs
.
forEach
(
sub
->{
sub
.
setSdef1
(
"2"
);
orderSubDao
.
updateById
(
sub
);
});
}
return
Result
.
success
(
"成功"
);
}
/**
* 更改订单退款申请拒绝
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
refundApplicationRefuse
(
OrderMain
order
)
{
if
(
order
.
getId
()
==
null
){
return
Result
.
error
();
}
order
.
setIrefundstatus
(
OrderMain
.
STATUS_REFUND_REFUSE
);
this
.
orderMainDao
.
updateById
(
order
);
List
<
OrderSub
>
orderSubs
=
this
.
orderSubDao
.
selectList
(
Wrappers
.<
OrderSub
>
lambdaQuery
().
eq
(
OrderSub:
:
getMainid
,
order
.
getId
()).
eq
(
OrderSub:
:
getSdef1
,
1
));
orderSubs
.
forEach
(
sub
->{
sub
.
setSdef1
(
"3"
);
orderSubDao
.
updateById
(
sub
);
});
return
Result
.
success
(
"成功"
);
}
/**
* 已收到退回货物,开始退款
* @param order
* @return
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
refundReceive
(
OrderMain
order
)
{
// 根据id获取订单信息
OrderMain
orderMain
=
this
.
orderMainDao
.
selectById
(
order
.
getId
());
orderMain
.
setIrefundstatus
(
OrderMain
.
STATUS_REFUND
);
this
.
orderMainDao
.
updateById
(
orderMain
);
log
.
info
(
"收货成功,开始退款:{}"
,
JSON
.
toJSONString
(
orderMain
));
try
{
wxService
.
wxRefund
(
orderMain
.
getCustomerid
(),
orderMain
.
getId
(),
"用户申请退款"
,
null
);
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
.
getMessage
());
}
return
Result
.
success
(
"成功"
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
cancelOrder
(
OrderMain
order
)
{
if
(
order
.
getId
()
==
null
){
return
Result
.
error
();
}
//更改订单服务中
public
Result
updateFwStatus
(
OrderMain
order
)
{
if
(
order
.
getId
()
==
null
)
{
return
Result
.
error
();
}
//待收货
order
.
setIstatus
(
OrderMain
.
STATUS_WAITING
);
this
.
orderMainDao
.
updateById
(
order
);
return
Result
.
success
();
}
//更改订单已完成
public
Result
updateOkStatus
(
OrderMain
order
)
{
if
(
order
.
getId
()
==
null
)
{
return
Result
.
error
();
}
//已完成
order
.
setIstatus
(
OrderMain
.
STATUS_COMPLETE
);
//完成时间
order
.
setTovertime
(
new
Date
());
this
.
orderMainDao
.
updateById
(
order
);
return
Result
.
success
(
"成功"
);
}
/**
* 更改订单退款申请通过
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
refundApplicationPass
(
OrderMain
order
)
{
if
(
order
.
getId
()
==
null
)
{
return
Result
.
error
();
}
// OrderMain orderMain = this.orderMainDao.selectById(order.getId());
OrderRefund
orderRefund
=
refundMapper
.
selectOne
(
Wrappers
.<
OrderRefund
>
lambdaQuery
()
.
eq
(
OrderRefund:
:
getOrderMianId
,
order
.
getId
())
.
eq
(
OrderRefund:
:
getRefundStatus
,
1
));
if
(
orderRefund
.
getRefundType
().
equals
(
"1"
))
{
this
.
refundReceive
(
order
);
}
else
{
orderRefund
.
setRefundStatus
(
"4"
);
refundMapper
.
updateById
(
orderRefund
);
List
<
OrderSub
>
orderSubs
=
this
.
orderSubDao
.
selectList
(
Wrappers
.<
OrderSub
>
lambdaQuery
().
eq
(
OrderSub:
:
getMainid
,
order
.
getId
()).
eq
(
OrderSub:
:
getSdef1
,
1
));
orderSubs
.
forEach
(
sub
->
{
sub
.
setSdef1
(
"2"
);
orderSubDao
.
updateById
(
sub
);
});
}
return
Result
.
success
(
"成功"
);
}
/**
* 更改订单退款申请拒绝
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
refundApplicationRefuse
(
OrderMain
order
)
{
if
(
order
.
getId
()
==
null
)
{
return
Result
.
error
();
}
order
.
setIrefundstatus
(
OrderMain
.
STATUS_REFUND_REFUSE
);
this
.
orderMainDao
.
updateById
(
order
);
OrderRefund
orderRefund
=
refundMapper
.
selectOne
(
Wrappers
.<
OrderRefund
>
lambdaQuery
()
.
eq
(
OrderRefund:
:
getOrderMianId
,
order
.
getId
())
.
eq
(
OrderRefund:
:
getRefundStatus
,
1
));
orderRefund
.
setRefundStatus
(
"3"
);
refundMapper
.
updateById
(
orderRefund
);
List
<
OrderSub
>
orderSubs
=
this
.
orderSubDao
.
selectList
(
Wrappers
.<
OrderSub
>
lambdaQuery
().
eq
(
OrderSub:
:
getMainid
,
order
.
getId
()).
eq
(
OrderSub:
:
getSdef1
,
1
));
orderSubs
.
forEach
(
sub
->
{
sub
.
setSdef1
(
"3"
);
sub
.
setSdef3
(
"0"
);
orderSubDao
.
updateById
(
sub
);
});
return
Result
.
success
(
"成功"
);
}
/**
* 已收到退回货物,开始退款
*
* @param order
* @return
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
refundReceive
(
OrderMain
order
)
{
// 根据id获取订单信息
OrderMain
orderMain
=
this
.
orderMainDao
.
selectById
(
order
.
getId
());
OrderRefund
orderRefund
=
refundMapper
.
selectOne
(
Wrappers
.<
OrderRefund
>
lambdaQuery
()
.
eq
(
OrderRefund:
:
getOrderMianId
,
order
.
getId
())
.
eq
(
OrderRefund:
:
getRefundStatus
,
1
));
orderRefund
.
setRefundStatus
(
"6"
);
refundMapper
.
updateById
(
orderRefund
);
this
.
orderMainDao
.
updateById
(
orderMain
);
log
.
info
(
"收货成功,开始退款:{}"
,
JSON
.
toJSONString
(
orderMain
));
try
{
wxService
.
wxRefund
(
orderMain
.
getCustomerid
(),
orderMain
.
getId
(),
"用户申请退款"
,
null
);
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
.
getMessage
());
}
return
Result
.
success
(
"成功"
);
}
//已支付订单 无法取消
if
(
orderMain
.
getIpaystatus
().
equals
(
OrderMain
.
PAY_STATUS_OK
)){
try
{
wxService
.
wxRefund
(
orderMain
.
getCustomerid
(),
orderMain
.
getId
(),
"用户申请退款"
,
null
);
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
cancelOrder
(
OrderMain
order
)
{
if
(
order
.
getId
()
==
null
)
{
return
Result
.
error
();
}
//已取消
order
.
setIstatus
(
OrderMain
.
STATUS_CANCEL
);
OrderMain
orderMain
=
this
.
orderMainDao
.
selectById
(
order
.
getId
());
this
.
orderMainDao
.
updateById
(
order
);
//已支付订单 无法取消
if
(
orderMain
.
getIpaystatus
().
equals
(
OrderMain
.
PAY_STATUS_OK
))
{
try
{
wxService
.
wxRefund
(
orderMain
.
getCustomerid
(),
orderMain
.
getId
(),
"用户申请退款"
,
null
);
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
}
return
Result
.
success
(
"成功"
);
//已取消
order
.
setIstatus
(
OrderMain
.
STATUS_CANCEL
);
}
this
.
orderMainDao
.
updateById
(
order
);
return
Result
.
success
(
"成功"
);
}
//app支付
...
...
@@ -387,7 +394,7 @@ public class OrderMainServiceImpl {
return
new
Result
(
102
);
}
//商品名称封装
String
prodNames
=
"Q&A."
+
order
.
getSorderno
();
String
prodNames
=
"Q&A."
+
order
.
getSorderno
();
DecimalFormat
decimalFormat
=
new
DecimalFormat
(
"###################"
);
...
...
@@ -406,8 +413,8 @@ public class OrderMainServiceImpl {
//将订单信息也返回页面
Map
<
String
,
Object
>
mr
=
new
HashMap
<
String
,
Object
>();
mr
.
put
(
"order_id"
,
order
.
getId
());
mr
.
put
(
"result_code"
,
wxPayData
.
get
(
"result_code"
));
mr
.
put
(
"order_id"
,
order
.
getId
());
mr
.
put
(
"result_code"
,
wxPayData
.
get
(
"result_code"
));
//将状态码属性移除
wxPayData
.
remove
(
"result_code"
);
...
...
@@ -419,187 +426,214 @@ public class OrderMainServiceImpl {
}
//商品 订单逻辑处理
protected
void
handleCommProuctOrder
(
OrderMain
co
)
{
//商品 订单逻辑处理
protected
void
handleCommProuctOrder
(
OrderMain
co
)
{
if
(
co
==
null
)
return
;
if
(
co
==
null
)
return
;
// 支付回调标志,防止 多次回调
if
(
StringUtils
.
isEmpty
(
co
.
getSdef4
()))
{
// 支付回调标志,防止 多次回调
if
(
StringUtils
.
isEmpty
(
co
.
getSdef4
()))
{
//支会回调标志
co
.
setIstatus
(
OrderMain
.
STATUS_WAITING
);
//待收货
co
.
setIpaystatus
(
OrderMain
.
PAY_STATUS_OK
);
//支付成功
co
.
setTpaytime
(
new
Date
());
//支付时间
co
.
setSdef4
(
"1"
);
//支会回调标志
co
.
setIstatus
(
OrderMain
.
STATUS_WAITING
);
//待收货
co
.
setIpaystatus
(
OrderMain
.
PAY_STATUS_OK
);
//支付成功
co
.
setTpaytime
(
new
Date
());
//支付时间
co
.
setSdef4
(
"1"
);
this
.
update
(
co
);
this
.
update
(
co
);
//判断是否 有抵扣的积分
if
(
co
.
getDactscore
()
!=
null
&&
co
.
getDactscore
()
>
0
)
{
//扣除用户抵扣所用的积分
Integralrec
integralrec
=
new
Integralrec
();
integralrec
.
setDexpend
(
co
.
getDactscore
());
integralrec
.
setOrderid
(
co
.
getId
());
integralrec
.
setCustomerid
(
co
.
getCustomerid
());
integralrec
.
setItype
(
Integralrec
.
INTEGRALREC_ORDOUT
);
//下单抵扣
integralrec
.
setSdesc
(
"下单抵扣"
);
integralrec
.
setSoprdate
(
DateTools
.
getDate
(
"yyyy-MM-dd"
));
integralrec
.
setToprtime
(
new
Date
());
integralrecDao
.
insertSelective
(
integralrec
);
}
//判断是否 有抵扣的积分
if
(
co
.
getDactscore
()
!=
null
&&
co
.
getDactscore
()
>
0
)
{
//扣除用户抵扣所用的积分
Integralrec
integralrec
=
new
Integralrec
();
integralrec
.
setDexpend
(
co
.
getDactscore
());
integralrec
.
setOrderid
(
co
.
getId
());
integralrec
.
setCustomerid
(
co
.
getCustomerid
());
integralrec
.
setItype
(
Integralrec
.
INTEGRALREC_ORDOUT
);
//下单抵扣
integralrec
.
setSdesc
(
"下单抵扣"
);
integralrec
.
setSoprdate
(
DateTools
.
getDate
(
"yyyy-MM-dd"
));
integralrec
.
setToprtime
(
new
Date
());
integralrecDao
.
insertSelective
(
integralrec
);
}
//奖励用户下单返利积分 1元= 10积分
if
(
co
.
getDactmoney
()
!=
null
&&
co
.
getDactmoney
()
>
0
)
{
//奖励用户下单返利积分 1元= 10积分
if
(
co
.
getDactmoney
()
!=
null
&&
co
.
getDactmoney
()
>
0
)
{
//保留整数位
//保留整数位
double
floor
=
Math
.
floor
(
co
.
getDactmoney
());
double
dincome
=
floor
*
10
;
if
(
dincome
>
0
)
{
//增加积分收入记录
Integralrec
inte
=
new
Integralrec
();
inte
.
setDincome
(
dincome
);
inte
.
setOrderid
(
co
.
getId
());
inte
.
setCustomerid
(
co
.
getCustomerid
());
inte
.
setItype
(
Integralrec
.
INTEGRALREC_NEWORD
);
//下单返利
inte
.
setSdesc
(
"下单返利"
);
inte
.
setSoprdate
(
DateTools
.
getDate
(
"yyyy-MM-dd"
));
inte
.
setToprtime
(
new
Date
());
integralrecDao
.
insertSelective
(
inte
);
}
if
(
dincome
>
0
)
{
//增加积分收入记录
Integralrec
inte
=
new
Integralrec
();
inte
.
setDincome
(
dincome
);
inte
.
setOrderid
(
co
.
getId
());
inte
.
setCustomerid
(
co
.
getCustomerid
());
inte
.
setItype
(
Integralrec
.
INTEGRALREC_NEWORD
);
//下单返利
inte
.
setSdesc
(
"下单返利"
);
inte
.
setSoprdate
(
DateTools
.
getDate
(
"yyyy-MM-dd"
));
inte
.
setToprtime
(
new
Date
());
integralrecDao
.
insertSelective
(
inte
);
}
}
}
}
}
}
}
//积分支付
public
Result
integralPay
(
Integer
userId
,
Integer
orderId
)
{
//积分支付
public
Result
integralPay
(
Integer
userId
,
Integer
orderId
)
{
OrderMain
ord
=
orderMainDao
.
selectByPrimaryKey
(
orderId
);
if
(
ord
==
null
||
!
ord
.
getCustomerid
().
equals
(
userId
))
{
return
Result
.
error
(
"订单参数错误"
);
}
OrderMain
ord
=
orderMainDao
.
selectByPrimaryKey
(
orderId
);
if
(
ord
==
null
||
!
ord
.
getCustomerid
().
equals
(
userId
))
{
return
Result
.
error
(
"订单参数错误"
);
}
//积分金额
if
(
ord
.
getDactscore
()
==
null
)
{
return
Result
.
error
(
"订单参数错误"
);
}
//积分金额
if
(
ord
.
getDactscore
()
==
null
)
{
return
Result
.
error
(
"订单参数错误"
);
}
//支付状态
if
(!
ord
.
getIpaystatus
().
equals
(
OrderMain
.
PAY_STATUS_NO
))
{
return
Result
.
error
(
"订单参数错误"
);
}
//支付状态
if
(!
ord
.
getIpaystatus
().
equals
(
OrderMain
.
PAY_STATUS_NO
))
{
return
Result
.
error
(
"订单参数错误"
);
}
//订单状态
if
(!
ord
.
getIstatus
().
equals
(
OrderMain
.
STATUS_NOPAY
))
{
return
Result
.
error
(
"订单参数错误"
);
}
//订单状态
if
(!
ord
.
getIstatus
().
equals
(
OrderMain
.
STATUS_NOPAY
))
{
return
Result
.
error
(
"订单参数错误"
);
}
//判断用户积分是否足够
// 查询该用户的积分
Integralrec
inte
=
new
Integralrec
();
inte
.
setCustomerid
(
ord
.
getCustomerid
());
Double
inteNum
=
this
.
integralrecDao
.
sumIntegral
(
inte
);
//判断用户积分是否足够
// 查询该用户的积分
Integralrec
inte
=
new
Integralrec
();
inte
.
setCustomerid
(
ord
.
getCustomerid
());
Double
inteNum
=
this
.
integralrecDao
.
sumIntegral
(
inte
);
if
(
inteNum
==
null
||
inteNum
<
0
)
return
Result
.
error
(
"积分不足,无法支付"
);
if
(
inteNum
==
null
||
inteNum
<
0
)
return
Result
.
error
(
"积分不足,无法支付"
);
// 用户收入积分减去支付积分要大于订单积分价格
if
((
inteNum
!=
null
?
inteNum
:
0
)
<
ord
.
getDactscore
())
{
return
Result
.
error
(
"积分不足,无法支付"
);
}
// 用户收入积分减去支付积分要大于订单积分价格
if
((
inteNum
!=
null
?
inteNum
:
0
)
<
ord
.
getDactscore
())
{
return
Result
.
error
(
"积分不足,无法支付"
);
}
//扣除用户积分
//扣除用户积分
Integralrec
integralrec
=
new
Integralrec
();
integralrec
.
setOrderid
(
orderId
);
integralrec
.
setItype
(
Integralrec
.
INTEGRALREC_DUIPRO
);
integralrec
.
setDexpend
(
ord
.
getDactscore
());
integralrec
.
setCustomerid
(
userId
);
integralrec
.
setOrderid
(
orderId
);
integralrec
.
setItype
(
Integralrec
.
INTEGRALREC_DUIPRO
);
integralrec
.
setDexpend
(
ord
.
getDactscore
());
integralrec
.
setCustomerid
(
userId
);
integralrec
.
setSdesc
(
"兑换商品"
);
integralrec
.
setSoprdate
(
DateTools
.
getDate
(
"yyyy-MM-dd"
));
integralrec
.
setToprtime
(
new
Date
());
int
res
=
integralrecDao
.
insert
(
integralrec
);
if
(
res
<=
0
){
if
(
res
<=
0
)
{
return
Result
.
success
(
"支付失败"
);
}
//改变订单状态
//待发货
ord
.
setIstatus
(
OrderMain
.
STATUS_YESPAY
);
//已支付
ord
.
setIpaystatus
(
OrderMain
.
FLAG_Y
);
//支付时间
ord
.
setTpaytime
(
new
Date
());
//支付时间
this
.
orderMainDao
.
updateById
(
ord
);
return
Result
.
success
(
"支付成功"
);
}
/**
* 获取用户最后一次填写的地址信息
*
* @param userId 用户id
* @return
*/
public
Result
getLastOrderAddres
(
Integer
userId
)
{
return
Result
.
success
(
this
.
orderMainDao
.
getLastOrderAddres
(
userId
));
}
/**
* 申请退款
*
* @param order
* @param ids
* @return
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
refundOrder
(
OrderMain
order
,
JSONArray
ids
)
{
OrderMain
orderMain
=
this
.
orderMainDao
.
selectById
(
order
.
getId
());
orderMain
.
setSrefundreason
(
order
.
getSrefundreason
());
orderMain
.
setSrefundpic
(
order
.
getSrefundpic
());
orderMain
.
setIrefundstatus
(
order
.
getIrefundstatus
());
Double
refundmoney
=
Double
.
valueOf
(
0.0
);
if
(
CollectionUtils
.
isNotEmpty
(
ids
))
{
List
<
OrderSub
>
orderSubs
=
this
.
orderSubDao
.
selectList
(
Wrappers
.<
OrderSub
>
lambdaQuery
().
eq
(
OrderSub:
:
getMainid
,
order
.
getId
()).
in
(
OrderSub:
:
getId
,
ids
));
for
(
OrderSub
sub
:
orderSubs
)
{
sub
.
setSdef1
(
"1"
);
refundmoney
=
refundmoney
+
sub
.
getDprosum
();
this
.
orderSubDao
.
updateById
(
sub
);
}
}
else
{
refundmoney
=
orderMain
.
getDactmoney
();
}
orderMain
.
setIrefundmoney
(
refundmoney
);
this
.
orderMainDao
.
updateById
(
orderMain
);
return
Result
.
success
(
"成功"
);
}
public
List
<
OrderMain
>
selectByParamPageRefundGroupList
(
OrderMain
item
)
{
return
this
.
orderMainDao
.
selectByParamPageRefundGroupList
(
item
);
}
public
Result
saveCourierNumber
(
OrderMain
order
)
{
OrderMain
orderMain
=
this
.
orderMainDao
.
selectById
(
order
.
getId
());
orderMain
.
setIrefundstatus
(
OrderMain
.
STATUS_REFUND
);
orderMain
.
setCouriernumber
(
order
.
getCouriernumber
());
this
.
orderMainDao
.
updateById
(
orderMain
);
return
Result
.
success
(
"成功"
);
}
/**
* 仅退款
* @param order
* @return
*/
public
Result
refundOnly
(
OrderMain
order
)
{
OrderMain
orderMain
=
this
.
orderMainDao
.
selectById
(
order
.
getId
());
orderMain
.
setIrefundstatus
(
OrderMain
.
STATUS_REFUND_ONLY
);
this
.
orderMainDao
.
updateById
(
orderMain
);
return
Result
.
success
(
"成功"
);
}
//待发货
ord
.
setIstatus
(
OrderMain
.
STATUS_YESPAY
);
//已支付
ord
.
setIpaystatus
(
OrderMain
.
FLAG_Y
);
//支付时间
ord
.
setTpaytime
(
new
Date
());
//支付时间
this
.
orderMainDao
.
updateById
(
ord
);
return
Result
.
success
(
"支付成功"
);
}
/**
* 获取用户最后一次填写的地址信息
*
* @param userId 用户id
* @return
*/
public
Result
getLastOrderAddres
(
Integer
userId
)
{
return
Result
.
success
(
this
.
orderMainDao
.
getLastOrderAddres
(
userId
));
}
/**
* 申请退款
*
* @param order
* @param ids
* @return
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
refundOrder
(
OrderMain
order
,
JSONArray
ids
)
{
OrderMain
orderMain
=
this
.
orderMainDao
.
selectById
(
order
.
getId
());
// orderMain.setSrefundreason(order.getSrefundreason());
// orderMain.setSrefundpic(order.getSrefundpic());
// orderMain.setIrefundstatus(order.getIrefundstatus());
OrderRefund
orderRefund
=
new
OrderRefund
();
Double
refundmoney
=
Double
.
valueOf
(
0.0
);
if
(
CollectionUtils
.
isNotEmpty
(
ids
))
{
List
<
JSONObject
>
objects
=
JSON
.
parseArray
(
ids
.
toJSONString
(),
JSONObject
.
class
);
List
<
OrderSub
>
orderSubs
=
this
.
orderSubDao
.
selectList
(
Wrappers
.<
OrderSub
>
lambdaQuery
().
eq
(
OrderSub:
:
getMainid
,
order
.
getId
()));
for
(
JSONObject
id
:
objects
)
{
int
num
=
(
int
)
id
.
get
(
"num"
);
OrderSub
sub
=
orderSubs
.
stream
().
filter
(
orderSub
->
orderSub
.
getId
().
equals
(
id
.
get
(
"id"
))
).
findAny
().
get
();
if
(
ObjectUtils
.
isNotEmpty
(
sub
))
{
if
((
sub
.
getIpronum
()
-
(
sub
.
getSdef3
()
!=
null
?
Integer
.
parseInt
(
sub
.
getSdef3
())
:
0
))
<
num
)
{
return
Result
.
error
(
"退款数量不能大于购买数量"
);
}
if
(
sub
.
getIpronum
()
>
num
)
{
orderRefund
.
setPortion
(
"0"
);
}
else
{
orderRefund
.
setPortion
(
"1"
);
}
sub
.
setSdef1
(
"1"
);
sub
.
setSdef3
(((
sub
.
getSdef3
()
!=
null
?
Integer
.
parseInt
(
sub
.
getSdef3
())
:
0
)
+
num
)
+
""
);
refundmoney
=
refundmoney
+
(
sub
.
getSgoodprice
()
*
num
);
this
.
orderSubDao
.
updateById
(
sub
);
}
}
if
(
orderSubs
.
size
()
>
ids
.
size
())
{
orderRefund
.
setPortion
(
"0"
);
}
}
else
{
refundmoney
=
orderMain
.
getDactmoney
();
}
orderRefund
.
setOrderMianId
(
Long
.
valueOf
(
orderMain
.
getId
()));
orderRefund
.
setRefundDetail
(
ids
.
toJSONString
());
orderRefund
.
setRefundMoney
(
refundmoney
);
orderRefund
.
setRefundReason
(
order
.
getSrefundreason
());
orderRefund
.
setRefundImg
(
order
.
getSrefundpic
());
orderRefund
.
setRefundTime
(
new
Date
());
orderRefund
.
setRefundType
(
order
.
getIrefundstatus
()
==
106
?
"1"
:
"2"
);
orderRefund
.
setRefundStatus
(
"1"
);
refundMapper
.
insert
(
orderRefund
);
// orderMain.setIrefundmoney(refundmoney);
// this.orderMainDao.updateById(orderMain);
return
Result
.
success
(
"成功"
);
}
public
List
<
OrderMain
>
selectByParamPageRefundGroupList
(
OrderMain
item
)
{
return
this
.
orderMainDao
.
selectByParamPageRefundGroupList
(
item
);
}
public
Result
saveCourierNumber
(
OrderMain
order
)
{
OrderMain
orderMain
=
this
.
orderMainDao
.
selectById
(
order
.
getId
());
orderMain
.
setIrefundstatus
(
OrderMain
.
STATUS_REFUND
);
orderMain
.
setCouriernumber
(
order
.
getCouriernumber
());
this
.
orderMainDao
.
updateById
(
orderMain
);
return
Result
.
success
(
"成功"
);
}
/**
* 仅退款
*
* @param order
* @return
*/
public
Result
refundOnly
(
OrderMain
order
)
{
OrderMain
orderMain
=
this
.
orderMainDao
.
selectById
(
order
.
getId
());
orderMain
.
setIrefundstatus
(
OrderMain
.
STATUS_REFUND_ONLY
);
this
.
orderMainDao
.
updateById
(
orderMain
);
return
Result
.
success
(
"成功"
);
}
}
src/main/java/com/yunniu/farming/webadmin/service/impl/WxServiceImpl.java
View file @
68f4abaf
...
...
@@ -2,11 +2,9 @@ package com.yunniu.farming.webadmin.service.impl;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.yunniu.farming.util.*
;
import
com.yunniu.farming.webadmin.dao.CustomerDao
;
import
com.yunniu.farming.webadmin.dao.GroupBuyDao
;
import
com.yunniu.farming.webadmin.dao.IntegralrecDao
;
import
com.yunniu.farming.webadmin.dao.OrderMainDao
;
import
com.yunniu.farming.webadmin.dao.*
;
import
com.yunniu.farming.webadmin.model.*
;
import
com.yunniu.farming.webadmin.service.WxService
;
import
com.yunniu.farming.wx.WxConfigUtil
;
...
...
@@ -49,6 +47,9 @@ public class WxServiceImpl implements WxService {
@Autowired
private
GroupBuyDao
groupBuyDao
;
@Autowired
private
OrderRefundMapper
refundMapper
;
private
String
[]
imageUrl
=
{
"https://yuezhi-1314984551.cos.ap-shanghai.myqcloud.com/register/41e98a7cc2834450b41927219197d713.jpeg"
,
"https://yuezhi-1314984551.cos.ap-shanghai.myqcloud.com/register/65daa7ab2a9c46c99a580874c73465e3.jpeg"
,
"https://yuezhi-1314984551.cos.ap-shanghai.myqcloud.com/register/056bb47d0b274ab7b430ddd522b18ee3.jpeg"
...
...
@@ -243,9 +244,14 @@ public class WxServiceImpl implements WxService {
order
.
setSrefundreason
(
srefundreason
);
// 退款理由
order
.
setIrefundstatus
(
OrderMain
.
STATUS_CANCEL
);
}
order
.
setTrefundtime
(
new
Date
());
order
.
setRefundorderno
(
StringHelper
.
getOrderno
());
orderMainDao
.
updateById
(
order
);
// order.setTrefundtime(new Date());
// order.setRefundorderno(StringHelper.getOrderno());
// orderMainDao.updateById(order);
OrderRefund
refund
=
refundMapper
.
selectOne
(
Wrappers
.<
OrderRefund
>
lambdaQuery
()
.
eq
(
OrderRefund:
:
getOrderMianId
,
order
.
getId
())
.
eq
(
OrderRefund:
:
getRefundStatus
,
6
));
refund
.
setRefundCode
(
StringHelper
.
getOrderno
());
refundMapper
.
updateById
(
refund
);
double
tradeMoney
=
order
.
getDactmoney
();
DecimalFormat
decimalFormat
=
new
DecimalFormat
(
"###################"
);
...
...
@@ -257,15 +263,15 @@ public class WxServiceImpl implements WxService {
parameters
.
put
(
"out_trade_no"
,
order
.
getSorderno
());
// 商户订单号
parameters
.
put
(
"refund_fee_type"
,
"CNY"
);
// 默认人民币:CNY
parameters
.
put
(
"total_fee"
,
decimalFormat
.
format
(
tradeMoney
*
100
));
// 订单总金额
if
(
order
.
getIrefundstatus
().
equals
(
OrderMain
.
STATUS_APPLICATION
))
{
parameters
.
put
(
"refund_fee"
,
decimalFormat
.
format
(
order
.
getIrefundm
oney
()
*
100
));
// 订单总金额
if
(
refund
.
getRefundStatus
().
equals
(
1
))
{
parameters
.
put
(
"refund_fee"
,
decimalFormat
.
format
(
refund
.
getRefundM
oney
()
*
100
));
// 订单总金额
}
else
{
parameters
.
put
(
"refund_fee"
,
decimalFormat
.
format
(
order
.
getIrefundm
oney
()
*
100
));
// 退款金额
parameters
.
put
(
"refund_fee"
,
decimalFormat
.
format
(
refund
.
getRefundM
oney
()
*
100
));
// 退款金额
}
//parameters.put("profit_sharing", "Y");
// 用户端实际ip
parameters
.
put
(
"notify_url"
,
WxConfigUtil
.
refund_notify_url
);
// 接收微信支付异步通知回调地址
parameters
.
put
(
"out_refund_no"
,
order
.
getRefundorderno
());
parameters
.
put
(
"out_refund_no"
,
refund
.
getRefundCode
());
System
.
out
.
println
(
"sign====="
+
parameters
);
// 设置签名
String
sign
=
WxUtil
.
createSignMD5
(
parameters
);
...
...
src/main/java/com/yunniu/farming/wx/WxConfigUtil.java
View file @
68f4abaf
...
...
@@ -15,10 +15,10 @@ public class WxConfigUtil {
public
final
static
String
UNIFIED_ORDER_URL
=
"https://api.mch.weixin.qq.com/pay/unifiedorder"
;
public
final
static
String
PROFIT_SHARING_URL
=
"https://api.mch.weixin.qq.com/secapi/pay/profitsharing"
;
public
final
static
String
PROFIT_SHARING_ADDRECEIVER
=
"https://api.mch.weixin.qq.com/pay/profitsharingaddreceiver"
;
// public final static String notify_url = "http://farming
.nyinhong.com/wx/notify"; // 订单回调接口
public
final
static
String
notify_url
=
"https://qpxdnyy.com/wx/notify"
;
// 订单回调接口
// public final static String refund_notify_url = "http://farming
.nyinhong.com/wx/wxRefundNotify"; // 订单回调接口
public
final
static
String
refund_notify_url
=
"https://qpxdnyy.com/wx/wxRefundNotify"
;
// 订单回调接口
public
final
static
String
notify_url
=
"http://felo
.nyinhong.com/wx/notify"
;
// 订单回调接口
//
public final static String notify_url = "https://qpxdnyy.com/wx/notify"; // 订单回调接口
public
final
static
String
refund_notify_url
=
"http://felo
.nyinhong.com/wx/wxRefundNotify"
;
// 订单回调接口
//
public final static String refund_notify_url = "https://qpxdnyy.com/wx/wxRefundNotify"; // 订单回调接口
public
final
static
String
REFUND_ORDER_URL
=
"https://api.mch.weixin.qq.com/secapi/pay/refund"
;
public
static
String
GET_MINICODE_URL
=
"https://api.weixin.qq.com/wxa/getwxacodeunlimit"
;
...
...
src/main/java/com/yunniu/farming/wx/WxUtil.java
View file @
68f4abaf
...
...
@@ -3,6 +3,7 @@ package com.yunniu.farming.wx;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.yunniu.farming.util.HttpClientUtil
;
import
org.apache.commons.codec.digest.DigestUtils
;
import
org.jdom.JDOMException
;
import
javax.crypto.Mac
;
...
...
@@ -102,8 +103,8 @@ public class WxUtil {
}
}
sb
.
append
(
"key="
+
WxConfigUtil
.
API_KEY
);
String
sign
=
MD5
(
sb
.
toString
());
return
sign
;
String
sign
=
DigestUtils
.
md5Hex
(
sb
.
toString
());
return
sign
.
toUpperCase
()
;
}
...
...
src/main/resources/application.properties
View file @
68f4abaf
#spring.datasource.url=jdbc:mysql://152.136.113.101:3306/farming?autoReconnect=true&useUnicode=true&allowMultiQueries=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
#spring.datasource.username=root
#spring.datasource.password=Root_123456
spring.datasource.url
=
jdbc:mysql://localhost:3306/farming?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
spring.datasource.username
=
farming
spring.datasource.password
=
PKWB6psxa7FBApZB
#
spring.datasource.url=jdbc:mysql://db1.prd.jianghuxx.com:3317/farming?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
#
spring.datasource.username=root
#
spring.datasource.password=4f9fa23639242790
#
spring.datasource.url=jdbc:mysql://localhost:3306/farming?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
#
spring.datasource.username=farming
#
spring.datasource.password=PKWB6psxa7FBApZB
spring.datasource.url
=
jdbc:mysql://db1.prd.jianghuxx.com:3317/farming?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
spring.datasource.username
=
root
spring.datasource.password
=
4f9fa23639242790
#7LwimZ27FqEnzIPg
##47.101.199.10
spring.datasource.driverClassName
=
com.mysql.cj.jdbc.Driver
...
...
src/main/resources/mappings/OrderMainMapper.xml
View file @
68f4abaf
...
...
@@ -61,6 +61,7 @@
<!-- 以下为商品相关字段 -->
<result
column=
"zsproductname"
property=
"sproductname"
jdbcType=
"VARCHAR"
/>
<result
column=
"zspshortpic"
property=
"spshortpic"
jdbcType=
"VARCHAR"
/>
<result
column=
"zsdef2"
property=
"sdef2"
jdbcType=
"VARCHAR"
/>
</collection>
</resultMap>
...
...
@@ -191,7 +192,7 @@
</select>
<resultMap
id=
"ResultMap"
type=
"com.yunniu.farming.webadmin.model.OrderMain"
>
<
id
column=
"id"
property=
"id"
jdbcType=
"INTEGER"
/>
<
result
column=
"id"
property=
"id"
jdbcType=
"INTEGER"
/>
<result
column=
"customerid"
property=
"customerid"
jdbcType=
"INTEGER"
/>
<result
column=
"addressid"
property=
"addressid"
jdbcType=
"INTEGER"
/>
<result
column=
"sorderno"
property=
"sorderno"
jdbcType=
"VARCHAR"
/>
...
...
@@ -233,6 +234,17 @@
<result
column=
"groupBuyId"
property=
"groupBuyId"
jdbcType=
"BIGINT"
/>
<result
column=
"groupBuyName"
property=
"groupBuyName"
jdbcType=
"VARCHAR"
/>
<association
property=
"customer"
column=
"customerid"
select=
"selectCustomer"
/>
<collection
property=
"orderRefund"
javaType=
"com.yunniu.farming.webadmin.model.OrderRefund"
>
<result
column=
"refund_type"
jdbcType=
"CHAR"
property=
"refundType"
/>
<result
column=
"portion"
jdbcType=
"CHAR"
property=
"portion"
/>
<result
column=
"refund_code"
jdbcType=
"VARCHAR"
property=
"refundCode"
/>
<result
column=
"refund_status"
jdbcType=
"CHAR"
property=
"refundStatus"
/>
<result
column=
"refund_money"
jdbcType=
"DOUBLE"
property=
"refundMoney"
/>
<result
column=
"refund_time"
jdbcType=
"TIMESTAMP"
property=
"refundTime"
/>
<result
column=
"refund_reason"
jdbcType=
"VARCHAR"
property=
"refundReason"
/>
<result
column=
"refund_img"
jdbcType=
"VARCHAR"
property=
"refundImg"
/>
<result
column=
"refund_detail"
jdbcType=
"VARCHAR"
property=
"refundDetail"
/>
</collection>
<!-- FRICE TODO 一对多 关联查询 -->
<collection
property=
"subs"
ofType=
"com.yunniu.farming.webadmin.model.OrderSub"
select=
"selectOrderSub"
column=
"id"
/>
...
...
@@ -265,10 +277,52 @@
<!-- 带参数分页查询 S -->
<select
id=
"selectByParamPageList"
resultMap=
"ResultMap"
parameterType=
"com.yunniu.farming.webadmin.model.OrderMain"
>
SELECT
<include
refid=
"Full_Column_List"
/>
SELECT ordermain.id
, customerid
, addressid
, sorderno
, sorderdate
, tordertime
, tovertime
, dplanmoney
, dactmoney
, dactscore
, ipaystatus
, tpaytime
, refundorderno
, irefundmoney
, trefundtime
, srefundreason
, srefundpic
, refund.couriernumber
, istatus
, itype
, group_order_id
, productid
, ipaytype
, shareuid
, sremark
, sdef1
, sdef2
, sdef3
, sdef4
, sdef5
, idef6
, idef7
, ddef8
, ddef9
, ddef10
, scusaddr
, scuname
, scuphone
, sprovince
, scity
, sregion
, refund.refund_status as irefundstatus
<!-- 关联子表信息 -->
FROM order_main ordermain
left join order_refund refund
on ordermain.id = refund.order_mian_id AND refund.id = (select MAX(id) from order_refund where order_mian_id = ordermain.id)
<where>
<if
test=
"appflag == null or appflag == ''"
>
ordermain.itype = 10
...
...
@@ -303,6 +357,7 @@
AND ordermain.sorderdate
<![CDATA[ <= ]]>
#{endDate,jdbcType=VARCHAR}
</if>
</where>
group by ordermain.id
<!-- 以时间倒序显示 -->
ORDER BY ordermain.tordertime DESC
</select>
...
...
@@ -321,6 +376,7 @@
sub.sgoodprice AS zsgoodprice,
sub.sproductname AS zsproductname,
sub.spshortpic AS zspshortpic,
ifnull(sub.sdef2, 0) as zsdef2,
go.remark
FROM order_main ordermain
LEFT JOIN order_sub sub ON ordermain.id = sub.mainid
...
...
@@ -410,18 +466,119 @@
order by tordertime desc limit 1
</select>
<select
id=
"selectByParamPageRefundGroupList"
resultMap=
"ResultMap"
>
<resultMap
id=
"RefundResultMap"
type=
"com.yunniu.farming.webadmin.model.OrderMain"
>
<id
column=
"zid"
property=
"zid"
jdbcType=
"INTEGER"
/>
<result
column=
"id"
property=
"id"
jdbcType=
"INTEGER"
/>
<result
column=
"customerid"
property=
"customerid"
jdbcType=
"INTEGER"
/>
<result
column=
"addressid"
property=
"addressid"
jdbcType=
"INTEGER"
/>
<result
column=
"sorderno"
property=
"sorderno"
jdbcType=
"VARCHAR"
/>
<result
column=
"scusaddr"
property=
"scusaddr"
jdbcType=
"VARCHAR"
/>
<result
column=
"scuname"
property=
"scuname"
jdbcType=
"VARCHAR"
/>
<result
column=
"scuphone"
property=
"scuphone"
jdbcType=
"VARCHAR"
/>
<result
column=
"sprovince"
property=
"sprovince"
jdbcType=
"VARCHAR"
/>
<result
column=
"scity"
property=
"scity"
jdbcType=
"VARCHAR"
/>
<result
column=
"sregion"
property=
"sregion"
jdbcType=
"VARCHAR"
/>
<result
column=
"sorderdate"
property=
"sorderdate"
jdbcType=
"CHAR"
/>
<result
column=
"tordertime"
property=
"tordertime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"tovertime"
property=
"tovertime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"dplanmoney"
property=
"dplanmoney"
jdbcType=
"DECIMAL"
/>
<result
column=
"dactmoney"
property=
"dactmoney"
jdbcType=
"DECIMAL"
/>
<result
column=
"dactscore"
property=
"dactscore"
jdbcType=
"DECIMAL"
/>
<result
column=
"ipaystatus"
property=
"ipaystatus"
jdbcType=
"INTEGER"
/>
<result
column=
"group_order_id"
property=
"groupOrderId"
jdbcType=
"INTEGER"
/>
<result
column=
"irefundstatus"
property=
"irefundstatus"
jdbcType=
"INTEGER"
/>
<result
column=
"irefundmoney"
property=
"irefundmoney"
jdbcType=
"INTEGER"
/>
<result
column=
"tpaytime"
property=
"tpaytime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"trefundtime"
property=
"trefundtime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"istatus"
property=
"istatus"
jdbcType=
"INTEGER"
/>
<result
column=
"itype"
property=
"itype"
jdbcType=
"INTEGER"
/>
<result
column=
"srefundreason"
property=
"srefundreason"
jdbcType=
"VARCHAR"
/>
<result
column=
"srefundpic"
property=
"srefundpic"
jdbcType=
"VARCHAR"
/>
<result
column=
"couriernumber"
property=
"couriernumber"
jdbcType=
"VARCHAR"
/>
<result
column=
"productid"
property=
"productid"
jdbcType=
"INTEGER"
/>
<result
column=
"ipaytype"
property=
"ipaytype"
jdbcType=
"INTEGER"
/>
<result
column=
"sremark"
property=
"sremark"
jdbcType=
"VARCHAR"
/>
<result
column=
"remark"
property=
"remark"
jdbcType=
"VARCHAR"
/>
<result
column=
"sdef1"
property=
"sdef1"
jdbcType=
"VARCHAR"
/>
<result
column=
"sdef2"
property=
"sdef2"
jdbcType=
"VARCHAR"
/>
<result
column=
"sdef3"
property=
"sdef3"
jdbcType=
"VARCHAR"
/>
<result
column=
"sdef4"
property=
"sdef4"
jdbcType=
"VARCHAR"
/>
<result
column=
"sdef5"
property=
"sdef5"
jdbcType=
"VARCHAR"
/>
<result
column=
"idef6"
property=
"idef6"
jdbcType=
"INTEGER"
/>
<result
column=
"idef7"
property=
"idef7"
jdbcType=
"INTEGER"
/>
<result
column=
"ddef8"
property=
"ddef8"
jdbcType=
"DECIMAL"
/>
<result
column=
"ddef9"
property=
"ddef9"
jdbcType=
"DECIMAL"
/>
<result
column=
"ddef10"
property=
"ddef10"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"groupBuyId"
property=
"groupBuyId"
jdbcType=
"BIGINT"
/>
<result
column=
"groupBuyName"
property=
"groupBuyName"
jdbcType=
"VARCHAR"
/>
<association
property=
"customer"
column=
"customerid"
select=
"selectCustomer"
/>
<association
property=
"orderRefund"
javaType=
"com.yunniu.farming.webadmin.model.OrderRefund"
>
<result
column=
"refund_type"
jdbcType=
"CHAR"
property=
"refundType"
/>
<result
column=
"portion"
jdbcType=
"CHAR"
property=
"portion"
/>
<result
column=
"refund_code"
jdbcType=
"VARCHAR"
property=
"refundCode"
/>
<result
column=
"refund_status"
jdbcType=
"CHAR"
property=
"refundStatus"
/>
<result
column=
"refund_money"
jdbcType=
"DOUBLE"
property=
"refundMoney"
/>
<result
column=
"refund_time"
jdbcType=
"TIMESTAMP"
property=
"refundTime"
/>
<result
column=
"refund_reason"
jdbcType=
"VARCHAR"
property=
"refundReason"
/>
<result
column=
"refund_img"
jdbcType=
"VARCHAR"
property=
"refundImg"
/>
<result
column=
"refund_detail"
jdbcType=
"VARCHAR"
property=
"refundDetail"
/>
</association>
</resultMap>
<select
id=
"selectByParamPageRefundGroupList"
resultMap=
"RefundResultMap"
>
SELECT
<include
refid=
"Full_Column_List"
/>
<!-- 关联子表信息 -->
,gb.id as groupBuyId
,gb.group_buy_title as groupBuyName
FROM order_main ordermain
left join group_order go on ordermain.group_order_id = go.id
left join group_buy gb on go.group_buy_id = gb.id
ordermain.id,
ordermain.customerid,
ordermain.addressid,
ordermain.sorderno,
ordermain.sorderdate,
ordermain.tordertime,
ordermain.tovertime,
ordermain.dplanmoney,
ordermain.dactmoney,
ordermain.dactscore,
ordermain.ipaystatus,
ordermain.tpaytime,
ordermain.couriernumber,
ordermain.istatus,
ordermain.itype,
ordermain.group_order_id,
ordermain.productid,
ordermain.ipaytype,
ordermain.shareuid,
ordermain.sremark,
ordermain.sdef1,
ordermain.sdef2,
ordermain.sdef3,
ordermain.ddef8,
ordermain.scusaddr,
ordermain.scuname,
ordermain.scuphone,
ordermain.sprovince,
ordermain.scity,
ordermain.sregion,
orderRefund.id as zid,
orderRefund.refund_type,
orderRefund.portion,
orderRefund.refund_code,
orderRefund.refund_status,
orderRefund.refund_money,
orderRefund.refund_time,
orderRefund.refund_suc_time,
orderRefund.refund_reason,
orderRefund.refund_img,
orderRefund.refund_detail,
gb.id AS groupBuyId,
gb.group_buy_title AS groupBuyName
FROM
order_refund AS orderRefund
LEFT JOIN order_main AS ordermain ON orderRefund.order_mian_id = ordermain.id
LEFT JOIN group_order go ON ordermain.group_order_id = go.id
LEFT JOIN group_buy gb ON go.group_buy_id = gb.id
<where>
ordermain.group_order_id IS NOT NULL
AND ordermain.irefundstatus IS NOT NULL
and orderRefund.order_mian_id is not null
<if
test=
"id != null"
>
AND ordermain.id = #{id,jdbcType=INTEGER}
</if>
...
...
@@ -453,6 +610,6 @@
</if>
</where>
<!-- 以时间倒序显示 -->
ORDER BY order
main.torder
time DESC
ORDER BY order
Refund.refund_
time DESC
</select>
</mapper>
src/main/resources/templates/groupBuy/addOrEdit.html
View file @
68f4abaf
...
...
@@ -422,8 +422,8 @@
groupBuy
.
areaIdList
=
areaIdList
;
groupBuy
.
products
=
products
;
groupBuy
.
goodsImgArr
=
goodsImgArr
;
groupBuy
.
groupBuyPic
=
groupBuyPic
;
//
groupBuy.groupBuyPic = "https://yuezhi-1314984551.cos.ap-shanghai.myqcloud.com/register/0f2f3ca914fa4e36ad644f61a3a3a243.jpeg";
//
groupBuy.groupBuyPic = groupBuyPic;
groupBuy
.
groupBuyPic
=
"https://yuezhi-1314984551.cos.ap-shanghai.myqcloud.com/register/0f2f3ca914fa4e36ad644f61a3a3a243.jpeg"
;
groupBuy
.
startTime
=
startTime
;
groupBuy
.
endTime
=
endTime
;
$
.
ajax
({
...
...
src/main/resources/templates/order/refundList.html
View file @
68f4abaf
...
...
@@ -83,12 +83,12 @@
<script
type=
"text/html"
id=
"table-handle"
>
<
i
class
=
"layui-icon layui-icon-form"
lay
-
event
=
"orderDetail"
title
=
"订单详情"
><
/i
>
<!--
101
退款申请中
102
待退货
103
待退款
104
退款成功
105
退款拒绝
-->
{{
#
if
(
d
.
irefundstatus
==
10
1
)
{
}}
{{
#
if
(
d
.
orderRefund
.
refundStatus
==
1
&&
d
.
orderRefund
.
refundType
==
1
)
{
}}
<
i
class
=
"layui-icon layui-icon-ok"
lay
-
event
=
"pass"
title
=
"退款申请通过"
><
/i
>
<
i
class
=
"layui-icon layui-icon-close"
lay
-
event
=
"refuse"
title
=
"退款申请拒绝"
><
/i
>
{{
#
}
else
if
(
d
.
irefundstatus
==
103
){
}}
<
i
class
=
"layui-icon layui-icon-component"
lay
-
event
=
"receive"
title
=
"退款已收货"
><
/i
>
{{
#
}
else
if
(
d
.
irefundstatus
==
106
){
}}
{{
#
}
else
if
(
d
.
orderRefund
.
refundStatus
==
1
&&
d
.
orderRefund
.
refundType
==
2
){
}}
<
i
class
=
"layui-icon layui-icon-ok"
lay
-
event
=
"pass"
title
=
"仅退款申请通过"
><
/i
>
<
i
class
=
"layui-icon layui-icon-close"
lay
-
event
=
"refuse"
title
=
"仅退款申请拒绝"
><
/i
>
{{
#
}
}}
...
...
@@ -165,27 +165,28 @@
str
+=
"<span style=''>"
+
d
.
customer
.
swxnick
?
d
.
customer
.
swxnick
:
''
+
"</span>"
}
}
return
str
;
}
}
,{
title
:
"订单金额"
,
width
:
150
,
templet
:
function
(
d
)
{
var
str
=
""
;
str
+=
'金额:<span style="color:red;"> '
+
(
d
.
dactmoney
?
d
.
dactmoney
:
0
)
+
'</span> '
;
str
+=
'积分:<span style="color:red;"> '
+
(
d
.
dactscore
?
d
.
dactscore
:
0
)
+
'</span>'
;
str
+=
'</div>'
;
return
str
?
str
:
""
;
}
}
,
{
field
:
'irefundmoney'
,
width
:
150
,
title
:
'退款金额'
}
,
{
width
:
150
,
title
:
'退款金额'
,
templet
:
function
(
d
)
{
var
str
=
""
;
str
+=
'<span> '
+
(
d
.
orderRefund
.
refundMoney
?
d
.
orderRefund
.
refundMoney
:
0
)
+
'</span> '
;
str
+=
'</div>'
;
return
str
?
str
:
""
;
}
}
,{
title
:
"订单状态"
,
width
:
200
,
...
...
@@ -209,12 +210,12 @@
str
+=
' <span>'
+
status
+
'</span>'
;
// 101退款申请中 102待退货 103待退款 104退款成功
var
refundStatus
=
""
;
if
(
d
.
irefundstatus
==
10
1
)
refundStatus
=
"<span class='layui-badge layui-bg-red'>退款申请</span>"
;
if
(
d
.
irefundstatus
==
102
)
refundStatus
=
"<span class='layui-badge layui-bg-orange'>待退货</span>"
;
if
(
d
.
irefundstatus
==
103
)
refundStatus
=
"<span class='layui-badge layui-bg-orange'>待退款</span>"
;
if
(
d
.
irefundstatus
==
104
)
refundStatus
=
"<span class='layui-badge layui-bg-green'>退款成功</span>"
;
if
(
d
.
irefundstatus
==
105
)
refundStatus
=
"<span class='layui-badge layui-bg-cyan'>退款拒绝</span>"
;
if
(
d
.
irefundstatus
==
106
)
refundStatus
=
"<span class='layui-badge layui-bg-red'>仅退款申请</span>"
;
if
(
d
.
orderRefund
.
refundStatus
==
1
&&
d
.
orderRefund
.
refundType
==
1
)
refundStatus
=
"<span class='layui-badge layui-bg-red'>退款申请</span>"
;
if
(
d
.
orderRefund
.
refundStatus
==
4
)
refundStatus
=
"<span class='layui-badge layui-bg-orange'>待退货</span>"
;
if
(
d
.
orderRefund
.
refundStatus
==
6
)
refundStatus
=
"<span class='layui-badge layui-bg-orange'>待退款</span>"
;
if
(
d
.
orderRefund
.
refundStatus
==
5
)
refundStatus
=
"<span class='layui-badge layui-bg-green'>退款成功</span>"
;
if
(
d
.
orderRefund
.
refundStatus
==
3
)
refundStatus
=
"<span class='layui-badge layui-bg-cyan'>退款拒绝</span>"
;
if
(
d
.
orderRefund
.
refundStatus
==
1
&&
d
.
orderRefund
.
refundType
==
2
)
refundStatus
=
"<span class='layui-badge layui-bg-red'>仅退款申请</span>"
;
str
+=
' <span>'
+
refundStatus
+
'</span>'
;
str
+=
'</div>'
;
return
str
?
str
:
""
;
...
...
@@ -222,18 +223,32 @@
}
,
{
field
:
'tordertime'
,
width
:
100
,
title
:
'下单日期'
}
,
{
field
:
'sremark'
,
width
:
100
,
title
:
'备注'
}
,
{
field
:
'trefundtime'
,
width
:
100
,
title
:
'退款时间'
}
,
{
width
:
100
,
title
:
'退款时间'
,
templet
:
function
(
d
)
{
var
str
=
""
;
str
+=
'<span> '
+
(
d
.
orderRefund
.
refundSucTime
?
d
.
orderRefund
.
refundSucTime
:
""
)
+
'</span> '
;
str
+=
'</div>'
;
return
str
?
str
:
""
;
}
}
,{
width
:
100
,
title
:
"退款图片"
,
align
:
"center"
,
templet
:
function
(
d
)
{
return
d
.
srefundpic
?
'<div><img id="zi'
+
d
.
id
+
'" src="'
+
d
.
srefundpic
+
return
d
.
orderRefund
.
refundImg
?
'<div><img id="zi'
+
d
.
id
+
'" src="'
+
d
.
orderRefund
.
refundImg
+
'" onmouseover="bigImg(this)" onmouseout="smallImg()" onclick="tolook(src)" style="height:20px;"></div>'
:
''
;
}
}
,
{
field
:
'srefundreason'
,
width
:
100
,
title
:
'退款理由'
}
,
{
width
:
100
,
title
:
'退款理由'
,
templet
:
function
(
d
)
{
var
str
=
""
;
str
+=
'<span> '
+
(
d
.
orderRefund
.
refundReason
?
d
.
orderRefund
.
refundReason
:
""
)
+
'</span> '
;
str
+=
'</div>'
;
return
str
?
str
:
""
;
}
}
,
{
field
:
'couriernumber'
,
width
:
120
,
title
:
'退款快递单号'
}
,
{
field
:
'scusaddr'
,
width
:
100
,
title
:
'地址'
}
,
{
field
:
'scuname'
,
width
:
100
,
title
:
'联系姓名'
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment