From e54a03e1c3fefef7ec84df6168ff5cf26e53f8cb Mon Sep 17 00:00:00 2001 From: Fancy <Fancy.fx@outlook.com> Date: 星期四, 09 一月 2025 15:47:07 +0800 Subject: [PATCH] station and user disable check Stationlogin first --- pms-parent/pms-web-base/src/main/java/com/dy/pmsBase/user/UserSv.java | 44 +++++++++++++++++++++++++++++++++++++------- 1 files changed, 37 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 4b034da..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 @@ -4,17 +4,22 @@ 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; @@ -26,8 +31,8 @@ private BaUserMapper dao; @Autowired private BaUserRoleMapper urDao; - private static final String stationPrefix = "101" ; - + @Autowired + private StaAssemblyWorkLastMapper assemblyWorkLastDao; /** * 鐢熸垚鎸囧畾浣嶆暟闅忔満鏁板瓧瀵嗙爜 * @@ -77,7 +82,7 @@ rsVo.obj = this.dao.selectSome(params) ; rsVo.obj.parallelStream().forEach(item->{ try { - byte[] codes = QrCodeUtil.genQrCode(stationPrefix+item.id); + byte[] codes = QrCodeUtil.genQrCode(QrCodeConstant.TypeWorker+item.id); item.qrCode = "data:image/jpeg;base64," + Base64.encode(codes); } catch (IOException e) { e.printStackTrace(); @@ -96,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 ; @@ -109,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 ; } @@ -122,6 +138,7 @@ */ @Transactional public int disabled(Long id,Boolean disabled) { + checkStationLogin(id); BaUser user=new BaUser(); user.id=id; user.disabled=disabled; @@ -166,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