AdvertisementUserServiceImpl.java 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package com.cyksj.service.advertisement.impl;
  2. import cn.hutool.core.bean.BeanUtil;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  5. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  6. import com.cyksj.common.exception.BusinessRuntimeException;
  7. import com.cyksj.mapper.advertisement.AdvertisementUserMapper;
  8. import com.cyksj.model.dto.MiniProgramSession;
  9. import com.cyksj.model.dto.UserWhoami;
  10. import com.cyksj.model.entity.AdvertisementUser;
  11. import com.cyksj.service.advertisement.AdvertisementUserService;
  12. import com.cyksj.service.wechat.WeChatService;
  13. import lombok.RequiredArgsConstructor;
  14. import org.apache.commons.lang3.StringUtils;
  15. import org.springframework.stereotype.Service;
  16. import org.springframework.util.Assert;
  17. import java.util.Optional;
  18. /**
  19. * @author chan
  20. * @date 2023/5/16 11:05 AM
  21. */
  22. @RequiredArgsConstructor
  23. @Service
  24. public class AdvertisementUserServiceImpl extends ServiceImpl<AdvertisementUserMapper, AdvertisementUser> implements AdvertisementUserService {
  25. private final WeChatService weChatService;
  26. @Override
  27. public AdvertisementUser wxlogin(String code, String appId) throws Exception{
  28. MiniProgramSession session = weChatService.code2Session(appId,code);
  29. if(StringUtils.isBlank(session.getOpenid())){
  30. throw BusinessRuntimeException.getInstance("获取用户信息异常.");
  31. }
  32. // 根据unionId 判断用户是否存在
  33. String openid = session.getOpenid();
  34. // 查询用户是否存在
  35. LambdaQueryWrapper<AdvertisementUser> userLambdaQueryWrapper = new QueryWrapper<AdvertisementUser>().lambda();
  36. userLambdaQueryWrapper.eq(AdvertisementUser::getOpenId, openid);
  37. AdvertisementUser user = Optional.ofNullable(
  38. getOne(userLambdaQueryWrapper))
  39. .orElseGet(() -> new AdvertisementUser()
  40. .setOpenId(openid));
  41. this.saveOrUpdate(user);
  42. user = getById(user.getId());
  43. return user;
  44. }
  45. @Override
  46. public UserWhoami whoami(Long userId) {
  47. AdvertisementUser user = this.getById(userId);
  48. Assert.notNull(user,"业务处理失败,请联系客服");
  49. UserWhoami userWhoami = new UserWhoami();
  50. BeanUtil.copyProperties(user, userWhoami);
  51. return userWhoami;
  52. }
  53. }