|
|
@@ -12,22 +12,29 @@ import com.cyksj.common.util.Jsons;
|
|
|
import com.cyksj.common.util.Xmls;
|
|
|
import com.cyksj.config.WeChatConfig;
|
|
|
import com.cyksj.dto.RedisKey;
|
|
|
-import com.cyksj.mapper.AppleAutoRegisterDataMapper;
|
|
|
import com.cyksj.dto.Result;
|
|
|
import com.cyksj.enums.GatewayResponse;
|
|
|
+import com.cyksj.mapper.AppleAutoRegisterDataMapper;
|
|
|
import com.cyksj.mapper.RegisterOrderDonMapper;
|
|
|
+import com.cyksj.mapper.SpotifyUnLimitRecordMapper;
|
|
|
import com.cyksj.mapper.UserMapper;
|
|
|
+import com.cyksj.mapper.manage.coupon.CouponMapper;
|
|
|
import com.cyksj.model.dto.H5JsPayParams;
|
|
|
import com.cyksj.model.entity.*;
|
|
|
import com.cyksj.model.manage.request.RegisterReq;
|
|
|
import com.cyksj.model.request.OrderAttach;
|
|
|
import com.cyksj.model.request.WxOrderRefundReq;
|
|
|
+import com.cyksj.model.views.CouponUserView;
|
|
|
import com.cyksj.redis.RedisService;
|
|
|
+import com.cyksj.service.mange.coupon.CouponCommonService;
|
|
|
import com.cyksj.service.register.RegisterOrderDonService;
|
|
|
import com.cyksj.service.register.SpotifyService;
|
|
|
import com.cyksj.service.sys.SysConfigService;
|
|
|
import com.cyksj.service.wechat.WeChatService;
|
|
|
import com.cyksj.task.JobManager;
|
|
|
+import com.ejlchina.searcher.BeanSearcher;
|
|
|
+import com.ejlchina.searcher.param.Operator;
|
|
|
+import com.ejlchina.searcher.util.MapUtils;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
@@ -68,6 +75,14 @@ public class RegisterOrderDonServiceImpl extends ServiceImpl<RegisterOrderDonMap
|
|
|
|
|
|
private final RegisterOrderDonMapper registerOrderDonMapper;
|
|
|
|
|
|
+ private final CouponMapper couponMapper;
|
|
|
+
|
|
|
+ private final CouponCommonService couponCommonService;
|
|
|
+
|
|
|
+ private final SpotifyUnLimitRecordMapper spotifyUnLimitRecordMapper;
|
|
|
+
|
|
|
+ private final BeanSearcher beanSearcher;
|
|
|
+
|
|
|
private static final Long EXPIRY_TIME = 1000 * 60 * 5L;
|
|
|
|
|
|
/**
|
|
|
@@ -168,6 +183,33 @@ public class RegisterOrderDonServiceImpl extends ServiceImpl<RegisterOrderDonMap
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public CouponUserView spotifyUnLimit(SpotifyUnLimitRecord spotifyUnLimitRecord) {
|
|
|
+ RegisterOrderDon registerOrderDon = this.getOne(Wrappers.lambdaQuery(RegisterOrderDon.class).eq(RegisterOrderDon::getUserId, spotifyUnLimitRecord.getUserId()).eq(RegisterOrderDon::getEmail, spotifyUnLimitRecord.getAccount()).select(RegisterOrderDon::getPassword, RegisterOrderDon::getUsername).last("limit 1"));
|
|
|
+ if (registerOrderDon == null) {
|
|
|
+ throw BusinessRuntimeException.getInstance("仅接受银河录像局注册成功的Spotify邮箱");
|
|
|
+ }
|
|
|
+ if (registerOrderDon.getStatus() != RegisterOrderDon.Status.complete) {
|
|
|
+ throw BusinessRuntimeException.getInstance("您的Spotify账号暂未注册成功");
|
|
|
+ }
|
|
|
+ Boolean isFlag = false;
|
|
|
+ Long spotifyCouponId = null;
|
|
|
+ //是否配置了优惠券
|
|
|
+ SysConfig spotify_coupon_id = sysConfigService.getOne(Wrappers.lambdaQuery(SysConfig.class).eq(SysConfig::getSysKey, "spotify_coupon_id").last("limit 1"));
|
|
|
+ if (spotify_coupon_id != null) {
|
|
|
+ spotifyCouponId = Long.parseLong(spotify_coupon_id.getSysValue());
|
|
|
+ Coupon coupon = couponMapper.selectById(spotifyCouponId);
|
|
|
+ if (coupon != null) {
|
|
|
+ isFlag = couponCommonService.sendCouponToUser(spotifyUnLimitRecord.getUserId(), spotifyCouponId, null, null, null, CouponUser.Channel.manual);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ spotifyUnLimitRecordMapper.insert(spotifyUnLimitRecord);
|
|
|
+ return isFlag ? beanSearcher.searchFirst(CouponUserView.class, MapUtils.builder()
|
|
|
+ .field(CouponUserView::getUserId, spotifyUnLimitRecord.getUserId()).op(Operator.Equal)
|
|
|
+ .field(CouponUserView::getCouponId, spotifyCouponId).op(Operator.Equal)
|
|
|
+ .build()) : null;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public H5JsPayParams pay(Long orderId) throws Exception {
|
|
|
log.info("注册 账号调起微信支付[start] orderId:{}", orderId);
|