From c67f82dbe219ef214d5ab010c1fa648f98ce2b06 Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期四, 18 七月 2024 17:06:27 +0800 Subject: [PATCH] 代码提交 --- server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java | 275 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 249 insertions(+), 26 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 64a7de6..9f68729 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,7 +15,10 @@ 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; @@ -21,19 +26,25 @@ import com.doumee.dao.business.SmsEmailMapper; import com.doumee.dao.business.UsersMapper; 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.reqeust.ContentShareImgDto; 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; @@ -41,13 +52,14 @@ 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.awt.image.BufferedImage; +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瀹炵幇 @@ -112,7 +124,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 @@ -137,6 +157,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()); } @@ -280,7 +303,6 @@ f.setQrcodeImgFull(path + f.getQrcodeImg()); } } - } return pageData; } @@ -310,26 +332,26 @@ 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); @@ -600,5 +622,206 @@ return null; } + + @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){ + 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 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())){ + 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()); + } + } + } + } + + + + @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(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()) + .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())); + } + + + + + } -- Gitblit v1.9.3