zhanglin8526
2023-05-04 daf1d5e645ba76343f048044405fa08a1573d77a
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -3,24 +3,27 @@
import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.uuid.IdUtils;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.member.domain.dto.AppNearbyShopDto;
import com.ruoyi.member.domain.dto.AppUserAuthorizeDto;
import com.ruoyi.member.domain.vo.AppNearbyShopVo;
import com.ruoyi.member.domain.vo.AppUserAuthorizeVo;
import com.ruoyi.member.domain.vo.AppUserInfoVo;
import com.ruoyi.member.mapper.member.MemberMapper;
import com.ruoyi.member.service.member.MemberService;
import com.ruoyi.system.api.domain.poji.member.Member;
import com.ruoyi.system.api.domain.poji.sys.SysUser;
import com.ruoyi.system.api.model.AppMiniLoginDto;
import com.ruoyi.system.api.model.AppMiniLoginVo;
import com.ruoyi.system.api.RemoteOrderService;
import com.ruoyi.system.api.RemoteShopService;
import com.ruoyi.system.api.RemoteUserService;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.constant.SecurityConstant;
import com.ruoyi.system.domain.pojo.shop.Shop;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.system.service.shop.ShopService;
import com.ruoyi.system.service.sys.ISysUserService;
import com.ruoyi.system.api.domain.dto.AppEditUserDto;
import com.ruoyi.system.api.domain.poji.member.Member;
import com.ruoyi.system.api.domain.poji.shop.Shop;
import com.ruoyi.system.api.domain.poji.sys.SysUser;
import com.ruoyi.system.api.domain.vo.AppOrderTotalVo;
import com.ruoyi.system.api.model.AppMiniLoginDto;
import com.ruoyi.system.api.model.AppMiniLoginVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
@@ -39,20 +42,24 @@
 */
@Service
public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> implements MemberService {
    @Resource
    private WxMaService wxMaService;
    @Resource
    private ISysUserService sysUserService;
    private RemoteUserService sysUserService;
    @Resource
    private WxMaService wxMaService;
    @Resource
    private MemberMapper memberMapper;
    @Resource
    private ShopService shopService;
    private StringRedisTemplate stringRedisTemplate;
    @Resource
    private StringRedisTemplate stringRedisTemplate;
    private RemoteShopService shopService;
    @Resource
    private RemoteOrderService orderService;
    /**
     * @description: TODO
@@ -95,9 +102,10 @@
            SysUser sysUser;
            if(member==null){
                //创建新用户
                String memberId = UUID.randomUUID().toString();
                String memberId = IdUtils.simpleUUID();
                sysUser = new SysUser();
                sysUser.setUserName(memberId);
                sysUser.setUserType("03");
                sysUser.setNickName("微信用户");
                String password = "hongruitang";
                sysUser.setPassword(SecurityUtils.encryptPassword(password));
@@ -111,7 +119,7 @@
                member.setCreateTime(new Date());
                this.save(member);
            }else{
                sysUser = sysUserService.selectUserById(member.getUserId());
                sysUser = sysUserService.getSysUser(member.getUserId()).getData();
            }
            appMiniLoginVo.setMiniOpenid(openid);
            appMiniLoginVo.setWxUnionid(unionid);
@@ -156,9 +164,10 @@
            e.printStackTrace();
        }
        //更新用户手机信息
        SysUser sysUser = sysUserService.selectUserById(appUserAuthorizeDto.getUserId());
        SysUser sysUser = new SysUser();
        sysUser.setUserId(appUserAuthorizeDto.getUserId());
        sysUser.setPhonenumber(mobile);
        sysUserService.updateUser(sysUser);
        sysUserService.updateUserMobile(sysUser);
        member.setMobile(mobile);
        this.saveOrUpdate(member);
        appUserAuthorizeVo.setMobile(mobile);
@@ -169,27 +178,61 @@
    }
    /**
     * 获取附近门店
     * @param appNearbyShopDto
     * 获取用户信息
     * @param userId
     * @return
     */
    @Override
    public AppNearbyShopVo getNearbyShop(AppNearbyShopDto appNearbyShopDto){
        Member member = this.getById(appNearbyShopDto.getUserId());
        AppNearbyShopVo appNearbyShopVo = new AppNearbyShopVo();
        Shop shop = null;
        if(member.getRealtionShopId()!=null){
            //获取绑定商户
            shop = shopService.getById(member.getRealtionShopId());
        }else{
            //获取附近商户
            shop = shopService.getById(1L);
    public AppUserInfoVo getAppUserInfo(Long userId){
        AppUserInfoVo appUserInfoVo = new AppUserInfoVo();
        SysUser sysUser = sysUserService.getSysUser(userId).getData();
        Member member = this.getByUserId(userId);
        appUserInfoVo.setUserId(userId);
        appUserInfoVo.setMemberNo(member.getMemberNo());
        appUserInfoVo.setNickName(sysUser.getNickName());
        appUserInfoVo.setPhonenumber(sysUser.getPhonenumber());
        if(member.getRelationShopId()!=null){
            Shop shop = shopService.getShop(member.getRelationShopId()).getData();
            appUserInfoVo.setShopName(shop.getShopName());
        }
        appNearbyShopVo.setShopId(shop.getShopId());
        appNearbyShopVo.setShopName(shop.getShopName());
        appNearbyShopVo.setShopAddress(shop.getShopAreaName()+shop.getShopAddress());
        appNearbyShopVo.setShopLatitude(shop.getShopLatitude());
        appNearbyShopVo.setShopLongitude(shop.getShopLongitude());
        return appNearbyShopVo;
        appUserInfoVo.setBirthday(member.getBirthday());
        appUserInfoVo.setGender(member.getGender());
        appUserInfoVo.setAvatar(sysUser.getAvatar());
        AppOrderTotalVo appOrderTotalVo = orderService.getAppOrderTotal(userId).getData();
        appUserInfoVo.setNoPayCount(appOrderTotalVo.getNoPayCount());
        appUserInfoVo.setNoUseCount(appOrderTotalVo.getNoUseCount());
        return appUserInfoVo;
    }
    /**
     * 修改用户信息
     * @param appEditUserDto
     */
    @Override
    public void editAppUserInfo(AppEditUserDto appEditUserDto){
        //修改类型1.昵称2.头像3.性别4.生日
        Integer editType = appEditUserDto.getEditType();
        String editValue = appEditUserDto.getEditValue();
        Member member = this.getByUserId(appEditUserDto.getUserId());
        switch (editType){
            case 1:
                break;
            case 2:
                break;
            case 3:
                member.setGender(Integer.valueOf(editValue));
                member.setUpdateTime(new Date());
                member.setUpdateUserId(appEditUserDto.getUserId());
                this.saveOrUpdate(member);
                break;
            case 4:
                member.setBirthday(editValue);
                member.setUpdateTime(new Date());
                member.setUpdateUserId(appEditUserDto.getUserId());
                this.saveOrUpdate(member);
                break;
            default:
                break;
        }
    }
}