Commit abcbc31c authored by 周健威's avatar 周健威

修改订单相关会员权益等代码

parent 3820e3a7
...@@ -242,4 +242,11 @@ public class BaseOrder implements Serializable { ...@@ -242,4 +242,11 @@ public class BaseOrder implements Serializable {
@ApiModelProperty(value = "使用的优惠券票号,逗号分割") @ApiModelProperty(value = "使用的优惠券票号,逗号分割")
@Column(name = "coupon_ticker_nos") @Column(name = "coupon_ticker_nos")
private String couponTickerNos; private String couponTickerNos;
/**
* 下单时的会员等级
*/
@ApiModelProperty(value = "下单时的会员等级")
@Column(name = "member_level")
private Integer memberLevel;
} }
package com.xxfc.platform.order.service; package com.xxfc.platform.order.service;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.context.BaseContextHandler; import com.github.wxiaoqi.security.common.context.BaseContextHandler;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
...@@ -25,7 +27,7 @@ import java.util.Map; ...@@ -25,7 +27,7 @@ import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Transactional @Transactional
public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends OrderDetail>{ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends OrderDetail> implements UserRestInterface {
public static final int VERSION_INITIAL = 0; public static final int VERSION_INITIAL = 0;
...@@ -46,6 +48,14 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or ...@@ -46,6 +48,14 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or
@Autowired @Autowired
ActivityFeign activityFeign; ActivityFeign activityFeign;
@Autowired
protected UserFeign userFeign;
@Override
public UserFeign getUserFeign() {
return userFeign;
}
protected OrderTypeEnum orderTypeEnum; protected OrderTypeEnum orderTypeEnum;
protected Integer channel; protected Integer channel;
...@@ -76,6 +86,7 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or ...@@ -76,6 +86,7 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or
//设置用户id //设置用户id
baseOrder.setUserId(Integer.valueOf(BaseContextHandler.getUserID())); baseOrder.setUserId(Integer.valueOf(BaseContextHandler.getUserID()));
baseOrder.setMemberLevel(getAppUser().getMemberLevel());
return baseOrder; return baseOrder;
} }
......
...@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; ...@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel; import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.admin.feign.UserFeign; import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO; import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig; import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.common.context.BaseContextHandler; import com.github.wxiaoqi.security.common.context.BaseContextHandler;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
...@@ -39,7 +40,7 @@ import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER; ...@@ -39,7 +40,7 @@ import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
@Service @Service
@Log4j @Log4j
public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz, MemberBO> { public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz, MemberBO> implements UserRestInterface {
@Autowired @Autowired
TourFeign tourFeign; TourFeign tourFeign;
...@@ -65,9 +66,6 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz ...@@ -65,9 +66,6 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
@Autowired @Autowired
protected UserAuthConfig userAuthConfig; protected UserAuthConfig userAuthConfig;
@Autowired
UserFeign userFeign;
@Autowired @Autowired
ActivityFeign activityFeign; ActivityFeign activityFeign;
...@@ -79,10 +77,6 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz ...@@ -79,10 +77,6 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
this.orderTypeEnum = OrderTypeEnum.MEMBER; this.orderTypeEnum = OrderTypeEnum.MEMBER;
} }
public AppUserDTO getUserInfo(){
return userFeign.userDetailByToken(userAuthConfig.getToken(request)).getData();
}
@Override @Override
public void initDetail(MemberBO bo) { public void initDetail(MemberBO bo) {
super.initDetail(bo); super.initDetail(bo);
......
...@@ -72,9 +72,6 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -72,9 +72,6 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
@Autowired @Autowired
OrderTemplateBiz orderTemplateBiz; OrderTemplateBiz orderTemplateBiz;
@Autowired
UserFeign userFeign;
@Autowired @Autowired
ThirdFeign thirdFeign; ThirdFeign thirdFeign;
...@@ -136,8 +133,12 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -136,8 +133,12 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
//设置订单名称 //设置订单名称
bo.getOrder().setName(bo.getVehicleModel().getName()); bo.getOrder().setName(bo.getVehicleModel().getName());
//是否有使用会员权益 则调用接口触发新增消费记录次数
//扣减免费天数 //扣减免费天数
if(null != bo.getFreeDays() && bo.getFreeDays() > 0) { if(SYS_TRUE.equals(bo.getOrder().getHasMemberRight())) {
if(null == bo.getFreeDays()) {
bo.setFreeDays(0);
}
int result = userFeign.memberDays(bo.getAppUserDTO().getUserid(), bo.getFreeDays(), UserFeign.MEMBER_DAYS_LOCK); int result = userFeign.memberDays(bo.getAppUserDTO().getUserid(), bo.getFreeDays(), UserFeign.MEMBER_DAYS_LOCK);
if(result < 0) { if(result < 0) {
throw new BaseException(ResultCode.FAILED_CODE); throw new BaseException(ResultCode.FAILED_CODE);
...@@ -224,20 +225,22 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -224,20 +225,22 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
String[] prices = StrUtil.isBlank(vehicleModel.getRentDiscountPrice()) String[] prices = StrUtil.isBlank(vehicleModel.getRentDiscountPrice())
?new String[]{vehicleModel.getPrice().toString(),vehicleModel.getPrice().toString(),vehicleModel.getPrice().toString()} ?new String[]{vehicleModel.getPrice().toString(),vehicleModel.getPrice().toString(),vehicleModel.getPrice().toString()}
:vehicleModel.getRentDiscountPrice().split(","); :vehicleModel.getRentDiscountPrice().split(",");
switch (MemberEnum.getByCode(detail.getAppUserDTO().getMemberLevel())) { Integer rebate = new Integer(0);
switch (MemberEnum.getByCode(dto.getMemberLevel())) {
case NORMAL: case NORMAL:
modelAmount = handleDiscount(vehicleModel, prices, NORMAL); modelAmount = handleDiscount(vehicleModel, prices, NORMAL, rebate);
detail.getOrder().setHasMemberRight(SYS_TRUE); detail.getOrder().setHasMemberRight(SYS_TRUE);
break; break;
case GOLD: case GOLD:
modelAmount = handleDiscount(vehicleModel, prices, GOLD); modelAmount = handleDiscount(vehicleModel, prices, GOLD, rebate);
detail.getOrder().setHasMemberRight(SYS_TRUE); detail.getOrder().setHasMemberRight(SYS_TRUE);
break; break;
case DIAMOND: case DIAMOND:
modelAmount = handleDiscount(vehicleModel, prices, DIAMOND); modelAmount = handleDiscount(vehicleModel, prices, DIAMOND, rebate);
detail.getOrder().setHasMemberRight(SYS_TRUE); detail.getOrder().setHasMemberRight(SYS_TRUE);
break; break;
} }
detail.setRebate(rebate);
vehicleOrderItem.setUnitPrice(modelAmount); vehicleOrderItem.setUnitPrice(modelAmount);
}else { }else {
modelAmount = vehicleModel.getPrice(); modelAmount = vehicleModel.getPrice();
...@@ -311,13 +314,17 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -311,13 +314,17 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
* @param memberEnum * @param memberEnum
* @return * @return
*/ */
private BigDecimal handleDiscount(VehicleModel vehicleModel, String[] prices, MemberEnum memberEnum) { private BigDecimal handleDiscount(VehicleModel vehicleModel, String[] prices, MemberEnum memberEnum, Integer rebate) {
BigDecimal modelAmount;//会员比例 BigDecimal modelAmount;//会员比例
BigDecimal rebatePercent = new BigDecimal(String.valueOf((rebate/100d)));
BigDecimal hundred = BigDecimal.TEN;
if(DISCOUNT_STATUS_MEMBER.equals(vehicleModel.getRentDiscountStatus())) { if(DISCOUNT_STATUS_MEMBER.equals(vehicleModel.getRentDiscountStatus())) {
modelAmount = new BigDecimal(String.valueOf((memberEnum.getPercent()/100d))).multiply(vehicleModel.getPrice()).setScale(2, BigDecimal.ROUND_HALF_UP); rebate = memberEnum.getPercent();
modelAmount = rebatePercent.multiply(vehicleModel.getPrice()).setScale(2, BigDecimal.ROUND_HALF_UP);
}else { }else {
//会员固定价列表 //会员固定价列表
modelAmount = new BigDecimal(prices[(memberEnum.getCode() - 1)]); modelAmount = new BigDecimal(prices[(memberEnum.getCode() - 1)]);
rebate = modelAmount.divide(vehicleModel.getPrice()).multiply(hundred).setScale(0, BigDecimal.ROUND_UP).intValue();
} }
return modelAmount; return modelAmount;
} }
......
...@@ -76,9 +76,6 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To ...@@ -76,9 +76,6 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
@Autowired @Autowired
protected UserAuthConfig userAuthConfig; protected UserAuthConfig userAuthConfig;
@Autowired
UserFeign userFeign;
@Autowired @Autowired
ThirdFeign thirdFeign; ThirdFeign thirdFeign;
......
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 to comment