|
|
@@ -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) {
|