Эх сурвалжийг харах

修改新增时自动获取用户插入失败问题

车车 10 сар өмнө
parent
commit
37be2a4c62

+ 21 - 2
ktg-framework/src/main/java/com/ktg/framework/config/MyMetaObjectHandler.java

@@ -2,21 +2,40 @@ package com.ktg.framework.config;
 
 import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
 import com.ktg.common.utils.SecurityUtils;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.ibatis.reflection.MetaObject;
 import org.springframework.stereotype.Component;
 
 /**
  * mybatis-plus自动填充
  */
+@Slf4j
 @Component
 public class MyMetaObjectHandler implements MetaObjectHandler {
+
+    // 设置默认账号,获取用户失败时
+    private final String defaultAccountId = "0";
     @Override
     public void insertFill(MetaObject metaObject) {
-        this.strictInsertFill(metaObject,"createBy", String.class, String.valueOf(SecurityUtils.getLoginUser().getUserId()));
+        String userId;
+        try {
+            userId = String.valueOf(SecurityUtils.getLoginUser().getUserId());
+        } catch (Exception e){
+            log.error("获取登录用户信息失败,给予默认用户信息");
+            userId = defaultAccountId;
+        }
+        this.strictInsertFill(metaObject,"createBy", String.class, userId);
     }
 
     @Override
     public void updateFill(MetaObject metaObject) {
-        this.strictUpdateFill(metaObject,"updateBy", String.class, String.valueOf(SecurityUtils.getLoginUser().getUserId()));
+        String userId;
+        try {
+            userId = String.valueOf(SecurityUtils.getLoginUser().getUserId());
+        } catch (Exception e){
+            log.error("获取登录用户信息失败,给予默认用户信息");
+            userId = defaultAccountId;
+        }
+        this.strictUpdateFill(metaObject,"updateBy", String.class, userId);
     }
 }

+ 18 - 19
ktg-iscs/src/main/java/com/ktg/iscs/service/impl/IsMaterialsLoanServiceImpl.java

@@ -31,10 +31,9 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.PostConstruct;
 import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
 import java.time.Instant;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
@@ -56,7 +55,7 @@ public class IsMaterialsLoanServiceImpl extends ServiceImpl<IsMaterialsLoanMappe
     private IIsMaterialsTypeService isMaterialsTypeService;
     @Resource
     private NotifySendService notifySendService;
-    @Resource
+    @Autowired
     private IIsMaterialsReminderService iIsMaterialsReminderService;
 
     @Autowired
@@ -122,13 +121,13 @@ public class IsMaterialsLoanServiceImpl extends ServiceImpl<IsMaterialsLoanMappe
                 //         && materialsLoan.getRestitutionToId() == null) {
                 if (!"1".equals(materialsLoan.getStatus())) {
                         // 没有归还则需要开始新增提醒消息
-                    // IsMaterials materials = isMaterialsService.getById(materialsLoan.getMaterialsId());
-                    // Map<String, Object> templateParams = new HashMap<>();
-                    // templateParams.put("借出时间", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(materialsLoan.getLoanTime()));
-                    // templateParams.put("物资", materials.getMaterialsName());
-                    // templateParams.put("归还时间", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(materialsLoan.getRestitutionTime()));
-                    // notifySendService.sendSingleNotifyToMember(materialsLoan.getLoanUserId(),
-                    //        "REMINDER_RETURN", templateParams);
+                    IsMaterials materials = isMaterialsService.getById(materialsLoan.getMaterialsId());
+                    Map<String, Object> templateParams = new HashMap<>();
+                    templateParams.put("借出时间", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(materialsLoan.getLoanTime()));
+                    templateParams.put("物资", materials.getMaterialsName());
+                    templateParams.put("归还时间", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(materialsLoan.getRestitutionTime()));
+                    notifySendService.sendSingleNotifyToMember(materialsLoan.getLoanUserId(),
+                           "REMINDER_RETURN", templateParams);
 
                     // 存储到is_materials_reminder
                     IsMaterialsReminder isMaterialsReminder = new IsMaterialsReminder();
@@ -156,6 +155,7 @@ public class IsMaterialsLoanServiceImpl extends ServiceImpl<IsMaterialsLoanMappe
      * 发送归还报警
      * @param messageId
      */
+    @Transactional
     public void sendAlarmMessage(String messageId) {
         Long materialsLoanId = messages.get(messageId);
         if (materialsLoanId != null) {
@@ -171,13 +171,13 @@ public class IsMaterialsLoanServiceImpl extends ServiceImpl<IsMaterialsLoanMappe
 
                 if (!"1".equals(materialsLoan.getStatus())) {
                     // 没有归还则需要开始新增提醒消息
-                    //IsMaterials materials = isMaterialsService.getById(materialsLoan.getMaterialsId());
-                    //Map<String, Object> templateParams = new HashMap<>();
-                    //templateParams.put("借出时间", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(materialsLoan.getLoanTime()));
-                    //templateParams.put("物资", materials.getMaterialsName());
-                    //templateParams.put("归还时间", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(materialsLoan.getRestitutionTime()));
-                    //notifySendService.sendSingleNotifyToMember(materialsLoan.getLoanUserId(),
-                    //        "ALARM_RETURN", templateParams);
+                    IsMaterials materials = isMaterialsService.getById(materialsLoan.getMaterialsId());
+                    Map<String, Object> templateParams = new HashMap<>();
+                    templateParams.put("借出时间", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(materialsLoan.getLoanTime()));
+                    templateParams.put("物资", materials.getMaterialsName());
+                    templateParams.put("归还时间", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(materialsLoan.getRestitutionTime()));
+                    notifySendService.sendSingleNotifyToMember(materialsLoan.getLoanUserId(),
+                            "ALARM_RETURN", templateParams);
 
                     // 存储到is_materials_reminder
                     IsMaterialsReminder isMaterialsReminder = new IsMaterialsReminder();
@@ -288,7 +288,6 @@ public class IsMaterialsLoanServiceImpl extends ServiceImpl<IsMaterialsLoanMappe
         if (materials != null && materials.getAvailableTimes() != null) {
             set.set(IsMaterials::getLoanState, materials.getAvailableTimes() - 1);
         }
-        isMaterialsService.update(set);
         return i;
     }