zoujiajian 1 년 전
부모
커밋
8b7220b7db
1개의 변경된 파일27개의 추가작업 그리고 3개의 파일을 삭제
  1. 27 3
      netflix-service/src/main/java/com/cyksj/service/order/impl/VipOrderDonServiceImpl.java

+ 27 - 3
netflix-service/src/main/java/com/cyksj/service/order/impl/VipOrderDonServiceImpl.java

@@ -19,6 +19,7 @@ import com.cyksj.mapper.channel.ShopConfigMapper;
 import com.cyksj.mapper.sys.SysConfigMapper;
 import com.cyksj.mapper.vip.VipGoodsSkuMapper;
 import com.cyksj.mapper.vip.VipOrderDonMapper;
+import com.cyksj.mapper.vip.VipUserMapper;
 import com.cyksj.model.dto.AliPayParams;
 import com.cyksj.model.entity.*;
 import com.cyksj.model.request.AlipayOrderDonReq;
@@ -28,10 +29,10 @@ import com.cyksj.service.order.VipOrderDonService;
 import com.cyksj.service.pay.AliPayCommonService;
 import com.cyksj.service.user.UserBenefitsService;
 import com.cyksj.service.user.UserBindRelationService;
-import com.ejlchina.searcher.BeanSearcher;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.dao.DuplicateKeyException;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
@@ -56,7 +57,7 @@ public class VipOrderDonServiceImpl extends ServiceImpl<VipOrderDonMapper, VipOr
 
 	private final UserBenefitsService userBenefitsService;
 
-	private final BeanSearcher beanSearcher;
+	private final VipUserMapper vipUserMapper;
 
 	private final VipGoodsSkuMapper vipGoodsSkuMapper;
 
@@ -171,7 +172,30 @@ public class VipOrderDonServiceImpl extends ServiceImpl<VipOrderDonMapper, VipOr
 		if (orderDon.getBalance().compareTo(BigDecimal.ZERO) > 0) {
 			userBenefitsService.recordBalanceBySource(orderDon.getUserId(), orderDon.getBalance().negate(), UserBalanceSourceRecord.Source.vip_order, orderDon.getId(), UserBalanceSourceRecord.Source.vip_order.getDesc(), null, null);
 		}
-		//发放
+		Long userId = orderDon.getUserId();
+		VipUser vipUser = Optional.ofNullable(vipUserMapper.selectOne(Wrappers.lambdaQuery(VipUser.class)
+				.eq(VipUser::getUserId, userId)
+				.last("limit 1"))).orElse(new VipUser());
+		//发放会员
+		if (vipUser.getStartTime() == null) {
+			vipUser.setStartTime(DateTime.now());
+		}
+		if (vipUser.getExpiryTime() == null) {
+			vipUser.setExpiryTime(vipUser.getStartTime());
+		}
+		vipUser.setExpiryTime(DateUtil.offsetMonth(vipUser.getExpiryTime(), 1));
+		if (vipUser.getId() == null) {
+			try {
+				vipUserMapper.insert(vipUser);
+			} catch (DuplicateKeyException e) {
+			}
+		} else vipUserMapper.updateById(vipUser);
+		//发放会员车票
+		sendVipTicketToUser(userId);
+	}
+
+	private void sendVipTicketToUser(Long userId) {
+
 	}
 
 	private void deductOrderMoney(VipOrderDon orderDon, User user, VipOrderDonPayReq payRequest) {