From ac2230cf612417b2dcbdcc23814e19f4955941b2 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期二, 16 七月 2024 16:26:36 +0800
Subject: [PATCH] 代码提交
---
server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java | 189 +++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 175 insertions(+), 14 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 dad6e61..4a90c8e 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,6 +1,8 @@
package com.doumee.service.business.impl;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
+import cn.hutool.core.date.DateUnit;
+import com.alibaba.fastjson.JSONObject;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.biz.zbom.model.IamUserRoleModel;
import com.doumee.biz.zbom.model.IamUserTypeModel;
@@ -13,30 +15,35 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
+import com.doumee.core.utils.GeneratePicUtil;
import com.doumee.core.utils.Utils;
+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.ShopMapper;
import com.doumee.core.wx.WxMiniConfig;
+import com.doumee.dao.business.SmsEmailMapper;
import com.doumee.dao.business.UsersMapper;
-import com.doumee.dao.business.model.Multifile;
-import com.doumee.dao.business.model.News;
-import com.doumee.dao.business.model.Shop;
-import com.doumee.dao.business.model.Member;
-import com.doumee.dao.business.model.Users;
+import com.doumee.dao.business.model.*;
+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.response.AccountResponse;
import com.doumee.service.business.UsersService;
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.github.yulichang.interfaces.MPJBaseJoin;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.catalina.User;
import org.apache.commons.lang3.StringUtils;
import me.chanjar.weixin.common.error.WxErrorException;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.util.ThreadContext;
+import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
@@ -44,13 +51,13 @@
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.io.InputStream;
+import java.util.*;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
+
+import static com.aliyun.api.internal.util.AliyunWebUtils.doGet;
/**
* 鍛樺伐淇℃伅琛⊿ervice瀹炵幇
@@ -68,6 +75,8 @@
private UsersMapper usersMapper;
@Autowired
private ShopMapper shopMapper;
+ @Autowired
+ private SmsEmailMapper smsEmailMapper;
@Autowired
private SystemDictDataBiz systemDictDataBiz;
@@ -113,7 +122,15 @@
@Override
public Users findById(Long id) {
- return usersMapper.selectById(id);
+ MPJLambdaWrapper<Users> queryWrapper = new MPJLambdaWrapper<>();
+ queryWrapper.leftJoin(Shop.class,Shop::getId,Users::getDepartmentId)
+ .selectAs(Shop::getName,Users::getShopName)
+ .selectAs(Shop::getAddress,Users::getShopAddress)
+ .selectAs(Shop::getType,Users::getShopType)
+ .selectAs(Shop::getSecondType,Users::getShopSecType)
+ .selectAll(Users.class)
+ .eq(Users::getId,id);
+ return usersMapper.selectJoinOne(Users.class,queryWrapper);
}
@Override
@@ -138,6 +155,9 @@
.selectAs(Shop::getSecondType,Users::getShopSecType)
.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()+"' ) ");
+ }
if (pageWrap.getModel().getId() != null) {
queryWrapper.eq(Users::getId, pageWrap.getModel().getId());
}
@@ -281,7 +301,6 @@
f.setQrcodeImgFull(path + f.getQrcodeImg());
}
}
-
}
return pageData;
}
@@ -291,6 +310,8 @@
QueryWrapper<Users> wrapper = new QueryWrapper<>(users);
return usersMapper.selectCount(wrapper);
}
+
+
@Override
@@ -308,10 +329,27 @@
if(!StringUtils.equals(users.getStatus(),Constants.ZERO+"")){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠璐︽埛宸插仠鐢紝璇疯仈绯荤鐞嗗憳");
}
- //TODO 楠岃瘉鐭俊淇℃伅
- if(!StringUtils.equals(code,"123456")){
- 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);
//鍒涘缓token
JwtPayLoad payLoad = new JwtPayLoad(users.getId(),Constants.ONE);
String token = JwtTokenUtil.generateToken(payLoad);
@@ -582,5 +620,128 @@
return null;
}
+
+
+ @Override
+ public String getUserCard(Users 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(),"-")){
+ return path + folder+users.getCardImg();
+ }
+ String defualtHeader = systemDictDataBiz.queryByCode(Constants.WEIXIN_DEFAULT_IMGS, Constants.USER_CARD_HEADER_IMG).getCode();
+ String defualtPhone = systemDictDataBiz.queryByCode(Constants.WEIXIN_DEFAULT_IMGS, Constants.USER_CARD_PHONE_IMG).getCode();
+ String defualtAddr = systemDictDataBiz.queryByCode(Constants.WEIXIN_DEFAULT_IMGS, Constants.USER_CARD_ADDR_IMG).getCode();
+ String defualtShop = systemDictDataBiz.queryByCode(Constants.WEIXIN_DEFAULT_IMGS, Constants.USER_CARD_SHOP_IMG).getCode();
+ String defualtLogo = systemDictDataBiz.queryByCode(Constants.WEIXIN_DEFAULT_IMGS, Constants.USER_CARD_LOGO_IMG).getCode();
+ String imgurl =StringUtils.isNotBlank(users.getImgurl())?path+folder+users.getImgurl():defualtHeader;
+ String qrcode =StringUtils.isNotBlank(users.getQrcodeImg())?path+folder+users.getQrcodeImg():null;
+ InputStream inputStream = GeneratePicUtil.generateUserCardImg(
+ imgurl
+ ,qrcode
+ ,StringUtils.defaultString(users.getName(),"-")
+ ,"瀵艰喘"
+ ,StringUtils.defaultString(users.getPhone(),"-")
+ ,StringUtils.defaultString(users.getShopAddress(),"-")
+ , StringUtils.defaultString(users.getShopName(),"-")
+ ,defualtPhone
+ ,defualtAddr
+ ,defualtShop
+ ,defualtLogo);
+ 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 =folder+ key;
+ if (obs.uploadInputstreamObject(inputStream,systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.BUCKETNAME).getCode(), fileName)) {
+ Users update = new Users();
+ update.setId(users.getId());
+ update.setCardImg(key);
+ usersMapper.updateById(update);
+ return path+fileName;
+ }
+ return null;
+ }
+
+ @Override
+ public Users usersDetail(Long userId){
+ Users users = usersMapper.selectById(userId);
+ if(Objects.isNull(users)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ 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())){
+ users.setImgurlFull(prefix + users.getImgurl());
+ }
+ if(StringUtils.isNotBlank(users.getQrcodeImg())){
+ users.setQrcodeImgFull(prefix + users.getQrcodeImg());
+ }
+ if(StringUtils.isNotBlank(users.getCompanyQrcodeImg())){
+ users.setCompanyQrcodeImgFull(prefix + users.getCompanyQrcodeImg());
+ }
+ if(StringUtils.isBlank(users.getSlogans())){
+ users.setSlogans(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.ZBOM_CUSTOMIZED,Constants.USER_LABEL).getCode()));
+ }
+ 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());
+ }
+ }
+ }
+ return users;
+ }
+
+
+
+ @Override
+ public void editUserInfo(EditUsersRequest editUsersRequest){
+ if(Objects.isNull(editUsersRequest)){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ Users users = usersMapper.selectById(editUsersRequest.getUserId());
+ if(Objects.isNull(users)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ //TODO 璋冭捣 涓彴鎺ュ彛
+
+ usersMapper.update(new UpdateWrapper<Users>()
+ .lambda()
+ .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())
+ .set(StringUtils.isNotBlank(editUsersRequest.getCompanyQrcodeImg()),Users::getCompanyQrcodeImg,editUsersRequest.getCompanyQrcodeImg())
+ .set(StringUtils.isNotBlank(editUsersRequest.getQrcodeImg()),Users::getQrcodeImg,editUsersRequest.getQrcodeImg())
+ .set(StringUtils.isNotBlank(editUsersRequest.getSlogans()),Users::getSlogans,editUsersRequest.getSlogans())
+ .set(Objects.nonNull(editUsersRequest.getCostomerNum()),Users::getCostomerNum,editUsersRequest.getCostomerNum())
+ .set(Objects.nonNull(editUsersRequest.getJobDate()),Users::getJobDate,editUsersRequest.getJobDate())
+ .set(StringUtils.isNotBlank(editUsersRequest.getPhone()),Users::getPhone,editUsersRequest.getPhone())
+ .eq(Users::getId,editUsersRequest.getUserId()));
+ }
+
+
+
+ @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);
+ }
+
}
--
Gitblit v1.9.3