liukangdong
2024-09-29 b2d360d9113b6955287108ca9e90d76a1f3c1419
server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
@@ -45,6 +45,7 @@
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;
@@ -78,6 +79,7 @@
 * @date 2024/07/04 14:40
 */
@Service
@Slf4j
public class UsersServiceImpl implements UsersService {
@@ -174,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());
@@ -333,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);
        }
@@ -346,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()
@@ -392,6 +403,7 @@
            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;
            }
@@ -433,6 +445,13 @@
            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,JSONObject.toJSON(users).toString(),redisTemplate);
@@ -441,28 +460,18 @@
        } 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
@@ -676,6 +685,7 @@
    @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())){
@@ -706,7 +716,7 @@
        //内容分享海报图片
        InputStream mpCode =  Constants.generateWxMiniImgStream(systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG, Constants.WX_TOKEN_CUSTOMER).getCode(),
                //"userId="+users.getId()+"&articleId="+param.getArticleId(),
                 param.getArticleId()+"_"+users.getId(),
                param.getArticleId()+"_"+users.getId(),
                param.getPageUrl());//小程序
        InputStream inputStream = GeneratePicUtil.generateShareWithUserImg(
@@ -727,16 +737,20 @@
    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(),
                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());
@@ -832,17 +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());
                if(!(StringUtils.isBlank(shop.getProvinceName())||StringUtils.isBlank(shop.getCityName())||StringUtils.isBlank(shop.getAreaName()))){
                    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());
                    }
                }
            }
        }