Browse Source

针对公共询价服务增加日志记录

hejq 7 years ago
parent
commit
f924a0938a

+ 14 - 1
src/main/java/com/uas/ps/inquiry/controller/InquiryForBuyerController.java

@@ -1,8 +1,11 @@
 package com.uas.ps.inquiry.controller;
 
 import com.alibaba.fastjson.JSONObject;
+import com.uas.ps.core.logging.BufferedLoggerManager;
+import com.uas.ps.inquiry.entity.Constant;
 import com.uas.ps.inquiry.entity.InquiryDetailInfo;
 import com.uas.ps.inquiry.entity.InquiryProductInfo;
+import com.uas.ps.inquiry.entity.InquirySource;
 import com.uas.ps.inquiry.model.PublicInquiryItem;
 import com.uas.ps.inquiry.model.PurcInquiry;
 import com.uas.ps.inquiry.model.PurcInquiryItemInfo;
@@ -10,6 +13,7 @@ import com.uas.ps.inquiry.page.PageInfo;
 import com.uas.ps.inquiry.page.SearchFilter;
 import com.uas.ps.inquiry.service.InquiryService;
 import com.uas.ps.inquiry.service.PublicInquiryService;
+import com.uas.ps.inquiry.support.InquiryBufferedLogger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Sort;
@@ -30,6 +34,8 @@ public class InquiryForBuyerController {
     @Autowired
     private InquiryService inquiryService;
 
+    private final static InquiryBufferedLogger logger = BufferedLoggerManager.getLogger(InquiryBufferedLogger.class);
+
     /**
      * 作为买家,保存更新公共询价单
      *
@@ -40,8 +46,10 @@ public class InquiryForBuyerController {
     public String saveInquiry(@RequestBody PurcInquiry inquiry) throws Exception {
         inquiry = inquiryService.saveInquiry(inquiry);
         if (null != inquiry.getId()) {
+            logger.log("公共询价", "新增公共询价信息", "单号: " + inquiry.getCode() + "生成id: " + inquiry.getId(), inquiry.getRecorderUU(), inquiry.getEnUU(), InquirySource.PLAIN.name());
             return JSONObject.toJSONString(inquiry);
         } else {
+            logger.log("公共询价", "新增公共询价信息失败", "单号: " + inquiry.getCode(), inquiry.getRecorderUU(), inquiry.getEnUU(), InquirySource.PLAIN.name());
             throw new Exception("保存失败");
         }
     }
@@ -55,7 +63,8 @@ public class InquiryForBuyerController {
      * @throws Exception
      */
     @RequestMapping(value = "/decide", method = RequestMethod.POST)
-    public void decideQuote(Long id, Short status) throws Exception {
+    public void decideQuote(Long id, Short status, Long enuu, Long useruu) throws Exception {
+        logger.log("公共询价", "通过明细id对供应商报价进行审核操作", "id: " + id + ",采纳状态: " + status, useruu, enuu, InquirySource.PLAIN.name());
         inquiryService.decideQuote(id, status);
     }
 
@@ -68,6 +77,7 @@ public class InquiryForBuyerController {
      */
     @RequestMapping(value = "/detail", method = RequestMethod.GET)
     public InquiryDetailInfo findById(Long id, Long enuu) {
+        logger.log("公共询价", "客户查询供应商报价详情", "id: " + id, Constant.UU, enuu, InquirySource.PLAIN.name());
         return inquiryService.findById(id, enuu);
     }
 
@@ -98,6 +108,7 @@ public class InquiryForBuyerController {
         } else {
             throw new IllegalAccessError("非法访问");
         }
+        logger.log("公共询价", "通过企业UU和分页参数获取已发布的询价信息", null, searchFilter.getUserUU(), searchFilter.getEnUU(), InquirySource.PLAIN.name());
         return inquiryService.findByPageInfo(pageInfo, searchFilter);
     }
 
@@ -124,6 +135,7 @@ public class InquiryForBuyerController {
         } else {
             throw new IllegalAccessError("非法访问");
         }
+        logger.log("公共询价", "通过企业UU和分页参数获取已发布的询价信息", null, searchFilter.getUserUU(), searchFilter.getEnUU(), InquirySource.PLAIN.name());
         return inquiryService.findTodoByPageInfo(pageInfo, searchFilter, state, overdue);
     }
 
@@ -136,6 +148,7 @@ public class InquiryForBuyerController {
      */
     @RequestMapping(value = "/product/detail", method = RequestMethod.GET)
     public InquiryProductInfo findInquiryDetailById(Long id, Long enuu) {
+        logger.log("公共询价", "针对客户查询单个物料明细的报价情况", null, Constant.UU, enuu, InquirySource.PLAIN.name());
         return inquiryService.findInquiryDetailById(id, enuu);
     }
 }

+ 14 - 0
src/main/java/com/uas/ps/inquiry/controller/InquiryForSaleController.java

@@ -2,10 +2,14 @@ package com.uas.ps.inquiry.controller;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.uas.ps.core.logging.BufferedLoggerManager;
+import com.uas.ps.inquiry.entity.Constant;
+import com.uas.ps.inquiry.entity.InquirySource;
 import com.uas.ps.inquiry.model.Attach;
 import com.uas.ps.inquiry.model.PublicInquiryItem;
 import com.uas.ps.inquiry.model.PublicInquiryReply;
 import com.uas.ps.inquiry.service.InquiryForSaleService;
+import com.uas.ps.inquiry.support.InquiryBufferedLogger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -28,6 +32,8 @@ public class InquiryForSaleController {
     @Autowired
     private InquiryForSaleService saleService;
 
+    private final static InquiryBufferedLogger logger = BufferedLoggerManager.getLogger(InquiryBufferedLogger.class);
+
     /**
      * 通过ID查询报价详情
      *
@@ -36,6 +42,7 @@ public class InquiryForSaleController {
      */
     @RequestMapping(value = "/inquiry/detail", method = RequestMethod.GET)
     public PublicInquiryItem findById(Long itemId, Long en_uu) {
+        logger.log("公共询价", "查询已转报价的明细", "id: " + itemId, Constant.UU, en_uu, InquirySource.PLAIN.name());
         return saleService.findById(itemId);
     }
 
@@ -48,6 +55,7 @@ public class InquiryForSaleController {
      */
     @RequestMapping(value = "/publicInquiry/detail", method = RequestMethod.GET)
     public ModelMap findInquiryById(Long id, Long enuu) {
+        logger.log("公共询价", "通过id查询公共询价详情", "id: " + id, Constant.UU, enuu, InquirySource.PLAIN.name());
         return saleService.findByIdAndEnuu(id, enuu);
     }
 
@@ -93,6 +101,8 @@ public class InquiryForSaleController {
     @RequestMapping(value = "/item/save", method = RequestMethod.POST)
     public String saveInquiryItems(@RequestBody PublicInquiryItem item) throws Exception {
         item = saleService.saveItem(item);
+        logger.log("公共询价", "作为卖家,对公共询价进行报价操作", "sourceid: " + item.getSourceId() + ", id" + item.getId(),
+                item.getVendUserUU(), item.getVendUU(), item.getQutoApp());
         if (null != item) {
             return JSON.toJSONString(item.getInquiry());
         } else {
@@ -124,6 +134,8 @@ public class InquiryForSaleController {
      */
     @RequestMapping(value = "/quote", method = RequestMethod.GET)
     public PublicInquiryItem findBySourceId(Long id, Long en_uu) {
+        logger.log("公共询价", "查询公共询价单是否已报价", "id: " + id,
+                Constant.UU, en_uu, InquirySource.PLAIN.name());
         return saleService.findBySourceIdAndEnuu(id, en_uu);
     }
 
@@ -141,6 +153,8 @@ public class InquiryForSaleController {
     @RequestMapping(value = "/mobile/quote", method = RequestMethod.POST)
     public ModelMap quote(Long inquiryItemId, Long en_uu, Long useruu, Long leadtime, Double minPackQty, Double minOrderQty, String replies) throws Exception {
         List<PublicInquiryReply> replyList = JSONObject.parseArray(replies, PublicInquiryReply.class);
+        logger.log("公共询价", "作为卖家,对公共询价进行报价操作", "sourceid: " + inquiryItemId,
+                useruu, en_uu, InquirySource.UU.name());
         return saleService.quoteInquiry(inquiryItemId, en_uu, useruu, replyList, leadtime, minPackQty, minOrderQty);
     }
 }

+ 21 - 1
src/main/java/com/uas/ps/inquiry/controller/PublicInquiryController.java

@@ -1,6 +1,7 @@
 package com.uas.ps.inquiry.controller;
 
 import com.alibaba.fastjson.JSONObject;
+import com.uas.ps.core.logging.BufferedLoggerManager;
 import com.uas.ps.inquiry.domain.IPage;
 import com.uas.ps.inquiry.entity.*;
 import com.uas.ps.inquiry.model.*;
@@ -8,6 +9,7 @@ import com.uas.ps.inquiry.page.PageInfo;
 import com.uas.ps.inquiry.page.SearchFilter;
 import com.uas.ps.inquiry.service.AttachService;
 import com.uas.ps.inquiry.service.PublicInquiryService;
+import com.uas.ps.inquiry.support.InquiryBufferedLogger;
 import javassist.NotFoundException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
@@ -35,6 +37,8 @@ public class PublicInquiryController {
     @Autowired
     private AttachService attachService;
 
+    private final static InquiryBufferedLogger logger = BufferedLoggerManager.getLogger(InquiryBufferedLogger.class);
+
     /**
      * 将买家ERP的公共询价写到公共询价服务中心
      *
@@ -50,6 +54,7 @@ public class PublicInquiryController {
         address = URLDecoder.decode(address, "UTF-8");
         List<BatchInquiry> inquiries = JSONObject.parseArray(jsonStr, BatchInquiry.class);
         publicInquiryService.save(inquiries, enuu, address);
+        logger.log("公共询价", "ERP上传公共询价", "size: " + inquiries.size(), Constant.UU, enuu, InquirySource.ERP.name());
     }
 
     /**
@@ -64,6 +69,7 @@ public class PublicInquiryController {
         String jsonStr = URLDecoder.decode(data, "UTF-8");
         List<BatchInquiry> inquiries = JSONObject.parseArray(jsonStr, BatchInquiry.class);
         publicInquiryService.updateStatus(inquiries, enuu);
+        logger.log("公共询价", "ERP设置公共询价不能报价", "size: " + inquiries.size(), Constant.UU, enuu, InquirySource.ERP.name());
     }
 
     /**
@@ -76,6 +82,7 @@ public class PublicInquiryController {
     @RequestMapping(value = "/quotation", method = RequestMethod.GET)
     public List<InquiryDetail> getReply(Long enuu) {
         List<InquiryDetail> details = publicInquiryService.findNotUploadReply(enuu);
+        logger.log("公共询价", "ERP获取供应商报价信息", "size: " + details.size(), Constant.UU, enuu, "ERP");
         return details;
     }
 
@@ -89,6 +96,7 @@ public class PublicInquiryController {
     @RequestMapping(value = "/reply/back", method = RequestMethod.POST)
     public void onReplySuccess(@RequestParam("data") String data, Long enuu) throws UnsupportedEncodingException {
         String[] idArray = URLDecoder.decode(data, "UTF-8").split(",");
+        logger.log("公共询价", "ERP获取报价信息返回id", "id: " + idArray, Constant.UU, enuu, "ERP");
         publicInquiryService.onReplyUploadSuccess(idArray);
     }
 
@@ -102,6 +110,7 @@ public class PublicInquiryController {
     public void checkInquiry(@RequestParam("data") String data, Long enuu) throws UnsupportedEncodingException {
         String jsonStr = URLDecoder.decode(data, "UTF-8");
         List<Inquiry> inquiries = JSONObject.parseArray(jsonStr, Inquiry.class);
+        logger.log("公共询价", "ERP提交报价信息应用禁止报价", "size: " + inquiries.size(), Constant.UU, enuu, "ERP");
         publicInquiryService.updateInquiryStatus(inquiries);
     }
 
@@ -115,6 +124,7 @@ public class PublicInquiryController {
     public void onReplyDecide(@RequestParam("data") String data, Long enuu) throws UnsupportedEncodingException {
         String jsonStr = URLDecoder.decode(data, "UTF-8");
         List<InquiryDecide> decides = JSONObject.parseArray(jsonStr, InquiryDecide.class);
+        logger.log("公共询价", "ERP针对供应报价信息进行(不)采纳操作", "size: " + decides.size(), Constant.UU, enuu, "ERP");
         publicInquiryService.onReplyDecide(decides, enuu);
     }
 
@@ -129,6 +139,7 @@ public class PublicInquiryController {
     public void onReplyInvalid(@RequestParam("data") String data, Long enuu) throws UnsupportedEncodingException {
         String jsonStr = URLDecoder.decode(data, "UTF-8");
         List<Inquiry> inquiries = JSONObject.parseArray(jsonStr, Inquiry.class);
+        logger.log("公共询价", "ERP作废公共询价单返回数据到公共服务", "size: " + inquiries.size(), Constant.UU, enuu, "ERP");
         publicInquiryService.onReplyInvalid(inquiries, enuu);
     }
 
@@ -163,6 +174,7 @@ public class PublicInquiryController {
             pageInfo.setOffset(pageInfo.getPageSize() * (pageInfo.getPageNumber() - 1));
         }
         pageInfo.setSort(sort);
+        logger.log("公共询价", "查询公共询价信息", null, searchFilter.getUserUU(), searchFilter.getEnUU(), InquirySource.PLAIN.name());
         return publicInquiryService.findTodoByPageInfo(pageInfo, searchFilter);
     }
 
@@ -186,6 +198,7 @@ public class PublicInquiryController {
         if (null != searchFilter.getEnUU()) {
             pageInfo.filter("inquiry.enUU", searchFilter.getEnUU());
         }
+        logger.log("公共询价", "查询已发布公共询价信息", null, searchFilter.getUserUU(), searchFilter.getEnUU(), InquirySource.MALL.name());
         return publicInquiryService.findTodoByPageInfo(pageInfo, searchFilter);
     }
 
@@ -224,14 +237,17 @@ public class PublicInquiryController {
         filter.setKeyword(keyword);
         if (StringUtils.hasText(_state)) {
             if (_state.equals(OrderStatus.end.name())) {
+                logger.log("公共询价", "查询公共询价信息", "tel: " + user_tel, Constant.UU, en_uu, InquirySource.UU.name());
                 pageInfo.filter("overdue", Constant.YES);
                 map.put("content", publicInquiryService.findTodoByPageInfo(pageInfo, filter).getContent());
                 return map;
             } else if (_state.equals(OrderStatus.invalid)) {
+                logger.log("公共询价", "查询公共询价信息", "tel: " + user_tel, Constant.UU, en_uu, InquirySource.UU.name());
                 pageInfo.filter("invalid", Constant.YES);
                 map.put("content", publicInquiryService.findTodoByPageInfo(pageInfo, filter).getContent());
                 return map;
             } else if (_state.equals(OrderStatus.done.name())) {
+                logger.log("公共询价", "查询已转报价询价列表信息", "tel: " + user_tel, Constant.UU, en_uu, InquirySource.UU.name());
                 filter.setVendUU(en_uu);
                 filter.setKeyword(keyword);
                 map.put("content", publicInquiryService.findByPageInfo(pageInfo, filter).getContent());
@@ -239,6 +255,7 @@ public class PublicInquiryController {
             }
         } else {
             filter.setEnUU(en_uu);
+            logger.log("公共询价", "查询公共询价信息", "tel: " + user_tel, Constant.UU, en_uu, InquirySource.UU.name());
             map.put("content", publicInquiryService.findTodoByPageInfo(pageInfo, filter).getContent());
             return map;
         }
@@ -272,6 +289,7 @@ public class PublicInquiryController {
         if (null != _state) {
             pageInfo = publicInquiryService.covert(pageInfo, _state);
         }
+        logger.log("公共询价", "查询已转报价询价列表信息", "状态: " + _state == null ? "all" : _state, searchFilter.getUserUU(), searchFilter.getEnUU(), InquirySource.PLAIN.name());
         return  publicInquiryService.findByPageInfo(pageInfo, searchFilter);
     }
 
@@ -284,6 +302,7 @@ public class PublicInquiryController {
      */
     @RequestMapping(value = "/messageList", method = RequestMethod.GET)
     public List<InquiryMessage> getList(Long enuu, Integer size) {
+        logger.log("公共询价", "获取最新的公共询价", "大小: " + size, Constant.UU, enuu, InquirySource.PLAIN.name());
         return publicInquiryService.getMessageList(enuu, size);
     }
 
@@ -305,7 +324,8 @@ public class PublicInquiryController {
      * @return
      */
     @RequestMapping(value = "/findInquiryById", method = RequestMethod.GET)
-    public PurcInquiry findById(Long id) {
+    public PurcInquiry findById(Long id, Long enuu) {
+        logger.log("公共询价", "获取询价信息", "id: " + id, Constant.UU, enuu, InquirySource.PLAIN.name());
         return publicInquiryService.findInquiryById(id);
     }
 }

+ 13 - 0
src/main/java/com/uas/ps/inquiry/dao/InquiryLogDao.java

@@ -0,0 +1,13 @@
+package com.uas.ps.inquiry.dao;
+
+import com.uas.ps.inquiry.model.InquiryLog;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+
+/**
+ * 询价日志操数据库操作
+ *
+ * Created by hejq on 2018-01-31.
+ */
+public interface InquiryLogDao extends JpaRepository<InquiryLog, Long>, JpaSpecificationExecutor<InquiryLog> {
+}

+ 17 - 0
src/main/java/com/uas/ps/inquiry/dao/PurcInquiryInfoDao.java

@@ -0,0 +1,17 @@
+package com.uas.ps.inquiry.dao;
+
+import com.uas.ps.inquiry.model.PurcInquiryInfo;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 公共询价表数据库操作
+ *
+ * @author hejq
+ * @date 2018-01-31 14:28
+ */
+@Repository
+public interface PurcInquiryInfoDao extends JpaRepository<PurcInquiryInfo, Long>, JpaSpecificationExecutor<PurcInquiryInfo> {
+
+}

+ 11 - 0
src/main/java/com/uas/ps/inquiry/dao/PurcInquiryItemDao.java

@@ -1,5 +1,6 @@
 package com.uas.ps.inquiry.dao;
 
+import com.uas.ps.inquiry.model.PublicInquiryItem;
 import com.uas.ps.inquiry.model.PurcInquiryItem;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
@@ -9,6 +10,7 @@ import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
 import javax.transaction.Transactional;
+import java.util.List;
 
 /**
  * 公共询价明细的操作
@@ -38,4 +40,13 @@ public interface PurcInquiryItemDao extends JpaSpecificationExecutor<PurcInquiry
     @Modifying
     @Query("update PurcInquiryItem set offerAmount = coalesce(offerAmount, 0) + :amount where id = :sourceId")
     void updateAmount(@Param("sourceId") Long sourceId, @Param("amount") Integer amount);
+
+    /**
+     * 通过询价主表id查询包含的明细
+     *
+     * @param inid 询价主表id
+     * @return
+     */
+    @Query("from PurcInquiryItem i where i.inquiry.id = :inid")
+    List<PurcInquiryItem> findByInid(@Param("inid") Long inid);
 }

+ 5 - 0
src/main/java/com/uas/ps/inquiry/entity/Constant.java

@@ -22,6 +22,11 @@ public class Constant {
      */
     public static final short TOP = 9;
 
+    /**
+     * 默认的UU号,表示未传入相关信息
+     */
+    public static final Long UU = 0L;
+
     public Constant() {
     }
 }

+ 6 - 1
src/main/java/com/uas/ps/inquiry/entity/InquirySource.java

@@ -30,5 +30,10 @@ public enum InquirySource {
     /**
      * SAAS
      */
-    SAAS
+    SAAS,
+
+    /**
+     * 不确定来源的
+     */
+    PLAIN
 }

+ 198 - 0
src/main/java/com/uas/ps/inquiry/model/InquiryLog.java

@@ -0,0 +1,198 @@
+package com.uas.ps.inquiry.model;
+
+import com.uas.ps.core.logging.BufferedLogable;
+import org.hibernate.validator.constraints.Length;
+import org.springframework.util.StringUtils;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 询价单操作日志
+ *
+ * Created by hejq on 2018-01-31.
+ */
+@Table(name = "log$inquiry")
+@Entity
+public class InquiryLog extends BufferedLogable implements Serializable {
+
+    /**
+     * default serialVersionUID
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "log_id")
+    private Long id;
+
+    /**
+     * 操作的企业UU
+     */
+    @Column(name = "log_enuu")
+    private Long enuu;
+
+    /**
+     * 用户uu
+     */
+    @Column(name = "log_useruu")
+    private Long useruu;
+
+    /**
+     * 应用来源
+     */
+    @Column(name = "log_source")
+    private String source;
+
+    /**
+     * 操作时间
+     */
+    @Column(name = "log_date")
+    private Long date;
+
+    /**
+     * 日志标题
+     */
+    @Column(name = "log_title")
+    private String title;
+
+    /**
+     * 日志消息
+     */
+    @Column(name = "log_message")
+    private String message;
+
+    /**
+     * 日志详细描述
+     */
+    @Column(name = "log_des")
+    @Length(max = 1000)
+    private String desc;
+
+    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 Long getUseruu() {
+        return useruu;
+    }
+
+    public void setUseruu(Long useruu) {
+        this.useruu = useruu;
+    }
+
+    public String getSource() {
+        return source;
+    }
+
+    public void setSource(String source) {
+        this.source = source;
+    }
+
+    public Long getDate() {
+        return date;
+    }
+
+    public void setDate(Long date) {
+        this.date = date;
+    }
+
+    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 getDesc() {
+        return desc;
+    }
+
+    public void setDesc(String desc) {
+        this.desc = desc;
+    }
+
+    @Override
+    public String toString() {
+        return "InquiryLog{" +
+                "id=" + id +
+                ", enuu=" + enuu +
+                ", useruu=" + useruu +
+                ", source='" + source + '\'' +
+                ", date=" + date +
+                ", title='" + title + '\'' +
+                ", message='" + message + '\'' +
+                ", desc='" + desc + '\'' +
+                '}';
+    }
+
+    /**
+     * 日志实体转化为字符串
+     *
+     * @return
+     */
+    @Override
+    public String bufferedMessage() {
+        StringBuffer sb = new StringBuffer();
+        sb.append(this.date).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.desc == null ? "" : this.desc).append(separator);
+        return sb.toString();
+    }
+
+    /**
+     * 字符串转化为日志实体
+     *
+     * @param bufferedMessage
+     */
+    @Override
+    public void bufferedLog(String bufferedMessage) {
+        String[] strArray = bufferedMessage.split(separator);
+        if (strArray.length == 9) {
+            this.date = Long.parseLong(strArray[0]);
+            this.enuu = Long.parseLong(strArray[2]);
+            this.useruu = Long.parseLong(strArray[3]);
+            this.title = strArray[4];
+            this.message = strArray[5];
+            this.desc = StringUtils.hasText(strArray[6]) ? strArray[6] : null;
+        }
+    }
+
+    public InquiryLog(String title, String message, String detail, Long userUU, Long enUU,  String source) {
+        this.title = title;
+        this.message = message;
+        this.desc = detail;
+        this.useruu = userUU;
+        this.enuu = enUU;
+        this.date = System.currentTimeMillis();
+        this.source = source;
+    }
+}

+ 12 - 0
src/main/java/com/uas/ps/inquiry/service/InquiryLogService.java

@@ -0,0 +1,12 @@
+package com.uas.ps.inquiry.service;
+
+import com.uas.ps.core.logging.LogService;
+import com.uas.ps.inquiry.model.InquiryLog;
+
+/**
+ * 询价日志
+ *
+ * Created by hejq on 2018-01-31.
+ */
+public interface InquiryLogService extends LogService<InquiryLog> {
+}

+ 38 - 0
src/main/java/com/uas/ps/inquiry/service/impl/InquiryLogServiceImpl.java

@@ -0,0 +1,38 @@
+package com.uas.ps.inquiry.service.impl;
+
+import com.uas.ps.inquiry.dao.InquiryLogDao;
+import com.uas.ps.inquiry.model.InquiryLog;
+import com.uas.ps.inquiry.service.InquiryLogService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 询价日志操作实现
+ *
+ * Created by hejq on 2018-01-31.
+ */
+@Service
+public class InquiryLogServiceImpl implements InquiryLogService {
+
+    @Autowired
+    private InquiryLogDao inquiryLogDao;
+    /**
+     * 日志持久化保存
+     *
+     * @param logable
+     */
+    @Override
+    public void save(InquiryLog logable) {
+        inquiryLogDao.save(logable);
+    }
+
+    /**
+     * 日志批量持久化保存
+     *
+     * @param logables
+     */
+    @Override
+    public void save(Iterable<InquiryLog> logables) {
+        inquiryLogDao.save(logables);
+    }
+}

+ 32 - 0
src/main/java/com/uas/ps/inquiry/support/InquiryBufferedLogger.java

@@ -0,0 +1,32 @@
+package com.uas.ps.inquiry.support;
+
+import com.uas.ps.core.logging.BufferedLogger;
+import com.uas.ps.core.util.ContextUtils;
+import com.uas.ps.inquiry.model.InquiryLog;
+import com.uas.ps.inquiry.service.InquiryLogService;
+import com.uas.ps.inquiry.util.PathUtils;
+
+/**
+ * 平台的一些基本操作的日志,查询使用
+ *
+ * Created by hejq on 2017-12-12.
+ */
+public class InquiryBufferedLogger extends BufferedLogger<InquiryLog> {
+
+    public InquiryBufferedLogger() {
+        super(PathUtils.getFilePath(), InquiryLog.class, ContextUtils.getBean(InquiryLogService.class));
+    }
+
+    /**
+     * 用户操作日志
+     *
+     * @param title 日志名称
+     * @param message 日志消息
+     * @param detail 日志详情
+     * @param userUU 用户UU
+     * @param enUU 企业UU
+     */
+    public void log(String title, String message, String detail, Long userUU, Long enUU, String source) {
+        log(new InquiryLog(title, message, detail, userUU, enUU, source));
+    }
+}

+ 80 - 0
src/main/java/com/uas/ps/inquiry/util/PathUtils.java

@@ -0,0 +1,80 @@
+package com.uas.ps.inquiry.util;
+
+import com.uas.ps.core.util.ContextUtils;
+
+import java.io.File;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+
+/**
+ * 路径
+ * 
+ * @author yingp
+ *
+ */
+public class PathUtils {
+
+	private static String classPath;
+
+	private static String appPath;
+
+	private static String filePath;
+
+	/**
+	 * classes文件目录
+	 * 
+	 * @return
+	 */
+	public static String getClassPath() {
+		if (classPath == null)
+			setClassPath();
+		return classPath;
+	}
+
+	/**
+	 * 应用程序目录
+	 * 
+	 * @return
+	 */
+	public static String getAppPath() {
+		if (appPath == null)
+			setAppPath();
+		return appPath;
+	}
+
+	/**
+	 * 日志、附件文件等存放目录,与程序同级
+	 * 
+	 * @return
+	 */
+	public static String getFilePath() {
+		if (filePath == null)
+			setFilePath();
+		return filePath;
+	}
+
+	private static void setClassPath() {
+		Class<?> objClass = ContextUtils.getApplicationContext().getClass();
+		String strRealPath = objClass.getClassLoader().getResource("").getFile();
+		try {
+			strRealPath = URLDecoder.decode(strRealPath, "UTF-8");
+		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
+		}
+		File objFile = new File(strRealPath);
+		classPath = objFile.getParent() + File.separator;
+		if (classPath.contains("/")) {
+			classPath = "/" + classPath;
+		}
+	}
+
+	private static void setAppPath() {
+		File file = new File(getClassPath());
+		appPath = file.getParent() + File.separator;
+	}
+
+	private static void setFilePath() {
+		File file = new File(getAppPath());
+		filePath = file.getParent() + File.separator;
+	}
+}