AdvertisementUserServiceImpl.java 2.8 KB

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