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
91a10df5
authored
Feb 07, 2018
by
unknown
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add the vipmember price check
parent
f24e03dc
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
162 additions
and
3 deletions
src/main/java/com/ctrip/fun/golf/dao/user/VipMemberDiscountDao.java
src/main/java/com/ctrip/fun/golf/domain/assemble/AsmCourseresource.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/user/UserExtService.java
src/main/resources/order.spring.xml
src/main/java/com/ctrip/fun/golf/dao/user/VipMemberDiscountDao.java
View file @
91a10df5
...
...
@@ -4,6 +4,7 @@
package
com
.
ctrip
.
fun
.
golf
.
dao
.
user
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
org.hibernate.Criteria
;
...
...
@@ -33,5 +34,17 @@ public class VipMemberDiscountDao extends GenericHibernateDao<VipMemberDiscount,
return
null
;
}
}
public
VipMemberDiscount
getVipmemberDiscount
(
String
uid
,
BigDecimal
rate
)
{
Criteria
criteria
=
this
.
getCriteria
();
criteria
.
add
(
Restrictions
.
eq
(
"uid"
,
uid
));
criteria
.
add
(
Restrictions
.
eq
(
"discountRate"
,
rate
));
List
<
VipMemberDiscount
>
list
=
criteria
.
list
();
if
(
list
!=
null
&&
list
.
size
()
>
0
)
{
return
list
.
get
(
0
);
}
else
{
return
null
;
}
}
}
src/main/java/com/ctrip/fun/golf/domain/assemble/AsmCourseresource.java
View file @
91a10df5
...
...
@@ -127,6 +127,14 @@ public class AsmCourseresource implements java.io.Serializable {
*/
private
Double
commission
;
/**vip会员首次优惠*/
private
Double
vipFirstReduction
;
/**vip会员随机最低优惠*/
private
Double
vipMinRandom
;
/**vip会员随机最高优惠*/
private
Double
vipMaxRandom
;
@Id
@Column
(
name
=
"id"
,
unique
=
true
,
nullable
=
false
)
...
...
@@ -754,7 +762,29 @@ public class AsmCourseresource implements java.io.Serializable {
public
void
setCommission
(
Double
commission
)
{
this
.
commission
=
commission
;
}
public
Double
getVipFirstReduction
()
{
return
vipFirstReduction
;
}
public
void
setVipFirstReduction
(
Double
vipFirstReduction
)
{
this
.
vipFirstReduction
=
vipFirstReduction
;
}
public
Double
getVipMinRandom
()
{
return
vipMinRandom
;
}
public
void
setVipMinRandom
(
Double
vipMinRandom
)
{
this
.
vipMinRandom
=
vipMinRandom
;
}
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 @
91a10df5
...
...
@@ -608,6 +608,9 @@ 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
)
{
...
...
@@ -673,6 +676,12 @@ public abstract class AbstractOrderService<H extends AbstractOrderBean<T>, T> ex
return
totAmount
;
}
protected
void
checkVipMemberInfo
(
H
abstractOrderBean
)
{
}
/**
* @param abstractOrderBean
*/
...
...
src/main/java/com/ctrip/fun/golf/service/order/CourseOrderService.java
View file @
91a10df5
...
...
@@ -62,6 +62,8 @@ import com.ctrip.fun.golf.dao.product.CourseProductDao;
import
com.ctrip.fun.golf.dao.product.CourseResourceDao
;
import
com.ctrip.fun.golf.dao.product.FlashSaleDao
;
import
com.ctrip.fun.golf.dao.product.ResourcePriceDao
;
import
com.ctrip.fun.golf.dao.user.UserExtDao
;
import
com.ctrip.fun.golf.dao.user.VipMemberDiscountDao
;
import
com.ctrip.fun.golf.domain.advert.CampaignBill
;
import
com.ctrip.fun.golf.domain.assemble.AsmCourseresource
;
import
com.ctrip.fun.golf.domain.basic.Voucher
;
...
...
@@ -74,10 +76,13 @@ import com.ctrip.fun.golf.domain.product.CourseProduct;
import
com.ctrip.fun.golf.domain.product.CourseResource
;
import
com.ctrip.fun.golf.domain.product.FlashSale
;
import
com.ctrip.fun.golf.domain.product.ResourcePrice
;
import
com.ctrip.fun.golf.domain.user.UserExt
;
import
com.ctrip.fun.golf.domain.user.VipMemberDiscount
;
import
com.ctrip.fun.golf.exceptions.OrderException
;
import
com.ctrip.fun.golf.service.basic.OperationMessageService
;
import
com.ctrip.fun.golf.service.game.GameApplyService
;
import
com.ctrip.fun.golf.service.product.CourseResourceService
;
import
com.ctrip.fun.golf.service.user.UserExtService
;
import
com.ctrip.fun.golf.service.user.UserService
;
import
com.ctrip.fun.golf.utils.JobUtil
;
import
com.ctrip.fun.golf.vo.PagedEntityBean
;
...
...
@@ -143,6 +148,8 @@ public class CourseOrderService extends AbstractOrderService<CourseOrderBean, Co
private
CampaignStatsDao
campaignStatsDao
=
null
;
private
OperationMessageService
operationMessageService
;
private
VipMemberDiscountDao
vipmemberDiscountDao
;
public
Order
findByResourceId
(
String
uid
,
int
resourceId
,
Date
playDate
)
{
List
<
OrderItem
>
orderItemList
=
orderItemDao
.
queryOrderItemLastest
(
resourceId
,
playDate
);
...
...
@@ -571,12 +578,91 @@ 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
protected
void
checkVipMemberInfo
(
CourseOrderBean
courseOrderBean
)
{
if
(
courseOrderBean
.
getVipmemberDiscount
()
==
null
||
courseOrderBean
.
getVipmemberDiscountRate
()
==
null
||
courseOrderBean
.
getVipmemberDiscount
().
compareTo
(
BigDecimal
.
ZERO
)
==
0
){
return
;
}
boolean
isError
=
false
;
//判断vip折扣比例
BigDecimal
vipmemberDiscountRate
=
courseOrderBean
.
getVipmemberDiscountRate
();
if
(
vipmemberDiscountRate
!=
null
)
{
VipMemberDiscount
discount
=
vipmemberDiscountDao
.
getVipmemberDiscount
(
courseOrderBean
.
getUid
(),
vipmemberDiscountRate
);
if
(
discount
==
null
){
isError
=
true
;
}
}
if
(
isError
){
throw
new
OrderException
(-
7
,
"用户优惠折扣出错,请退出登陆重试!"
);
}
//判断vip优惠总额
List
<
CustomerInfoBean
>
customers
=
courseOrderBean
.
getCustomerInfoList
();
List
<
CourseOrderResourceBean
>
resourceList
=
courseOrderBean
.
getResourceList
();
CourseOrderResourceBean
resBean
=
resourceList
.
get
(
0
);
Double
vipFirstReduction
=
resBean
.
getVipFirstReduction
()==
null
?
0
:
resBean
.
getVipFirstReduction
();
Double
vipMaxRandom
=
resBean
.
getVipMaxRandom
()==
null
?
0
:
resBean
.
getVipMaxRandom
();
Double
vipMinRandom
=
resBean
.
getVipMinRandom
()==
null
?
0
:
resBean
.
getVipMinRandom
();
if
(
vipFirstReduction
==
0
||
vipMaxRandom
==
0
||
vipMinRandom
==
0
){
return
;
}
BigDecimal
vipRandomD
=
new
BigDecimal
(
vipMaxRandom
.
doubleValue
()).
subtract
(
new
BigDecimal
(
vipMinRandom
.
doubleValue
()))
;
BigDecimal
vipRandomDiscount
=
new
BigDecimal
(
vipMinRandom
.
doubleValue
()).
add
(
vipmemberDiscountRate
.
multiply
(
vipRandomD
));
BigDecimal
totalDiscountAmount
=
new
BigDecimal
(
0
);
for
(
CustomerInfoBean
customerInfoBean
:
customers
)
{
boolean
isVipMember
=
false
;
if
(
customerInfoBean
.
getOneselfFlag
()){
//本人
isVipMember
=
getUserExtService
().
isVipMember
(
courseOrderBean
.
getUid
());
UserExt
user
=
getUserExtDao
().
getByUid
(
courseOrderBean
.
getUid
());
if
(
isVipMember
){
if
(
user
.
getVipmemberDiscounted
()
==
0
){
//新用户
totalDiscountAmount
.
add
(
new
BigDecimal
(
vipFirstReduction
.
doubleValue
()));
}
else
{
totalDiscountAmount
.
add
(
vipRandomDiscount
);
}
}
}
else
{
isVipMember
=
getUserExtService
().
isVipMemberByPhone
(
customerInfoBean
.
getMobileNo
());
if
(
isVipMember
){
totalDiscountAmount
.
add
(
vipRandomDiscount
);
}
}
}
if
(
totalDiscountAmount
.
compareTo
(
courseOrderBean
.
getVipmemberDiscount
())
!=
0
){
isError
=
true
;
}
if
(
isError
){
throw
new
OrderException
(-
8
,
"vip会员优惠价格出错 ,请退出重试!"
);
}
}
/**
* @param findById
* @return
*/
...
...
@@ -1174,6 +1260,14 @@ public class CourseOrderService extends AbstractOrderService<CourseOrderBean, Co
this
.
operationMessageService
=
operationMessageService
;
}
public
VipMemberDiscountDao
getVipmemberDiscountDao
()
{
return
vipmemberDiscountDao
;
}
public
void
setVipmemberDiscountDao
(
VipMemberDiscountDao
vipmemberDiscountDao
)
{
this
.
vipmemberDiscountDao
=
vipmemberDiscountDao
;
}
@Override
protected
void
checkVourcherConditionBean
(
MultipleCourseConditionBean
multipleCourseConditionBean
,
...
...
src/main/java/com/ctrip/fun/golf/service/user/UserExtService.java
View file @
91a10df5
...
...
@@ -120,6 +120,18 @@ public class UserExtService extends GenericService<UserExtDao, UserExt, Integer,
return
vipGrade
;
}
public
boolean
isVipMember
(
String
uid
){
UserExt
user
=
this
.
userExtDao
.
getByUid
(
uid
);
int
vipGrade
=
updateUserIdentity
(
user
);
return
(
vipGrade
&
VipGradeEnum
.
VIP4
.
getKey
())
==
VipGradeEnum
.
VIP4
.
getKey
();
}
public
boolean
isVipMemberByPhone
(
String
phone
){
UserExt
user
=
this
.
userExtDao
.
GetUserExtInfoByPhone
(
phone
);
int
vipGrade
=
updateUserIdentity
(
user
);
return
(
vipGrade
&
VipGradeEnum
.
VIP4
.
getKey
())
==
VipGradeEnum
.
VIP4
.
getKey
();
}
public
Integer
updateBlockFlag
(
UserExt
bean
)
{
return
userExtDao
.
updateBlockFlag
(
bean
);
}
...
...
src/main/resources/order.spring.xml
View file @
91a10df5
...
...
@@ -137,6 +137,7 @@
<property
name=
"gameApplyService"
ref=
"gameApplyService"
></property>
<property
name=
"courseBaseNotifyUrl"
value=
"${payment.courseBaseNotifyUrl}"
></property>
<property
name=
"operationMessageService"
ref=
"operationMessageService"
></property>
<property
name=
"vipmemberDiscountDao"
ref=
"vipmemberDiscountDao"
></property>
</bean>
<bean
name=
"eventActivityOrderService"
class=
"com.ctrip.fun.golf.service.order.EventActivityOrderService"
parent=
"abstractOrderService"
>
...
...
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