| | |
| | | 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.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.config.Jwt.JwtPayLoad; |
| | | import com.doumee.config.Jwt.JwtTokenUtil; |
| | | 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.oss.FileModel; |
| | | import com.doumee.core.utils.CodeVerifyUtils; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.core.wx.WxMiniConfig; |
| | | import com.doumee.dao.business.MemberMapper; |
| | | import com.doumee.dao.business.model.InterfaceLog; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.web.reqeust.EditMemberRequest; |
| | | import com.doumee.dao.web.reqeust.WxPhoneRequest; |
| | | import com.doumee.dao.web.response.AccountResponse; |
| | | import com.doumee.service.business.MemberService; |
| | | 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 me.chanjar.weixin.common.error.WxErrorException; |
| | | import okhttp3.OkHttpClient; |
| | | import okhttp3.Request; |
| | | import okhttp3.Response; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.redis.core.RedisTemplate; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.List; |
| | | import java.io.ByteArrayInputStream; |
| | | import java.io.InputStream; |
| | | import java.util.*; |
| | | import java.util.concurrent.TimeUnit; |
| | | |
| | | /** |
| | | * 用户信息表Service实现 |
| | |
| | | |
| | | @Autowired |
| | | private MemberMapper memberMapper; |
| | | |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | |
| | | @Autowired |
| | | private RedisTemplate<String,Object> redisTemplate; |
| | | |
| | | @Override |
| | | public Long create(Member member) { |
| | |
| | | if (pageWrap.getModel().getAreaName() != null) { |
| | | queryWrapper.lambda().eq(Member::getAreaName, pageWrap.getModel().getAreaName()); |
| | | } |
| | | if (pageWrap.getModel().getProvicneCode() != null) { |
| | | queryWrapper.lambda().eq(Member::getProvicneCode, pageWrap.getModel().getProvicneCode()); |
| | | if (pageWrap.getModel().getProvinceCode() != null) { |
| | | queryWrapper.lambda().eq(Member::getProvinceCode, pageWrap.getModel().getProvinceCode()); |
| | | } |
| | | if (pageWrap.getModel().getCityCode() != null) { |
| | | queryWrapper.lambda().eq(Member::getCityCode, pageWrap.getModel().getCityCode()); |
| | |
| | | QueryWrapper<Member> wrapper = new QueryWrapper<>(member); |
| | | return memberMapper.selectCount(wrapper); |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public AccountResponse wxLogin(String code){ |
| | | // try { |
| | | //获取微信敏感数据 |
| | | // WxMaJscode2SessionResult session = WxMiniConfig.wxCustomerService.getUserService().getSessionInfo(code); |
| | | // String openId = session.getOpenid(); |
| | | // if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(openId)) { |
| | | // throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"获取openid失败!请联系管理员"); |
| | | // } |
| | | String openId = code; |
| | | Member member = memberMapper.selectOne(new QueryWrapper<Member>().eq("OPENID", openId)); |
| | | if (member == null) { |
| | | member = new Member(); |
| | | member.setNickname("微信用户"+ CodeVerifyUtils.createVerificationCode(4)); |
| | | member.setCreateDate(new Date()); |
| | | member.setIsdeleted(Constants.ZERO); |
| | | member.setType(Constants.ZERO); |
| | | memberMapper.insert(member); |
| | | } |
| | | //创建token |
| | | JwtPayLoad payLoad = new JwtPayLoad(member.getId(),Constants.ZERO); |
| | | String token = JwtTokenUtil.generateToken(payLoad); |
| | | AccountResponse accountResponse = new AccountResponse(); |
| | | accountResponse.setToken(token); |
| | | // accountResponse.setSessionKey(session.getSessionKey()); |
| | | accountResponse.setMember(member); |
| | | return accountResponse; |
| | | // } catch (WxErrorException e) { |
| | | // e.printStackTrace(); |
| | | // } |
| | | // throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"微信登录异常!请联系管理员"); |
| | | } |
| | | |
| | | @Override |
| | | public String getWxMiniPhone(WxPhoneRequest wxPhoneRequest){ |
| | | try { |
| | | WxMaPhoneNumberInfo userPhoneInfo = WxMiniConfig.wxCustomerService.getUserService().getPhoneNoInfo( |
| | | wxPhoneRequest.getSessionKey(), wxPhoneRequest.getEncryptedData(), wxPhoneRequest.getIv()); |
| | | //获取手机号 |
| | | String phone= userPhoneInfo.getPurePhoneNumber(); |
| | | if(Objects.isNull(phone)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"未获取到手机号"); |
| | | } |
| | | return phone; |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"更新手机号失败"); |
| | | } |
| | | |
| | | @Override |
| | | public void updMemberDetail(EditMemberRequest editMemberRequest){ |
| | | memberMapper.update(new UpdateWrapper<Member>() |
| | | .lambda() |
| | | .set(StringUtils.isNotBlank(editMemberRequest.getImgurl()),Member::getImgurl,editMemberRequest.getImgurl()) |
| | | .set(StringUtils.isNotBlank(editMemberRequest.getName()),Member::getName,editMemberRequest.getName()) |
| | | .set(StringUtils.isNotBlank(editMemberRequest.getPhone()),Member::getPhone,editMemberRequest.getPhone()) |
| | | .set(StringUtils.isNotBlank(editMemberRequest.getProvinceName()),Member::getProvinceName,editMemberRequest.getProvinceName()) |
| | | .set(StringUtils.isNotBlank(editMemberRequest.getProvinceCode()),Member::getProvinceCode,editMemberRequest.getProvinceCode()) |
| | | .set(StringUtils.isNotBlank(editMemberRequest.getCityCode()),Member::getCityCode,editMemberRequest.getCityCode()) |
| | | .set(StringUtils.isNotBlank(editMemberRequest.getCityName()),Member::getCityName,editMemberRequest.getCityName()) |
| | | .set(StringUtils.isNotBlank(editMemberRequest.getAreaCode()),Member::getAreaCode,editMemberRequest.getAreaCode()) |
| | | .set(StringUtils.isNotBlank(editMemberRequest.getAreaName()),Member::getAreaName,editMemberRequest.getAreaName()) |
| | | .set(StringUtils.isNotBlank(editMemberRequest.getAddress()),Member::getAddress,editMemberRequest.getAddress()) |
| | | .set(StringUtils.isNotBlank(editMemberRequest.getDistrict()),Member::getDistrict,editMemberRequest.getDistrict()) |
| | | .set(Objects.nonNull(editMemberRequest.getHousearea()),Member::getHousearea,editMemberRequest.getHousearea()) |
| | | .set(StringUtils.isNotBlank(editMemberRequest.getHousetype()),Member::getHousetype,editMemberRequest.getHousetype()) |
| | | .set(Objects.nonNull(editMemberRequest.getLatitude()),Member::getLatitude,editMemberRequest.getLatitude()) |
| | | .set(Objects.nonNull(editMemberRequest.getLongitude()),Member::getLongitude,editMemberRequest.getLongitude()) |
| | | .eq(Member::getId,editMemberRequest.getMemberId())); |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public Member getMemberInfo(Long memberId){ |
| | | Member member = memberMapper.selectById(memberId); |
| | | if(Objects.isNull(member)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | String prefix = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.RESOURCE_PATH).getCode() + |
| | | systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.MEMBER).getCode(); |
| | | member.setPrefix(prefix); |
| | | return member; |
| | | } |
| | | |
| | | } |