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 | 75 ++++++++++++++++++++++++++++++++++--- 1 files changed, 68 insertions(+), 7 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 ac488f7..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,17 +1,28 @@ 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.util.*; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Random; @Slf4j @Service @@ -20,7 +31,8 @@ private BaUserMapper dao; @Autowired private BaUserRoleMapper urDao; - + @Autowired + private StaAssemblyWorkLastMapper assemblyWorkLastDao; /** * 鐢熸垚鎸囧畾浣嶆暟闅忔満鏁板瓧瀵嗙爜 * @@ -68,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 ; } @@ -79,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 ; @@ -92,9 +119,30 @@ */ @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 ; + } + + /** + * 绂佺敤鎴栧惎鐢ㄧ敤鎴蜂俊鎭� + * @param id + * @param disabled + * @return + */ + @Transactional + public int disabled(Long id,Boolean disabled) { + checkStationLogin(id); + BaUser user=new BaUser(); + user.id=id; + user.disabled=disabled; + return dao.updateByPrimaryKeySelective(user); } /** @@ -117,7 +165,7 @@ * @return 鎻掑叆鐢ㄦ埛涓庤鑹插叧鑱旇褰曟暟閲� */ @Transactional - private int saveUserRoles(Long userId, String[] roleIds) { + public int saveUserRoles(Long userId, String[] roleIds) { this.urDao.deleteByUserId(userId); int count = 0; if (roleIds != null && roleIds.length > 0) { @@ -135,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