Browse Source

日志异步处理

guq 7 years ago
parent
commit
8f5f82aa4d

+ 2 - 2
applications/commons/commons-api/src/main/java/com/usoftchina/saas/commons/api/MaxnumberService.java

@@ -18,7 +18,7 @@ public interface MaxnumberService {
      * @Author: guq
      * @Date: 2018/10/19 api/commons
      */
-    @PostMapping("/api/commons/number/pushMaxnubmer")
+    @PostMapping("/number/pushMaxnubmer")
     public Result<String> pushMaxnubmer(@RequestParam("count") Integer count,@RequestParam("code") String code,
                                 @RequestParam("caller") String caller);
     /**
@@ -28,6 +28,6 @@ public interface MaxnumberService {
      * @Author: guq
      * @Date: 2018/10/22
      */
-    @PostMapping("/api/commons/numnber/getMaxnumber")
+    @PostMapping("/numnber/getMaxnumber")
     public Result<String> getMaxnumber(@RequestParam("caller") String caller, @RequestParam("update") boolean update);
 }

+ 17 - 16
applications/commons/commons-api/src/main/java/com/usoftchina/saas/commons/api/MessageLogService.java

@@ -4,6 +4,7 @@ import com.usoftchina.saas.commons.dto.DocBaseDTO;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.context.request.async.DeferredResult;
 
 /**
 * @Description: 日志接口
@@ -13,27 +14,27 @@ import org.springframework.web.bind.annotation.RequestMapping;
 @FeignClient("commons-server")
 public interface MessageLogService {
 
-    @RequestMapping("/api/commons/messagelog/save")
-    public void save(@RequestBody DocBaseDTO baseDTO);
+    @RequestMapping("/messagelog/save")
+    public String save(@RequestBody DocBaseDTO baseDTO);
 
-    @RequestMapping("/api/commons/messagelog/update")
-    public void update(@RequestBody DocBaseDTO baseDTO);
+    @RequestMapping("/messagelog/update")
+    public String update(@RequestBody DocBaseDTO baseDTO);
 
-    @RequestMapping("/api/commons/messagelog/delete")
-    public void delete(@RequestBody DocBaseDTO baseDTO);
+    @RequestMapping("/messagelog/delete")
+    public String delete(@RequestBody DocBaseDTO baseDTO);
 
-    @RequestMapping("/api/commons/messagelog/deleteDetail")
-    public void deleteDetail(@RequestBody DocBaseDTO baseDTO);
+    @RequestMapping("/messagelog/deleteDetail")
+    public String deleteDetail(@RequestBody DocBaseDTO baseDTO);
 
-    @RequestMapping("/api/commons/messagelog/audit")
-    public void audit(@RequestBody DocBaseDTO baseDTO);
+    @RequestMapping("/messagelog/audit")
+    public String audit(@RequestBody DocBaseDTO baseDTO);
 
-    @RequestMapping("/api/commons/messagelog/unAudit")
-    public void unAudit(@RequestBody DocBaseDTO baseDTO);
+    @RequestMapping("/messagelog/unAudit")
+    public String unAudit(@RequestBody DocBaseDTO baseDTO);
 
-    @RequestMapping("/api/commons/messagelog/close")
-    public void close(@RequestBody DocBaseDTO baseDTO);
+    @RequestMapping("/messagelog/close")
+    public String close(@RequestBody DocBaseDTO baseDTO);
 
-    @RequestMapping("/api/commons/messagelog/open")
-    public void open(@RequestBody DocBaseDTO baseDTO);
+    @RequestMapping("//messagelog/open")
+    public String open(@RequestBody DocBaseDTO baseDTO);
 }

+ 51 - 16
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/controller/MessageLogController.java

@@ -6,6 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.context.request.async.DeferredResult;
+
+import java.util.concurrent.CompletableFuture;
 
 /**
  * @author: guq
@@ -19,42 +22,74 @@ public class MessageLogController {
     private MessageLogService messageLogService;
 
     @RequestMapping("/save")
-    public void save(@RequestBody DocBaseDTO baseDTO) {
-        messageLogService.save(baseDTO);
+    public DeferredResult<String> save(@RequestBody DocBaseDTO baseDTO) {
+        // Create the deferredResult and initiate a callback object, task, with it
+        DeferredResult<String> deferredResult = new DeferredResult<>();
+        CompletableFuture.supplyAsync(() -> messageLogService.save(baseDTO))
+                .whenCompleteAsync((result, throwable) -> deferredResult.setResult(result));
+        return deferredResult;
     }
 
     @RequestMapping("/update")
-    public void update(@RequestBody DocBaseDTO baseDTO) {
-        messageLogService.update(baseDTO);
+    public DeferredResult<String> update(@RequestBody DocBaseDTO baseDTO) {
+        // Create the deferredResult and initiate a callback object, task, with it
+        DeferredResult<String> deferredResult = new DeferredResult<>();
+        CompletableFuture.supplyAsync(() -> messageLogService.update(baseDTO))
+                .whenCompleteAsync((result, throwable) -> deferredResult.setResult(result));
+        return deferredResult;
     }
 
     @RequestMapping("/delete")
-    public void delete(@RequestBody DocBaseDTO baseDTO) {
-        messageLogService.delete(baseDTO);
+    public DeferredResult<String> delete(@RequestBody DocBaseDTO baseDTO) {
+        // Create the deferredResult and initiate a callback object, task, with it
+        DeferredResult<String> deferredResult = new DeferredResult<>();
+        CompletableFuture.supplyAsync(() -> messageLogService.delete(baseDTO))
+                .whenCompleteAsync((result, throwable) -> deferredResult.setResult(result));
+        return deferredResult;
     }
 
     @RequestMapping("/deleteDetail")
-    public void deleteDetail(@RequestBody DocBaseDTO baseDTO) {
-        messageLogService.deleteDetail(baseDTO);
+    public DeferredResult<String> deleteDetail(@RequestBody DocBaseDTO baseDTO) {
+        // Create the deferredResult and initiate a callback object, task, with it
+        DeferredResult<String> deferredResult = new DeferredResult<>();
+        CompletableFuture.supplyAsync(() -> messageLogService.deleteDetail(baseDTO))
+                .whenCompleteAsync((result, throwable) -> deferredResult.setResult(result));
+        return deferredResult;
     }
 
     @RequestMapping("/audit")
-    public void audit(@RequestBody DocBaseDTO baseDTO) {
-        messageLogService.audit(baseDTO);
+    public DeferredResult<String> audit(@RequestBody DocBaseDTO baseDTO) {
+        // Create the deferredResult and initiate a callback object, task, with it
+        DeferredResult<String> deferredResult = new DeferredResult<>();
+        CompletableFuture.supplyAsync(() -> messageLogService.audit(baseDTO))
+                .whenCompleteAsync((result, throwable) -> deferredResult.setResult(result));
+        return deferredResult;
     }
 
     @RequestMapping("/unAudit")
-    public void unAudit(@RequestBody DocBaseDTO baseDTO) {
-        messageLogService.unAudit(baseDTO);
+    public DeferredResult<String> unAudit(@RequestBody DocBaseDTO baseDTO) {
+        // Create the deferredResult and initiate a callback object, task, with it
+        DeferredResult<String> deferredResult = new DeferredResult<>();
+        CompletableFuture.supplyAsync(() -> messageLogService.unAudit(baseDTO))
+                .whenCompleteAsync((result, throwable) -> deferredResult.setResult(result));
+        return deferredResult;
     }
 
     @RequestMapping("/close")
-    public void close(@RequestBody DocBaseDTO baseDTO) {
-        messageLogService.close(baseDTO);
+    public DeferredResult<String> close(@RequestBody DocBaseDTO baseDTO) {
+        // Create the deferredResult and initiate a callback object, task, with it
+        DeferredResult<String> deferredResult = new DeferredResult<>();
+        CompletableFuture.supplyAsync(() -> messageLogService.close(baseDTO))
+                .whenCompleteAsync((result, throwable) -> deferredResult.setResult(result));
+        return deferredResult;
     }
 
     @RequestMapping("/open")
-    public void open(@RequestBody DocBaseDTO baseDTO) {
-        messageLogService.open(baseDTO);
+    public DeferredResult<String> open(@RequestBody DocBaseDTO baseDTO) {
+        // Create the deferredResult and initiate a callback object, task, with it
+        DeferredResult<String> deferredResult = new DeferredResult<>();
+        CompletableFuture.supplyAsync(() -> messageLogService.open(baseDTO))
+                .whenCompleteAsync((result, throwable) -> deferredResult.setResult(result));
+        return deferredResult;
     }
 }

+ 8 - 8
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/MessageLogService.java

@@ -6,19 +6,19 @@ import com.usoftchina.saas.commons.mapper.MessagelogMapper;
 import com.usoftchina.saas.commons.po.Messagelog;
 
 public interface MessageLogService extends CommonBaseService<MessagelogMapper, Messagelog>{
-    void save(DocBaseDTO baseDTO);
+    String save(DocBaseDTO baseDTO);
 
-    void update(DocBaseDTO baseDTO);
+    String update(DocBaseDTO baseDTO);
 
-    void delete(DocBaseDTO baseDTO);
+    String delete(DocBaseDTO baseDTO);
 
-    void deleteDetail(DocBaseDTO baseDTO);
+    String deleteDetail(DocBaseDTO baseDTO);
 
-    void audit(DocBaseDTO baseDTO);
+    String audit(DocBaseDTO baseDTO);
 
-    void unAudit(DocBaseDTO baseDTO);
+    String unAudit(DocBaseDTO baseDTO);
 
-    void close(DocBaseDTO baseDTO);
+    String close(DocBaseDTO baseDTO);
 
-    void open(DocBaseDTO baseDTO);
+    String open(DocBaseDTO baseDTO);
 }

+ 21 - 17
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/impl/MessageLogServiceImpl.java

@@ -7,6 +7,8 @@ import com.usoftchina.saas.commons.po.Messagelog;
 import com.usoftchina.saas.commons.po.Operation;
 import com.usoftchina.saas.commons.service.MessageLogService;
 import com.usoftchina.saas.context.BaseContextHolder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.MessageSource;
 import org.springframework.stereotype.Service;
@@ -25,46 +27,47 @@ public class MessageLogServiceImpl extends CommonBaseServiceImpl<MessagelogMappe
     private MessageSource messageSource;
 
     @Override
-    public void save(DocBaseDTO baseDTO) {
-        log(Operation.SAVE, baseDTO);
+    public String save(DocBaseDTO baseDTO) {
+        return log(Operation.SAVE, baseDTO);
+
     }
 
     @Override
-    public void update(DocBaseDTO baseDTO) {
-        log(Operation.UPDATE, baseDTO);
+    public String update(DocBaseDTO baseDTO) {
+        return log(Operation.UPDATE, baseDTO);
     }
 
     @Override
-    public void delete(DocBaseDTO baseDTO) {
-        log(Operation.DELETE, baseDTO);
+    public String delete(DocBaseDTO baseDTO) {
+        return log(Operation.DELETE, baseDTO);
     }
 
     @Override
-    public void deleteDetail(DocBaseDTO baseDTO) {
-        log(Operation.DELETEDETAIL, baseDTO);
+    public String deleteDetail(DocBaseDTO baseDTO) {
+        return log(Operation.DELETEDETAIL, baseDTO);
     }
 
     @Override
-    public void audit(DocBaseDTO baseDTO) {
-        log(Operation.AUDIT, baseDTO);
+    public String audit(DocBaseDTO baseDTO) {
+        return log(Operation.AUDIT, baseDTO);
     }
 
     @Override
-    public void unAudit(DocBaseDTO baseDTO) {
-        log(Operation.RESAUDIT, baseDTO);
+    public String unAudit(DocBaseDTO baseDTO) {
+        return log(Operation.RESAUDIT, baseDTO);
     }
 
     @Override
-    public void close(DocBaseDTO baseDTO) {
-        log(Operation.CLOSE, baseDTO);
+    public String close(DocBaseDTO baseDTO) {
+        return log(Operation.CLOSE, baseDTO);
     }
 
     @Override
-    public void open(DocBaseDTO baseDTO) {
-        log(Operation.OPEN, baseDTO);
+    public String open(DocBaseDTO baseDTO) {
+        return log(Operation.OPEN, baseDTO);
     }
 
-    private void log(Operation operation, DocBaseDTO baseDTO) {
+    private String log(Operation operation, DocBaseDTO baseDTO) {
         String language = "zh_CN";
         Messagelog msg = new Messagelog();
         msg.setMl_caller(baseDTO.getName());
@@ -76,6 +79,7 @@ public class MessageLogServiceImpl extends CommonBaseServiceImpl<MessagelogMappe
         msg.setCreatorId(BaseContextHolder.getUserId());
         msg.setMl_keyvalue(baseDTO.getId());
         getMapper().insert(msg);
+        return "success";
     }
 
     private String getLocalMessage(String msg, String language) {