|  |  |  | 
|---|
|  |  |  | import com.doumee.core.constants.Constants; | 
|---|
|  |  |  | import com.doumee.core.constants.ResponseStatus; | 
|---|
|  |  |  | import com.doumee.core.exception.BusinessException; | 
|---|
|  |  |  | import com.doumee.core.model.LoginUserInfo; | 
|---|
|  |  |  | 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.dao.business.web.request.RegisterRequest; | 
|---|
|  |  |  | import com.doumee.dao.business.web.request.WxPhoneRequest; | 
|---|
|  |  |  | import com.doumee.dao.business.web.response.AccountResponse; | 
|---|
|  |  |  | import com.doumee.dao.business.web.response.HomeResponse; | 
|---|
|  |  |  | import com.doumee.dao.business.web.response.UserResponse; | 
|---|
|  |  |  | import com.doumee.service.business.MemberService; | 
|---|
|  |  |  | import me.chanjar.weixin.common.error.WxErrorException; | 
|---|
|  |  |  | import org.apache.commons.lang3.StringUtils; | 
|---|
|  |  |  | import org.apache.shiro.SecurityUtils; | 
|---|
|  |  |  | import org.checkerframework.checker.units.qual.A; | 
|---|
|  |  |  | import org.springframework.beans.BeanUtils; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public String createManageMember(Member member) { | 
|---|
|  |  |  | LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | QueryWrapper<Member> wrapper = new QueryWrapper<>(); | 
|---|
|  |  |  | wrapper.lambda() | 
|---|
|  |  |  | .eq(Member::getIsdeleted,Constants.ZERO) | 
|---|
|  |  |  | .eq(Member::getType,Constants.ONE) | 
|---|
|  |  |  | .eq(Member::getCardNo,member.getCardNo()); | 
|---|
|  |  |  | Integer integer = memberMapper.selectCount(wrapper); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (integer > 0){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"卡号存在重复"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Member insert = new Member(); | 
|---|
|  |  |  | insert.setCreateDate(new Date()); | 
|---|
|  |  |  | insert.setCreator(principal.getId()); | 
|---|
|  |  |  | insert.setEditDate(new Date()); | 
|---|
|  |  |  | insert.setEditor(principal.getId()); | 
|---|
|  |  |  | insert.setIsdeleted(Constants.ZERO); | 
|---|
|  |  |  | insert.setName(member.getName()); | 
|---|
|  |  |  | insert.setNickname(member.getNickname()); | 
|---|
|  |  |  | insert.setStatus(member.getStatus()); | 
|---|
|  |  |  | insert.setRegisterDate(new Date()); | 
|---|
|  |  |  | insert.setCardNo(member.getCardNo()); | 
|---|
|  |  |  | insert.setType(Constants.ONE); | 
|---|
|  |  |  | memberMapper.insert(insert); | 
|---|
|  |  |  | return insert.getId(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void deleteById(String id) { | 
|---|
|  |  |  | memberMapper.deleteById(id); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void update(Member member) { | 
|---|
|  |  |  | LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|---|
|  |  |  | Member update = new Member(); | 
|---|
|  |  |  | update.setId(member.getId()); | 
|---|
|  |  |  | update.setName(member.getName()); | 
|---|
|  |  |  | update.setStatus(member.getStatus()); | 
|---|
|  |  |  | update.setEditDate(new Date()); | 
|---|
|  |  |  | update.setEditor(principal.getId()); | 
|---|
|  |  |  | memberMapper.updateById(member); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void updateByIdInBatch(List<Member> members) { | 
|---|
|  |  |  | if (CollectionUtils.isEmpty(members)) { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public Member findOne(Member member) { | 
|---|
|  |  |  | QueryWrapper<Member> wrapper = new QueryWrapper<>(member); | 
|---|
|  |  |  | return memberMapper.selectOne(wrapper); | 
|---|
|  |  |  | return memberMapper.selectOne(wrapper.last(" limit 1")); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | 
|---|
|  |  |  | QueryWrapper<Member> wrapper = new QueryWrapper<>(member); | 
|---|
|  |  |  | return memberMapper.selectList(wrapper); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public PageData<Member> findPage(PageWrap<Member> pageWrap) { | 
|---|
|  |  |  | IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); | 
|---|
|  |  |  | 
|---|
|  |  |  | return PageData.from(memberMapper.selectPage(page, queryWrapper)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public PageData<Member> findManagerMemberPage(PageWrap<Member> pageWrap) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); | 
|---|
|  |  |  | QueryWrapper<Member> queryWrapper = new QueryWrapper<>(); | 
|---|
|  |  |  | Utils.MP.blankToNull(pageWrap.getModel()); | 
|---|
|  |  |  | if (pageWrap.getModel().getName() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().like(Member::getName, pageWrap.getModel().getName()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getCardNo() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().like(Member::getCardNo, pageWrap.getModel().getCardNo()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | queryWrapper.lambda().eq(Member::getType, Constants.ONE); | 
|---|
|  |  |  | return PageData.from(memberMapper.selectPage(page, queryWrapper)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public long count(Member member) { | 
|---|
|  |  |  | QueryWrapper<Member> wrapper = new QueryWrapper<>(member); | 
|---|
|  |  |  | 
|---|
|  |  |  | if(Objects.isNull(member)){ | 
|---|
|  |  |  | //新增用户 需要进行用户绑定手机号 | 
|---|
|  |  |  | member = new Member(); | 
|---|
|  |  |  | member.setId(Constants.getUUID()); | 
|---|
|  |  |  | member.setCreateDate(new Date()); | 
|---|
|  |  |  | member.setIsdeleted(Constants.ZERO); | 
|---|
|  |  |  | member.setOpenid(openId); | 
|---|
|  |  |  | member.setUnionid(unionId); | 
|---|
|  |  |  | member.setType(Constants.ZERO); | 
|---|
|  |  |  | member.setRegisterDate(new Date()); | 
|---|
|  |  |  | member.setOrigin(Constants.ZERO.toString()); | 
|---|
|  |  |  | member.setStatus(Constants.ZERO); | 
|---|
|  |  |  | memberMapper.insert(member); | 
|---|
|  |  |  | accountResponse.setStatus(Constants.ONE); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | UserResponse userResponse = getUserInfo(member.getId()); | 
|---|
|  |  |  | if(StringUtils.isBlank(member.getPhone())){ | 
|---|
|  |  |  | accountResponse.setStatus(Constants.ONE); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | JwtPayLoad payLoad = new JwtPayLoad(userResponse.getId()); | 
|---|
|  |  |  | accountResponse.setToken(JwtTokenUtil.generateToken(payLoad)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | accountResponse.setUserResponse(userResponse); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | UserResponse userResponse = getUserInfo(member.getId()); | 
|---|
|  |  |  | if(StringUtils.isBlank(member.getPhone())){ | 
|---|
|  |  |  | accountResponse.setStatus(Constants.ONE); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | JwtPayLoad payLoad = new JwtPayLoad(member.getId()); | 
|---|
|  |  |  | accountResponse.setToken(JwtTokenUtil.generateToken(payLoad)); | 
|---|
|  |  |  | accountResponse.setSessionKey(session.getSessionKey()); | 
|---|
|  |  |  | accountResponse.setUserResponse(userResponse); | 
|---|
|  |  |  | return accountResponse; | 
|---|
|  |  |  | } catch (WxErrorException e) { | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "微信登录异常!请联系管理员"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 解析微信手机号 | 
|---|
|  |  |  | * @param memberId | 
|---|
|  |  |  | * @param encryptedData | 
|---|
|  |  |  | * @param iv | 
|---|
|  |  |  | * @param sessionKey | 
|---|
|  |  |  | * @param wxPhoneRequest | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public AccountResponse wxPhone(String memberId,String encryptedData, String iv,String sessionKey) { | 
|---|
|  |  |  | public AccountResponse wxPhone(WxPhoneRequest wxPhoneRequest) { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | Member member =  memberMapper.selectById(memberId); | 
|---|
|  |  |  | WxMaPhoneNumberInfo userPhoneInfo = WxMiniConfig.wxMaService.getUserService().getPhoneNoInfo(sessionKey, encryptedData, iv); | 
|---|
|  |  |  | Member member =  memberMapper.selectById(wxPhoneRequest.getMemberId()); | 
|---|
|  |  |  | WxMaPhoneNumberInfo userPhoneInfo = WxMiniConfig.wxMaService.getUserService().getPhoneNoInfo(wxPhoneRequest.getSessionKey(), wxPhoneRequest.getEncryptedData(), wxPhoneRequest.getIv()); | 
|---|
|  |  |  | //获取手机号 | 
|---|
|  |  |  | String mobile= userPhoneInfo.getPurePhoneNumber(); | 
|---|
|  |  |  | if(Objects.isNull(mobile)){ | 
|---|
|  |  |  | 
|---|
|  |  |  | userResponse.setMobile(member.getPhone()); | 
|---|
|  |  |  | return userResponse; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|