Commit ad768e75 by Huang Linyu

赛事下单验证社员和嘉宾价格

parent 6b6191c6
package com.ctrip.fun.golf.api.friend;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -14,20 +16,26 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.ctrip.fun.common.core.util.BeanConverter;
import com.ctrip.fun.common.core.util.DateUtil;
import com.ctrip.fun.common.core.util.SysUtil;
import com.ctrip.fun.common.vo.Request;
import com.ctrip.fun.common.vo.Response;
import com.ctrip.fun.common.vo.ResponseStatusEnum;
import com.ctrip.fun.common.vo.app.RequestFriendBean;
import com.ctrip.fun.common.vo.app.ResponseFriendBean;
import com.ctrip.fun.common.vo.basic.VipGradeEnum;
import com.ctrip.fun.golf.domain.friend.Friend;
import com.ctrip.fun.golf.domain.user.UserExt;
import com.ctrip.fun.golf.service.friend.FriendService;
import com.ctrip.fun.golf.service.user.UserExtService;
@Controller
@RequestMapping(value = "/friends")
public class FriendsController {
@Autowired
private FriendService friendService = null;
@Autowired
private UserExtService userExtService = null;
private Logger logger = LoggerFactory.getLogger(FriendsController.class);
......@@ -53,9 +61,18 @@ public class FriendsController {
} else {
ResponseFriendBean responseFriendBean = new ResponseFriendBean();
Friend friend = this.friendService.get(friendId);
UserExt userExt = userExtService.GetUserExtInfoByPhone(friend.getFriendPhone());
if(friend!=null){
responseFriendBean.setPlayerId(friend.getPlayerId());
responseFriendBean.setFriendId(friendId);
if(userExt!=null){
// responseFriendBean.setVipGrade(userExt.getVipGrade());
if(checkIfCommuneUser(userExt)){
responseFriendBean.setVipGrade(VipGradeEnum.VIP2.getKey());
}else{
responseFriendBean.setVipGrade(VipGradeEnum.NONEVIP.getKey());
}
}
}
response.setBody(responseFriendBean);
}
......@@ -63,6 +80,26 @@ public class FriendsController {
logger.info(SysUtil.getMethodName() + " response: " + response.toString());
return response;
}
private boolean checkIfCommuneUser(UserExt userExt) {
boolean isCommuneUser = (userExt.getVipGrade() & VipGradeEnum.VIP2.getKey()) == VipGradeEnum.VIP2
.getKey();
//社员续费 add by caosy
Date startTime = (userExt.getCommuneAgainTime() == null? userExt.getCommuneTime():userExt.getCommuneAgainTime());
if(startTime != null){
Date outDate = DateUtil.addDateField(startTime,Calendar.YEAR, 1);
long dayFromOutDate = DateUtil.getDistinceDay(new Date(), outDate);
long a = dayFromOutDate;
if (dayFromOutDate < 0) {
// 代表已经过期
isCommuneUser = false;
}
}else{
logger.error("get commune time fail:"+userExt.getUid());
}
return isCommuneUser;
}
/**
* 修改friend
* @author whao
......
package com.ctrip.fun.golf.service.friend;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -9,12 +11,16 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.ctrip.fun.common.core.util.BeanConverter;
import com.ctrip.fun.common.core.util.DateUtil;
import com.ctrip.fun.common.core.util.SysUtil;
import com.ctrip.fun.common.vo.app.ResponseFriendBean;
import com.ctrip.fun.common.vo.basic.VipGradeEnum;
import com.ctrip.fun.golf.dao.friend.FriendDao;
import com.ctrip.fun.golf.dao.game.GamePlayerDao;
import com.ctrip.fun.golf.dao.user.UserExtDao;
import com.ctrip.fun.golf.domain.friend.Friend;
import com.ctrip.fun.golf.domain.game.GamePlayer;
import com.ctrip.fun.golf.domain.user.UserExt;
import com.ctrip.fun.golf.service.GenericService;
public class FriendService extends GenericService<FriendDao, Friend, Integer, Friend>{
......@@ -23,6 +29,8 @@ public class FriendService extends GenericService<FriendDao, Friend, Integer, F
private FriendDao friendDao;
private UserExtDao userExtDao;
private Logger logger = LoggerFactory.getLogger(FriendService.class);
......@@ -105,6 +113,16 @@ public class FriendService extends GenericService<FriendDao, Friend, Integer, F
responseFriendBean.setIsAiWan(2);
else {
List<GamePlayer> playerList = gamePlayerDao.queryGamePlayerList(0, phone, null);
UserExt user = userExtDao.GetUserExtInfoByPhone(phone);
if(user!=null){
// responseFriendBean.setVipGrade(user.getVipGrade());
if(checkIfCommuneUser(user)){
responseFriendBean.setVipGrade(VipGradeEnum.VIP2.getKey());
}else{
responseFriendBean.setVipGrade(VipGradeEnum.NONEVIP.getKey());
}
}
if (playerList != null && playerList.size() > 0 ) {
GamePlayer player = playerList.get(0);
String uid = player.getUid();
......@@ -120,6 +138,26 @@ public class FriendService extends GenericService<FriendDao, Friend, Integer, F
return list;
}
private boolean checkIfCommuneUser(UserExt userExt) {
boolean isCommuneUser = (userExt.getVipGrade() & VipGradeEnum.VIP2.getKey()) == VipGradeEnum.VIP2
.getKey();
//社员续费 add by caosy
Date startTime = (userExt.getCommuneAgainTime() == null? userExt.getCommuneTime():userExt.getCommuneAgainTime());
if(startTime != null){
Date outDate = DateUtil.addDateField(startTime,Calendar.YEAR, 1);
long dayFromOutDate = DateUtil.getDistinceDay(new Date(), outDate);
long a = dayFromOutDate;
if (dayFromOutDate < 0) {
// 代表已经过期
isCommuneUser = false;
}
}else{
logger.error("get commune time fail:"+userExt.getUid());
}
return isCommuneUser;
}
public Friend deleteFriend(Friend friend){
if (friend == null)
return null;
......@@ -195,4 +233,12 @@ public class FriendService extends GenericService<FriendDao, Friend, Integer, F
this.gamePlayerDao = gamePlayerDao;
}
public UserExtDao getUserExtDao() {
return userExtDao;
}
public void setUserExtDao(UserExtDao userExtDao) {
this.userExtDao = userExtDao;
}
}
......@@ -683,14 +683,22 @@ public class EventActivityOrderService extends
List<EventActivityOrderResourceBean> eventActivityOrderItemBeans = eventActivityOrderBean
.getResourceList();
BigDecimal totAmount = new BigDecimal(0);
int communeNum =0,communeGuestNum=0;
for(CustomerInfoBean bean : eventActivityOrderBean.getCustomerInfoList()){
UserExt user = this.getUserExtDao().GetUserExtInfoByPhone(bean.getMobileNo());
if(checkIfCommuneUser(user)){
communeNum++;
}else{
communeGuestNum++;
}
}
if (eventActivityOrderItemBeans != null) {
for (EventActivityOrderResourceBean eventActivityOrderResourceBean : eventActivityOrderItemBeans) {
double amount = (BigDecimal.valueOf(eventActivityOrderResourceBean
.getCommuneQuantity()).multiply(BigDecimal.valueOf(
double amount = (BigDecimal.valueOf(communeNum).multiply(BigDecimal.valueOf(
eventActivityOrderResourceBean.getCommunePrice()).subtract(
BigDecimal.valueOf(eventActivityOrderResourceBean.getCommuneMinus()))))
.add(BigDecimal.valueOf(
eventActivityOrderResourceBean.getCommuneGuestQuantity()).multiply(
.add(BigDecimal.valueOf(communeGuestNum).multiply(
(BigDecimal.valueOf(eventActivityOrderResourceBean
.getCommuneGuestPrice()).subtract(BigDecimal
.valueOf(eventActivityOrderResourceBean
......@@ -717,21 +725,19 @@ public class EventActivityOrderService extends
protected void checkOrderItem(EventActivityOrderBean eventActivityOrderBean) {
UserExt userExt = this.getUserExtDao().getUserExtInfoByUid(eventActivityOrderBean.getUid());
boolean isCommuneUser = (userExt.getVipGrade() & VipGradeEnum.VIP2.getKey()) == VipGradeEnum.VIP2
.getKey();
//社员续费 add by caosy
Date startTime = (userExt.getCommuneAgainTime() == null? userExt.getCommuneTime():userExt.getCommuneAgainTime());
if(startTime != null){
Date outDate = DateUtil.addDateField(startTime,Calendar.YEAR, 1);
long dayFromOutDate = DateUtil.getDistinceDay(new Date(), outDate);
long a = dayFromOutDate;
if (dayFromOutDate < 0) {
// 代表已经过期
isCommuneUser = false;
boolean isCommuneUser = checkIfCommuneUser(userExt);
int communeNum =0,communeGuestNum=0;
for(CustomerInfoBean bean : eventActivityOrderBean.getCustomerInfoList()){
UserExt user = this.getUserExtDao().GetUserExtInfoByPhone(bean.getMobileNo());
if(checkIfCommuneUser(user)){
communeNum++;
}else{
communeGuestNum++;
}
}else{
logger.error("get commune time fail:"+userExt.getUid());
}
//
if (eventActivityOrderBean.getResourceList() != null) {
for (EventActivityOrderResourceBean resourceInfo : eventActivityOrderBean
......@@ -775,14 +781,14 @@ public class EventActivityOrderService extends
resourceInfo.getResourceId(), resourceInfo.getPlayDate(), eventActivityOrderBean.getUid());
ResourcePrice resourcePrice = resourcePriceDao.getResourcePrice(
resourceInfo.getPlayDate(), resourceInfo.getResourceId());
double amount = (BigDecimal.valueOf(resourceInfo.getCommuneQuantity())
double amount = (BigDecimal.valueOf(communeNum)
.multiply(BigDecimal.valueOf(resourcePrice.getCommunePrice()).subtract(
BigDecimal.valueOf(resourcePrice.getCommuneMinus())))).add(
BigDecimal.valueOf(resourceInfo.getCommuneGuestQuantity()).multiply(
BigDecimal.valueOf(communeGuestNum).multiply(
(BigDecimal.valueOf(resourcePrice.getCommuneGuestPrice())
.subtract(BigDecimal.valueOf(resourcePrice
.getCommuneGuestMinus()))))).doubleValue();
if (resourceInfo.getAmount().subtract(BigDecimal.valueOf(amount)).doubleValue() != 0) {
if (resourceInfo.getAmount().compareTo(BigDecimal.valueOf(amount)) != 0) {
throw new OrderException(-5, "订单金额计算有误");
} else if (!resourcePrice.getCommunePrice().equals(resourceInfo.getCommunePrice())
|| !resourcePrice.getCommuneMinus().equals(resourceInfo.getCommuneMinus())
......@@ -814,6 +820,25 @@ public class EventActivityOrderService extends
}
private boolean checkIfCommuneUser(UserExt userExt) {
boolean isCommuneUser = (userExt.getVipGrade() & VipGradeEnum.VIP2.getKey()) == VipGradeEnum.VIP2
.getKey();
//社员续费 add by caosy
Date startTime = (userExt.getCommuneAgainTime() == null? userExt.getCommuneTime():userExt.getCommuneAgainTime());
if(startTime != null){
Date outDate = DateUtil.addDateField(startTime,Calendar.YEAR, 1);
long dayFromOutDate = DateUtil.getDistinceDay(new Date(), outDate);
long a = dayFromOutDate;
if (dayFromOutDate < 0) {
// 代表已经过期
isCommuneUser = false;
}
}else{
logger.error("get commune time fail:"+userExt.getUid());
}
return isCommuneUser;
}
/**
* @param eventActivityOrderBean
* @see com.ctrip.fun.golf.service.order.AbstractOrderService#saveEventActivityOrderItems(com.ctrip.fun.common.vo.order2.eventActivityOrderBean)
......
......@@ -85,6 +85,10 @@ public class UserExtService extends GenericService<UserExtDao, UserExt, Integer,
}
return false;
}
public UserExt GetUserExtInfoByPhone(String bindedMobilePhone){
return this.userExtDao.GetUserExtInfoByPhone(bindedMobilePhone);
}
public Integer updateBlockFlag(UserExt bean) {
return userExtDao.updateBlockFlag(bean);
......
......@@ -10,6 +10,8 @@
<bean class="com.ctrip.fun.golf.service.friend.FriendService">
<property name="friendDao" ref="friendDao"></property>
<property name="gamePlayerDao" ref="gamePlayerDao"></property>
<property name="userExtDao" ref="userExtDao"></property>
</bean>
</beans>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment