|  | @@ -38,6 +38,7 @@ import org.slf4j.Logger;
 | 
	
		
			
				|  |  |  import org.slf4j.LoggerFactory;
 | 
	
		
			
				|  |  |  import com.yonge.cooleshow.biz.dal.dto.search.MemberPriceSettingsSearch;
 | 
	
		
			
				|  |  |  import com.yonge.cooleshow.biz.dal.dao.MemberPriceSettingsDao;
 | 
	
		
			
				|  |  | +import org.springframework.transaction.annotation.Transactional;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import java.math.BigDecimal;
 | 
	
		
			
				|  |  |  import java.util.*;
 | 
	
	
		
			
				|  | @@ -106,7 +107,7 @@ public class MemberPriceSettingsServiceImpl extends ServiceImpl<MemberPriceSetti
 | 
	
		
			
				|  |  |          if (detail.getVipType() == EVipType.SVIP) {
 | 
	
		
			
				|  |  |              VipCardRecordWrapper.UserVip userVip = vipCardRecordService.UserVipInfo(orderReqInfo.getUserId(), orderReqInfo.getOrderClient());
 | 
	
		
			
				|  |  |              if (!userVip.getVipEndDays().equals(orderReqInfo.getVipEndDays())) {
 | 
	
		
			
				|  |  | -                return HttpResponseResult.failed(999, null, "您当前VIP天数更新,请刷新后尝试");
 | 
	
		
			
				|  |  | +                return HttpResponseResult.failed(998, null, "您当前VIP天数更新,请刷新后尝试");
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -130,11 +131,14 @@ public class MemberPriceSettingsServiceImpl extends ServiceImpl<MemberPriceSetti
 | 
	
		
			
				|  |  |          orderCreateRes.setMerchId(0l);
 | 
	
		
			
				|  |  |          orderCreateRes.setBizId(detail.getId());
 | 
	
		
			
				|  |  |          orderCreateRes.setBizContent("会员卡购买-" + detail.getPeriod().getMsg());
 | 
	
		
			
				|  |  | -        orderCreateRes.setGoodNum(1);
 | 
	
		
			
				|  |  | +        orderCreateRes.setGoodNum(orderReqInfo.getGoodsNum());
 | 
	
		
			
				|  |  |          orderCreateRes.setOriginalPrice(detail.getOriginalPrice());
 | 
	
		
			
				|  |  | -        orderCreateRes.setCouponAmount(couponAmount);
 | 
	
		
			
				|  |  | +        orderCreateRes.setCouponAmount(couponAmount.multiply(new BigDecimal(orderReqInfo.getGoodsNum())));
 | 
	
		
			
				|  |  |          orderCreateRes.setExpectPrice(detail.getSalePrice());
 | 
	
		
			
				|  |  |          orderCreateRes.setSourceType(SourceTypeEnum.PLATFORM);
 | 
	
		
			
				|  |  | +        UserPaymentOrderWrapper.VipDays vipDays = new UserPaymentOrderWrapper.VipDays();
 | 
	
		
			
				|  |  | +        vipDays.setVipEndDays(orderReqInfo.getVipEndDays());
 | 
	
		
			
				|  |  | +        orderCreateRes.setBizJson(JSON.toJSONString(vipDays));
 | 
	
		
			
				|  |  |          return HttpResponseResult.succeed(orderCreateRes);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -146,25 +150,55 @@ public class MemberPriceSettingsServiceImpl extends ServiceImpl<MemberPriceSetti
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public void orderSuccess(UserOrderDetailVo orderDetailVo,boolean messageFlag) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        VipCardRecord vipCardRecord = vipCardRecordService.buildVipCardRecordByOrderDetail(orderDetailVo);
 | 
	
		
			
				|  |  | +        if (null == orderDetailVo) {
 | 
	
		
			
				|  |  | +            return;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        MemberPriceSettingsVo detail = detail(orderDetailVo.getBizId());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        VipCardRecordWrapper.AddVipCardRecord addVipCardRecord = new VipCardRecordWrapper.AddVipCardRecord();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        addVipCardRecord.setUserId(orderDetailVo.getUserId());
 | 
	
		
			
				|  |  | +        addVipCardRecord.setClientType(orderDetailVo.getOrderClient());
 | 
	
		
			
				|  |  | +        addVipCardRecord.setStatus(EVipRecordStatus.ADD);
 | 
	
		
			
				|  |  | +        addVipCardRecord.setVipType(detail.getVipType());
 | 
	
		
			
				|  |  | +        if (detail.getPeriod() == PeriodEnum.PERPETUAL) {
 | 
	
		
			
				|  |  | +            addVipCardRecord.setVipType(EVipType.PERMANENT_SVIP);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        addVipCardRecord.setType(detail.getPeriod());
 | 
	
		
			
				|  |  | +        addVipCardRecord.setTimes(orderDetailVo.getGoodNum());
 | 
	
		
			
				|  |  | +        addVipCardRecord.setSendMsg(false);
 | 
	
		
			
				|  |  | +        addVipCardRecord.setCreateBy(orderDetailVo.getUserId());
 | 
	
		
			
				|  |  | +        vipCardRecordService.addVip(addVipCardRecord);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        UserVipInfoVo userVipInfoVo = getUserVipInfoVo(vipCardRecord);
 | 
	
		
			
				|  |  |          //会员购买消息推送
 | 
	
		
			
				|  |  |          if (messageFlag) {
 | 
	
		
			
				|  |  | -            authSend(userVipInfoVo.getUserId(), userVipInfoVo.getPhone(), DateUtil.format(vipCardRecord.getEndTime(), DateUtil.DEFAULT_PATTERN), orderDetailVo.getOrderClient());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            SysUser sysUser = sysUserFeignService.queryUserById(orderDetailVo.getUserId());
 | 
	
		
			
				|  |  | +            if (sysUser == null) {
 | 
	
		
			
				|  |  | +                return;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +//            authSend(sysUser.getId(), sysUser.getPhone(), DateUtil.format(vipCardRecord.getEndTime(), DateUtil.DEFAULT_PATTERN), orderDetailVo.getOrderClient());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  | +    @Transactional
 | 
	
		
			
				|  |  |      public void activityReward(Long userId, ClientEnum client, ActivityReward activityReward, Long activityId,String activityName) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        VipCardRecord vipCardRecord = vipCardRecordService.buildVipCardRecordByOrderDetail(userId,client,activityReward,activityId,activityName);
 | 
	
		
			
				|  |  | -        if (vipCardRecord == null) {
 | 
	
		
			
				|  |  | -            return;
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | +        VipCardRecordWrapper.AddVipCardRecord addVipCardRecord = new VipCardRecordWrapper.AddVipCardRecord();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        addVipCardRecord.setUserId(userId);
 | 
	
		
			
				|  |  | +        addVipCardRecord.setClientType(client);
 | 
	
		
			
				|  |  | +        addVipCardRecord.setStatus(EVipRecordStatus.ADD);
 | 
	
		
			
				|  |  | +        addVipCardRecord.setVipType(EVipType.valueOf(activityReward.getRewardType().name()));
 | 
	
		
			
				|  |  | +        addVipCardRecord.setType(PeriodEnum.valueOf(activityReward.getUnit().name()));
 | 
	
		
			
				|  |  | +        addVipCardRecord.setTimes(activityReward.getNum());
 | 
	
		
			
				|  |  | +        addVipCardRecord.setSendMsg(false);
 | 
	
		
			
				|  |  | +        addVipCardRecord.setCreateBy(userId);
 | 
	
		
			
				|  |  | +        vipCardRecordService.addVip(addVipCardRecord);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        getUserVipInfoVo(vipCardRecord);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      private UserVipInfoVo getUserVipInfoVo(VipCardRecord vipCardRecord) {
 | 
	
	
		
			
				|  | @@ -232,7 +266,8 @@ public class MemberPriceSettingsServiceImpl extends ServiceImpl<MemberPriceSetti
 | 
	
		
			
				|  |  |          return result;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    @Override
 | 
	
		
			
				|  |  | +    @Deprecated
 | 
	
		
			
				|  |  | +//    @Override
 | 
	
		
			
				|  |  |      public Boolean addVip(VipSubmitReq vipSubmitReq, ClientEnum client, SysUser sysUser) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          VipCardRecord vipCardRecord = vipCardRecordService.getVipCardRecord(vipSubmitReq.getUserId(), client, null, null, vipSubmitReq.getType().toString(),
 | 
	
	
		
			
				|  | @@ -295,7 +330,7 @@ public class MemberPriceSettingsServiceImpl extends ServiceImpl<MemberPriceSetti
 | 
	
		
			
				|  |  |          // 判断会员剩余天数是否改变
 | 
	
		
			
				|  |  |          VipCardRecordWrapper.UserVip userVip = vipCardRecordService.UserVipInfo(orderGoodsInfo.getUserId(), orderGoodsInfo.getPaymentClient());
 | 
	
		
			
				|  |  |          if (!userVip.getVipEndDays().equals(orderGoodsInfo.getVipEndDays())) {
 | 
	
		
			
				|  |  | -            throw new BizException(999,"您当前VIP天数更新,请刷新后尝试");
 | 
	
		
			
				|  |  | +            throw new BizException(998,"您当前VIP天数更新,请刷新后尝试");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          BigDecimal couponAmount = BigDecimal.ZERO;
 | 
	
	
		
			
				|  | @@ -317,13 +352,16 @@ public class MemberPriceSettingsServiceImpl extends ServiceImpl<MemberPriceSetti
 | 
	
		
			
				|  |  |          userOrderDetail.setMerchId(0l);
 | 
	
		
			
				|  |  |          userOrderDetail.setBizId(detail.getId());
 | 
	
		
			
				|  |  |          userOrderDetail.setBizContent("会员卡购买-" + detail.getPeriod().getMsg());
 | 
	
		
			
				|  |  | -        userOrderDetail.setGoodNum(1);
 | 
	
		
			
				|  |  | +        userOrderDetail.setGoodNum(orderGoodsInfo.getGoodNum());
 | 
	
		
			
				|  |  |          userOrderDetail.setOriginalPrice(detail.getOriginalPrice());
 | 
	
		
			
				|  |  | -        userOrderDetail.setCouponAmount(couponAmount);
 | 
	
		
			
				|  |  | +        userOrderDetail.setCouponAmount(couponAmount.multiply(new BigDecimal(orderGoodsInfo.getGoodNum())));
 | 
	
		
			
				|  |  |          userOrderDetail.setExpectPrice(detail.getSalePrice());
 | 
	
		
			
				|  |  |          userOrderDetail.setActualPrice(userOrderDetail.getExpectPrice().subtract(couponAmount));
 | 
	
		
			
				|  |  |          orderGoodsInfo.setUserOrderDetail(userOrderDetail);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +        UserPaymentOrderWrapper.VipDays vipDays = new UserPaymentOrderWrapper.VipDays();
 | 
	
		
			
				|  |  | +        vipDays.setVipEndDays(orderGoodsInfo.getVipEndDays());
 | 
	
		
			
				|  |  | +        userOrderDetail.setBizJson(JSON.toJSONString(vipDays));
 | 
	
		
			
				|  |  |          userOrderDetail.setAccountConfig( teacherService.teacherSettlementFrom(null,orderGoodsInfo.getRecomUserId()).jsonString());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // 设置金额入账去向
 |