From 8f6dfbc2ca4a55a1ce0a4bb62094c4bf5c671b4d Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期一, 27 十月 2025 10:57:10 +0800
Subject: [PATCH] 会议室问题修改

---
 server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java |    6 +++
 server/system_service/src/main/java/com/doumee/biz/system/impl/SystemDictDataBizImpl.java              |    2 
 server/system_service/src/main/java/com/doumee/core/utils/Constants.java                               |    4 ++
 server/meeting/meeting_service/src/main/java/com/doumee/core/wx/WxPlatNotice.java                      |   19 +++------
 server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java         |   50 +++++++++++++++++++++++++
 server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java                        |   10 +++++
 server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java                                |   20 ++++++++++
 7 files changed, 98 insertions(+), 13 deletions(-)

diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/core/wx/WxPlatNotice.java b/server/meeting/meeting_service/src/main/java/com/doumee/core/wx/WxPlatNotice.java
index 85565d8..9a1ed69 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/core/wx/WxPlatNotice.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/core/wx/WxPlatNotice.java
@@ -120,8 +120,6 @@
     }
 
     public void createBeginWxNotice(SystemDictDataBiz systemDictDataBiz, SmsEmailMapper smsEmailMapper, Bookings bookings, String openId){
-        Map<String,Object> map = new HashMap<>();
-
         //鏁翠綋鍙傛暟map
         Map<String, Object> paramMap = new HashMap<String, Object>();
         //娑堟伅涓婚鏄剧ず鐩稿叧map
@@ -169,13 +167,12 @@
         smsEmail.setCreateDate(new Date());
         smsEmail.setTitle("浼氳鍗冲皢寮�濮嬫彁閱�");
         smsEmail.setInfo(DateUtil.getFomartDate(DateUtil.getXMinuteAfterDate(bookings.getStartTime(),-earlyMin),"yyyy-MM-dd HH:mm:ss"));
-        smsEmail.setContent(JSONObject.toJSONString(map));
+        smsEmail.setContent(JSONObject.toJSONString(paramMap));
+        smsEmailMapper.insert(smsEmail);
     }
 
 
     public void createEndWxNotice(SystemDictDataBiz systemDictDataBiz, SmsEmailMapper smsEmailMapper, Bookings bookings,  String openId){
-        Map<String,Object> map = new HashMap<>();
-
         //鏁翠綋鍙傛暟map
         Map<String, Object> paramMap = new HashMap<String, Object>();
         //娑堟伅涓婚鏄剧ず鐩稿叧map
@@ -203,12 +200,6 @@
         paramMap.put("touser", openId);
         paramMap.put("data", dataMap);
 
-        smsEmailMapper.delete(new QueryWrapper<SmsEmail>().lambda()
-                .eq(SmsEmail::getObjType,Constants.FIVE.toString())
-                .eq(SmsEmail::getStatus,Constants.TWO)
-                .eq(SmsEmail::getType,Constants.TWO)
-                .eq(SmsEmail::getObjId,bookings.getId())
-        );
 
         SmsEmail smsEmail = new SmsEmail();
         smsEmail.setPhone(openId);
@@ -222,7 +213,11 @@
         smsEmail.setTitle("浼氳鍗冲皢寮�濮嬫彁閱�");
         Integer endMin= Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.OVER_NOTICE_WX).getCode());
         smsEmail.setInfo(DateUtil.getFomartDate(DateUtil.getXMinuteAfterDate(bookings.getEndTime(),-endMin),"yyyy-MM-dd HH:mm:ss"));
-        smsEmail.setContent(JSONObject.toJSONString(map));
+        smsEmail.setContent(JSONObject.toJSONString(paramMap));
+
+        smsEmailMapper.insert(smsEmail);
+
+
     }
 
 
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
index 64f3f6e..31b9644 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
@@ -165,6 +165,12 @@
             //鍒涘缓浼氳鍗冲皢鍒版湡涓庝細璁嵆灏嗙粨鏉熺殑閫氱煡
             if(Objects.nonNull(systemUser)&&StringUtils.isNotBlank(systemUser.getOpenid())){
                 WxPlatNotice wxPlatNotice = new WxPlatNotice();
+                smsEmailMapper.delete(new QueryWrapper<SmsEmail>().lambda()
+                        .eq(SmsEmail::getObjType,Constants.FIVE.toString())
+                        .eq(SmsEmail::getStatus,Constants.TWO)
+                        .eq(SmsEmail::getType,Constants.TWO)
+                        .eq(SmsEmail::getObjId,bookings.getId())
+                );
                 wxPlatNotice.createBeginWxNotice(systemDictDataBiz,smsEmailMapper,bookings,systemUser.getOpenid());
                 wxPlatNotice.createEndWxNotice(systemDictDataBiz,smsEmailMapper,bookings,systemUser.getOpenid());
             } 
diff --git a/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemDictDataBizImpl.java b/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemDictDataBizImpl.java
index 955b70d..aebf0d1 100644
--- a/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemDictDataBizImpl.java
+++ b/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemDictDataBizImpl.java
@@ -31,7 +31,7 @@
     public Integer create(SystemDictData systemDictData) {
         SystemDictData queryDto = new SystemDictData();
         queryDto.setDictId(systemDictData.getDictId());
-        queryDto.setCode(systemDictData.getCode());
+        queryDto.setLabel(systemDictData.getLabel());
         queryDto.setDeleted(Boolean.FALSE);
         SystemDictData dictData = systemDictDataService.findOne(queryDto);
         if (dictData != null) {
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
index ffa8898..70b7b71 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -547,6 +547,10 @@
 
 
 
+    public static final String PROHIBIT_TIME = "PROHIBIT_TIME";
+    public static final String ERR_TIMES = "ERR_TIMES";
+    public static final String PROHIBIT_LOGIN_OPEN = "PROHIBIT_LOGIN_OPEN";
+
 
 
     public interface RedisKeys {
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java b/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
index 7f2fc50..d989500 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -183,6 +183,26 @@
         }
     }
 
+
+    /**
+     * 鑾峰彇2涓椂闂翠箣闂寸殑鍒嗛挓鏁�
+     * @param fromDate
+     * @param toDate
+     * @return
+     */
+    public static long getBetweenMin(Date fromDate, Date toDate) {
+        long m_intervalday = 0;// 鍒濆鍖栨椂闂撮棿闅旂殑鍊间负0
+        // 浣跨敤鐨勬椂闂存牸寮忎负yyyy-MM-dd
+        try {
+            m_intervalday = toDate.getTime() - fromDate.getTime();// 璁$畻鎵�寰椾负寰鏁�
+            m_intervalday = m_intervalday / 1000 / 60;// 璁$畻鎵�寰楃殑鍒嗛挓
+
+            return m_intervalday;
+        } catch (Exception e) {
+            return Integer.MIN_VALUE;
+        }
+    }
+
     /**
      * @author Pablo Descrption:取锟矫碉拷前锟斤拷锟斤拷getgetg get Date format
      *         Example锛�2008.03.15
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java
index 48f88b9..e04a886 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java
@@ -111,6 +111,16 @@
     @ApiModelProperty(value = "鏄惁宸插垹闄�", hidden = true)
     private Boolean deleted;
 
+    @ApiModelProperty(value = "绂佹鐧诲綍杩囨湡鏃堕棿", example = "1")
+    private Date prohibitTime;
+    
+    @ApiModelProperty(value = "鏄惁绂佹鐧诲綍锛�0=鍚︼紱1=鏄紱", example = "1")
+    private Integer prohibitStatus;
+
+    @ApiModelProperty(value = "瀵嗙爜閿欒娆℃暟", example = "1")
+    private Integer errTimes;
+
+
     @ApiModelProperty(value = "0 鍚敤 1 绂佺敤")
     private Integer status;
     @ApiModelProperty(value = "浼佷笟缂栫爜锛堝叧鑱攃ompany锛�")
diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
index 722ef3e..b47b93f 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
@@ -5,6 +5,7 @@
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.config.jwt.JwtTokenUtil;
 import com.doumee.core.exception.BusinessException;
+import com.doumee.core.utils.DateUtil;
 import com.doumee.dao.system.dto.LoginCabinetDTO;
 import com.doumee.dao.system.dto.LoginH5DTO;
 import com.doumee.service.business.third.TmsService;
@@ -291,6 +292,55 @@
         return  userInfo;
     }
 
+
+    public void checkPassword(SystemUser user,String pwd){
+        String pppp = Utils.Secure.encryptPassword(new String(pwd), user.getSalt());
+        // 姣旇緝瀵嗙爜
+        if( !StringUtils.equals(pppp, user.getPassword())){
+            //鏄惁寮�鍚瘑鐮侀敊璇姝㈢櫥褰曪細0=鍚︼紱1=鏄紱
+            SystemDictData prohibitLoginData = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PROHIBIT_LOGIN_OPEN);
+            if(Objects.nonNull(prohibitLoginData)&&"1".equals(prohibitLoginData.getCode())){
+                SystemDictData prohibitErrTimesData = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.ERR_TIMES);
+                if(Objects.nonNull(prohibitErrTimesData)){
+
+                }
+                throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT);
+            }else{
+                throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT);
+            }
+        }
+
+    }
+
+    public void updErrTimes(SystemUser systemUser){
+        //鏈�澶ч敊璇鏁� 杩涜鐧诲綍闄愬埗
+        SystemDictData prohibitErrTimesData = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.ERR_TIMES);
+        //鏄惁寮�鍚瘑鐮侀敊璇姝㈢櫥褰曪細0=鍚︼紱1=鏄紱
+        SystemDictData prohibitLoginData = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PROHIBIT_LOGIN_OPEN);
+        //瀵嗙爜閿欒绂佹鐧诲綍闄愬埗鏃堕棿锛堝垎閽燂級
+        SystemDictData prohibitTimeData = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PROHIBIT_TIME);
+        if(Objects.isNull(prohibitTimeData)||Objects.isNull(prohibitLoginData)||Objects.isNull(prohibitTimeData)){
+            return;
+        }
+        systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda()
+                .setSql( " PROHIBIT_STATUS = CASE WHEN "+prohibitLoginData+" = 1 and ( IFNULL(ERR_TIMES,0) + 1  ) > "+prohibitErrTimesData.getCode()+" then 1 else 0 end ")
+                .setSql(" PROHIBIT_TIME = CASE WHEN  PROHIBIT_STATUS = 1  then DATE_ADD(NOW(), INTERVAL "+prohibitTimeData.getCode()+" MINUTE) else null end , ")
+                .setSql(" ERR_TIMES = (ifnull(ERR_TIMES,0) + 1) ")
+                .eq(SystemUser::getId,systemUser.getId())
+        );
+    }
+
+    public void prohibitLogin(SystemUser systemUser){
+        if(Constants.equalsInteger(systemUser.getProhibitStatus(),Constants.ZERO)){
+            Long betweenMin = DateUtil.getBetweenMin(systemUser.getProhibitTime(),new Date());
+            if(betweenMin <= 0L){
+                betweenMin = 0L;
+            }
+            throw new BusinessException( ResponseStatus.NOT_ALLOWED.getCode(),"瀵嗙爜閿欒娆℃暟杩囧锛岃鍚�"+ betweenMin +"鍒嗛挓鍚庨噸璇�");
+        }
+    }
+
+
     @Override
     public LoginUserInfo loginByPasswordForPda(LoginDTO dto, ServerHttpRequest request) {
         SystemLoginLog loginLog =getInitLoginlog(dto.getUsername(),request);

--
Gitblit v1.9.3