Browse Source

同步数据增加日志

hejq 8 years ago
parent
commit
253a2ed6e7

+ 180 - 0
src/main/java/com/uas/platform/b2b/model/CommunalLog.java

@@ -0,0 +1,180 @@
+package com.uas.platform.b2b.model;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.uas.platform.b2b.core.util.DateFormatUtils;
+import com.uas.platform.core.logging.BufferedLogable;
+import org.codehaus.jackson.annotate.JsonIgnore;
+import org.springframework.util.StringUtils;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 系统一些操作的记录,不关联企业,方便针对异常进行查看
+ *
+ * Created by hejq on 2017-12-12.
+ */
+@Entity
+@Table(name = "log$common")
+public class CommunalLog extends BufferedLogable implements Serializable {
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "log$common_gen")
+    @SequenceGenerator(name = "log$common_gen", sequenceName = "log$common_seq", allocationSize = 1)
+    @Column(name = "log_id")
+    private Long id;
+
+    @Column(name = "log_enuu")
+    private Long enUU;
+
+    @OneToOne(cascade = { CascadeType.REFRESH })
+    @JoinColumn(name = "log_useruu", insertable = false, updatable = false)
+    private UserBaseInfo user;
+
+    @Column(name = "log_useruu")
+    private Long userUU;
+
+    /**
+     * 日志时间
+     */
+    @Column(name = "log_time")
+    private Long time;
+
+    /**
+     * ip
+     */
+    @Column(name = "log_ip")
+    private String ip;
+
+    @Column(name = "log_title")
+    private String title;
+
+    @Column(name = "log_message")
+    private String message;
+
+    @Column(name = "log_detail", length = 1000)
+    private String detail;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getEnUU() {
+        return enUU;
+    }
+
+    public void setEnUU(Long enUU) {
+        this.enUU = enUU;
+    }
+
+    public UserBaseInfo getUser() {
+        return user;
+    }
+
+    public void setUser(UserBaseInfo user) {
+        this.user = user;
+    }
+
+    public Long getUserUU() {
+        return userUU;
+    }
+
+    public void setUserUU(Long userUU) {
+        this.userUU = userUU;
+    }
+
+    public Long getTime() {
+        return time;
+    }
+
+    public void setTime(Long time) {
+        this.time = time;
+    }
+
+    public String getIp() {
+        return ip;
+    }
+
+    public void setIp(String ip) {
+        this.ip = ip;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getMessage() {
+        return message;
+    }
+
+    public void setMessage(String message) {
+        this.message = message;
+    }
+
+    public String getDetail() {
+        return detail;
+    }
+
+    public void setDetail(String detail) {
+        this.detail = detail;
+    }
+
+    @JsonIgnore
+    @JSONField(serialize = false)
+    public String getTimeString() {
+        return DateFormatUtils.DATETIME_FORMAT.format(getTime());
+    }
+
+    public CommunalLog() {
+
+    }
+
+    public CommunalLog(String title, String message, String detail, Long enUU) {
+        this.enUU = enUU;
+        this.title = title;
+        this.message = message;
+        this.time = new Date().getTime();
+        this.detail = detail;
+    }
+
+    @Override
+    public String bufferedMessage() {
+        StringBuffer sb = new StringBuffer();
+        sb.append(this.time).append(separator);
+        sb.append(this.ip).append(separator);
+        sb.append(this.enUU).append(separator);
+        sb.append(this.userUU).append(separator);
+        sb.append(this.title).append(separator);
+        sb.append(this.message).append(separator);
+        sb.append(this.detail == null ? "" : this.detail).append(separator);
+        return sb.toString();
+    }
+
+    @Override
+    public void bufferedLog(String bufferedMessage) {
+        String[] strArray = bufferedMessage.split(separator);
+        if (strArray.length == 9) {
+            this.time = Long.parseLong(strArray[0]);
+            this.ip = strArray[1];
+            this.enUU = Long.parseLong(strArray[2]);
+            this.userUU = Long.parseLong(strArray[3]);
+            this.title = strArray[4];
+            this.message = strArray[5];
+            this.detail = StringUtils.hasText(strArray[6]) ? strArray[6] : null;
+        }
+    }
+
+}

+ 11 - 0
src/main/java/com/uas/platform/b2b/service/CommunalLogService.java

@@ -0,0 +1,11 @@
+package com.uas.platform.b2b.service;
+
+import com.uas.platform.b2b.model.CommunalLog;
+import com.uas.platform.core.logging.LogService;
+
+/**
+ * Created by hejq on 2017-12-12.
+ */
+public interface CommunalLogService extends LogService<CommunalLog> {
+
+}

+ 30 - 0
src/main/java/com/uas/platform/b2b/support/CommBufferedLogger.java

@@ -0,0 +1,30 @@
+package com.uas.platform.b2b.support;
+
+import com.uas.platform.b2b.core.util.ContextUtils;
+import com.uas.platform.b2b.core.util.PathUtils;
+import com.uas.platform.b2b.model.CommunalLog;
+import com.uas.platform.b2b.service.CommunalLogService;
+import com.uas.platform.core.logging.BufferedLogger;
+
+/**
+ * Created by hejq on 2017-12-12.
+ */
+public class CommBufferedLogger  extends BufferedLogger<CommunalLog> {
+
+    public CommBufferedLogger() {
+        super(PathUtils.getFilePath(), CommunalLog.class, ContextUtils
+                .getBean(CommunalLogService.class));
+    }
+
+    /**
+     * 记录平台密码找回日志
+     *
+     * @param title
+     *            消息标题
+     * @param message
+     *            消息
+     */
+    public void log(String title, String message, String detail, Long enUU) {
+        log(new CommunalLog(title, message, detail, enUU));
+    }
+}

+ 12 - 2
src/main/java/com/uas/platform/b2b/v2/controller/EnterpriseController.java

@@ -1,5 +1,7 @@
 package com.uas.platform.b2b.v2.controller;
 
+import com.uas.platform.b2b.support.CommBufferedLogger;
+import com.uas.platform.core.logging.BufferedLoggerManager;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -22,12 +24,16 @@ public class EnterpriseController {
 
 	@Autowired
 	private EnterpriseService enterpriseService;
+
 	@Autowired
 	private SysConf conf;
+
 	@SuppressWarnings("deprecation")
 	@Autowired
 	private com.uas.platform.b2b.service.EnterpriseService enterService;
 
+	private final static CommBufferedLogger logger = BufferedLoggerManager.getLogger(CommBufferedLogger.class);
+
 	@RequestMapping(method = RequestMethod.POST)
 	@ResponseBody
 	public UserSpace save(UserSpace userSpace, UserSpaceDetail userSpaceDetail) throws Exception {
@@ -55,10 +61,14 @@ public class EnterpriseController {
 		JSONObject formData = JSON.parseObject(JSON.toJSONString(userSpace));
 		formData.putAll(JSON.parseObject(JSON.toJSONString(userSpaceDetail)));
 		ResponseWrap res = HttpUtil.doPost(conf.getManageInner() + "/public/enterprise", formData);
-		if (!res.isSuccess())
+		String enUU = userSpace.getDialectUID();
+		if (!res.isSuccess()) {
+			logger.log("同步数据", "error", "同步企业数据到管理平台失败",enUU != null ? Long.valueOf(enUU) : 0L);
 			throw new Exception(res.getContent());
-		else
+		} else {
+			logger.log("同步数据", "success", "同步企业数据到管理平台成功", enUU != null ? Long.valueOf(enUU) : 0L);
 			return JSON.parseObject(res.getContent(), UserSpace.class);
+		}
 	}
 
 	@RequestMapping(method = RequestMethod.DELETE)