| ÎļþÃû´Ó server/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java ÐÞ¸Ä |
| | |
| | | package com.doumee.service.business.impl; |
| | | |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.MemberMapper; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.service.business.MemberService; |
| | | import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.doumee.core.Jwt.JwtPayLoad; |
| | | import com.doumee.core.Jwt.JwtTokenUtil; |
| | | import com.doumee.core.constants.Constants; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.core.wx.WxMiniConfig; |
| | | import com.doumee.dao.business.MemberMapper; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.business.web.request.RegisterRequest; |
| | | import com.doumee.dao.business.web.response.AccountResponse; |
| | | import com.doumee.dao.business.web.response.UserResponse; |
| | | import com.doumee.service.business.MemberService; |
| | | import me.chanjar.weixin.common.error.WxErrorException; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * ç¨æ·ä¿¡æ¯è¡¨Serviceå®ç° |
| | |
| | | QueryWrapper<Member> wrapper = new QueryWrapper<>(member); |
| | | return memberMapper.selectCount(wrapper); |
| | | } |
| | | @Override |
| | | public AccountResponse userRegister(RegisterRequest registerRequest){ |
| | | return new AccountResponse(); |
| | | } |
| | | |
| | | /** |
| | | * æåå¾®ä¿¡ææ |
| | | * @param code |
| | | * @param userId |
| | | */ |
| | | @Override |
| | | public void wxEmpower(String code,String userId){ |
| | | Member member = memberMapper.selectById(userId); |
| | | if(Objects.isNull(member)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªæ¥è¯¢å°è´¦æ·ä¿¡æ¯"); |
| | | } |
| | | try { |
| | | //è·åå¾®ä¿¡æææ°æ® |
| | | WxMaJscode2SessionResult session = WxMiniConfig.wxMaService.getUserService().getSessionInfo(code); |
| | | String openId = session.getOpenid(); |
| | | if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(openId)) { |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"è·åopenid失败ï¼è¯·è系管çå"); |
| | | } |
| | | member.setOpenid(openId); |
| | | memberMapper.updateById(member); |
| | | memberMapper.update(null, |
| | | new UpdateWrapper<Member>() |
| | | .set("openId",null) |
| | | .eq("openId",openId) |
| | | .ne("id",member.getId())); |
| | | } catch (WxErrorException e) { |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"微信ç»å½å¼å¸¸ï¼è¯·è系管çå"); |
| | | } |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public AccountResponse wxLogin(String code) { |
| | | try { |
| | | //è·åå¾®ä¿¡æææ°æ® |
| | | WxMaJscode2SessionResult session = WxMiniConfig.wxMaService.getUserService().getSessionInfo(code); |
| | | String openId = session.getOpenid(); |
| | | if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(openId)) { |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "è·åopenid失败ï¼è¯·è系管çå"); |
| | | } |
| | | Member member = memberMapper.selectOne(new QueryWrapper<Member>().eq("OPENID", openId).eq("ISDELETED", Constants.ZERO).last("limit 1")); |
| | | AccountResponse accountResponse = new AccountResponse(); |
| | | if (Objects.isNull(member)) { |
| | | return accountResponse; |
| | | } |
| | | |
| | | memberMapper.updateById(member); |
| | | UserResponse userResponse = getUserInfo(member.getId()); |
| | | JwtPayLoad payLoad = new JwtPayLoad(userResponse.getId()); |
| | | accountResponse.setToken(JwtTokenUtil.generateToken(payLoad)); |
| | | accountResponse.setUserResponse(userResponse); |
| | | return accountResponse; |
| | | } catch (WxErrorException e) { |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "微信ç»å½å¼å¸¸ï¼è¯·è系管çå"); |
| | | } |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public UserResponse getUserInfo(String id) { |
| | | Member member = memberMapper.selectById(id); |
| | | UserResponse userResponse = new UserResponse(); |
| | | BeanUtils.copyProperties(member,userResponse); |
| | | userResponse.setMobile(member.getPhone()); |
| | | |
| | | return userResponse; |
| | | } |
| | | |
| | | |
| | | } |