Browse Source

首页侧边消息提示UI调整

hejq 8 years ago
parent
commit
8347e292e5

+ 11 - 0
src/main/java/com/uas/platform/b2b/controller/SaleInquiryController.java

@@ -711,6 +711,17 @@ public class SaleInquiryController {
 		return purchaseInquiryService.getMessageList();
 	}
 
+	/**
+	 * 更新首页单据的阅读状态
+	 *
+	 * @param id
+	 */
+	@RequestMapping(value = "/setReadStatus", method = RequestMethod.POST)
+	@ResponseBody
+	public void setReadStatus(Long id) {
+		purchaseInquiryService.setReadStatus(id);
+	}
+
 	/**
 	 *  上传附件
 	 *  @param item

+ 9 - 0
src/main/java/com/uas/platform/b2b/dao/PurchaseInquiryItemDao.java

@@ -203,4 +203,13 @@ public interface PurchaseInquiryItemDao extends JpaSpecificationExecutor<Purchas
      */
 	@Procedure(procedureName = "inquiryitem_erpstatus_update")
     void updateStatus(Long enuu, Short status);
+
+	/**
+	 * 更新首页公共询价单据的阅读状态
+	 *
+	 * @param id
+	 * @param userUU
+	 */
+	@Procedure(procedureName = "inquiryitems_readstatus")
+	void setReadStatus(Long id, Long useruu);
 }

+ 7 - 0
src/main/java/com/uas/platform/b2b/service/PurchaseInquiryService.java

@@ -270,4 +270,11 @@ public interface PurchaseInquiryService {
 	List<Long> getUnreadIds(String category);
 
 	Integer setReadByState(String category);
+
+	/**
+	 * 设置单据的阅读状态
+	 *
+	 * @param id
+	 */
+	void setReadStatus(Long id);
 }

+ 35 - 1
src/main/java/com/uas/platform/b2b/service/impl/PurchaseInquiryServiceImpl.java

@@ -49,6 +49,7 @@ import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.regex.Pattern;
 
@@ -730,7 +731,7 @@ public class PurchaseInquiryServiceImpl implements PurchaseInquiryService {
 
 	@Override
 	public List<InquiryMessage> getMessageList() {
-		String sql = "select * from (select p.id_id id,p.id_prid productId from purc$puinquiryitems p left join purc$puinquiry i on i.in_id = p.id_inid where i.in_isopen = 1 and i.in_enuu <> "
+		String sql = "select * from (select p.id_id id,p.id_prid productId,p.id_date as \"date\" from purc$puinquiryitems p left join purc$puinquiry i on i.in_id = p.id_inid where i.in_isopen = 1 and i.in_enuu <> "
 				+ SystemSession.getUser().getEnterprise().getUu()
 				+ "and i.in_enddate > trunc(sysdate) and nvl(p.id_overdue, 0) <> 1 order by id_id desc) where rownum <= 7";
 		List<PurcInquiryItem> items = commonDao.query(sql, PurcInquiryItem.class);
@@ -741,13 +742,40 @@ public class PurchaseInquiryServiceImpl implements PurchaseInquiryService {
 				Product prod = productDao.findOne(item.getProductId());
 				message.setPordName(prod.getTitle());
 				item = purcInquiryItemDao.findOne(item.getId());
+				message.setRead(getReadStatus(item.getId(), SystemSession.getUser().getUserUU()));
 				message.setInid(item.getId());
+				message.setLastest(isToday(item.getDate()));
 				messages.add(message);
 			}
 		}
 		return messages;
 	}
 
+	/**
+	 * 判断该条单据是否当天单据
+	 *
+	 * @param date
+	 * @return
+	 */
+	private boolean isToday(Date date) {
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
+		String inDate = sdf.format(date);
+		String nowDate = sdf.format(new Date());
+		return inDate.equals(nowDate);
+	}
+
+	/**
+	 * 当前公共询价明细的阅读状态
+	 *
+	 * @param id
+	 * @param userUU
+	 */
+	private boolean getReadStatus(Long id, Long userUU) {
+		String sql = "select count(1) from inquiryitems$readstatus where id_id = " + id + " and id_useruu = " + userUU;
+		Integer count = commonDao.queryForObject(sql, Integer.class);
+		return count == 0 ? false : true;
+	}
+
 	@Override
 	public void onReplyInvalid(List<Inquiry> inquiries) {
 		final Long enuu = SystemSession.getUser().getEnterprise().getUu();
@@ -853,4 +881,10 @@ public class PurchaseInquiryServiceImpl implements PurchaseInquiryService {
 		}
 		return deleteCount;
 	}
+
+	@Override
+	public void setReadStatus(Long id) {
+		if(null != id)
+			purchaseInquiryItemDao.setReadStatus(id, SystemSession.getUser().getUserUU());
+	}
 }

+ 34 - 2
src/main/java/com/uas/platform/b2b/temporary/model/InquiryMessage.java

@@ -2,8 +2,25 @@ package com.uas.platform.b2b.temporary.model;
 
 public class InquiryMessage {
 
-	private Long inid; // 询价详情id
-	private String pordName; // 物料名
+	/**
+	 * 询价详情id
+	 */
+	private Long inid;
+
+	/**
+	 * 物料名
+	 */
+	private String pordName;
+
+	/**
+	 * 是否状态
+	 */
+	private boolean read;
+
+	/**
+	 * 是否当天
+	 */
+	private boolean lastest;
 
 	public Long getInid() {
 		return inid;
@@ -21,4 +38,19 @@ public class InquiryMessage {
 		this.pordName = pordName;
 	}
 
+	public boolean isRead() {
+		return read;
+	}
+
+	public void setRead(boolean read) {
+		this.read = read;
+	}
+
+	public boolean isLastest() {
+		return lastest;
+	}
+
+	public void setLastest(boolean lastest) {
+		this.lastest = lastest;
+	}
 }

+ 9 - 0
src/main/webapp/resources/js/index/app.js

@@ -3708,6 +3708,15 @@
 
         });
 
+        // 设置阅读状态
+        $scope.setReadStatus = function(msg) {
+            if(!msg.read) {
+                PurcInquiry.setStatus({id: msg.inid}, {}, function(data) {
+
+                });
+            }
+        }
+
         $scope.searchMethod = false;
         var getService = function () {
             return $scope.searchMethod ? PurcInquiry : PurcInquiryInfo;

+ 11 - 4
src/main/webapp/resources/js/index/services/Purc.js

@@ -349,19 +349,22 @@ define([ 'ngResource'], function() {
                 params: {
                     itemId: 'itemId'
                 }
-            }, getItem: {
+            },
+            getItem: {
                 url: 'sale/inquiry/:itemId/info/mobile',
                 method: 'GET',
                 params: {
                     itemId: 'itemId'
                 }
-            }, saveItem: {
+            },
+            saveItem: {
                 url: 'sale/inquiry/items/:itemId/save',
                 method: 'POST',
                 params: {
                     itemId: 'itemId'
                 }
-            }, getHistory: {
+            },
+            getHistory: {
                 url: 'sale/inquiry/items/:itemId/history',
                 method: 'GET',
                 params: {
@@ -393,7 +396,11 @@ define([ 'ngResource'], function() {
 			exportXls: {
 				url: 'sale/inquiry/xls/permission',
 				method: 'GET'
-			}
+			},
+            setStatus: {
+                url: 'sale/inquiry/setReadStatus',
+                method: 'POST'
+            }
         });
         // 数据库直接获取
     }]).factory('PurcInquiryInfo', ['$resource', function($resource) {

+ 1 - 1
src/main/webapp/resources/tpl/index/home/left.html

@@ -184,7 +184,7 @@
 			<ul class="list-unstyled detail">
 				<li ng-repeat="msg in message | orderBy : '- inid'" class="day-unread">
 					<!--<span ng-show="tender.isNew"><img src="static/img/home/newTender.png"></span>-->
-					<a ui-sref="baseInfo.inquiryListDetail({id:msg.inid})"class="text-light">
+					<a ng-click="setReadStatus(msg)" ui-sref="baseInfo.inquiryListDetail({id:msg.inid})" class="text-light">
 						<em style="font-style: normal;">{{msg.pordName}}</em>
 						<img src="static/img/home/new.png"/>
 					</a>