From 0cd3a666af34e28eaf50ed1392b5d219a9d2b1cf Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期三, 24 七月 2024 09:42:06 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/zbomyoujia
---
server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java | 234 +++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 190 insertions(+), 44 deletions(-)
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
index 4a90c8e..2fd86db 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
@@ -1,11 +1,15 @@
package com.doumee.service.business.impl;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
+import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
import cn.hutool.core.date.DateUnit;
import com.alibaba.fastjson.JSONObject;
import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.biz.zbom.ZbomZhongTaiService;
import com.doumee.biz.zbom.model.IamUserRoleModel;
import com.doumee.biz.zbom.model.IamUserTypeModel;
+import com.doumee.biz.zbom.model.zhongtai.ZTBaseRequst;
+import com.doumee.biz.zbom.model.zhongtai.ZTConstants;
import com.doumee.config.Jwt.JwtPayLoad;
import com.doumee.config.Jwt.JwtTokenUtil;
import com.doumee.core.annotation.excel.ExcelImporter;
@@ -21,6 +25,7 @@
import com.doumee.core.utils.tyyun.TyyZosUtil;
import com.doumee.dao.admin.request.ShopImport;
import com.doumee.dao.admin.request.UserImport;
+import com.doumee.dao.business.MemberMapper;
import com.doumee.dao.business.ShopMapper;
import com.doumee.core.wx.WxMiniConfig;
import com.doumee.dao.business.SmsEmailMapper;
@@ -29,6 +34,8 @@
import com.doumee.dao.system.model.SystemDictData;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.dao.web.reqeust.EditUsersRequest;
+import com.doumee.dao.web.reqeust.ContentShareImgDto;
+import com.doumee.dao.web.reqeust.WxPhoneRequest;
import com.doumee.dao.web.response.AccountResponse;
import com.doumee.service.business.UsersService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -51,6 +58,7 @@
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
+import java.awt.image.BufferedImage;
import java.io.InputStream;
import java.util.*;
import java.util.concurrent.Callable;
@@ -79,6 +87,11 @@
private SmsEmailMapper smsEmailMapper;
@Autowired
private SystemDictDataBiz systemDictDataBiz;
+ @Autowired
+ private MemberMapper memberMapper;
+
+ @Autowired
+ private ZbomZhongTaiService zbomZhongTaiService;
@Override
public Long create(Users users) {
@@ -321,38 +334,40 @@
}
Users users = usersMapper.selectOne(new QueryWrapper<Users>().lambda().eq(Users::getPhone,phone).last("limit 1"));
if(Objects.isNull(users)){
- throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌璐︽埛淇℃伅");
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璐﹀彿淇℃伅涓嶅瓨鍦紒");
}
if(!Constants.equalsInteger(users.getIsdeleted(), Constants.ZERO)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠璐︽埛宸插垹闄�");
}
- if(!StringUtils.equals(users.getStatus(),Constants.ZERO+"")){
+ if(StringUtils.equals(users.getStatus(),Constants.ZERO+"")){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠璐︽埛宸插仠鐢紝璇疯仈绯荤鐞嗗憳");
}
//楠岃瘉鐭俊
- SmsEmail model = smsEmailMapper.selectOne(new QueryWrapper<SmsEmail>().lambda()
- .eq(SmsEmail::getType, Constants.ZERO)
- .eq(SmsEmail::getPhone, phone)
- .eq(SmsEmail::getRemark, code)
- .eq(SmsEmail::getIsdeleted, Constants.ZERO)
- );
- if(model == null){
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝楠岃瘉鐮佷笉姝g‘锛岃閲嶆柊鍙戦�佸啀璇曪紒");
- }
- if(!Constants.equalsInteger(model.getStatus(),Constants.ZERO)){
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝楠岃瘉鐮佸凡澶辨晥锛岃閲嶆柊鍙戦�佸啀璇曪紒");
- }
- model.setStatus(Constants.ONE);
- model.setEditDate(new Date());
- if(model.getCreateDate() !=null &&
- System.currentTimeMillis() - model.getCreateDate().getTime() > 3*60*1000){
- smsEmailMapper.updateById(model);
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝楠岃瘉鐮佸凡澶辨晥锛岃閲嶆柊鍙戦�佸啀璇晘");
- }
- smsEmailMapper.updateById(model);
+// SmsEmail model = smsEmailMapper.selectOne(new QueryWrapper<SmsEmail>().lambda()
+// .eq(SmsEmail::getType, Constants.ZERO)
+// .eq(SmsEmail::getPhone, phone)
+// .eq(SmsEmail::getRemark, code)
+// .eq(SmsEmail::getIsdeleted, Constants.ZERO)
+// );
+// if(model == null){
+// throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝楠岃瘉鐮佷笉姝g‘锛岃閲嶆柊鍙戦�佸啀璇曪紒");
+// }
+// if(!Constants.equalsInteger(model.getStatus(),Constants.ZERO)){
+// throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝楠岃瘉鐮佸凡澶辨晥锛岃閲嶆柊鍙戦�佸啀璇曪紒");
+// }
+// model.setStatus(Constants.ONE);
+// model.setEditDate(new Date());
+// if(model.getCreateDate() !=null &&
+// System.currentTimeMillis() - model.getCreateDate().getTime() > 3*60*1000){
+// smsEmailMapper.updateById(model);
+// throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝楠岃瘉鐮佸凡澶辨晥锛岃閲嶆柊鍙戦�佸啀璇晘");
+// }
+// smsEmailMapper.updateById(model);
//鍒涘缓token
- JwtPayLoad payLoad = new JwtPayLoad(users.getId(),Constants.ONE);
- String token = JwtTokenUtil.generateToken(payLoad);
+// JwtPayLoad payLoad = new JwtPayLoad(users.getId(),Constants.ONE);
+// String token = JwtTokenUtil.generateToken(payLoad);
+// redisTemplate.opsForValue().set(ZTConstants.BUSINESS+"_"+users.getId(),token);
+ String token = JwtTokenUtil.generateTokenForZb(users.getId(),ZTConstants.BUSINESS,JSONObject.toJSON(users).toString(),redisTemplate);
AccountResponse accountResponse = new AccountResponse();
accountResponse.setToken(token);
accountResponse.setUsers(users);
@@ -372,18 +387,22 @@
accountResponse.setSessionKey(session.getSessionKey());
Users users = usersMapper.selectOne(new QueryWrapper<Users>().lambda().eq(Users::getOpenid,openId).last("limit 1"));
if(Objects.isNull(users)){
+ accountResponse.setSessionKey(session.getSessionKey());
return accountResponse;
}
if(!Constants.equalsInteger(users.getIsdeleted(),Constants.ZERO)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠璐︽埛宸插垹闄�");
}
- if(!StringUtils.equals(users.getStatus(),Constants.ZERO+"")){
+ if(!StringUtils.equals(users.getStatus(),Constants.ONE+"")){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠璐︽埛宸插仠鐢紝璇疯仈绯荤鐞嗗憳");
}
+ users.setOpenid(openId);
+ usersMapper.updateById(users);
//鍒涘缓token
- JwtPayLoad payLoad = new JwtPayLoad(users.getId(),Constants.ONE);
- String token = JwtTokenUtil.generateToken(payLoad);
+ String token = JwtTokenUtil.generateTokenForZb(users.getId(),ZTConstants.BUSINESS,JSONObject.toJSON(users).toString(),redisTemplate);
accountResponse.setToken(token);
+ getUsersDetail(users);
+ accountResponse.setSessionKey(session.getSessionKey());
accountResponse.setUsers(users);
return accountResponse;
} catch (WxErrorException e) {
@@ -391,6 +410,35 @@
}
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"寰俊鐧诲綍寮傚父锛佽鑱旂郴绠$悊鍛�");
}
+
+
+ @Override
+ public AccountResponse getWxMiniPhoneLogin(WxPhoneRequest wxPhoneRequest){
+ try {
+ WxMaPhoneNumberInfo userPhoneInfo = WxMiniConfig.wxPersonnelService.getUserService().getPhoneNoInfo(
+ wxPhoneRequest.getSessionKey(), wxPhoneRequest.getEncryptedData(), wxPhoneRequest.getIv());
+ //鑾峰彇鎵嬫満鍙�
+ String phone= userPhoneInfo.getPurePhoneNumber();
+ if(Objects.isNull(phone)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈幏鍙栧埌鎵嬫満鍙�");
+ }
+ Users users = usersMapper.selectOne(new QueryWrapper<Users>().lambda()
+ .eq(Users::getPhone,phone).last("limit 1"));
+ AccountResponse accountResponse = new AccountResponse();
+ accountResponse.setPhone( Constants.desensitizationPhone(phone));
+ if(Objects.isNull(users)){
+ return accountResponse;
+ }
+ accountResponse.setUsers(users);
+ String token = JwtTokenUtil.generateTokenForZb(users.getId(),ZTConstants.BUSINESS,JSONObject.toJSON(users).toString(),redisTemplate);
+ accountResponse.setToken(token);
+ return accountResponse;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏇存柊鎵嬫満鍙峰け璐�");
+ }
+
@Override
@@ -621,6 +669,78 @@
}
+ @Override
+ public String getContentShareImg(Users users, ContentShareImgDto param){
+ if(StringUtils.isBlank(param.getImgurl())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+
+ String shareFolder = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.SHARES_FILE).getCode();
+ String path = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.RESOURCE_PATH).getCode();
+ if(param.getType() == 1){
+ //澶氬浘甯︿簩缁寸爜涓嬭浇
+ return dealShareImgWithUser(param,users,shareFolder,path);
+ }else{
+ return dealShareImgNoUser(param,users,shareFolder,path);
+ }
+ }
+
+ private String dealShareImgWithUser(ContentShareImgDto param, Users users, String shareFolder, String path) {
+ BufferedImage img1 =GeneratePicUtil.getImgIO(param.getImgurl());
+ if(img1 ==null){
+ return param.getImgurl();
+ }
+ /* if(img1.getWidth() <200 && img1.getHeight()<100){
+ return param.getImgurl();
+ }
+*/
+ String defualtHeader = systemDictDataBiz.queryByCode(Constants.WEIXIN_DEFAULT_IMGS, Constants.USER_CARD_HEADER_IMG).getCode();
+ String imgurl =StringUtils.isNotBlank(users.getImgurl())?path+(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.USERS_FILE).getCode())+users.getImgurl():defualtHeader;
+ String url =null;
+ //鍐呭鍒嗕韩娴锋姤鍥剧墖
+ InputStream mpCode = Constants.generateWxMiniImgStream(systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG, Constants.WX_TOKEN_CUSTOMER).getCode(),
+ "userId="+users.getId()+"&articleId="+param.getArticleId(),
+ param.getPageUrl());//灏忕▼搴�
+
+ InputStream inputStream = GeneratePicUtil.generateShareWithUserImg(
+ img1
+ ,mpCode
+ ,imgurl
+ ,StringUtils.defaultString(users.getName(),"-"));
+ TyyZosUtil obs = new TyyZosUtil( systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.ENDPOINT).getCode(),
+ systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.ACCESS_ID).getCode(),
+ systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.ACCESS_KEY).getCode());
+ String key = DateUtil.getNowShortDate()+"/"+UUID.randomUUID().toString() + ".jpg";
+ String fileName =shareFolder+ key;
+ if (obs.uploadInputstreamObject(inputStream,systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.BUCKETNAME).getCode(), fileName)) {
+ url = path+fileName;
+ }
+ return url;
+
+ }
+
+ private String dealShareImgNoUser(ContentShareImgDto param, Users users, String shareFolder, String path) {
+ String url =null;
+ //鍐呭鍒嗕韩娴锋姤鍥剧墖
+ InputStream mpCode = Constants.generateWxMiniImgStream(systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG, Constants.WX_TOKEN_CUSTOMER).getCode(),
+ "userId="+users.getId()+"&articleId="+param.getArticleId(),
+ param.getPageUrl());//灏忕▼搴�
+
+ String title = systemDictDataBiz.queryByCode(Constants.WEIXIN_DEFAULT_IMGS, Constants.SHARE_HAIBAO_HEADER_TITLE).getCode();
+ InputStream inputStream = GeneratePicUtil.generateShareImg(
+ param.getImgurl()
+ ,mpCode
+ ,title);
+ TyyZosUtil obs = new TyyZosUtil( systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.ENDPOINT).getCode(),
+ systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.ACCESS_ID).getCode(),
+ systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.ACCESS_KEY).getCode());
+ String key = DateUtil.getNowShortDate()+"/"+UUID.randomUUID().toString() + ".jpg";
+ String fileName =shareFolder+ key;
+ if (obs.uploadInputstreamObject(inputStream,systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.BUCKETNAME).getCode(), fileName)) {
+ url = path+fileName;
+ }
+ return url;
+ }
@Override
public String getUserCard(Users users){
@@ -664,11 +784,32 @@
}
@Override
- public Users usersDetail(Long userId){
- Users users = usersMapper.selectById(userId);
+ public Users usersDetailByIamId(String iamId){
+ Users users = usersMapper.selectOne(new QueryWrapper<Users>().lambda().eq(Users::getIamId,iamId).last("limit 1"));
if(Objects.isNull(users)){
throw new BusinessException(ResponseStatus.DATA_EMPTY);
}
+ if(!Constants.equalsInteger(users.getIsdeleted(),Constants.ZERO)){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鐢ㄦ埛宸茬鐢�");
+ }
+ getUsersDetail(users);
+ return users;
+ }
+
+ @Override
+ public Users usersDetailById(Long id){
+ Users users = usersMapper.selectById(id);
+ if(Objects.isNull(users)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ if(!Constants.equalsInteger(users.getIsdeleted(),Constants.ZERO)){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鐢ㄦ埛宸茬鐢�");
+ }
+ getUsersDetail(users);
+ return users;
+ }
+
+ public void getUsersDetail(Users users){
String prefix = StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.RESOURCE_PATH).getCode()) +
StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.USERS_FILE).getCode());
if(StringUtils.isNotBlank(users.getImgurl())){
@@ -695,7 +836,6 @@
}
}
}
- return users;
}
@@ -710,9 +850,9 @@
throw new BusinessException(ResponseStatus.DATA_EMPTY);
}
//TODO 璋冭捣 涓彴鎺ュ彛
-
usersMapper.update(new UpdateWrapper<Users>()
.lambda()
+ .set(Users::getCardImg,"-") //閲嶇疆鍚嶇墖涓� -
.set(StringUtils.isNotBlank(editUsersRequest.getImgurl()),Users::getImgurl,editUsersRequest.getImgurl())
.set(StringUtils.isNotBlank(editUsersRequest.getName()),Users::getName,editUsersRequest.getName())
.set(StringUtils.isNotBlank(editUsersRequest.getPhone()),Users::getPhone,editUsersRequest.getPhone())
@@ -728,19 +868,25 @@
@Override
- public void updWxMiniToken(){
- DefaultWebSecurityManager manager = new DefaultWebSecurityManager();
- ThreadContext.bind(manager);
- String appId = systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG,Constants.WX_APPID_PERSONNEL).getCode();
- String appSecret = systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG,Constants.WX_SECRET_PERSONNEL).getCode();
- //鐢熸垚寰俊token
- String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+appId+"&secret="+appSecret;
- String response = Constants.doGet(url,null);
- JSONObject json = JSONObject.parseObject(response);
- SystemDictData systemDictData = systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG,Constants.WX_TOKEN_PERSONNEL);
- systemDictData.setCode(json.getString("access_token"));
- systemDictData.setUpdateTime(new Date());
- systemDictDataBiz.updateByIdNew(systemDictData);
+ public ZTBaseRequst logOff(Long userId,String token){
+ Users users = usersMapper.selectById(userId);
+ if(Objects.isNull(users)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ //鏍¢獙鐢ㄦ埛token淇℃伅
+ MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,users.getId(), ZTConstants.BUSINESS);
+ //璋冭捣涓彴娉ㄩ攢鎺ュ彛
+ ZTBaseRequst ztBaseRequst = new ZTBaseRequst();
+ ztBaseRequst.setUserType(ZTConstants.BUSINESS);
+ ztBaseRequst.setOpenId(users.getOpenid());
+ ztBaseRequst.setToken(users.getToken());
+ usersMapper.update(new UpdateWrapper<Users>().lambda()
+ .set(Users::getOpenid,null)
+ .set(Users::getEditDate,new Date())
+ .eq(Users::getOpenid,users.getOpenid())
+ );
+ redisTemplate.delete(token);
+ return ztBaseRequst;
}
}
--
Gitblit v1.9.3