liuxm
2024-06-13 f823fa4a9283debfa7cb6d79fc1f3c7099f9b3ae
pms-parent/pms-web-base/src/main/java/com/dy/pmsBase/user/UserSv.java
@@ -1,16 +1,21 @@
package com.dy.pmsBase.user;
import cn.hutool.core.codec.Base64;
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pmsGlobal.daoBa.BaUserMapper;
import com.dy.pmsGlobal.daoBa.BaUserRoleMapper;
import com.dy.pmsGlobal.pojoBa.BaUser;
import com.dy.pmsGlobal.pojoBa.BaUserRole;
import com.dy.pmsGlobal.util.QrCodeUtil;
import com.google.zxing.WriterException;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.utils.PojoUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import java.util.Random;
@@ -22,6 +27,7 @@
    private BaUserMapper dao;
    @Autowired
    private BaUserRoleMapper urDao;
    private static final String stationPrefix = "101" ;
    /**
     * 生成指定位数随机数字密码
@@ -70,6 +76,16 @@
        //查询符合条件的记录
        rsVo.obj = this.dao.selectSome(params) ;
        rsVo.obj.parallelStream().forEach(item->{
            try {
                byte[] codes = QrCodeUtil.genQrCode(stationPrefix+item.id);
                item.qrCode = "data:image/jpeg;base64," + Base64.encode(codes);
            } catch (IOException e) {
                e.printStackTrace();
            } catch (WriterException e) {
                e.printStackTrace();
            }
        });
        return rsVo ;
    }
@@ -81,7 +97,12 @@
     */
    @Transactional
    public Long save(BaUser po){
        this.dao.insertSelective(po) ;
        try{
            dao.insertSelective(po) ;
        }catch(DuplicateKeyException e){
            log.error(e.getMessage());
            throw new RuntimeException("手机号码重复");
        }
        Long id = po.getId();
        this.saveUserRoles(id, po.roleIds) ;
        return id ;
@@ -94,7 +115,13 @@
     */
    @Transactional
    public int update(BaUser po) {
        int count = this.dao.updateByPrimaryKeySelective(po);
        int count=0;
        try{
            count = this.dao.updateByPrimaryKeySelective(po);
        }catch(DuplicateKeyException e){
            log.error(e.getMessage());
            throw new RuntimeException("手机号码重复");
        }
        this.saveUserRoles(po.id, po.roleIds) ;
        return count ;
    }