From a156726f9823a6d690c31da7d0114db718a89867 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期四, 22 五月 2025 16:56:02 +0800 Subject: [PATCH] 权限初始化逻辑修改 --- pms-parent/pms-web-base/src/main/java/com/dy/pmsBase/user/UserSv.java | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 50 insertions(+), 5 deletions(-) diff --git a/pms-parent/pms-web-base/src/main/java/com/dy/pmsBase/user/UserSv.java b/pms-parent/pms-web-base/src/main/java/com/dy/pmsBase/user/UserSv.java index 2d23b28..4dd42d7 100644 --- a/pms-parent/pms-web-base/src/main/java/com/dy/pmsBase/user/UserSv.java +++ b/pms-parent/pms-web-base/src/main/java/com/dy/pmsBase/user/UserSv.java @@ -1,16 +1,25 @@ 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.daoSta.StaAssemblyWorkLastMapper; import com.dy.pmsGlobal.pojoBa.BaUser; import com.dy.pmsGlobal.pojoBa.BaUserRole; +import com.dy.pmsGlobal.pojoSta.StaAssemblyWorkLast; +import com.dy.pmsGlobal.util.QrCodeConstant; +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.HashMap; import java.util.List; import java.util.Map; import java.util.Random; @@ -22,7 +31,8 @@ private BaUserMapper dao; @Autowired private BaUserRoleMapper urDao; - + @Autowired + private StaAssemblyWorkLastMapper assemblyWorkLastDao; /** * 鐢熸垚鎸囧畾浣嶆暟闅忔満鏁板瓧瀵嗙爜 * @@ -70,6 +80,16 @@ //鏌ヨ绗﹀悎鏉′欢鐨勮褰� rsVo.obj = this.dao.selectSome(params) ; + rsVo.obj.parallelStream().forEach(item->{ + try { + byte[] codes = QrCodeUtil.genQrCode(QrCodeConstant.TypeWorker+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 +101,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 +119,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 ; } @@ -107,6 +138,7 @@ */ @Transactional public int disabled(Long id,Boolean disabled) { + checkStationLogin(id); BaUser user=new BaUser(); user.id=id; user.disabled=disabled; @@ -151,8 +183,21 @@ */ @Transactional public int delete(Long id) { + checkStationLogin(id); return this.dao.deleteLogicById(id); } - -} + public void checkStationLogin(Long id){ + //濡傛灉鏈夊伐绔欑櫥褰曚俊鎭�,鍒欐彁绀哄厛鍒拌Е灞忕鐧诲綍椤甸潰logout + Map<String, Object> params = new HashMap<>(); + params.put("userId", id); + List<StaAssemblyWorkLast> workLasts = assemblyWorkLastDao.selectSome(params); + if (workLasts.size() > 0) { + String stationStr = "("; + for (StaAssemblyWorkLast workLast:workLasts) { + stationStr += workLast.getStationName() +","; + } + throw new RuntimeException("璇ョ敤鎴峰湪"+ stationStr +")宸ョ珯瀛樺湪鐧诲綍淇℃伅,璇峰厛鍒拌Е灞忕鐧诲綍椤甸潰logout,鎴栬仈绯荤鐞嗗憳鍒犻櫎"); + } + } +} \ No newline at end of file -- Gitblit v1.8.0