Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
caosy
/
fun-golf-service
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
1
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
235c2bb2
authored
Feb 22, 2023
by
caosy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
抵扣劵领取日起
parent
906da92b
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
161 additions
and
57 deletions
src/main/java/com/ctrip/fun/golf/dao/basic/VoucherDao.java
src/main/java/com/ctrip/fun/golf/dao/basic/VoucherRuleDao.java
src/main/java/com/ctrip/fun/golf/domain/basic/VoucherRule.java
src/main/java/com/ctrip/fun/golf/domain/order/Order.java
src/main/java/com/ctrip/fun/golf/service/basic/VoucherRuleService.java
src/main/java/com/ctrip/fun/golf/service/basic/VoucherService.java
src/main/java/com/ctrip/fun/golf/service/order/AbstractOrderService.java
src/main/java/com/ctrip/fun/golf/service/order/BuyVoucherOrderService.java
src/main/java/com/ctrip/fun/golf/service/order/CommuneOrderService.java
src/main/java/com/ctrip/fun/golf/service/order/OpCourseOrderService.java
src/main/java/com/ctrip/fun/golf/service/payment/BuyVoucherNotifyService.java
src/main/java/com/ctrip/fun/golf/service/payment/CommuneNotifyService.java
src/main/java/com/ctrip/fun/golf/dao/basic/VoucherDao.java
View file @
235c2bb2
...
...
@@ -73,6 +73,20 @@ public class VoucherDao extends GenericHibernateDao<Voucher, Integer> {
Query
query
=
getSession
().
createQuery
(
sql
);
query
.
executeUpdate
();
}
/**
* 修改现金券有效期结束时间
*/
public
void
updateVoucherStartEndDateByUid
(
Integer
ruleId
,
Date
endUseDate
,
String
uid
)
{
if
(
ruleId
<
1
||
endUseDate
==
null
)
{
return
;
}
String
endUseDate_str
=
DateUtil
.
getDateTimeStr
(
endUseDate
);
String
sql
=
"update Voucher set EndUseDate='"
+
endUseDate_str
+
"' where ruleId= "
+
ruleId
+
" and deleteStatus =0"
+
"and UID = "
+
uid
;
Query
query
=
getSession
().
createQuery
(
sql
);
query
.
executeUpdate
();
}
/**
* 修改优惠券使用人:用于更换手机号,权益转移
...
...
@@ -678,15 +692,13 @@ public class VoucherDao extends GenericHibernateDao<Voucher, Integer> {
JSONObject
jsobj1
=
JSONObject
.
parseObject
(
voucherRule
.
getConditionJson
());
String
type1
=
jsobj1
.
getString
(
"type"
);
for
(
Map
<
String
,
Object
>
map
:
queryResult
)
{
if
(
5
==
voucherRule
.
getVoucherType
()||
7
==
voucherRule
.
getVoucherType
()||
8
==
voucherRule
.
getVoucherType
()||
9
==
voucherRule
.
getVoucherType
()||
(
voucherRule
.
getVoucherType
()==
1
&&
"1"
.
equals
(
type1
))){
if
(
2
==
voucherRule
.
getTimeType
()){
for
(
int
j
=
0
;
j
<
voucherRule
.
getQuantity
();
j
++)
{
insertSql
.
append
(
"('"
+
voucherRule
.
getVoucherType
()
+
"'"
);
insertSql
.
append
(
",'"
+
voucherRule
.
getAmount
()
+
"'"
);
String
startUseDate
=
DateUtil
.
getDateTimeStr
(
new
Date
());
insertSql
.
append
(
",'"
+
startUseDate
+
"'"
);
String
endUseDate
=
DateUtil
.
getDateTimeStr
(
DateUtils
.
add
Years
(
DateUtil
.
getEndOfDay
(
new
Date
()),
1
));
String
endUseDate
=
DateUtil
.
getDateTimeStr
(
DateUtils
.
add
Months
(
DateUtil
.
getEndOfDay
(
new
Date
()),
voucherRule
.
getTimeDay
()
));
insertSql
.
append
(
",'"
+
endUseDate
+
"'"
);
insertSql
.
append
(
",'"
+
(
String
)
map
.
get
(
"UID"
)
+
"'"
);
insertSql
.
append
(
",'"
+
source
+
"'"
);
...
...
@@ -1032,6 +1044,10 @@ public class VoucherDao extends GenericHibernateDao<Voucher, Integer> {
return
this
.
getEntities
(
hsql
);
}
// 根据uid ruleId 获取用户一张劵
public
Voucher
getOneVoucherByUidRuleId
(
Integer
ruleId
,
String
uid
)
{
String
hsql
=
"from Voucher t where deleteStatus = 0 and t.uid="
+
uid
+
" and t.ruleId="
+
ruleId
;
return
this
.
getEntities
(
hsql
).
get
(
0
);
}
}
src/main/java/com/ctrip/fun/golf/dao/basic/VoucherRuleDao.java
View file @
235c2bb2
...
...
@@ -53,6 +53,9 @@ public class VoucherRuleDao extends GenericHibernateDao<VoucherRule, Integer> {
if
(
query
.
getVoucherType
()
!=
0
)
{
criteria
.
add
(
Restrictions
.
eq
(
"voucherType"
,
query
.
getVoucherType
()));
}
if
(
query
.
getTimeType
()
!=
0
)
{
criteria
.
add
(
Restrictions
.
eq
(
"timeType"
,
query
.
getTimeType
()));
}
if
(
query
.
getStatus
()
!=
0
)
{
if
(
query
.
getStatus
()
==
VoucherRuleStatusEnum
.
EXPIRE
.
getValue
())
{
criteria
.
add
(
Restrictions
.
le
(
"expireDate"
,
new
Date
()));
...
...
src/main/java/com/ctrip/fun/golf/domain/basic/VoucherRule.java
View file @
235c2bb2
...
...
@@ -150,6 +150,17 @@ public class VoucherRule {
private
int
canFreeReceive
;
//判断券是可以免费领取
/**
* 发放时间类型
* 1 时间段 2领取日起
*/
private
int
timeType
;
/**
* 领取日时间
*/
private
int
timeDay
;
@Id
@GeneratedValue
(
strategy
=
IDENTITY
)
@Column
(
name
=
"id"
,
unique
=
true
,
nullable
=
false
)
...
...
@@ -261,7 +272,7 @@ public class VoucherRule {
}
@Temporal
(
TemporalType
.
TIMESTAMP
)
@Column
(
name
=
"startUseDate"
,
nullable
=
false
,
length
=
19
)
@Column
(
name
=
"startUseDate"
,
length
=
19
)
public
Date
getStartUseDate
()
{
return
startUseDate
;
}
...
...
@@ -271,7 +282,7 @@ public class VoucherRule {
}
@Temporal
(
TemporalType
.
TIMESTAMP
)
@Column
(
name
=
"endUseDate"
,
nullable
=
false
,
length
=
19
)
@Column
(
name
=
"endUseDate"
,
length
=
19
)
public
Date
getEndUseDate
()
{
return
endUseDate
;
}
...
...
@@ -399,5 +410,20 @@ public class VoucherRule {
this
.
canFreeReceive
=
canFreeReceive
;
}
public
int
getTimeType
()
{
return
timeType
;
}
public
void
setTimeType
(
int
timeType
)
{
this
.
timeType
=
timeType
;
}
public
int
getTimeDay
()
{
return
timeDay
;
}
public
void
setTimeDay
(
int
timeDay
)
{
this
.
timeDay
=
timeDay
;
}
}
src/main/java/com/ctrip/fun/golf/domain/order/Order.java
View file @
235c2bb2
...
...
@@ -155,6 +155,10 @@ public class Order extends AbstractOrder implements java.io.Serializable {
*/
private
String
channel2
;
private
Integer
isSendVoucher
;
private
int
orderIntegralStatus
;
private
int
shareIntegralStatus
;
...
...
@@ -248,7 +252,7 @@ public class Order extends AbstractOrder implements java.io.Serializable {
int
isThird
,
BigDecimal
voucherAmount
,
BigDecimal
voucherRefundAmount
,
int
prePayCardDeductFlag
,
String
voucherIDList
,
int
voucherCount
,
String
paymentRequestID
,
BigDecimal
giftCardAmount
,
String
realName
,
String
idCard
,
String
mobilePhone
,
int
isConfirm
)
{
BigDecimal
giftCardAmount
,
String
realName
,
String
idCard
,
String
mobilePhone
,
int
isConfirm
,
Integer
isSendVoucher
)
{
this
.
actualAmount
=
actualAmount
;
this
.
adjustAmount
=
adjustAmount
;
this
.
amount
=
amount
;
...
...
@@ -311,6 +315,7 @@ public class Order extends AbstractOrder implements java.io.Serializable {
this
.
idCard
=
idCard
;
this
.
mobilePhone
=
mobilePhone
;
this
.
isConfirm
=
isConfirm
;
this
.
isSendVoucher
=
isSendVoucher
;
}
...
...
@@ -342,7 +347,7 @@ public class Order extends AbstractOrder implements java.io.Serializable {
int
isThird
,
BigDecimal
voucherAmount
,
BigDecimal
voucherRefundAmount
,
int
prePayCardDeductFlag
,
String
voucherIDList
,
int
voucherCount
,
String
paymentRequestID
,
BigDecimal
giftCardAmount
,
String
realName
,
String
idCard
,
String
mobilePhone
,
int
isConfirm
)
{
BigDecimal
giftCardAmount
,
String
realName
,
String
idCard
,
String
mobilePhone
,
int
isConfirm
,
Integer
isSendVoucher
)
{
this
.
actualAmount
=
actualAmount
;
this
.
adjustAmount
=
adjustAmount
;
this
.
amount
=
amount
;
...
...
@@ -417,6 +422,7 @@ public class Order extends AbstractOrder implements java.io.Serializable {
this
.
idCard
=
idCard
;
this
.
mobilePhone
=
mobilePhone
;
this
.
isConfirm
=
isConfirm
;
this
.
isSendVoucher
=
isSendVoucher
;
}
@Id
...
...
@@ -1509,5 +1515,11 @@ public class Order extends AbstractOrder implements java.io.Serializable {
this
.
isConfirm
=
isConfirm
;
}
public
Integer
getIsSendVoucher
()
{
return
isSendVoucher
;
}
public
void
setIsSendVoucher
(
Integer
isSendVoucher
)
{
this
.
isSendVoucher
=
isSendVoucher
;
}
}
src/main/java/com/ctrip/fun/golf/service/basic/VoucherRuleService.java
View file @
235c2bb2
...
...
@@ -19,6 +19,7 @@ import com.alibaba.fastjson.JSONObject;
import
com.ctrip.fun.common.core.exceptions.service.ServiceException
;
import
com.ctrip.fun.common.core.util.BeanConverter
;
import
com.ctrip.fun.common.vo.PagedResponseBean
;
import
com.ctrip.fun.common.vo.basic.TimeTypeEnum
;
import
com.ctrip.fun.common.vo.basic.UserGradeAndVipGradeEnum
;
import
com.ctrip.fun.common.vo.basic.VoucherRuleBean
;
import
com.ctrip.fun.common.vo.basic.VoucherRuleQuery
;
...
...
@@ -191,6 +192,7 @@ public class VoucherRuleService extends
for
(
VoucherRule
t
:
collection
)
{
VoucherRuleBean
vo
=
new
VoucherRuleBean
();
BeanConverter
.
copyProperties
(
vo
,
t
);
vo
.
setTimeTypeMsg
(
TimeTypeEnum
.
valueOf
(
vo
.
getTimeType
()).
getMsg
());
if
(
vo
.
getVoucherType
()
!=
0
)
{
vo
.
setVoucherTypeMsg
(
VoucherTypeEnum
.
valueOf
(
vo
.
getVoucherType
()).
getMsg
());
}
...
...
@@ -267,6 +269,7 @@ public class VoucherRuleService extends
voucherRule
.
setStartUseDate
(
vo
.
getStartUseDate
());
voucherRule
.
setRemark
(
vo
.
getRemark
());
voucherRule
.
setDescription
(
vo
.
getDescription
());
voucherRule
.
setTimeDay
(
vo
.
getTimeDay
());
if
(
voucherRule
.
getVoucherRuleType
()
==
2
)
{
voucherRule
.
setExpireDate
(
vo
.
getExpireDate
());
if
(
vo
.
getValidFlag
()
==
VourcherRuleValidFlagEnum
.
INVALID
.
getValue
()
...
...
src/main/java/com/ctrip/fun/golf/service/basic/VoucherService.java
View file @
235c2bb2
...
...
@@ -1217,7 +1217,7 @@ public class VoucherService {
//社员订单赠送优惠券配置:431_sendBeginTime_sendEndTime(规则id_开始发送时间_结束发送方式)
String
commune_voucher
=
clientConfig
.
getMessage
();
Date
payDate
=
new
Date
();
this
.
sendVoucherForPlaceOrderByConfig
(
uid
,
orderId
,
myselfOrder
,
commune_voucher
,
""
,
""
,
""
,
payDate
);
this
.
sendVoucherForPlaceOrderByConfig
(
uid
,
orderId
,
myselfOrder
,
commune_voucher
,
""
,
""
,
""
,
payDate
,
null
);
}
...
...
@@ -1244,7 +1244,7 @@ public class VoucherService {
}
}
if
(
rule_String
!=
null
){
this
.
sendVoucherForPlaceOrderByConfig
(
uid
,
orderId
,
true
,
rule_String
,
""
,
""
,
""
,
communeEnd
);
this
.
sendVoucherForPlaceOrderByConfig
(
uid
,
orderId
,
true
,
rule_String
,
""
,
""
,
""
,
communeEnd
,
null
);
}
}
...
...
@@ -1277,16 +1277,30 @@ public class VoucherService {
* @param myselfOrder 是否用户自己的订单
* @param voucherSendType 发券配置的key值
*/
public
void
sendVoucherForPlaceOrderByConfig
(
String
uid
,
String
orderId
,
boolean
myselfOrder
,
String
voucherConfig
,
String
realName
,
String
idCard
,
String
mobilePhone
,
Date
payDate
){
public
void
sendVoucherForPlaceOrderByConfig
(
String
uid
,
String
orderId
,
boolean
myselfOrder
,
String
voucherConfig
,
String
realName
,
String
idCard
,
String
mobilePhone
,
Date
payDate
,
Integer
activityId
){
JSONObject
jsobj
=
JSONObject
.
parseObject
(
voucherConfig
);
try
{
Date
sendBeginTime
=
DateUtil
.
parseDateTime
(
jsobj
.
getString
(
"sendBeginTime"
));
Date
sendEndTime
=
DateUtil
.
parseDateTime
(
jsobj
.
getString
(
"sendEndTime"
));
Date
now
=
new
Date
();
if
(
sendBeginTime
.
getTime
()<
now
.
getTime
()&&
now
.
getTime
()<
sendEndTime
.
getTime
()){
String
[]
ids
=
jsobj
.
getString
(
"id"
).
split
(
","
);
for
(
String
id:
ids
){
// 无限卷
if
(
isUsedSend
(
id
)
&&
activityId
!=
null
){
// 是否是第一次购买
int
orderNumber
=
orderDao
.
queryVoucherPayedOrder
(
uid
,
activityId
);
VoucherRule
roucherRule
=
voucherRuleDao
.
findById
(
Integer
.
parseInt
(
id
));
if
(
orderNumber
>
1
){
Voucher
voucher
=
voucherDao
.
getOneVoucherByUidRuleId
(
Integer
.
valueOf
(
id
),
uid
);
if
(
voucher
!=
null
){
Date
endDay
=
DateUtils
.
addMonths
(
voucher
.
getEndUseDate
(),
roucherRule
.
getTimeDay
());
voucherDao
.
updateVoucherStartEndDateByUid
(
Integer
.
valueOf
(
id
),
endDay
,
uid
);
}
}
else
{
for
(
int
i
=
0
;
i
<
roucherRule
.
getQuantity
();
i
++){
Voucher
voucher
=
this
.
getVoucherFromRule
(
roucherRule
,
realName
,
idCard
,
mobilePhone
,
payDate
);
voucher
.
setNo
(
""
);
...
...
@@ -1296,6 +1310,20 @@ public class VoucherService {
voucherDao
.
save
(
voucher
);
}
}
}
else
{
VoucherRule
roucherRule
=
voucherRuleDao
.
findById
(
Integer
.
parseInt
(
id
));
for
(
int
i
=
0
;
i
<
roucherRule
.
getQuantity
();
i
++){
Voucher
voucher
=
this
.
getVoucherFromRule
(
roucherRule
,
realName
,
idCard
,
mobilePhone
,
payDate
);
voucher
.
setNo
(
""
);
voucher
.
setUid
(
uid
);
voucher
.
setSourceRemark
(
orderId
);
voucher
.
setSource
(
myselfOrder
?
VoucherSourceEnum
.
RULE_USERORDER_PRESENT
.
getValue
():
VoucherSourceEnum
.
RULE_FRIENDORDER_PRESENT
.
getValue
());
voucherDao
.
save
(
voucher
);
}
}
}
}
...
...
@@ -1305,6 +1333,26 @@ public class VoucherService {
}
/**
* 判断是否是无限卷
* @param ruleId
* @return
*/
public
boolean
isUsedSend
(
String
ruleId
){
ClientConfig
clientConfig
=
clientConfigDao
.
getByType
(
"voucher_used_send"
);
JSONObject
jsobjt
=
JSONObject
.
parseObject
(
clientConfig
.
getMessage
());
if
(
jsobjt
.
get
(
ruleId
+
""
)!=
null
){
String
[]
newRuleIds
=
jsobjt
.
get
(
ruleId
+
""
).
toString
().
split
(
","
);
for
(
String
newRuleId:
newRuleIds
){
String
[]
conf
=
newRuleId
.
split
(
"_"
);
if
(
Integer
.
parseInt
(
conf
[
1
])==
1
){
return
true
;
}
}
}
return
false
;
}
/**
* 用于从发券模板生成一张券
* @param voucherRule
* @return Voucher
...
...
@@ -1315,15 +1363,10 @@ public class VoucherService {
}
JSONObject
jsobj1
=
JSONObject
.
parseObject
(
voucherRule
.
getConditionJson
());
String
type
=
jsobj1
.
getString
(
"type"
);
if
(
voucherRule
.
getVoucherType
()==
5
||
voucherRule
.
getVoucherType
()
==
7
||
voucherRule
.
getVoucherType
()==
8
||
voucherRule
.
getVoucherType
()==
9
||
(
voucherRule
.
getVoucherType
()==
1
&&
"1"
.
equals
(
type
))){
Voucher
voucher
=
new
Voucher
();
voucher
.
setType
(
voucherRule
.
getVoucherType
());
voucher
.
setAmount
(
voucherRule
.
getAmount
());
voucher
.
setStartUseDate
(
payDate
);
voucher
.
setEndUseDate
(
DateUtils
.
addYears
(
DateUtil
.
getEndOfDay
(
payDate
),
1
));
voucher
.
setRuleId
(
voucherRule
.
getId
());
voucher
.
setRemark
(
voucherRule
.
getRemark
());
voucher
.
setDescription
(
voucherRule
.
getDescription
());
...
...
@@ -1341,34 +1384,17 @@ public class VoucherService {
}
else
{
voucher
.
setVoucherType
(
1
);
}
return
voucher
;
if
(
voucherRule
.
getTimeType
()
==
2
){
// 自领取日起
voucher
.
setStartUseDate
(
payDate
);
voucher
.
setEndUseDate
(
DateUtils
.
addMonths
(
DateUtil
.
getEndOfDay
(
payDate
),
voucherRule
.
getTimeDay
()));
}
else
{
Voucher
voucher
=
new
Voucher
();
voucher
.
setType
(
voucherRule
.
getVoucherType
());
voucher
.
setAmount
(
voucherRule
.
getAmount
());
// 时间段
voucher
.
setStartUseDate
(
voucherRule
.
getStartUseDate
());
voucher
.
setEndUseDate
(
voucherRule
.
getEndUseDate
());
voucher
.
setRuleId
(
voucherRule
.
getId
());
voucher
.
setRemark
(
voucherRule
.
getRemark
());
voucher
.
setDescription
(
voucherRule
.
getDescription
());
voucher
.
setShared
(
voucherRule
.
getShared
());
voucher
.
setUserLimit
(
voucherRule
.
getUserLimit
());
voucher
.
setExclusive
(
voucherRule
.
getExclusive
());
voucher
.
setCanUseAmount
(
voucherRule
.
getCanUseAmount
());
voucher
.
setFullCutAmount
(
voucherRule
.
getFullCutAmount
());
voucher
.
setCreatedTime
(
new
Date
());
voucher
.
setRealName
(
realName
);
voucher
.
setIdCard
(
idCard
);
voucher
.
setMobilePhone
(
mobilePhone
);
if
(
realName
!=
null
&&
!(
""
).
equals
(
realName
)){
voucher
.
setVoucherType
(
2
);
}
else
{
voucher
.
setVoucherType
(
1
);
}
return
voucher
;
}
}
private
void
setOnlyMe
(
VoucherItemDTO
vo
,
Integer
onlyMe
){
...
...
src/main/java/com/ctrip/fun/golf/service/order/AbstractOrderService.java
View file @
235c2bb2
...
...
@@ -1306,9 +1306,9 @@ public abstract class AbstractOrderService<H extends AbstractOrderBean<T>, T> ex
if
(
usedCount
!=
order
.
getVoucherCount
()){
throw
new
OrderException
(-
100
,
"您的抵用劵使用错误"
);
}
for
(
VoucherItemBean
bean:
beanlist
){
this
.
voucherService
.
voucherUsedSend
(
bean
.
getId
(),
order
.
getUid
(),
order
.
getOrderNo
()+
""
,
1
);
}
//
for(VoucherItemBean bean: beanlist){
//
this.voucherService.voucherUsedSend(bean.getId(), order.getUid(), order.getOrderNo()+"", 1);
//
}
}
}
if
(
order
.
getPrePayCardAmount
().
doubleValue
()
>
0
)
{
...
...
src/main/java/com/ctrip/fun/golf/service/order/BuyVoucherOrderService.java
View file @
235c2bb2
...
...
@@ -232,7 +232,7 @@ public class BuyVoucherOrderService extends AbstractOrderService<CommuneOrderBea
BuyVoucherActivity
buyVoucherActivity
=
buyVoucherActivityDao
.
findById
(
communeOrderItem
.
getActivityId
());
//执行发券
String
uid
=
order
.
getUid
();
//下单人id
voucherService
.
sendVoucherForPlaceOrderByConfig
(
uid
,
order
.
getOrderId
()+
""
,
true
,
buyVoucherActivity
.
getVoucherConfig
(),
""
,
""
,
""
,
order
.
getPayDate
());
voucherService
.
sendVoucherForPlaceOrderByConfig
(
uid
,
order
.
getOrderId
()+
""
,
true
,
buyVoucherActivity
.
getVoucherConfig
(),
""
,
""
,
""
,
order
.
getPayDate
()
,
communeOrderItem
.
getActivityId
()
);
}
}
...
...
src/main/java/com/ctrip/fun/golf/service/order/CommuneOrderService.java
View file @
235c2bb2
...
...
@@ -335,7 +335,7 @@ public class CommuneOrderService extends AbstractOrderService<CommuneOrderBean,
this
.
getOrderDao
().
updateOrderStatusForMiniApps
(
order
.
getOrderNo
());
//执行发券
BuyVoucherActivity
buyVoucherActivity
=
buyVoucherActivityDao
.
findById
(
newCommuneOrderBean
.
getActivityId
());
voucherService
.
sendVoucherForPlaceOrderByConfig
(
newCommuneOrderBean
.
getUid
(),
order
.
getOrderId
()+
""
,
true
,
buyVoucherActivity
.
getVoucherConfig
(),
""
,
""
,
""
,
order
.
getPayDate
());
voucherService
.
sendVoucherForPlaceOrderByConfig
(
newCommuneOrderBean
.
getUid
(),
order
.
getOrderId
()+
""
,
true
,
buyVoucherActivity
.
getVoucherConfig
(),
""
,
""
,
""
,
order
.
getPayDate
()
,
communeOrderBean
.
getActivityId
()
);
// 修改优惠券状态
List
<
VoucherItemBean
>
voucherList
=
communeOrderBean
.
getVoucherList
();
...
...
@@ -388,13 +388,6 @@ public class CommuneOrderService extends AbstractOrderService<CommuneOrderBean,
UserExt
userExt
=
getUserExtDao
().
getByUid
(
newCommuneOrderBean
.
getUid
());
BigDecimal
communeOrderMoney
=
new
BigDecimal
(
0
);
// if( "19821271996".equals(communeOrderBean.getUid())|| "18503829406".equals(communeOrderBean.getUid())||
// "18339836926".equals(communeOrderBean.getUid()) || "18917215339".equals(communeOrderBean.getUid())|| "15993911776".equals(communeOrderBean.getUid())){
// communeOrderMoney = new BigDecimal("0.01");
// }else{
// communeOrderMoney = communeOrderBean.getAmount();
// }
// communeOrderMoney = communeOrderBean.getAmount();
communeOrderMoney
=
newCommuneOrderBean
.
getAmount
().
subtract
(
newCommuneOrderBean
.
getVoucherAmount
());
if
(
communeOrderMoney
.
compareTo
(
new
BigDecimal
(
0
))>
0
){
// 微信支付
...
...
@@ -411,7 +404,7 @@ public class CommuneOrderService extends AbstractOrderService<CommuneOrderBean,
this
.
getOrderDao
().
updateOrderStatusForMiniApps
(
order
.
getOrderNo
());
//执行发券
BuyVoucherActivity
buyVoucherActivity
=
buyVoucherActivityDao
.
findById
(
newCommuneOrderBean
.
getActivityId
());
voucherService
.
sendVoucherForPlaceOrderByConfig
(
newCommuneOrderBean
.
getUid
(),
order
.
getOrderId
()+
""
,
true
,
buyVoucherActivity
.
getVoucherConfig
(),
""
,
""
,
""
,
order
.
getPayDate
());
voucherService
.
sendVoucherForPlaceOrderByConfig
(
newCommuneOrderBean
.
getUid
(),
order
.
getOrderId
()+
""
,
true
,
buyVoucherActivity
.
getVoucherConfig
(),
""
,
""
,
""
,
order
.
getPayDate
()
,
newCommuneOrderBean
.
getActivityId
()
);
// 修改优惠券状态
List
<
VoucherItemBean
>
voucherList
=
communeOrderBean
.
getVoucherList
();
if
(
voucherList
.
size
()
>
0
){
...
...
src/main/java/com/ctrip/fun/golf/service/order/OpCourseOrderService.java
View file @
235c2bb2
...
...
@@ -12,7 +12,9 @@ import java.util.Map;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
com.alibaba.fastjson.JSONObject
;
import
com.ctrip.fun.common.core.util.BeanConverter
;
import
com.ctrip.fun.common.core.util.DateUtil
;
import
com.ctrip.fun.common.vo.PagedResponseBean
;
...
...
@@ -55,6 +57,7 @@ import com.ctrip.fun.golf.dao.assemble.AsmCourseResourceDao;
import
com.ctrip.fun.golf.dao.basic.DistrictDao
;
import
com.ctrip.fun.golf.dao.basic.VoucherDao
;
import
com.ctrip.fun.golf.dao.basic.VoucherRuleDao
;
import
com.ctrip.fun.golf.dao.client.ClientConfigDao
;
import
com.ctrip.fun.golf.dao.finance.CourseBalanceDao
;
import
com.ctrip.fun.golf.dao.finance.CourseBalanceTxnDao
;
import
com.ctrip.fun.golf.dao.finance.CoursePayeeDao
;
...
...
@@ -74,6 +77,7 @@ import com.ctrip.fun.golf.domain.assemble.AsmCourseresource;
import
com.ctrip.fun.golf.domain.basic.OperationMessage
;
import
com.ctrip.fun.golf.domain.basic.Voucher
;
import
com.ctrip.fun.golf.domain.basic.VoucherRule
;
import
com.ctrip.fun.golf.domain.client.ClientConfig
;
import
com.ctrip.fun.golf.domain.finance.CourseBalance
;
import
com.ctrip.fun.golf.domain.finance.CourseBalanceTxn
;
import
com.ctrip.fun.golf.domain.finance.CoursePayee
;
...
...
@@ -148,6 +152,9 @@ public class OpCourseOrderService extends AbstractOpOrderService<CourseOrderProc
private
FlashSaleDao
flashSaleDao
=
null
;
@Autowired
private
ClientConfigDao
clientConfigDao
;
public
OrderItem
getOrderItem
(
Integer
orderId
)
{
List
<
OrderItem
>
orderItems
=
this
.
orderItemDao
.
getOrderItemByOrderID
(
orderId
);
if
(
orderItems
!=
null
&&
orderItems
.
size
()
>
0
)
{
...
...
@@ -570,7 +577,6 @@ public class OpCourseOrderService extends AbstractOpOrderService<CourseOrderProc
courseBalanceTxn
.
setArrivalStatus
(
CourseBalanceArrivalStatusEnum
.
ARRIVALED
.
getValue
());
courseBalanceTxnDao
.
save
(
courseBalanceTxn
);
}
// 3.3、退抵用券
if
(
orderProcessBean
.
getRefundVoucherIds
()
!=
null
)
{
BigDecimal
refundVoucher
=
BigDecimal
.
ZERO
;
for
(
Integer
id
:
orderProcessBean
.
getRefundVoucherIds
())
{
...
...
@@ -583,12 +589,31 @@ public class OpCourseOrderService extends AbstractOpOrderService<CourseOrderProc
if
(
voucher
.
getAmount
()
!=
null
)
{
refundVoucher
=
voucher
.
getAmount
().
add
(
refundVoucher
);
}
/**
* 退单时涉及无限券退单,需将原来发放出去的无限券收回
*/
ClientConfig
clientConfig
=
clientConfigDao
.
getByType
(
"voucher_used_send"
);
JSONObject
jsobj
=
JSONObject
.
parseObject
(
clientConfig
.
getMessage
());
if
(
jsobj
.
get
(
voucher
.
getRuleId
()+
""
)!=
null
){
voucher
.
setUseDate
(
null
);
voucher
.
setUsed
(
VourcherUsedEnum
.
UNUSED
.
getKey
());
voucher
.
setOrderNo
(
0
);
voucher
.
setDeleteStatus
(
1
);
voucher
.
setDeleteTime
(
new
Date
());
voucher
.
setOperator
(
"system-wxq"
);
voucherDao
.
update
(
voucher
);
}
else
{
voucher
.
setUseDate
(
null
);
voucher
.
setUsed
(
VourcherUsedEnum
.
UNUSED
.
getKey
());
voucher
.
setOrderNo
(
0
);
voucherDao
.
update
(
voucher
);
}
}
}
order
.
setIsSendVoucher
(
0
);
getOrderDao
().
update
(
order
);
BigDecimal
voucherRefundAmount
=
order
.
getVoucherRefundAmount
();
if
(
voucherRefundAmount
!=
null
)
{
order
.
setVoucherRefundAmount
(
refundVoucher
.
add
(
voucherRefundAmount
));
...
...
src/main/java/com/ctrip/fun/golf/service/payment/BuyVoucherNotifyService.java
View file @
235c2bb2
...
...
@@ -36,7 +36,7 @@ public class BuyVoucherNotifyService extends AbstractNotifyService {
BuyVoucherActivity
buyVoucherActivity
=
buyVoucherActivityDao
.
findById
(
communeOrderItem
.
getActivityId
());
//执行发券
String
uid
=
order
.
getUid
();
//下单人id
voucherService
.
sendVoucherForPlaceOrderByConfig
(
uid
,
order
.
getOrderId
()+
""
,
true
,
buyVoucherActivity
.
getVoucherConfig
(),
""
,
""
,
""
,
order
.
getPayDate
());
voucherService
.
sendVoucherForPlaceOrderByConfig
(
uid
,
order
.
getOrderId
()+
""
,
true
,
buyVoucherActivity
.
getVoucherConfig
(),
""
,
""
,
""
,
order
.
getPayDate
()
,
buyVoucherActivity
.
getId
()
);
}
...
...
src/main/java/com/ctrip/fun/golf/service/payment/CommuneNotifyService.java
View file @
235c2bb2
...
...
@@ -85,7 +85,7 @@ public class CommuneNotifyService extends AbstractNotifyService {
if
(
communeOrderItem
.
getActivityId
()
!=
null
){
//执行发券
BuyVoucherActivity
buyVoucherActivity
=
buyVoucherActivityDao
.
findById
(
communeOrderItem
.
getActivityId
());
voucherService
.
sendVoucherForPlaceOrderByConfig
(
uid
,
order
.
getOrderId
()+
""
,
true
,
buyVoucherActivity
.
getVoucherConfig
(),
""
,
""
,
""
,
order
.
getPayDate
());
voucherService
.
sendVoucherForPlaceOrderByConfig
(
uid
,
order
.
getOrderId
()+
""
,
true
,
buyVoucherActivity
.
getVoucherConfig
(),
""
,
""
,
""
,
order
.
getPayDate
()
,
communeOrderItem
.
getActivityId
()
);
}
}
...
...
@@ -118,7 +118,7 @@ public class CommuneNotifyService extends AbstractNotifyService {
if
(!
""
.
equals
(
order
.
getRealName
())
&&
!
""
.
equals
(
order
.
getIdCard
())
&&
order
.
getIdCard
()!=
null
&&
order
.
getRealName
()!=
null
){
// voucherService.sendVoucherForPlaceOrderByConfig(uid, order.getOrderId()+"", true, buyVoucherActivity.getVoucherConfig(),order.getRealName(),order.getIdCard(),order.getMobilePhone());
}
else
{
voucherService
.
sendVoucherForPlaceOrderByConfig
(
uid
,
order
.
getOrderId
()+
""
,
true
,
buyVoucherActivity
.
getVoucherConfig
(),
""
,
""
,
""
,
order
.
getPayDate
());
voucherService
.
sendVoucherForPlaceOrderByConfig
(
uid
,
order
.
getOrderId
()+
""
,
true
,
buyVoucherActivity
.
getVoucherConfig
(),
""
,
""
,
""
,
order
.
getPayDate
()
,
communeOrderItem
.
getActivityId
()
);
}
//给推荐人发现金红包
...
...
@@ -128,8 +128,8 @@ public class CommuneNotifyService extends AbstractNotifyService {
amount
=
amount
.
multiply
(
new
BigDecimal
(
100
));
WeiXinAtcion
.
weixinPlay1
(
user
.
getMiniAppOpenId
(),
amount
.
toString
().
substring
(
0
,
amount
.
toString
().
length
()
-
3
),
order
.
getOrderNo
(),
buyVoucherActivity
.
getSendName
(),
buyVoucherActivity
.
getActName
(),
buyVoucherActivity
.
getWishing
());
}
// 优惠券状态
// 优惠券状态
if
(!
""
.
equals
(
order
.
getVoucherIDList
())
&&
order
.
getVoucherIDList
()
!=
null
){
String
[]
voucherIds
=
order
.
getVoucherIDList
().
split
(
","
);
voucherService
.
userVoucher
(
voucherIds
.
length
,
order
.
getOrderNo
(),
order
.
getVoucherIDList
());
...
...
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