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
8dccdef1
authored
Feb 09, 2018
by
unknown
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add the vipmemberdiscount in order
parent
91a10df5
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
258 additions
and
37 deletions
src/main/java/com/ctrip/fun/golf/dao/order/OrderDao.java
src/main/java/com/ctrip/fun/golf/dao/user/UserExtDao.java
src/main/java/com/ctrip/fun/golf/domain/order/Order.java
src/main/java/com/ctrip/fun/golf/domain/order/OrderItem.java
src/main/java/com/ctrip/fun/golf/service/order/AbstractOrderService.java
src/main/java/com/ctrip/fun/golf/service/order/CourseOrderService.java
src/main/java/com/ctrip/fun/golf/service/order/OpCourseOrderService.java
src/main/java/com/ctrip/fun/golf/service/payment/CourseNotifyService.java
src/main/java/com/ctrip/fun/golf/service/user/UserExtService.java
src/main/java/com/ctrip/fun/golf/service/user/UserService.java
src/main/java/com/ctrip/fun/golf/dao/order/OrderDao.java
View file @
8dccdef1
...
...
@@ -711,6 +711,27 @@ public class OrderDao extends GenericHibernateDao<Order, Integer> {
return
criteria
.
list
();
}
/**指定一天下单*/
public
List
<
Order
>
queryOrders
(
Date
priceDate
,
String
uid
)
{
String
sql
=
"select t.orderId from ord_orderitem t where t.playDate=:playDate"
;
Session
session
=
this
.
getSession
();
Query
query
=
session
.
createSQLQuery
(
sql
);
query
.
setParameter
(
"playDate"
,
priceDate
);
query
.
setResultTransformer
(
Transformers
.
ALIAS_TO_ENTITY_MAP
);
List
<
Map
<
String
,
Object
>>
list
=
query
.
list
();
if
(
list
==
null
||
list
.
isEmpty
())
{
return
null
;
}
List
<
Integer
>
orderIds
=
new
ArrayList
<
Integer
>();
for
(
Map
<
String
,
Object
>
map
:
list
)
{
orderIds
.
add
((
Integer
)
map
.
get
(
"orderId"
));
}
Criteria
criteria
=
this
.
getCriteria
();
criteria
.
add
(
Restrictions
.
eq
(
"uid"
,
uid
));
criteria
.
add
(
Restrictions
.
in
(
"orderId"
,
orderIds
));
return
criteria
.
list
();
}
public
List
<
Order
>
queryEventActivityOrders
(
Date
priceDate
,
String
uid
,
int
resourceId
)
{
...
...
src/main/java/com/ctrip/fun/golf/dao/user/UserExtDao.java
View file @
8dccdef1
...
...
@@ -120,6 +120,12 @@ public class UserExtDao extends GenericHibernateDao<UserExt, Integer> {
return
query
.
executeUpdate
();
}
public
int
updateVipMemberInfo
(
String
uid
,
BigDecimal
discount
,
int
discounted
){
String
sql
=
"update UserExt set vipmemberSaveAmount = vipmemberSaveAmount + "
+
discount
.
toString
()+
",vipmemberDiscounted="
+
discounted
+
" where UID = :uid"
;
Query
query
=
getSession
().
createQuery
(
sql
);
query
.
setParameter
(
"uid"
,
uid
);
return
query
.
executeUpdate
();
}
public
UserExt
GetUserExtInfoByPhone
(
String
phone
)
{
String
hsql
=
"from UserExt t where t.bindedMobilePhone = :phone"
;
Query
query
=
getSession
().
createQuery
(
hsql
);
...
...
src/main/java/com/ctrip/fun/golf/domain/order/Order.java
View file @
8dccdef1
...
...
@@ -197,6 +197,13 @@ public class Order extends AbstractOrder implements java.io.Serializable {
* 用户类型(活跃用户,非活跃用户,新用户未下单)
*/
private
String
userType
;
/**订单总的立减金额*/
private
BigDecimal
vipmemberDiscount
;
/**订单总的随机立减折扣*/
private
BigDecimal
vipmemberDiscountRate
;
public
Order
()
{
}
...
...
@@ -1350,4 +1357,20 @@ public class Order extends AbstractOrder implements java.io.Serializable {
this
.
userType
=
userType
;
}
public
BigDecimal
getVipmemberDiscount
()
{
return
vipmemberDiscount
;
}
public
void
setVipmemberDiscount
(
BigDecimal
vipmemberDiscount
)
{
this
.
vipmemberDiscount
=
vipmemberDiscount
;
}
public
BigDecimal
getVipmemberDiscountRate
()
{
return
vipmemberDiscountRate
;
}
public
void
setVipmemberDiscountRate
(
BigDecimal
vipmemberDiscountRate
)
{
this
.
vipmemberDiscountRate
=
vipmemberDiscountRate
;
}
}
src/main/java/com/ctrip/fun/golf/domain/order/OrderItem.java
View file @
8dccdef1
...
...
@@ -60,6 +60,13 @@ public class OrderItem implements java.io.Serializable {
* 球场佣金
*/
private
Double
commission
;
/**vip会员首次立减价*/
private
Double
vipFirstReduction
;
/**vip会员随机减最低价*/
private
Double
vipMinRandom
;
/**vip会员随机减最高价*/
private
Double
vipMaxRandom
;
public
OrderItem
()
{
}
...
...
@@ -323,6 +330,33 @@ public class OrderItem implements java.io.Serializable {
public
void
setCommission
(
Double
commission
)
{
this
.
commission
=
commission
;
}
@Column
(
name
=
"VipFirstReduction"
,
nullable
=
false
,
precision
=
11
)
public
Double
getVipFirstReduction
()
{
return
vipFirstReduction
;
}
public
void
setVipFirstReduction
(
Double
vipFirstReduction
)
{
this
.
vipFirstReduction
=
vipFirstReduction
;
}
@Column
(
name
=
"VipMinRandom"
,
nullable
=
false
,
precision
=
11
)
public
Double
getVipMinRandom
()
{
return
vipMinRandom
;
}
public
void
setVipMinRandom
(
Double
vipMinRandom
)
{
this
.
vipMinRandom
=
vipMinRandom
;
}
@Column
(
name
=
"VipMaxRandom"
,
nullable
=
false
,
precision
=
11
)
public
Double
getVipMaxRandom
()
{
return
vipMaxRandom
;
}
public
void
setVipMaxRandom
(
Double
vipMaxRandom
)
{
this
.
vipMaxRandom
=
vipMaxRandom
;
}
...
...
src/main/java/com/ctrip/fun/golf/service/order/AbstractOrderService.java
View file @
8dccdef1
...
...
@@ -122,6 +122,7 @@ public abstract class AbstractOrderService<H extends AbstractOrderBean<T>, T> ex
// 返回支付页面后再次进入支付页面
if
(!
abstractOrderBean
.
isNeedCreate
())
{
this
.
checkRebookStatus
(
order
);
this
.
adjustOrderPayAmount
(
abstractOrderBean
);
order
=
updateOrder
(
abstractOrderBean
);
this
.
deleteOrderItems
(
order
.
getOrderId
());
this
.
deleteCustomers
(
order
.
getOrderId
());
...
...
@@ -135,6 +136,7 @@ public abstract class AbstractOrderService<H extends AbstractOrderBean<T>, T> ex
return
this
.
submitOrder
(
abstractOrderBean
,
order
);
}
else
{
// 继续预订的逻辑
this
.
adjustOrderPayAmount
(
abstractOrderBean
);
order
.
setEnable
(
false
);
Order
order2
=
this
.
saveOrder
(
abstractOrderBean
);
order
.
setRelationOrderNo
(
order2
.
getOrderNo
());
...
...
@@ -191,9 +193,16 @@ public abstract class AbstractOrderService<H extends AbstractOrderBean<T>, T> ex
order
.
setVoucherIDList
(
orderDetailBean
.
fetchVoucherIds
());
order
.
setVoucherCount
(
orderDetailBean
.
getVoucherList
()
==
null
?
0
:
orderDetailBean
.
getVoucherList
().
size
());
/* BigDecimal actualAmount = totalAmount.subtract(orderDetailBean.getTmoney()).subtract(orderDetailBean.getLimitedEmoneyAmount()).subtract(orderDetailBean.getUnlimitedEmoneyAmount())
.subtract(orderDetailBean.getOnPayAmount());*/
BigDecimal
actualAmount
=
totalAmount
.
subtract
(
orderDetailBean
.
getTmoney
()).
subtract
(
orderDetailBean
.
getLimitedEmoneyAmount
()).
subtract
(
orderDetailBean
.
getUnlimitedEmoneyAmount
())
.
subtract
(
orderDetailBean
.
getOnPayAmount
());
.
subtract
(
orderDetailBean
.
getOnPayAmount
()).
subtract
(
orderDetailBean
.
getDiscountAfterOrderAmount
());;
if
(
actualAmount
.
compareTo
(
BigDecimal
.
ZERO
)
<
0
)
{
actualAmount
=
new
BigDecimal
(
0
);
}
order
.
setActualAmount
(
actualAmount
);
order
.
setVipmemberDiscount
(
orderDetailBean
.
getDiscountAfterOrderAmount
());
order
.
setVipmemberDiscountRate
(
orderDetailBean
.
getDiscountRate
());
this
.
setRebookDefault
(
order
);
order
.
setOrderDate
(
new
Date
());
order
.
setEnable
(
true
);
...
...
@@ -204,6 +213,7 @@ public abstract class AbstractOrderService<H extends AbstractOrderBean<T>, T> ex
public
Response
<
PlaceOrderResponseBean
>
placeOrder
(
H
abstractOrderBean
)
{
this
.
checkParameters
(
abstractOrderBean
);
if
(
this
.
beforePlaceOrder
(
abstractOrderBean
))
{
this
.
adjustOrderPayAmount
(
abstractOrderBean
);
Order
order
=
this
.
saveOrder
(
abstractOrderBean
);
this
.
saveOrUpdateInvoice
(
abstractOrderBean
.
getInvoice
(),
order
);
this
.
saveOrderItems
(
abstractOrderBean
,
order
.
getOrderId
());
...
...
@@ -214,7 +224,10 @@ public abstract class AbstractOrderService<H extends AbstractOrderBean<T>, T> ex
}
return
null
;
}
protected
void
adjustOrderPayAmount
(
H
abstractOrderBean
)
{
}
public
H
callback
(
OrderCallBackBean
body
)
{
String
resData
=
body
.
getResData
();
try
{
...
...
@@ -306,6 +319,9 @@ public abstract class AbstractOrderService<H extends AbstractOrderBean<T>, T> ex
abstractOrderBean
.
setPreAuthAmount
(
order
.
getPreAuthAmount
());
abstractOrderBean
.
setTmoney
(
order
.
getTmoney
());
abstractOrderBean
.
setDiscountAmount
(
order
.
getDiscountAmount
());
//add vipdiscount by caosy
abstractOrderBean
.
setDiscountAfterOrderAmount
(
order
.
getVipmemberDiscount
());
abstractOrderBean
.
setOrderDate
(
order
.
getOrderDate
());
abstractOrderBean
.
setPayMode
(
order
.
getPayMode
());
OrderStatusEnum
orderStatusEnum
=
OrderStatusEnum
.
getOrderStatus
(
order
.
getOrderType
(),
order
.
getPayMode
(),
order
.
getConfirmType
(),
order
.
getProcessStatus
(),
false
);
...
...
@@ -608,9 +624,6 @@ public abstract class AbstractOrderService<H extends AbstractOrderBean<T>, T> ex
}
this
.
checkVourcher
(
abstractOrderBean
);
this
.
checkInsurance
(
abstractOrderBean
);
//add by caosy
this
.
checkVipMemberInfo
(
abstractOrderBean
);
this
.
checkOrderItem
(
abstractOrderBean
);
this
.
checkTotalAmount
(
abstractOrderBean
);
if
(
this
.
getTotalVoucherAmount
(
abstractOrderBean
.
getVoucherList
()).
compareTo
(
abstractOrderBean
.
getVoucherAmount
())
!=
0
)
{
...
...
@@ -1125,9 +1138,17 @@ public abstract class AbstractOrderService<H extends AbstractOrderBean<T>, T> ex
order
.
setPrePayCardDeductFlag
(
PrePayCardStatusEnum
.
UNUSED
.
getValue
());
order
.
setVoucherIDList
(
abstractOrderBean
.
fetchVoucherIds
());
order
.
setVoucherCount
(
abstractOrderBean
.
getVoucherList
()
==
null
?
0
:
abstractOrderBean
.
getVoucherList
().
size
());
/* BigDecimal actualAmount = totalAmount.subtract(abstractOrderBean.getTmoney()).subtract(abstractOrderBean.getLimitedEmoneyAmount())
.subtract(abstractOrderBean.getUnlimitedEmoneyAmount()).subtract(abstractOrderBean.getOnPayAmount());*/
//modify by caosy,重新调整实付金额
BigDecimal
actualAmount
=
totalAmount
.
subtract
(
abstractOrderBean
.
getTmoney
()).
subtract
(
abstractOrderBean
.
getLimitedEmoneyAmount
())
.
subtract
(
abstractOrderBean
.
getUnlimitedEmoneyAmount
()).
subtract
(
abstractOrderBean
.
getOnPayAmount
());
.
subtract
(
abstractOrderBean
.
getUnlimitedEmoneyAmount
()).
subtract
(
abstractOrderBean
.
getOnPayAmount
()).
subtract
(
abstractOrderBean
.
getDiscountAfterOrderAmount
());
if
(
actualAmount
.
compareTo
(
BigDecimal
.
ZERO
)
<
0
){
actualAmount
=
new
BigDecimal
(
0
);
}
order
.
setActualAmount
(
actualAmount
);
order
.
setVipmemberDiscount
(
abstractOrderBean
.
getDiscountAfterOrderAmount
());
order
.
setVipmemberDiscountRate
(
abstractOrderBean
.
getDiscountRate
());
order
.
setRemark
(
abstractOrderBean
.
getRemarks
());
order
.
setUserType
(
userExtService
.
getByUid
(
abstractOrderBean
.
getUid
()).
getUserType
());
}
...
...
src/main/java/com/ctrip/fun/golf/service/order/CourseOrderService.java
View file @
8dccdef1
...
...
@@ -34,11 +34,13 @@ import com.ctrip.fun.common.vo.order.CourseOrderBean;
import
com.ctrip.fun.common.vo.order.CourseOrderListItemBean
;
import
com.ctrip.fun.common.vo.order.CourseOrderResourceBean
;
import
com.ctrip.fun.common.vo.order.CustomerInfoBean
;
import
com.ctrip.fun.common.vo.order.InvoiceBean
;
import
com.ctrip.fun.common.vo.order.OrderQuery
;
import
com.ctrip.fun.common.vo.order.OrderSourceEnum
;
import
com.ctrip.fun.common.vo.order.OrderStatusEnum
;
import
com.ctrip.fun.common.vo.order.PlaceOrderResponseBean
;
import
com.ctrip.fun.common.vo.order.UserOperateModeEnum
;
import
com.ctrip.fun.common.vo.order.VoucherItemBean
;
import
com.ctrip.fun.common.vo.payment.CreatePayOrderResponseBean
;
import
com.ctrip.fun.common.vo.product.CourseResourceStatusEnum
;
import
com.ctrip.fun.common.vo.product.CourseStatusEnum
;
...
...
@@ -446,8 +448,115 @@ public class CourseOrderService extends AbstractOrderService<CourseOrderBean, Co
this
.
checkTotalCashRebate
(
courseOrderBean
);
return
true
;
}
/**
@Override
protected
void
adjustOrderPayAmount
(
CourseOrderBean
abstractOrderBean
)
{
CourseOrderBean
orderBean
=
abstractOrderBean
;
//暂时只支持预付
if
(!
ProductPaymentTypeEnum
.
PREPAY
.
getName
().
equalsIgnoreCase
(
orderBean
.
getPayMode
().
toLowerCase
()))
return
;
//目前针对vip会员优惠进行最后支付价格的调整
UserExt
user
=
getUserExtService
().
getVipMember
(
orderBean
.
getUid
());
boolean
isVipMember
=
getUserExtService
().
isVipMember
(
user
.
getVipGrade
());
if
(
orderBean
.
getResourceList
()
==
null
||
orderBean
.
getResourceList
().
size
()==
0
)
return
;
CourseOrderResourceBean
resInfo
=
orderBean
.
getResourceList
().
get
(
0
);
AsmCourseresource
asmCourseresource
=
asmCourseResourceDao
.
getSingalAsmCourseresource
(
resInfo
.
getPlayDate
(),
resInfo
.
getResourceId
());
if
(
asmCourseresource
==
null
)
return
;
Double
vipFirstReduction
=
asmCourseresource
.
getVipFirstReduction
()
==
null
?
0
:
asmCourseresource
.
getVipFirstReduction
();
Double
vipMinRandom
=
asmCourseresource
.
getVipMinRandom
()
==
null
?
0
:
asmCourseresource
.
getVipMinRandom
();
Double
vipMaxRandom
=
asmCourseresource
.
getVipMaxRandom
()
==
null
?
0
:
asmCourseresource
.
getVipMaxRandom
();
if
(
vipFirstReduction
==
0
)
return
;
BigDecimal
vipDiscountAmount
=
new
BigDecimal
(
0
);
List
<
Order
>
orderList
=
this
.
getOrderDao
().
queryOrders
(
resInfo
.
getPlayDate
(),
orderBean
.
getUid
());
boolean
isFirstOrderToday
=
true
;
for
(
Order
order
:
orderList
)
{
if
(
order
.
isPay
()&&
order
.
getDiscountAmount
().
compareTo
(
BigDecimal
.
ZERO
)>
0
){
isFirstOrderToday
=
false
;
break
;
}
}
if
(
isVipMember
&&
isFirstOrderToday
){
if
(
user
.
getVipmemberDiscounted
()
==
0
){
//新用户
vipDiscountAmount
=
BigDecimal
.
valueOf
(
vipFirstReduction
.
doubleValue
());
}
else
{
VipMemberDiscount
vipMemberDiscount
=
vipmemberDiscountDao
.
getVipmemberDiscountByUid
(
orderBean
.
getUid
());
if
(
vipMemberDiscount
!=
null
){
BigDecimal
rate
=
vipMemberDiscount
.
getDiscountRate
();
if
(
rate
.
compareTo
(
BigDecimal
.
ZERO
)
!=
0
){
BigDecimal
vipRandomD
=
BigDecimal
.
valueOf
(
vipMaxRandom
.
doubleValue
()).
subtract
(
BigDecimal
.
valueOf
(
vipMinRandom
.
doubleValue
()));
vipDiscountAmount
=
BigDecimal
.
valueOf
(
vipMinRandom
.
doubleValue
()).
add
(
rate
.
multiply
(
vipRandomD
));
orderBean
.
setDiscountRate
(
rate
);
}
}
}
//如果没有vip优惠就返回
if
(
vipDiscountAmount
.
doubleValue
()
<=
0
)
return
;
BigDecimal
newPrePayAmount
=
orderBean
.
getPrePayAmount
().
subtract
(
vipDiscountAmount
);
BigDecimal
newPrePayCardAmount
=
orderBean
.
getPrePayCardAmount
();
BigDecimal
newVoucherAmount
=
orderBean
.
getVoucherAmount
();
List
<
VoucherItemBean
>
newVoucherList
=
orderBean
.
getVoucherList
();
boolean
hasInvoice
=
orderBean
.
isHasInvoice
();
//只算球场本身的价格, 发票,保险,快递费等不参与优惠。
if
(
newPrePayAmount
.
compareTo
(
BigDecimal
.
ZERO
)
<
0
||
newPrePayAmount
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
){
//最多只能这么多优惠
vipDiscountAmount
=
newPrePayAmount
;
newPrePayAmount
=
new
BigDecimal
(
0
);
}
//所有需要在线支付价格(去掉发票)
BigDecimal
postageAmount
=
orderBean
.
getPostageAmount
()==
null
?
new
BigDecimal
(
0
):
orderBean
.
getPostageAmount
();
BigDecimal
insuranceAmount
=
orderBean
.
getInsuranceAmount
()==
null
?
new
BigDecimal
(
0
):
orderBean
.
getInsuranceAmount
();
BigDecimal
allOnlinePayAmount
=
newPrePayAmount
.
add
(
postageAmount
).
add
(
insuranceAmount
);
//add(orderBean.getInvoiceAmount())
BigDecimal
adjustPrePayCard
=
allOnlinePayAmount
.
subtract
(
orderBean
.
getPrePayCardAmount
());
if
(
adjustPrePayCard
.
compareTo
(
BigDecimal
.
ZERO
)<
0
||
adjustPrePayCard
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
){
//余额足够付优惠过后的金额
//1,重新调整余额数量
newPrePayCardAmount
=
allOnlinePayAmount
;
//2,将抵用券退掉
newVoucherAmount
=
new
BigDecimal
(
0
);
newVoucherList
=
new
ArrayList
<
VoucherItemBean
>();
//3,发票去掉
// newInvoiceAmount = new BigDecimal(0);
hasInvoice
=
false
;
}
else
{
BigDecimal
adjustLast
=
adjustPrePayCard
;
adjustPrePayCard
=
adjustPrePayCard
.
subtract
(
orderBean
.
getVoucherAmount
());
if
(
adjustPrePayCard
.
compareTo
(
BigDecimal
.
ZERO
)<
0
||
adjustPrePayCard
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
){
//抵用券足够付优惠过后的金额
BigDecimal
voucherAmount
=
new
BigDecimal
(
0
);
List
<
VoucherItemBean
>
voucherList
=
new
ArrayList
<
VoucherItemBean
>();
for
(
VoucherItemBean
voucherItemBean
:
newVoucherList
)
{
voucherList
.
add
(
voucherItemBean
);
voucherAmount
=
voucherAmount
.
add
(
voucherItemBean
.
getAmount
());
if
(
voucherAmount
.
compareTo
(
adjustLast
)
>
0
){
break
;
}
}
newVoucherAmount
=
voucherAmount
;
newVoucherList
=
voucherList
;
//发票去掉
hasInvoice
=
false
;
}
}
//调整发票
orderBean
.
setHasInvoice
(
hasInvoice
);
if
(!
hasInvoice
){
orderBean
.
setAmount
(
orderBean
.
getAmount
().
subtract
(
orderBean
.
getInvoiceAmount
()));
orderBean
.
setInvoiceAmount
(
new
BigDecimal
(
0
));
orderBean
.
setInvoice
(
new
InvoiceBean
());
}
orderBean
.
setPrePayAmount
(
newPrePayAmount
);
orderBean
.
setPrePayCardAmount
(
newPrePayCardAmount
);
orderBean
.
setVoucherAmount
(
newVoucherAmount
);
orderBean
.
setVoucherList
(
newVoucherList
);
orderBean
.
setDiscountAfterOrderAmount
(
vipDiscountAmount
);
}
}
/**
* @param courseOrderBean
*/
private
void
checkMemberOrder
(
CourseOrderBean
courseOrderBean
)
{
...
...
@@ -578,31 +687,12 @@ public class CourseOrderService extends AbstractOrderService<CourseOrderBean, Co
throw
new
OrderException
(-
5
,
"返现金额有误"
);
}
}
checkVipMemberResPrice
(
asmCourseresource
,
resourceInfo
);
}
}
}
private
void
checkVipMemberResPrice
(
AsmCourseresource
asmCourseresource
,
CourseOrderResourceBean
resourceInfo
){
if
(
resourceInfo
==
null
||
asmCourseresource
==
null
)
return
;
boolean
isError
=
false
;
//判断资源
if
(
asmCourseresource
.
getVipFirstReduction
()
!=
null
&&
asmCourseresource
.
getVipFirstReduction
().
compareTo
(
resourceInfo
.
getVipFirstReduction
())
!=
0
){
isError
=
true
;
}
if
(
asmCourseresource
.
getVipMaxRandom
()
!=
null
&&
asmCourseresource
.
getVipMaxRandom
().
compareTo
(
resourceInfo
.
getVipMaxRandom
())
!=
0
){
isError
=
true
;
}
if
(
asmCourseresource
.
getVipMinRandom
()
!=
null
&&
asmCourseresource
.
getVipMinRandom
().
compareTo
(
resourceInfo
.
getVipMinRandom
())
!=
0
){
isError
=
true
;
}
if
(
isError
){
throw
new
OrderException
(-
6
,
"该球场资源出错,请退出重试!"
);
}
}
@Override
/*@Override
protected void checkVipMemberInfo(CourseOrderBean courseOrderBean) {
if(courseOrderBean.getVipmemberDiscount() == null || courseOrderBean.getVipmemberDiscountRate() == null || courseOrderBean.getVipmemberDiscount().compareTo(BigDecimal.ZERO) == 0){
return;
...
...
@@ -660,7 +750,7 @@ public class CourseOrderService extends AbstractOrderService<CourseOrderBean, Co
if(isError){
throw new OrderException(-8, "vip会员优惠价格出错 ,请退出重试!");
}
}
}
*/
/**
* @param findById
...
...
@@ -730,7 +820,6 @@ public class CourseOrderService extends AbstractOrderService<CourseOrderBean, Co
orderItem
.
setQuantity
(
orderItemBean
.
getQuantity
());
orderItem
.
setPlayDate
(
orderItemBean
.
getPlayDate
());
orderItem
.
setCashRebate
(
orderItemBean
.
getCashRebate
()
==
null
?
0
:
orderItemBean
.
getCashRebate
().
doubleValue
());
orderItem
.
setTeeTime
(
orderItemBean
.
getTeeTime
());
orderItem
.
setRealPlayTime
(
""
);
orderItem
.
setCurrency
(
orderItemBean
.
getCurrency
());
...
...
@@ -742,6 +831,12 @@ public class CourseOrderService extends AbstractOrderService<CourseOrderBean, Co
orderItem
.
setSupplierId
(
supplier
.
getId
());
orderItem
.
setSupplierName
(
supplier
.
getName
());
orderItem
.
setProductManager
(
courseProduct
.
getProductManager
());
//add by caosy
orderItem
.
setVipFirstReduction
(
asmCourseResource
.
getVipFirstReduction
());
orderItem
.
setVipMaxRandom
(
asmCourseResource
.
getVipMaxRandom
());
orderItem
.
setVipMinRandom
(
asmCourseResource
.
getVipMinRandom
());
this
.
getOrderItemDao
().
save
(
orderItem
);
try
{
userService
.
saveOrderedCourse
(
asmCourseResource
.
getCourseId
(),
courseOrderBean
.
getUid
());
...
...
src/main/java/com/ctrip/fun/golf/service/order/OpCourseOrderService.java
View file @
8dccdef1
...
...
@@ -940,6 +940,10 @@ public class OpCourseOrderService extends AbstractOpOrderService<CourseOrderProc
orderBean
.
setOnlineOrderFlag
(
order
.
getOnlineOrderFlag
()
==
null
?
true
:
order
.
getOnlineOrderFlag
());
orderBean
.
setUserType
(
order
.
getUserType
());
//针对vip会员的优惠
orderBean
.
setDiscountAfterOrderAmount
(
order
.
getVipmemberDiscount
());
orderBean
.
setDiscountRate
(
order
.
getVipmemberDiscountRate
());
return
orderBean
;
}
...
...
src/main/java/com/ctrip/fun/golf/service/payment/CourseNotifyService.java
View file @
8dccdef1
...
...
@@ -72,6 +72,8 @@ public class CourseNotifyService extends AbstractNotifyService {
*/
@Override
protected
void
doPaySuccess
(
Order
order
)
{
//更新用户vip优惠金额
updateVipmemberInfo
(
order
);
if
(
order
.
getCampaignID
()
>
0
)
{
successPayCampaign
(
order
);
}
...
...
@@ -80,9 +82,16 @@ public class CourseNotifyService extends AbstractNotifyService {
}
else
{
this
.
sendMessage
(
order
,
5
);
}
}
private
void
updateVipmemberInfo
(
Order
order
){
BigDecimal
discount
=
order
.
getVipmemberDiscount
();
if
(
discount
!=
null
&&
discount
.
compareTo
(
BigDecimal
.
ZERO
)>
0
){
getUserExtDao
().
updateVipMemberInfo
(
order
.
getUid
(),
discount
,
1
);
}
}
/**
* @param order
* @see com.ctrip.fun.golf.service.payment.AbstractNotifyService#doFailRefund(com.ctrip.fun.golf.domain.order.Order)
...
...
src/main/java/com/ctrip/fun/golf/service/user/UserExtService.java
View file @
8dccdef1
...
...
@@ -113,12 +113,16 @@ public class UserExtService extends GenericService<UserExtDao, UserExt, Integer,
if
(
vipmemberExpireDays
<
0
)
{
// 代表已经过期, 进行消除身份
vipGrade
=
(
user
.
getVipGrade
()
&
~
VipGradeEnum
.
VIP4
.
getKey
());
user
.
setVipGrade
(
vipGrade
);
//
user.setVipGrade(vipGrade);
}
}
user
.
setVipGrade
(
vipGrade
);
//
user.setVipGrade(vipGrade);
return
vipGrade
;
}
public
boolean
isVipMember
(
int
vipGrade
){
return
(
vipGrade
&
VipGradeEnum
.
VIP4
.
getKey
())
==
VipGradeEnum
.
VIP4
.
getKey
();
}
public
boolean
isVipMember
(
String
uid
){
UserExt
user
=
this
.
userExtDao
.
getByUid
(
uid
);
...
...
@@ -126,6 +130,12 @@ public class UserExtService extends GenericService<UserExtDao, UserExt, Integer,
return
(
vipGrade
&
VipGradeEnum
.
VIP4
.
getKey
())
==
VipGradeEnum
.
VIP4
.
getKey
();
}
public
UserExt
getVipMember
(
String
uid
){
UserExt
user
=
this
.
userExtDao
.
getByUid
(
uid
);
updateUserIdentity
(
user
);
return
user
;
}
public
boolean
isVipMemberByPhone
(
String
phone
){
UserExt
user
=
this
.
userExtDao
.
GetUserExtInfoByPhone
(
phone
);
int
vipGrade
=
updateUserIdentity
(
user
);
...
...
src/main/java/com/ctrip/fun/golf/service/user/UserService.java
View file @
8dccdef1
...
...
@@ -1415,7 +1415,7 @@ public class UserService {
vipGrade
=
(
vipGrade
&
~
VipGradeEnum
.
VIP4
.
getKey
());
}
}
user
.
setVipGrade
(
vipGrade
);
//
user.setVipGrade(vipGrade);
return
vipGrade
;
}
...
...
@@ -1449,14 +1449,12 @@ public class UserService {
userBean
.
setUserGradeImgUrl
(
this
.
imageServer
+
"UserGrade"
+
userExt
.
getUserGrade
()
+
".png"
);
userBean
.
setVipGradeAll
(
userExt
.
getVipGrade
());
/*
int vipGrade = userExt.getVipGrade() & VipGradeEnum.VIP2.getKey();
int
vipGrade
=
userExt
.
getVipGrade
()
&
VipGradeEnum
.
VIP2
.
getKey
();
if
(
vipGrade
==
0
)
{
vipGrade
=
userExt
.
getVipGrade
()
&
VipGradeEnum
.
VIP1
.
getKey
();
}
*/
}
int
vipGrade
=
updateUserIdentity
(
userExt
);
userBean
.
setVipGrade
(
vipGrade
);
vipGrade
=
userExt
.
getVipGrade
()
&
VipGradeEnum
.
VIP2
.
getKey
();
userBean
.
setVipGrade
(
updateUserIdentity
(
userExt
));
userBean
.
setVipGradeName
(
VipGradeEnum
.
valueOf
(
vipGrade
).
getValue
());
userBean
.
setVipGradeImgUrl
(
this
.
imageServer
+
"VipGrade"
+
vipGrade
+
".png"
);
userBean
.
setUserName
(
userExt
.
getUserName
());
...
...
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