From f9691d544e62d6c04dbfe45d05a6c7bc5e004291 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期五, 29 十二月 2023 11:52:29 +0800 Subject: [PATCH] 服务商 --- server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 164 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 151 insertions(+), 13 deletions(-) diff --git a/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java index 5d255d6..e6471a7 100644 --- a/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java +++ b/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java @@ -1,15 +1,19 @@ package com.doumee.service.business.impl; import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; +import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; +import com.alibaba.fastjson.JSONObject; 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.biz.system.SystemDictDataBiz; 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.LoginUserInfo; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Utils; @@ -17,15 +21,24 @@ 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 lombok.extern.slf4j.Slf4j; 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; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.RequestParam; +import java.math.BigDecimal; +import java.util.Date; import java.util.List; import java.util.Objects; @@ -35,15 +48,48 @@ * @date 2023/09/27 18:06 */ @Service +@Slf4j public class MemberServiceImpl implements MemberService { @Autowired private MemberMapper memberMapper; + @Override public String create(Member member) { memberMapper.insert(member); return member.getId(); + } + + + @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 @@ -71,6 +117,29 @@ } @Override + public void update(Member member) { + + QueryWrapper<Member> wrapper = new QueryWrapper<>(); + wrapper.lambda() + .eq(Member::getIsdeleted,Constants.ZERO) + .eq(Member::getType,Constants.ONE) + .eq(Member::getCardNo,member.getCardNo()); + Member member1 = memberMapper.selectOne(wrapper); + if (Objects.nonNull(member1) && !member1.getId().equals(member.getId())){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鍗″彿瀛樺湪閲嶅"); + } + 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; @@ -88,7 +157,7 @@ @Override public Member findOne(Member member) { QueryWrapper<Member> wrapper = new QueryWrapper<>(member); - return memberMapper.selectOne(wrapper); + return memberMapper.selectOne(wrapper.last(" limit 1")); } @Override @@ -96,7 +165,7 @@ 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()); @@ -126,7 +195,7 @@ queryWrapper.lambda().eq(Member::getInfo, pageWrap.getModel().getInfo()); } if (pageWrap.getModel().getName() != null) { - queryWrapper.lambda().eq(Member::getName, pageWrap.getModel().getName()); + queryWrapper.lambda().like(Member::getName, pageWrap.getModel().getName()); } if (pageWrap.getModel().getNickname() != null) { queryWrapper.lambda().eq(Member::getNickname, pageWrap.getModel().getNickname()); @@ -164,7 +233,7 @@ queryWrapper.lambda().eq(Member::getPassword, pageWrap.getModel().getPassword()); } if (pageWrap.getModel().getCardNo() != null) { - queryWrapper.lambda().eq(Member::getCardNo, pageWrap.getModel().getCardNo()); + queryWrapper.lambda().like(Member::getCardNo, pageWrap.getModel().getCardNo()); } if (pageWrap.getModel().getCardSign() != null) { queryWrapper.lambda().eq(Member::getCardSign, pageWrap.getModel().getCardSign()); @@ -182,6 +251,23 @@ queryWrapper.orderByAsc(sortData.getProperty()); } } + 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)); } @@ -210,7 +296,7 @@ //鑾峰彇寰俊鏁忔劅鏁版嵁 WxMaJscode2SessionResult session = WxMiniConfig.wxMaService.getUserService().getSessionInfo(code); String openId = session.getOpenid(); - if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(openId)) { + if (StringUtils.isBlank(openId)) { throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鑾峰彇openid澶辫触锛佽鑱旂郴绠$悊鍛�"); } member.setOpenid(openId); @@ -226,32 +312,85 @@ } + /** + * 寰俊灏忕▼搴忕櫥褰� + * @param code + * @return + */ @Override public AccountResponse wxLogin(String code) { + log.error("================================"+code+ JSONObject.toJSONString( WxMiniConfig.wxMaService.getWxMaConfig())); try { //鑾峰彇寰俊鏁忔劅鏁版嵁 WxMaJscode2SessionResult session = WxMiniConfig.wxMaService.getUserService().getSessionInfo(code); + log.error("================================"+ JSONObject.toJSONString(session)); String openId = session.getOpenid(); - if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(openId)) { + String unionId = session.getUnionid(); + if (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")); + 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; + 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); } + 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) { + log.error(e.getMessage()); + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "寰俊鐧诲綍寮傚父锛佽鑱旂郴绠$悊鍛�"); + } + } + + /** + * 瑙f瀽寰俊鎵嬫満鍙� + * @param wxPhoneRequest + * @return + */ + @Override + public AccountResponse wxPhone(WxPhoneRequest wxPhoneRequest) { + try { + 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)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈В鏋愬埌鎵嬫満鍙�"); + } + member.setPhone(mobile); memberMapper.updateById(member); + AccountResponse accountResponse = new AccountResponse(); UserResponse userResponse = getUserInfo(member.getId()); JwtPayLoad payLoad = new JwtPayLoad(userResponse.getId()); accountResponse.setToken(JwtTokenUtil.generateToken(payLoad)); accountResponse.setUserResponse(userResponse); + accountResponse.setStatus(Constants.ZERO); return accountResponse; - } catch (WxErrorException e) { - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "寰俊鐧诲綍寮傚父锛佽鑱旂郴绠$悊鍛�"); + } catch (Exception e) { + e.printStackTrace(); + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈В鏋愬埌鎵嬫満鍙�"); } - } + @Override public UserResponse getUserInfo(String id) { @@ -259,7 +398,6 @@ UserResponse userResponse = new UserResponse(); BeanUtils.copyProperties(member,userResponse); userResponse.setMobile(member.getPhone()); - return userResponse; } -- Gitblit v1.9.3