From 04b4bddaac0a222760113899568d20b45af701f4 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 27 九月 2024 19:04:14 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java | 140 +++++++++++++++++++++++++++++++++-------------
1 files changed, 101 insertions(+), 39 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 b5d2af7..a4e4879 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
@@ -35,6 +35,7 @@
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.GenerateQRCodeRequest;
import com.doumee.dao.web.reqeust.WxPhoneRequest;
import com.doumee.dao.web.response.AccountResponse;
import com.doumee.service.business.UsersService;
@@ -44,6 +45,8 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.interfaces.MPJBaseJoin;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import lombok.extern.slf4j.Slf4j;
+import okhttp3.Response;
import org.apache.catalina.User;
import org.apache.commons.lang3.StringUtils;
import me.chanjar.weixin.common.error.WxErrorException;
@@ -58,7 +61,10 @@
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
+import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.util.*;
import java.util.concurrent.Callable;
@@ -73,6 +79,7 @@
* @date 2024/07/04 14:40
*/
@Service
+@Slf4j
public class UsersServiceImpl implements UsersService {
@@ -169,7 +176,10 @@
.selectAll(Users.class);
Utils.MP.blankToNull(pageWrap.getModel());
if (StringUtils.isNotBlank(pageWrap.getModel().getPhone())) {
- queryWrapper.apply(" t.id in ( select c.USER_ID from customer_user c where c.phone = '"+pageWrap.getModel().getPhone()+"' ) ");
+ queryWrapper.apply(" t.id in ( select c.USER_ID from customer_user c where c.isdeleted = 0 and c.phone = '"+pageWrap.getModel().getPhone()+"' ) ");
+ }
+ if (Objects.nonNull(pageWrap.getModel().getMemberId())) {
+ queryWrapper.apply(" t.id in ( select c.USER_ID from customer_user c where c.isdeleted = 0 and c.member_id = '"+pageWrap.getModel().getMemberId()+"' ) ");
}
if (pageWrap.getModel().getId() != null) {
queryWrapper.eq(Users::getId, pageWrap.getModel().getId());
@@ -328,7 +338,7 @@
@Override
- public AccountResponse phoneLogin(String phone,String code){
+ public AccountResponse phoneLogin(String phone,String code,String openid){
if(StringUtils.isEmpty(phone)||StringUtils.isEmpty(code)){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
@@ -341,6 +351,12 @@
}
if(StringUtils.equals(users.getStatus(),Constants.ZERO+"")){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠璐︽埛宸插仠鐢紝璇疯仈绯荤鐞嗗憳");
+ }
+ if(StringUtils.isNotBlank(openid)){
+ usersMapper.update(null,new UpdateWrapper<Users>().lambda().set(Users::getOpenid,null).eq(Users::getOpenid,openid).ne(Users::getId,users.getId()));
+ users.setOpenid(openid);
+ users.setEditDate(new Date());
+ usersMapper.updateById(users);
}
//楠岃瘉鐭俊
// SmsEmail model = smsEmailMapper.selectOne(new QueryWrapper<SmsEmail>().lambda()
@@ -387,19 +403,20 @@
accountResponse.setSessionKey(session.getSessionKey());
Users users = usersMapper.selectOne(new QueryWrapper<Users>().lambda().eq(Users::getOpenid,openId).last("limit 1"));
if(Objects.isNull(users)){
+ accountResponse.setOpenid(openId);
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
- String token = JwtTokenUtil.generateTokenForZb(users.getId(),ZTConstants.BUSINESS,users.getId()+"",redisTemplate);
+ String token = JwtTokenUtil.generateTokenForZb(users.getId(),ZTConstants.BUSINESS,JSONObject.toJSON(users).toString(),redisTemplate);
accountResponse.setToken(token);
getUsersDetail(users);
accountResponse.setSessionKey(session.getSessionKey());
@@ -410,6 +427,7 @@
}
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"寰俊鐧诲綍寮傚父锛佽鑱旂郴绠$悊鍛�");
}
+
@Override
public AccountResponse getWxMiniPhoneLogin(WxPhoneRequest wxPhoneRequest){
@@ -424,39 +442,36 @@
Users users = usersMapper.selectOne(new QueryWrapper<Users>().lambda()
.eq(Users::getPhone,phone).last("limit 1"));
AccountResponse accountResponse = new AccountResponse();
- accountResponse.setPhone(phone);
+ accountResponse.setPhone( Constants.desensitizationPhone(phone));
if(Objects.isNull(users)){
return accountResponse;
+ }else{
+ if(StringUtils.isNotBlank(wxPhoneRequest.getOpenid())){
+ usersMapper.update(null,new UpdateWrapper<Users>().lambda().set(Users::getOpenid,null)
+ .eq(Users::getOpenid,wxPhoneRequest.getOpenid()));
+ users.setOpenid(wxPhoneRequest.getOpenid());
+ usersMapper.updateById(users);
+ }
}
accountResponse.setUsers(users);
- String token = JwtTokenUtil.generateTokenForZb(users.getId(),ZTConstants.BUSINESS,users.getId()+"",redisTemplate);
+ 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(),"鏇存柊鎵嬫満鍙峰け璐�");
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鑾峰彇鎵嬫満鍙峰け璐�");
}
@Override
- public void bindingOpenid(String code,Long userId){
- try {
- //鑾峰彇寰俊鏁忔劅鏁版嵁
- WxMaJscode2SessionResult session = WxMiniConfig.wxPersonnelService.getUserService().getSessionInfo(code);
- String openId = session.getOpenid();
- if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(openId)) {
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鑾峰彇openid澶辫触锛佽鑱旂郴绠$悊鍛�");
- }
- usersMapper.update(new UpdateWrapper<Users>().lambda().set(Users::getOpenid,null).eq(Users::getOpenid,openId));
- Users users = usersMapper.selectById(userId);
- users.setOpenid(openId);
- users.setEditDate(new Date());
- usersMapper.updateById(users);
- } catch (WxErrorException e) {
- e.printStackTrace();
- }
+ public void bindingOpenid(String openid,Long userId){
+ usersMapper.update(new UpdateWrapper<Users>().lambda().set(Users::getOpenid,null).eq(Users::getOpenid,openid));
+ Users users = usersMapper.selectById(userId);
+ users.setOpenid(openid);
+ users.setEditDate(new Date());
+ usersMapper.updateById(users);
}
@Override
@@ -670,6 +685,9 @@
@Override
public String getContentShareImg(Users users, ContentShareImgDto param){
+ log.error("======================start===========:娴锋姤寮�濮�"+JSONObject.toJSONString(param));
+ users = usersMapper.selectById(users.getId());
+ this.getUsersDetail(users);
if(StringUtils.isBlank(param.getImgurl())){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
@@ -689,16 +707,16 @@
if(img1 ==null){
return param.getImgurl();
}
- /* if(img1.getWidth() <200 && img1.getHeight()<100){
+ /* 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(),
+ //"userId="+users.getId()+"&articleId="+param.getArticleId(),
+ param.getArticleId()+"_"+users.getId(),
param.getPageUrl());//灏忕▼搴�
InputStream inputStream = GeneratePicUtil.generateShareWithUserImg(
@@ -715,21 +733,24 @@
url = path+fileName;
}
return url;
-
}
private String dealShareImgNoUser(ContentShareImgDto param, Users users, String shareFolder, String path) {
String url =null;
- //鍐呭鍒嗕韩娴锋姤鍥剧墖
+ log.error("======================start===========:娴锋姤寮�濮�");
InputStream mpCode = Constants.generateWxMiniImgStream(systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG, Constants.WX_TOKEN_CUSTOMER).getCode(),
- "userId="+users.getId()+"&articleId="+param.getArticleId(),
+ //"userId="+users.getId()+"&articleId="+param.getArticleId(),
+ param.getArticleId()+"_"+users.getId(),
param.getPageUrl());//灏忕▼搴�
+ log.error("======================mpcode===========:鑾峰彇灏忕▼搴忕爜寮�濮�");
String title = systemDictDataBiz.queryByCode(Constants.WEIXIN_DEFAULT_IMGS, Constants.SHARE_HAIBAO_HEADER_TITLE).getCode();
InputStream inputStream = GeneratePicUtil.generateShareImg(
param.getImgurl()
,mpCode
,title);
+
+ log.error("======================huatu===========:鐢诲浘缁撴潫");
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());
@@ -743,6 +764,8 @@
@Override
public String getUserCard(Users users){
+ users = usersMapper.selectById(users.getId());
+ this.getUsersDetail(users);
String path = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.RESOURCE_PATH).getCode();
String folder = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.USERS_FILE).getCode();
if(StringUtils.isNotBlank(users.getCardImg()) && !StringUtils.equals(users.getCardImg(),"-")){
@@ -823,15 +846,22 @@
if(StringUtils.isBlank(users.getSlogans())){
users.setSlogans(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.ZBOM_CUSTOMIZED,Constants.USER_LABEL).getCode()));
}
+ users.setManageShop(false);
+ if(StringUtils.isNotBlank(users.getRoleCodes())){
+ if(users.getRoleCodes().indexOf(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.ZBOM_CUSTOMIZED,Constants.USERS_MANAGE_CODE).getCode()))>=0){
+ users.setManageShop(true);
+ }
+ }
if(Objects.nonNull(users.getDepartmentId())){
Shop shop = shopMapper.selectById(users.getDepartmentId());
if(Objects.nonNull(shop)){
users.setShopName(shop.getName());
- users.setShopCity(shop.getProvinceName()+shop.getCityName()+shop.getAreaName());
if(StringUtils.isNotBlank(shop.getAddress())){
users.setShopAddress(shop.getAddress());
}else{
- users.setShopAddress(shop.getProvinceName()+shop.getCityName()+shop.getAreaName()+shop.getTown()+shop.getRegAddr());
+ if(!(StringUtils.isBlank(shop.getProvinceName())||StringUtils.isBlank(shop.getCityName())||StringUtils.isBlank(shop.getAreaName()))){
+ users.setShopAddress(shop.getProvinceName()+shop.getCityName()+shop.getAreaName());
+ }
}
}
}
@@ -851,7 +881,7 @@
//TODO 璋冭捣 涓彴鎺ュ彛
usersMapper.update(new UpdateWrapper<Users>()
.lambda()
- .set(Users::getCardImg,"-") //閲嶇疆鍚嶇墖涓� -
+ .set(Users::getCardImg,null) //閲嶇疆鍚嶇墖涓� -
.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())
@@ -872,10 +902,6 @@
if(Objects.isNull(users)){
throw new BusinessException(ResponseStatus.DATA_EMPTY);
}
- if(StringUtils.isBlank(users.getOpenid())){
- redisTemplate.delete(token);
- return null;
- }
//鏍¢獙鐢ㄦ埛token淇℃伅
MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,users.getId(), ZTConstants.BUSINESS);
//璋冭捣涓彴娉ㄩ攢鎺ュ彛
@@ -886,11 +912,47 @@
usersMapper.update(new UpdateWrapper<Users>().lambda()
.set(Users::getOpenid,null)
.set(Users::getEditDate,new Date())
- .eq(Users::getId,users.getId())
+ .eq(Users::getOpenid,users.getOpenid())
);
- redisTemplate.delete(ZTConstants.BUSINESS+"_"+ users.getId());
+ redisTemplate.delete(token);
return ztBaseRequst;
}
+
+
+ @Override
+ public InputStream getQrCode(GenerateQRCodeRequest generateQRCodeRequest){
+ if(Objects.isNull(generateQRCodeRequest)
+ ||StringUtils.isBlank(generateQRCodeRequest.getIamId())
+ || StringUtils.isBlank(generateQRCodeRequest.getBusinessId())
+ || Objects.isNull(generateQRCodeRequest.getBusinessType())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ if(generateQRCodeRequest.getBusinessType()<Constants.ZERO || generateQRCodeRequest.getBusinessType() > Constants.THREE){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓氬姟绫诲瀷閿欒");
+ }
+ Users users = usersMapper.selectOne(new QueryWrapper<Users>().lambda().eq(Users::getIamId,
+ generateQRCodeRequest.getIamId()).last("limit 1"));
+ if(Objects.isNull(users)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鍛樺伐淇℃伅");
+ }
+ InputStream inputStream = Constants.generateWxMiniImgStream(
+ systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG, Constants.WX_TOKEN_CUSTOMER).getCode(),
+ generateQRCodeRequest.getBusinessId()+"_"+generateQRCodeRequest.getBusinessType()+"_"+users.getId(),
+ null);//灏忕▼搴�
+ return inputStream;
+// try {
+// ByteArrayOutputStream baos = new ByteArrayOutputStream();
+// byte[] buffer = new byte[1024];
+// int len = -1;
+// while ((len = inputStream.read(buffer)) != -1) {
+// baos.write(buffer, 0, len);
+// }
+// return "data:mediatype;base64," + Base64.getEncoder().encodeToString(baos.toByteArray());
+// } catch (Exception e) {
+// e.printStackTrace();
+// }
+// throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"浜岀淮鐮佺敓鎴愬け璐�");
+ }
}
--
Gitblit v1.9.3