|
@@ -5,24 +5,33 @@ import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
+import com.cyksj.common.constant.Constant;
|
|
|
import com.cyksj.common.exception.BusinessRuntimeException;
|
|
import com.cyksj.common.exception.BusinessRuntimeException;
|
|
|
|
|
+import com.cyksj.common.task.GlobalThreadPoolTaskExecutor;
|
|
|
|
|
+import com.cyksj.common.util.Jsons;
|
|
|
import com.cyksj.config.WeChatConfig;
|
|
import com.cyksj.config.WeChatConfig;
|
|
|
import com.cyksj.mapper.UserMapper;
|
|
import com.cyksj.mapper.UserMapper;
|
|
|
import com.cyksj.mapper.UserTransferLogMapper;
|
|
import com.cyksj.mapper.UserTransferLogMapper;
|
|
|
import com.cyksj.mapper.WxSyncLogMapper;
|
|
import com.cyksj.mapper.WxSyncLogMapper;
|
|
|
|
|
+import com.cyksj.mapper.channel.ChannelPopularizeMapper;
|
|
|
import com.cyksj.model.dto.GzhOAuth2UserInfo;
|
|
import com.cyksj.model.dto.GzhOAuth2UserInfo;
|
|
|
import com.cyksj.model.dto.UserWhoami;
|
|
import com.cyksj.model.dto.UserWhoami;
|
|
|
-import com.cyksj.model.entity.User;
|
|
|
|
|
-import com.cyksj.model.entity.UserTransferLog;
|
|
|
|
|
-import com.cyksj.model.entity.WxSyncLog;
|
|
|
|
|
|
|
+import com.cyksj.model.entity.*;
|
|
|
|
|
+import com.cyksj.model.views.CorpUserFollowView;
|
|
|
import com.cyksj.service.distribute.DistributeService;
|
|
import com.cyksj.service.distribute.DistributeService;
|
|
|
import com.cyksj.service.distribute.equipment.EquipmentDistributeService;
|
|
import com.cyksj.service.distribute.equipment.EquipmentDistributeService;
|
|
|
|
|
+import com.cyksj.service.mange.coupon.CouponCommonService;
|
|
|
|
|
+import com.cyksj.service.sys.SysConfigService;
|
|
|
import com.cyksj.service.user.UserService;
|
|
import com.cyksj.service.user.UserService;
|
|
|
|
|
+import com.ejlchina.searcher.BeanSearcher;
|
|
|
|
|
+import com.ejlchina.searcher.param.Operator;
|
|
|
|
|
+import com.ejlchina.searcher.util.MapUtils;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.Assert;
|
|
import org.springframework.util.Assert;
|
|
|
|
|
|
|
|
|
|
+import java.util.List;
|
|
|
import java.util.Optional;
|
|
import java.util.Optional;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -43,7 +52,17 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|
|
|
|
|
|
|
private final EquipmentDistributeService equipDistributeService;
|
|
private final EquipmentDistributeService equipDistributeService;
|
|
|
|
|
|
|
|
- @Override
|
|
|
|
|
|
|
+ private final ChannelPopularizeMapper channelPopularizeMapper;
|
|
|
|
|
+
|
|
|
|
|
+ private final CouponCommonService couponCommonService;
|
|
|
|
|
+
|
|
|
|
|
+ private final BeanSearcher beanSearcher;
|
|
|
|
|
+
|
|
|
|
|
+ private final SysConfigService sysConfigService;
|
|
|
|
|
+
|
|
|
|
|
+ private static final GlobalThreadPoolTaskExecutor TASK_POOL = GlobalThreadPoolTaskExecutor.getInstance();
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
public User saveAuth(GzhOAuth2UserInfo info, Long sharedId, Integer dsType, Long pid) {
|
|
public User saveAuth(GzhOAuth2UserInfo info, Long sharedId, Integer dsType, Long pid) {
|
|
|
final String unionid = info.getUnionid();
|
|
final String unionid = info.getUnionid();
|
|
|
if (StrUtil.isEmpty(unionid)) {
|
|
if (StrUtil.isEmpty(unionid)) {
|
|
@@ -79,12 +98,17 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|
|
}
|
|
}
|
|
|
user.setUnionid(unionid);
|
|
user.setUnionid(unionid);
|
|
|
user.setOpenId(info.getOpenid());
|
|
user.setOpenId(info.getOpenid());
|
|
|
-
|
|
|
|
|
Boolean isNewUser = false;
|
|
Boolean isNewUser = false;
|
|
|
if (user.getId() == null) {
|
|
if (user.getId() == null) {
|
|
|
|
|
+ Long userId = user.getId();
|
|
|
isNewUser = true;
|
|
isNewUser = true;
|
|
|
- user.setPopularizeId(pid);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ user.setPopularizeId(pid);
|
|
|
|
|
+ if (pid != null) {
|
|
|
|
|
+ TASK_POOL.execute(() -> {
|
|
|
|
|
+ sendFixedCustomerCoupon(pid, userId, unionid);
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
this.saveOrUpdate(user);
|
|
this.saveOrUpdate(user);
|
|
|
if (sharedId != null && isNewUser) {
|
|
if (sharedId != null && isNewUser) {
|
|
|
if (dsType == null || dsType == 1) {
|
|
if (dsType == null || dsType == 1) {
|
|
@@ -142,4 +166,33 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|
|
}
|
|
}
|
|
|
return user;
|
|
return user;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void sendFixedCustomerCoupon(Long popularizeId, Long userId, String unionId) {
|
|
|
|
|
+ //若是百度渠道 添加固定客服 注册后直接发放优惠券
|
|
|
|
|
+ ChannelPopularize channelPopularize = channelPopularizeMapper.selectById(popularizeId);
|
|
|
|
|
+ if (channelPopularize != null && channelPopularize.getChannelId() == 34) {
|
|
|
|
|
+ SysConfig corpConfig = sysConfigService.getOne(Wrappers.lambdaQuery(SysConfig.class)
|
|
|
|
|
+ .eq(SysConfig::getSysKey, Constant.CORP_FIXED_CUSTOMER)
|
|
|
|
|
+ .last("limit 1"));
|
|
|
|
|
+ if (corpConfig != null) {
|
|
|
|
|
+ Optional.ofNullable(corpConfig.getSysValue()).ifPresent(value -> {
|
|
|
|
|
+ try {
|
|
|
|
|
+ if (StrUtil.isNotBlank(value)) {
|
|
|
|
|
+ List<String> followIds = Jsons.parseList(value, String.class);
|
|
|
|
|
+ //添加固定客服发放优惠券
|
|
|
|
|
+ CorpUserFollowView corpUserFollowView = beanSearcher.searchFirst(CorpUserFollowView.class, MapUtils.builder()
|
|
|
|
|
+ .field(CorpUserFollowView::getUnionId, unionId)
|
|
|
|
|
+ .field(CorpUserFollowView::getFollowId, followIds).op(Operator.InList).build());
|
|
|
|
|
+ if (corpUserFollowView != null) {
|
|
|
|
|
+ couponCommonService.sendCouponToUser(userId, 38l, 0l, 0l, 0l, CouponUser.Channel.wxCorp);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|