| ÎļþÃû´Ó 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; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  | } |