Procházet zdrojové kódy

Merge branch 'dev-mysql' into feature_release-tomysql

hubert před 8 roky
rodič
revize
4324d18e8c
27 změnil soubory, kde provedl 354 přidání a 194 odebrání
  1. 14 0
      src/main/java/com/uas/platform/b2c/common/account/model/Enterprise.java
  2. 14 0
      src/main/java/com/uas/platform/b2c/common/account/model/User.java
  3. 9 17
      src/main/java/com/uas/platform/b2c/common/message/controller/InternalMessageController.java
  4. 1 12
      src/main/java/com/uas/platform/b2c/common/search/constant/SearchUrl.java
  5. 3 8
      src/main/java/com/uas/platform/b2c/common/search/rpc/service/Impl/SearchServiceImpl.java
  6. 0 5
      src/main/java/com/uas/platform/b2c/core/filter/SSOInterceptor.java
  7. 2 2
      src/main/java/com/uas/platform/b2c/fa/payment/service/impl/InstallmentStoreServiceImpl.java
  8. 24 19
      src/main/java/com/uas/platform/b2c/prod/commodity/constant/ModifyConstant.java
  9. 6 11
      src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ProductServiceImpl.java
  10. 10 31
      src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ReleaseProductByBatchServiceImpl.java
  11. 11 21
      src/main/java/com/uas/platform/b2c/trade/vendor/service/impl/VendorIntroductionServiceImpl.java
  12. binární
      src/main/resources/jxls-tpl/trade/goods.xls
  13. binární
      src/main/resources/jxls-tpl/trade/products-error.xls
  14. binární
      src/main/resources/jxls-tpl/trade/products.xls
  15. binární
      src/main/resources/jxls-tpl/trade/releaseByBatch-rmb.xls
  16. binární
      src/main/resources/jxls-tpl/trade/releaseByBatchError-rmb.xls
  17. binární
      src/main/resources/jxls-tpl/trade/releaseByBatchError-usd.xls
  18. binární
      src/main/resources/jxls-tpl/trade/releasebyBatch-usd.xls
  19. 0 1
      src/main/resources/prod/message.properties
  20. 11 5
      src/main/webapp/resources/js/usercenter/app.js
  21. 96 25
      src/main/webapp/resources/js/usercenter/controllers/forstore/messagePersonalCtrl.js
  22. 6 5
      src/main/webapp/resources/js/vendor/app.js
  23. 122 9
      src/main/webapp/resources/js/vendor/controllers/forstore/messagePersonalCtrl.js
  24. 5 1
      src/main/webapp/resources/js/vendor/controllers/forstore/vendor_upload_ctrl.js
  25. 18 20
      src/main/webapp/resources/view/usercenter/forstore/buyer_transfer.html
  26. 1 1
      src/main/webapp/resources/view/usercenter/forstore/messagePersonal.html
  27. 1 1
      src/main/webapp/resources/view/vendor/forstore/messagePersonal.html

+ 14 - 0
src/main/java/com/uas/platform/b2c/common/account/model/Enterprise.java

@@ -189,6 +189,20 @@ public class Enterprise implements Serializable {
 	@Transient
 	private Integer receiptStatus;
 
+	/**
+	 * 企业简介
+	 */
+	@Column(name = "en_description", length = 1000)
+	private String description;
+
+	public String getDescription() {
+		return description;
+	}
+
+	public void setDescription(String description) {
+		this.description = description;
+	}
+
 	public String getAccessSecret() {
 		return accessSecret;
 	}

+ 14 - 0
src/main/java/com/uas/platform/b2c/common/account/model/User.java

@@ -226,6 +226,12 @@ public class User implements Serializable {
 	@Column(name = "user_emlstatus")
 	private Integer emailValidCode;
 
+	/**
+	 * 微信openId
+	 */
+	@Column(name = "user_openid")
+	private String openId;
+
 	public Long getLastLoginTime() {
 		return lastLoginTime;
 	}
@@ -534,4 +540,12 @@ public class User implements Serializable {
 	public void setIdRemarks(String idRemarks) {
 		this.idRemarks = idRemarks;
 	}
+
+	public String getOpenId() {
+		return openId;
+	}
+
+	public void setOpenId(String openId) {
+		this.openId = openId;
+	}
 }

+ 9 - 17
src/main/java/com/uas/platform/b2c/common/message/controller/InternalMessageController.java

@@ -56,31 +56,22 @@ public class InternalMessageController {
      * 获取url
      */
     @RequestMapping(value = "/getUrl",method = RequestMethod.GET)
-    public ModelMap getUrl() {
+    public ModelMap getUrl(PageParams pageParams, Short isRead, String keyword) {
         ModelMap map = new ModelMap();
         User user = SystemSession.getUser();
         map.put("url", messageServiceUrl);
         map.put("userUU", user.getUserUU());
         map.put("enUU", user.getEnterprise().getUu());
+        map.put("page", pageParams.getPage());
+        map.put("timeSorting", pageParams.getSorting() == null ? "{\"createTime\":\"DESC\"}" : pageParams.getSorting());
+        map.put("count", pageParams.getCount());
+        map.put("isRead", isRead == null ? "" : isRead);
+        if (null != keyword && !"".equals(keyword)) {
+            map.put("keyword", keyword);
+        }
         return map;
     }
 
-
-/*    *//**
-     * 分页获取消息 (用户)
-     * @param recRole 接收角色
-     * @param timeSorting 时间排序
-     * @param classes 消息分类
-     * @param page 分页参数
-     * @return
-     *//*
-    @RequestMapping(value = "/private", method = RequestMethod.GET)
-    public ModelMap getMessagePagePrivate(@RequestParam(value = "recRole", defaultValue = "BUYER") String recRole, @RequestParam("timeSorting") String timeSorting, @RequestParam("classes") String classes, PageParams page) {
-        ModelMap map = new ModelMap();
-        map.put("messages", internalMessageService.getMessagePage(SystemSession.getUser().getUserUU(), (SystemSession.getUser().getEnterprise() != null ? SystemSession.getUser().getEnterprise().getUu(): null), recRole, timeSorting, classes, page));
-        return map;
-    }*/
-
     /**
      * 获取消息的方法
      *
@@ -121,6 +112,7 @@ public class InternalMessageController {
 //		return new ModelMap("toRead", pagingReleaseService.getToReadCount());
     }
 
+
     /**
      * 阅读消息
      * @param id

+ 1 - 12
src/main/java/com/uas/platform/b2c/common/search/constant/SearchUrl.java

@@ -15,18 +15,7 @@ public class SearchUrl {
     /**
      * 获取企业物料
      */
-    public static final String ALL_PRODUCT_ID_URL = "/search/productIds?enUU={enUU}&keyword={keyword}&page={page}&size={size}";
-
-
-    /**
-     * 获取企业物料(标准)
-     */
-    public static final String STANDARD_PRODUCT_ID_URL = "/search/standardProductIds?enUU={enUU}&keyword={keyword}&page={page}&size={size}";
-
-    /**
-     * 获取企业物料(非标准)
-     */
-    public static final String NONSTANDARD_PRODUCT_ID_URL = "/search/nonStandardProductIds?enUU={enUU}&keyword={keyword}&page={page}&size={size}";
+    public static final String PRODUCT_ID_URL = "/search/productIds?enUU={enUU}&keyword={keyword}&page={page}&size={size}&type={type}";
 
     /**
      * 获取类目的数据

+ 3 - 8
src/main/java/com/uas/platform/b2c/common/search/rpc/service/Impl/SearchServiceImpl.java

@@ -78,14 +78,9 @@ public class SearchServiceImpl implements SearchService{
     public SPage<Long> getProducts(Long enUU, String keyword, Integer page, Integer size, String type) throws SearchException {
         Map<String, Object> map = initSearchMap(keyword, page, size);
         map.put("enUU", enUU);
-        String str = "";
-        if (type.equals("standard")) {
-            str = restTemplate.getForObject(sysConf.getSearchUrl() + SearchUrl.STANDARD_PRODUCT_ID_URL, String.class, map);
-        } else if (type.equals("nStandard")) {
-            str = restTemplate.getForObject(sysConf.getSearchUrl() + SearchUrl.NONSTANDARD_PRODUCT_ID_URL, String.class, map);
-        } else if (type.equals("all")) {
-            str = restTemplate.getForObject(sysConf.getSearchUrl() + SearchUrl.ALL_PRODUCT_ID_URL, String.class, map);
-        }
+        // standard 标准  nStandard 非标 其他为所有
+        map.put("type", type);
+        String str = restTemplate.getForObject(sysConf.getSearchUrl() + SearchUrl.PRODUCT_ID_URL, String.class, map);
         if(StringUtils.isEmpty(str)) {
             return null;
         } else {

+ 0 - 5
src/main/java/com/uas/platform/b2c/core/filter/SSOInterceptor.java

@@ -99,7 +99,6 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
 
     @Override
     protected boolean onAuthenticateFailed(HttpServletRequest request, HttpServletResponse response) {
-        logger.info("当前访问进入------------>>>>onAuthenticateFailed()方法!");
         SystemSession.clear();
         if (request.getRequestURI().endsWith(PathConstant.AUTHENTICATION_URL)) {
             return true;
@@ -180,11 +179,9 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
         if (request.getPathInfo() != null) {
             resourceUrl = resourceUrl + request.getPathInfo();
         }
-        logger.info("【"+user.getUserUU()+"当前访问路径】:*******"+"resourceUrl:"+resourceUrl);
         if (null == configAttributes || configAttributes.size() == 0 || user.isSys() || user.getEnterprise() == null) {
             return;
         }
-        logger.info("【"+user.getUserUU()+"当前资源的权限】:*******"+"configAttributes:"+FastjsonUtils.toJson(configAttributes));
         Iterator<ConfigAttribute> iterator = configAttributes.iterator();
         String needPermission = null;
         if (null == authorities || !authorities.containsKey(user.getUserUU())) {
@@ -192,7 +189,6 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
         }
         //获取当前登录用户的所有权限;
         Collection<GrantedAuthority> userAuthorities = authorities.get(user.getUserUU());
-        logger.info("【"+user.getUserUU()+"用户所有权限】:*******"+"userAuthorities:"+FastjsonUtils.toJson(userAuthorities));
         //匹配当前访问权限;
         while (iterator.hasNext()) {
             ConfigAttribute configAttribute = iterator.next();
@@ -249,7 +245,6 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
 				resourceMap.put(resource.getMethod() + ":" + resource.getUrl(), configAttributes);
 			}
 		}
-		logger.info("【权限控制资源】"+"size:"+resourceMap.size()+"*******"+"resourceMap:"+FastjsonUtils.toJSON(resourceMap));
     }
 
     /**

+ 2 - 2
src/main/java/com/uas/platform/b2c/fa/payment/service/impl/InstallmentStoreServiceImpl.java

@@ -90,9 +90,9 @@ public class InstallmentStoreServiceImpl implements InstallmentStoreService{
 
         InstallmentStore installmentStore = installmentStoreDao.findByEnuuAndEnable(SystemSession.getUser().getEnterprise().getUu(), (short) 1);
         if (installmentStore == null) {
-            return "fail";
-        } else {
             return "success";
+        } else {
+            return "fail";
         }
     }
 }

+ 24 - 19
src/main/java/com/uas/platform/b2c/prod/commodity/constant/ModifyConstant.java

@@ -23,12 +23,12 @@ public class ModifyConstant {
     /**
      * The constant TOTAL_ROW.
      */
-    public static final int TOTAL_COLUMN = 21;
+    public static final int TOTAL_COLUMN = 22;
 
     /**
      * The constant MAX_TOTAL_COLUMN.
      */
-    public static final int MAX_TOTAL_COLUMN = 22;
+    public static final int MAX_TOTAL_COLUMN = 23;
 
     /**
      * 产品编码
@@ -50,88 +50,93 @@ public class ModifyConstant {
      */
     public static final int PRODUCT_BRAND = 3;
 
+    /**
+     * The constant PRODUCT_BRAND.
+     */
+    public static final int PRODUCT_SPEC = 4;
+
     /**
      * The constant PRODUCE_DATE.
      */
-    public static final int PRODUCE_DATE = 4;
+    public static final int PRODUCE_DATE = 5;
 
     /**
      * The constant PACKAGE_METHOD.
      */
-    public static final int PACKAGE_METHOD = 5;
+    public static final int PACKAGE_METHOD = 6;
 
     /**
      * The constant MIN_DELIVERY.
      */
-    public static final int MIN_DELIVERY = 6;
+    public static final int MIN_DELIVERY = 7;
 
     /**
      * The constant MAX_DELIVERY.
      */
-    public static final int MAX_DELIVERY = 7;
+    public static final int MAX_DELIVERY = 8;
 
     /**
      * The constant BREAK_UP.
      */
-    public static final int BREAK_UP = 8;
+    public static final int BREAK_UP = 9;
 
     /**
      * The constant PACKAGE_NUMBER.
      */
-    public static final int PACKAGE_NUMBER = 9;
+    public static final int PACKAGE_NUMBER = 10;
 
     /**
      * 最小起订量
      */
-    public static final int BUY_MIN_QTY = 10;
+    public static final int BUY_MIN_QTY = 11;
 
     /**
      * 分段价格开始
      */
-    public static final int PRICE_FIRST = 11;
+    public static final int PRICE_FIRST = 12;
 
     /**
      * 第二个分段
      */
-    public static final int QTY_SECOND_START = 12;
+    public static final int QTY_SECOND_START = 13;
 
     /**
      * 第二个分段
      */
-    public static final int PRICE_SECOND = 13;
+    public static final int PRICE_SECOND = 14;
 
     /**
      * 第三个分段
      */
-    public static final int QTY_THIRD_START = 14;
+    public static final int QTY_THIRD_START = 15;
 
     /**
      * 第三个分段
      */
-    public static final int PRICE_THIRD = 15;
+    public static final int PRICE_THIRD = 16;
 
     /**
      * The constant SALE_METHOD.
      */
-    public static final int SALE_METHOD = 16;
+    public static final int SALE_METHOD = 17;
 
     /**
      * The constant RESERVE_NUMBER.
      */
-    public static final int RESERVE_NUMBER = 17;
+    public static final int RESERVE_NUMBER = 18;
 
     /**
      * The constant CUSTOM_LABEL.
      */
-    public static final int CUSTOM_LABEL = 18;
+    public static final int CUSTOM_LABEL = 19;
 
     /**
      * The constant SALE_STATUS.
      */
-    public static final int SALE_STATUS = 19;
+    public static final int SALE_STATUS = 20;
 
     /**
      * The constant MATCH_STATUS.
      */
-    public static final int MATCH_STATUS = 20;
+    public static final int MATCH_STATUS = 21;
 }

+ 6 - 11
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ProductServiceImpl.java

@@ -258,12 +258,12 @@ public class ProductServiceImpl implements ProductService {
     @Override
     public Page<V_ProductPrivate> getAllProducts(final PageInfo page, String keyword, String type, Long userUU) {
         Long enUU = SystemSession.getUser().getEnterprise().getUu();
-//        page.expression(PredicateUtils.eq("enUU", enuu, true));
-//        page.expression(PredicateUtils.isNotNull("pcmpcode"));
-//        page.expression(PredicateUtils.isNotNull("pbranden"));
         if (StringUtils.isEmpty(type)) {
             type = "nStandard";
         }
+//        page.expression(PredicateUtils.eq("enUU", enuu, true));
+//        page.expression(PredicateUtils.isNotNull("pcmpcode"));
+//        page.expression(PredicateUtils.isNotNull("pbranden"));
 //        if (type.contains("standard")) {
 //           SPage<Long> ids = searchService.get
 //        } else if (type.contains("nonStandard")) {
@@ -585,12 +585,6 @@ public class ProductServiceImpl implements ProductService {
                 }
                 productPrivate.setB2cEnabled(IntegerConstant.NO_SHORT);
                 productPrivateDao.save(productPrivate);
-                product.setB2cEnabled(IntegerConstant.NO_SHORT);
-                // 设置物料不可用时,为了更新索引,也需要更新物料资料
-                product.setIsSale(Constant.NO);
-                product.setIsPurchase(Constant.NO);
-                product.setErpDate(new Date());
-                productDao.save(product);
                 //productDao.delete(id);  不允许删除
             } else {
                 throw new
@@ -1600,8 +1594,9 @@ public class ProductServiceImpl implements ProductService {
             standard = v_productPersonDao.getCountByEnuuAndUserUUAndStatusAndEnabled(enUU, userUU, ShortConstant.YES_SHORT, IntegerConstant.YES_SHORT);
             nStandard = v_productPersonDao.getCountByEnuuAndUserUUAndStatusAndEnabled(enUU, userUU, ShortConstant.NO_SHORT, IntegerConstant.YES_SHORT);
         } else {
-            standard = productDao.getCountByEnuuAndStatusAndEnabled(enUU, ShortConstant.YES_SHORT, IntegerConstant.YES_SHORT);
-            nStandard = productDao.getCountByEnuuAndStatusAndEnabled(enUU, ShortConstant.NO_SHORT, IntegerConstant.YES_SHORT);
+            // 数据量大时,从数据库查询数量也变得很慢,所以改用查索引获取 dongbw 2018年5月28日 11:24:17
+            standard = (int) searchService.getProducts(enUU, null, 1, 10, "standard").getTotalElement();
+            nStandard = (int) searchService.getProducts(enUU, null, 1, 10, "nStandard").getTotalElement();
         }
         resultMap.put("standard", standard);
         resultMap.put("nStandard", nStandard);

+ 10 - 31
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ReleaseProductByBatchServiceImpl.java

@@ -12,22 +12,9 @@ import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.core.utils.NumberUtil;
 import com.uas.platform.b2c.core.utils.RegexConstant;
 import com.uas.platform.b2c.core.utils.StringUtilB2C;
-import com.uas.platform.b2c.prod.commodity.constant.DoubleConstant;
-import com.uas.platform.b2c.prod.commodity.constant.ErrorInfoConstant;
-import com.uas.platform.b2c.prod.commodity.constant.ModifyConstant;
-import com.uas.platform.b2c.prod.commodity.constant.ShortConstant;
-import com.uas.platform.b2c.prod.commodity.constant.UploadConstant;
-import com.uas.platform.b2c.prod.commodity.dao.GoodsDao;
-import com.uas.platform.b2c.prod.commodity.dao.ProductDao;
-import com.uas.platform.b2c.prod.commodity.dao.ProductPersonDao;
-import com.uas.platform.b2c.prod.commodity.dao.ProductPrivateDao;
-import com.uas.platform.b2c.prod.commodity.dao.ReleaseProductByBatchDao;
-import com.uas.platform.b2c.prod.commodity.model.Goods;
-import com.uas.platform.b2c.prod.commodity.model.GoodsQtyPrice;
-import com.uas.platform.b2c.prod.commodity.model.Product;
-import com.uas.platform.b2c.prod.commodity.model.ProductPerson;
-import com.uas.platform.b2c.prod.commodity.model.ProductPrivate;
-import com.uas.platform.b2c.prod.commodity.model.ReleaseProductByBatch;
+import com.uas.platform.b2c.prod.commodity.constant.*;
+import com.uas.platform.b2c.prod.commodity.dao.*;
+import com.uas.platform.b2c.prod.commodity.model.*;
 import com.uas.platform.b2c.prod.commodity.service.GoodsService;
 import com.uas.platform.b2c.prod.commodity.service.ReleaseProductByBatchService;
 import com.uas.platform.b2c.prod.commodity.util.GoodsUtil;
@@ -45,11 +32,7 @@ import com.uas.platform.core.persistence.criteria.SimpleExpression;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.poi.hssf.usermodel.HSSFCell;
 import org.apache.poi.hssf.usermodel.HSSFDateUtil;
-import org.apache.poi.ss.usermodel.Cell;
-import org.apache.poi.ss.usermodel.DateUtil;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.ss.usermodel.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.dao.DataAccessException;
@@ -72,16 +55,7 @@ import java.sql.SQLException;
 import java.sql.Statement;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -455,6 +429,7 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 		} else {
 			goods.setSelfSale("1");
 		}
+		goods.setSpec(aBatch.getSpec());
 		goods.setStatus(aBatch.getStatus());
 	}
 
@@ -480,6 +455,10 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 				rowNum, ModifyConstant.PRODUCT_CODE);
 		aProduct.setCode(StringUtilB2C.getStr(codeValue));
 
+		Object specValue = readWorkBookCell(row.getCell(ModifyConstant.PRODUCT_SPEC), Cell.CELL_TYPE_STRING,
+				rowNum, ModifyConstant.PRODUCT_SPEC);
+		aProduct.setSpec(StringUtilB2C.getStr(specValue));
+
 		Cell productCell = row.getCell(ModifyConstant.PRODUCE_DATE);
 		if (productCell != null && productCell.getCellType() == 0) {
 			if (HSSFDateUtil.isCellDateFormatted(productCell)) {

+ 11 - 21
src/main/java/com/uas/platform/b2c/trade/vendor/service/impl/VendorIntroductionServiceImpl.java

@@ -1,12 +1,15 @@
 package com.uas.platform.b2c.trade.vendor.service.impl;
 
 import com.uas.platform.b2c.common.base.dao.CommonDao;
+import com.uas.platform.b2c.common.search.rpc.service.SearchService;
+import com.uas.platform.b2c.common.search.util.SPage;
 import com.uas.platform.b2c.core.constant.IntegerConstant;
 import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.prod.commodity.dao.V_ProductPrivateDao;
 import com.uas.platform.b2c.prod.commodity.model.V_ProductPrivate;
 import com.uas.platform.b2c.trade.vendor.model.VendorIntroduction;
 import com.uas.platform.b2c.trade.vendor.service.VendorIntroductionService;
+import com.uas.ps.core.util.CollectionUtils;
 import com.uas.sso.support.Page;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -27,6 +30,9 @@ public class VendorIntroductionServiceImpl implements VendorIntroductionService
 	@Autowired
 	private V_ProductPrivateDao v_productPrivateDao;
 
+	@Autowired
+	private SearchService searchService;
+
 	/**
 	 * 获取供应商资源列表
 	 * @param page    页码
@@ -64,28 +70,12 @@ public class VendorIntroductionServiceImpl implements VendorIntroductionService
 	 */
 	@Override
 	public Page<V_ProductPrivate> getVendorProductList(int page, int size, Long vendUU, String keyword) {
-		String whereCondition = " 1 = 1 ";
-		if (!StringUtils.isEmpty(keyword)) {
-		    keyword = keyword.trim();
-			// 物料名称、规格、品牌、原厂型号、单位
-			whereCondition = " (pr_title like '%" + keyword + "%' or pr_spec like '%" + keyword + "%' or pr_brand like '%"
-					+ keyword + "%' or pr_cmpcode like '%" + keyword + "%' or pr_unit like '%" + keyword + "%' or pr_kind like '%"
-					+ keyword + "%') ";
+		SPage<Long> ids = searchService.getProducts(vendUU, keyword, page, size, "all");
+		if (CollectionUtils.isEmpty(ids.getContent())) {
+			return null;
 		}
-		long start = System.currentTimeMillis();
-		// and Pr_Title not like '%测试%' and lower(Pr_Title) not like '%test%' and Pr_code not like '%测试%' and lower(Pr_code) not like '%test%'
-		String prodSql = "select a.* from (select pr_id id, pr_code prodNum, pr_title prodName, pr_spec spec, pr_cmpcode cmpCode, pr_unit unit, pr_kind kind, "
-				+ " pr_brand brand, pr_pbranden pbranden, pr_standard standard from v$product$private where pr_enuu = "
-				+ vendUU + " and " + whereCondition + " and pr_pbranden is not null and pr_pcmpcode is not null and ifnull(pr_b2cenabled, 1) <> 0 order by pr_standard desc, pr_id desc) a limit " + (page - 1) * size + "," + size;
-//		System.out.println("prod:" + prodSql);
-		// and Pr_Title not like '%测试%' and lower(Pr_Title) not like '%test%' and Pr_code not like '%测试%' and lower(Pr_code) not like '%test%'
-		String countSql = "select count(1) from v$product$private where pr_enuu = " + vendUU + " and " + whereCondition
-				+ " and pr_pbranden is not null and pr_pcmpcode is not null and ifnull(pr_b2cenabled, 1) <> 0";
-		Integer count = commonDao.queryForObject(countSql, Integer.class);
-//		System.out.println("count:" + countSql);
-		List<V_ProductPrivate> products = commonDao.query(prodSql, V_ProductPrivate.class);
-//		System.out.println("耗时" + (System.currentTimeMillis() - start));
-		return new Page<>(page, size, products, count);
+		List<V_ProductPrivate> productPrivateList = v_productPrivateDao.findAll(ids.getContent());
+		return new Page<>(page, size, productPrivateList, (int) ids.getTotalElement());
 	}
 
 	/**

binární
src/main/resources/jxls-tpl/trade/goods.xls


binární
src/main/resources/jxls-tpl/trade/products-error.xls


binární
src/main/resources/jxls-tpl/trade/products.xls


binární
src/main/resources/jxls-tpl/trade/releaseByBatch-rmb.xls


binární
src/main/resources/jxls-tpl/trade/releaseByBatchError-rmb.xls


binární
src/main/resources/jxls-tpl/trade/releaseByBatchError-usd.xls


binární
src/main/resources/jxls-tpl/trade/releasebyBatch-usd.xls


+ 0 - 1
src/main/resources/prod/message.properties

@@ -2,7 +2,6 @@ tplNotifySupplierAfterCommit=3c70dd8f-0e1e-4aec-bd7f-c360a506f35e
 plaformB2cAuditRemindTemplateId=774296f3-a260-4bb5-b4eb-6f01090dadf3
 plaformB2cBrandApprovedTemplateId=5b5effdf-5562-45f7-9021-18f21e29bec6
 plaformB2cBrandUnproveTemplateId=03b3d658-cd92-43a0-a53f-103492cfc595
-tplAfterBeAddedtoB2C=b9dee589-9fd8-45d3-9b2a-64b56d65e7e2
 plaformB2cComponentApprovedTemplateId=36812a85-d0f9-4d2a-a7aa-62319f092b6f
 plaformB2cComponentUnproveTemplateId=6228240a-93ba-405f-851c-f874a6c99864
 plaformB2cSupplyChainTemplateId=b28337ba-f115-4f11-b457-15d558443160

+ 11 - 5
src/main/webapp/resources/js/usercenter/app.js

@@ -711,15 +711,16 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'commo
 
 
     /**
-     * 家中心头部
+     * 家中心头部
      */
     app.controller('UserCenterHeaderCtrl', ['$scope', '$rootScope', 'BaseService', 'InternalMessage', '$http', 'toaster', function ($scope, $rootScope, BaseService, InternalMessage, $http, toaster) {
-        $scope.homeUrl = BaseService.getRootPath();
+		$scope.homeUrl = BaseService.getRootPath();
+        console.info($rootScope.userInfo);
         InternalMessage.getUrl({}, function(data) {
             var url = data.url;
             if (url == "http://218.17.158.219:24000/message") {
-				url = 'http://192.168.253.6:24000/message';
-			}
+                url = 'http://192.168.253.6:24000/message';
+            }
             var param = {
                 'receiverUu': data.userUU,
                 'receiverEnuu': data.enUU,
@@ -732,7 +733,6 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'commo
                 url: url + '/messages/count',
                 params: param
             }).success(function (data) {
-            	console.info(data.count);
                 $rootScope.unReadMessCount = data.count;
             }).error(function (err) {
                 toaster.pop('error', err || '获取未读消息数量失败');
@@ -744,6 +744,12 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'commo
         //     toaster.pop('error', err || '获取未读消息数量失败');
         // })
     }]);
+        /*InternalMessage.getUnread({isRead: 0}, function (data) {
+            $rootScope.unReadMessCount = data.toRead;
+        }, function (err) {
+            toaster.pop('error', err || '获取未读消息数量失败');
+        })
+    }]);*/
 	/**
 	 * 采购单状态
 	 */

+ 96 - 25
src/main/webapp/resources/js/usercenter/controllers/forstore/messagePersonalCtrl.js

@@ -2,15 +2,15 @@
  * Created by yangck on 2017/3/30.
  */
 define(['app/app'], function(app) {
-    app.register.controller('MessagePersonalCtrl', ['$scope', '$rootScope', 'InternalMessage', 'toaster', '$sce', function($scope, $rootScope, InternalMessage, toaster, $sce) {
+    app.register.controller('MessagePersonalCtrl', ['$scope', '$rootScope', 'InternalMessage', 'toaster', '$sce', '$http', function($scope, $rootScope, InternalMessage, toaster, $sce, $http) {
         $rootScope.active = 'message';
         $scope.message = {};
         $scope.params = {
             page: 1,
             count: 10,
-            timeSorting: 'DESC',
+            timeSorting: '{\"createTime\":\"DESC\"}',
             classes: '',
-            recRole: 'BUYER'
+            recRole: 'BUYER',
         };
         $scope.deleteIds = [];
         $scope.isChoosedAll = false;
@@ -203,8 +203,7 @@ define(['app/app'], function(app) {
         };*/
         // 时间排序
         $scope.orderTime = function () {
-            $scope.params.timeSorting = $scope.params.timeSorting == 'DESC' ? 'ASC' : 'DESC'
-            $scope.params.sorting = {createTime: $scope.params.timeSorting};
+            $scope.params.timeSorting = $scope.params.timeSorting == '{\"createTime\":\"DESC\"}' ? '{\"createTime\":\"ASC\"}' : '{\"createTime\":\"DESC\"}';
             getData();
         };
 
@@ -320,39 +319,111 @@ define(['app/app'], function(app) {
         $scope.unReadMessCount = $rootScope.unReadMessCount;
         $scope.allReadMessCount = 0;
         var getData = function () {
-            InternalMessage.getUnread({}, function (data) {
-                $scope.allReadMessCount = data.toRead;
+            InternalMessage.getUrl({}, function(data) {
+
+                var url = data.url;
+                if (url == "http://218.17.158.219:24000/message") {
+                    url = 'http://192.168.253.6:24000/message';
+                }
+                var param = {
+                    'receiverUu': data.userUU,
+                    'receiverEnuu': data.enUU,
+                    'consumerApp': 'MALL',
+                    isRead: null
+                };
+                $http({
+                    method: 'get',
+                    dataType: 'json',
+                    url: url + '/messages/count',
+                    params: param
+                }).success(function (data) {
+                    $scope.allReadMessCount = data.count;
+                }).error(function (err) {
+                    toaster.pop('error', err || '获取未读消息数量失败');
+                });
+            })
+              /*  $scope.allReadMessCount = data.toRead;
             }, function (err) {
                 toaster.pop('error', err || '获取未读消息数量失败');
-            })
-            InternalMessage.getMessagesPagePrivate($scope.params, function(data) {
-                if (data) {
-                    console.log(data);
-                    $scope.messageAllData = data;
-                    $scope.messageCurrent = data.content;
-                    angular.forEach($scope.messageCurrent, function(message) {
-                        message.content = $sce.trustAsHtml(message.content);
-                    });
-                    $scope.params.currentPage = data.number;
-                    $scope.acculatePages(data.number, data.totalPages);
+            })*/
+            InternalMessage.getUrl({}, function(info) {
+                if (info) {
+                    var url = info.url;
+                    if (url == "http://218.17.158.219:24000/message") {
+                        url = 'http://192.168.253.6:24000/message';
+                    }
+                    var param = {
+                        'receiverUu': info.userUU,
+                        'receiverEnuu': info.enUU,
+                        'consumerApp': 'MALL',
+                        isRead : $scope.params.isRead,
+                        page: $scope.params.page,
+                        count: 10,
+                        sorting: $scope.params.timeSorting ,
+                        classes: '',
+                        recRole: 'SELLER',
+                    }
+                    $http({
+                        method: 'get',
+                        dataType: 'json',
+                        url: url + '/messages',
+                        params: param
+                    }).success(function (data) {
+                        $scope.messageAllData = data;
+                        $scope.messageCurrent = data.content;
 
+                        var mess = new Array();
+                        var b = '';
+                        angular.forEach($scope.messageCurrent, function (message) {
+                            message.content = $sce.trustAsHtml(message.content);
+                            if(message.type =="MALL跳转卖家待报价页面"){
+                                message.url='/vendor#/seekPurchase';
+                            }else if (message.type =="MALL公共询价"){
+                                message.url='/user#/seekPurchase';
+                            }else if (message.type =="商城公共询价采纳结果"){
+                                message.url='/vendor#/vendorPurchaseOffer';
+                            }
+                            if(message.isRead !=1 ){
+                                b += message.id +",";
+                            }
+                        })
+                        mess = b.substring(0, b.length - 1);
+                        var param = {
+                            'receiverUu': info.userUU,
+                            'receiverEnuu': info.enUU,
+                            'messageId': mess,
+                            'consumerApp': 'MALL'
+
+                        };
+                        $http({
+                            method: 'post',
+                            dataType: 'json',
+                            url: url + '/messages/read',
+                            data:param
+                        });
+                        $scope.params.currentPage = data.number;
+                        $scope.acculatePages(data.number, data.totalPages);
+                    }).error(function (err) {
+                        toaster.pop('error', err || '获取未读消息数量失败');
+                    })
                     if ($scope.tab == 'no') {
                         // $rootScope.unReadMessCount = data.totalElements;
                     } else {
-                        var params = {
+                        var param = {
                             page: 1,
                             count: 10,
                             timeSorting: 'DESC',
                             classes: '',
                             recRole: 'SELLER',
-                            isRead: 0
+                            'isRead': 0
                         };
-                        InternalMessage.getMessagesPagePrivate(params, function(data) {
-                            InternalMessage.getUnread({isRead: 0}, function (data) {
-                                $rootScope.unReadMessCount = data.toRead;
-                                $scope.unReadMessCount = data.toRead
+
+                            /*InternalMessage.getUnread({isRead: 0}, function (data) {*/
+                                InternalMessage.getUrl({isRead: 0}, function (data) {
+                                $rootScope.unReadMessCount = data.count;
+                                $scope.unReadMessCount = data.count;
                             })
-                        })
+
                     }
                 }
             }, function(response) {

+ 6 - 5
src/main/webapp/resources/js/vendor/app.js

@@ -954,8 +954,9 @@ define([ 'angularAMD', 'ngLocal', 'common/services', 'common/directives', 'commo
 	/**
 	 * 卖家中心头部
 	 */
-	app.controller('VendorCenterHeaderCtrl', ['$scope', '$rootScope', 'BaseService', 'InternalMessage', '$http', 'toaster', function ($scope, $rootScope, BaseService, InternalMessage, $http, toaster) {
-		$scope.homeUrl = BaseService.getRootPath();
+    app.controller('VendorCenterHeaderCtrl', ['$scope', '$rootScope', 'BaseService', 'InternalMessage', '$http', 'toaster', function ($scope, $rootScope, BaseService, InternalMessage, $http, toaster) {
+        $scope.homeUrl = BaseService.getRootPath();
+        /*console.info($rootScope.userInfo);*/
         InternalMessage.getUrl({}, function(data) {
             var url = data.url;
             if (url == "http://218.17.158.219:24000/message") {
@@ -973,9 +974,9 @@ define([ 'angularAMD', 'ngLocal', 'common/services', 'common/directives', 'commo
                 url: url + '/messages/count',
                 params: param
             }).success(function (data) {
-            	console.info(data.count);
                 $rootScope.unReadMessCount = data.count;
-            }).error(function (err) {
+
+            }).error(function (response) {
                 toaster.pop('error', err || '获取未读消息数量失败');
             });
         });
@@ -984,7 +985,7 @@ define([ 'angularAMD', 'ngLocal', 'common/services', 'common/directives', 'commo
         // }, function (err) {
         //     toaster.pop('error', err || '获取未读消息数量失败');
         // })
-	}]);
+    }]);
 
 	/**
 	 * 卖家中心菜单控制器

+ 122 - 9
src/main/webapp/resources/js/vendor/controllers/forstore/messagePersonalCtrl.js

@@ -2,13 +2,13 @@
  * Created by yangck on 2017/3/30.
  */
 define(['app/app'], function(app) {
-    app.register.controller('MessagePersonalCtrl', ['$scope', '$rootScope', 'InternalMessage', 'toaster', '$sce', function($scope, $rootScope, InternalMessage, toaster, $sce) {
+    app.register.controller('MessagePersonalCtrl', ['$scope', '$rootScope', 'InternalMessage', 'toaster', '$sce', '$http', function($scope, $rootScope, InternalMessage, toaster, $sce, $http) {
         $rootScope.active = 'message';
         $scope.message = {};
         $scope.params = {
             page: 1,
             count: 10,
-            timeSorting: 'DESC',
+            timeSorting: '{\"createTime\":\"DESC\"}',
             classes: '',
             recRole: 'SELLER'
         };
@@ -197,8 +197,9 @@ define(['app/app'], function(app) {
 
         // 时间排序
         $scope.orderTime = function () {
-            $scope.params.timeSorting = $scope.params.timeSorting == 'DESC' ? 'ASC' : 'DESC'
-            $scope.params.sorting = {createTime: $scope.params.timeSorting};
+            /*$scope.params.timeSorting = $scope.params.timeSorting == 'DESC' ? 'ASC' : 'DESC'
+            $scope.params.sorting = {createTime: $scope.params.timeSorting};*/
+            $scope.params.timeSorting = $scope.params.timeSorting == '{\"createTime\":\"DESC\"}' ? '{\"createTime\":\"ASC\"}' : '{\"createTime\":\"DESC\"}';
             getData();
         };
 
@@ -220,11 +221,11 @@ define(['app/app'], function(app) {
             });
         };
 
-        $scope.unReadMessCount = $rootScope.unReadMessCount;
+        /*$scope.unReadMessCount = $rootScope.unReadMessCount;
         $scope.isReadMessCount = 0;
         var getData = function () {
-            /*InternalMessage.getUnread({isRead: 0}, function (data) {
-                $scope.unReadMessCount = data.toRead;*/
+            /!*InternalMessage.getUnread({isRead: 0}, function (data) {
+                $scope.unReadMessCount = data.toRead;*!/
             InternalMessage.getUnread({}, function (data) {
                 $scope.allReadMessCount = data.toRead;
             }, function (err) {
@@ -240,9 +241,9 @@ define(['app/app'], function(app) {
                     });
                     $scope.params.currentPage = data.number;
                     $scope.acculatePages(data.number, data.totalPages);
-                   /* if ($scope.tab == 'all') {
+                   /!* if ($scope.tab == 'all') {
                         $scope.isReadMessCount = data.totalElements;
-                    }*/
+                    }*!/
                     var params = {
                         page: 1,
                         count: 10,
@@ -278,7 +279,119 @@ define(['app/app'], function(app) {
             }, function(response) {
                 toaster.pop('error', '获取消息失败,请重新刷新界面,');
             });
+        };*/
+        $scope.unReadMessCount = $rootScope.unReadMessCount;
+        $scope.allReadMessCount = 0;
+        var getData = function () {
+            InternalMessage.getUrl({}, function(data) {
+
+                var url = data.url;
+                if (url == "http://218.17.158.219:24000/message") {
+                    url = 'http://192.168.253.6:24000/message';
+                }
+                var param = {
+                    'receiverUu': data.userUU,
+                    'receiverEnuu': data.enUU,
+                    'consumerApp': 'MALL',
+                    isRead: null
+                };
+                $http({
+                    method: 'get',
+                    dataType: 'json',
+                    url: url + '/messages/count',
+                    params: param
+                }).success(function (data) {
+                    $scope.allReadMessCount = data.count;
+                }).error(function (err) {
+                    toaster.pop('error', err || '获取未读消息数量失败');
+                });
+            })
+            InternalMessage.getUrl({}, function(info) {
+                if (info) {
+                    var url = info.url;
+                    if (url == "http://218.17.158.219:24000/message") {
+                        url = 'http://192.168.253.6:24000/message';
+                    }
+                    var param = {
+                        'receiverUu': info.userUU,
+                        'receiverEnuu': info.enUU,
+                        'consumerApp': 'MALL',
+                        isRead : $scope.params.isRead,
+                        page: $scope.params.page,
+                        count: 10,
+                        sorting: $scope.params.timeSorting ,
+                        classes: '',
+                        recRole: 'SELLER',
+                    }
+                    $http({
+                        method: 'get',
+                        dataType: 'json',
+                        url: url + '/messages',
+                        params: param
+                    }).success(function (data) {
+                        $scope.messageAllData = data;
+                        $scope.messageCurrent = data.content;
+
+                        var mess = new Array();
+                        var b = '';
+                        angular.forEach($scope.messageCurrent, function (message) {
+                            message.content = $sce.trustAsHtml(message.content);
+                            if(message.type =="MALL跳转卖家待报价页面"){
+                                message.url='/vendor#/seekPurchase';
+                            }else if (message.type =="MALL公共询价"){
+                                message.url='/user#/seekPurchase';
+                            }else if (message.type =="商城公共询价采纳结果"){
+                                message.url='/vendor#/vendorPurchaseOffer';
+                            }
+
+                            if(message.isRead != 1){
+                                b += message.id +",";
+                            }
+                        })
+                        mess = b.substring(0, b.length - 1);
+                        var param = {
+                            'receiverUu': info.userUU,
+                            'receiverEnuu': info.enUU,
+                            'messageId': mess,
+                            'consumerApp': 'MALL'
+
+                        };
+                        $http({
+                            method: 'post',
+                            dataType: 'json',
+                            url: url + '/messages/read',
+                            data:param
+                        });
+                        $scope.params.currentPage = data.number;
+                        $scope.acculatePages(data.number, data.totalPages);
+                    }).error(function (err) {
+                        toaster.pop('error', err || '获取未读消息数量失败');
+                    })
+                    if ($scope.tab == 'no') {
+                        // $rootScope.unReadMessCount = data.totalElements;
+                    } else {
+                        var param = {
+                            page: 1,
+                            count: 10,
+                            timeSorting: 'DESC',
+                            classes: '',
+                            recRole: 'SELLER',
+                            'isRead': 0
+                        };
+                        InternalMessage.getUrl({}, function(data) {
+                            /*InternalMessage.getUnread({isRead: 0}, function (data) {*/
+                            InternalMessage.getUrl({isRead: 0}, function (data) {
+                                $rootScope.unReadMessCount = data.count;
+                                $scope.unReadMessCount = data.count;
+                            })
+                        })
+                    }
+                }
+            }, function(response) {
+                toaster.pop('error', '获取消息失败,请重新刷新界面,');
+            });
         };
+
         // 批量删除
         $scope.deleteBatch = function () {
             var hasDelete = false;

+ 5 - 1
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_upload_ctrl.js

@@ -274,7 +274,11 @@ define([ 'app/app' ], function(app) {
 				// if(!message) {
 				// 	message = '没有提交任何信息'
 				// }
-				toaster.pop('info', '提示', '上传完成');
+                if ($scope.result.filter && $scope.result.filter > 0) {
+                    toaster.pop('warning', '警告', '存在导入失败产品,可下载导入失败表格查看详情');
+                } else {
+                    toaster.pop('success', '提示', '上传完成');
+                }
 				$scope.relTableParams.page(1);
 				$scope.relTableParams.reload();
                 if ($rootScope.$$productOn.tab === 'bathOnPerson') {

+ 18 - 20
src/main/webapp/resources/view/usercenter/forstore/buyer_transfer.html

@@ -3,25 +3,24 @@
 <div class="user_right fr">
 	<div class="down-payment">
 		<div class="content">
-			<!--<div class="common-title margin-top-none">付款账户</div>-->
-			<!--<div class="payment-style">-->
-				<!--<ul>-->
-					<!--<li ng-if="buyAccount">-->
-						<!--<label class="check-act" style="margin-right: 64px;">-->
-							<!--<input type="radio" id="1" name="1" checked/>-->
-							<!--<label for="1"></label>-->
-							<!--<em class="word-in-10" ng-bind="buyAccount.bankname" title="{{buyAccount.bankname}}"></em>-->
-						<!--</label>-->
-						<!--<div ng-bind="buyAccount.filterAccount"></div>-->
-						<!--<div ng-bind="buyAccount.accountname"></div>-->
-						<!--<div ng-if="buyAccountInfos.length > 1"><button class="change-count" ng-click="changebuyAccount(buyAccount.id)">更换账户</button></div>-->
-					<!--</li>-->
-					<!--<li class="no-count" ng-if="!buyAccount">-->
-						<!--<span><i class="fa fa-exclamation-circle"></i>暂未设置付款账户,前往  <a href="javascript:void(0)" ng-click="editAccount()">设置付款账户</a></span>-->
-					<!--</li>-->
-				<!--</ul>-->
-			<!--</div>-->
-			<!--
+			<div class="common-title margin-top-none">付款账户</div>
+			<div class="payment-style">
+				<ul>
+					<li ng-if="buyAccount">
+						<label class="check-act" style="margin-right: 64px;">
+							<input type="radio" id="1" name="1" checked/>
+							<label for="1"></label>
+							<em class="word-in-10" ng-bind="buyAccount.bankname" title="{{buyAccount.bankname}}"></em>
+						</label>
+						<div ng-bind="buyAccount.filterAccount"></div>
+						<div ng-bind="buyAccount.accountname"></div>
+						<div ng-if="buyAccountInfos.length > 1"><button class="change-count" ng-click="changebuyAccount(buyAccount.id)">更换账户</button></div>
+					</li>
+					<li class="no-count" ng-if="!buyAccount">
+						<span><i class="fa fa-exclamation-circle"></i>暂未设置付款账户,前往  <a href="javascript:void(0)" ng-click="editAccount()">设置付款账户</a></span>
+					</li>
+				</ul>
+			</div>
 			<div class="common-title margin-top-8">收款账户</div>
 			<div class="payment-style">
 				<ul class="payment-80">
@@ -65,7 +64,6 @@
 					</li>
 				</ul>
 			</div>
-			-->
 			<div class="common-title margin-top-8" ng-if="type == 'PAIDTOVENDOR'">分期付款明细</div>
 			<div class="payment-detail" ng-if="type == 'PAIDTOVENDOR'">
 				<ul>

+ 1 - 1
src/main/webapp/resources/view/usercenter/forstore/messagePersonal.html

@@ -153,7 +153,7 @@
                 </select>
             </div>-->
             <div class="filter-list">
-                <a ng-click="orderTime()">时间<i class="fa fa-long-arrow-up" aria-hidden="true" ng-show="params.timeSorting == 'ASC'"></i><i class="fa fa-long-arrow-down" aria-hidden="true" ng-show="params.timeSorting == 'DESC'"></i></a>
+                <a ng-click="orderTime()">时间<i class="fa fa-long-arrow-up" aria-hidden="true" ng-show="params.timeSorting == '{&quot;createTime&quot;:&quot;DESC&quot;}'"></i><i class="fa fa-long-arrow-down" aria-hidden="true" ng-show="params.timeSorting == '{&quot;createTime&quot;:&quot;ASC&quot;}'"></i></a>
             <!--  <a ng-click="deleteBatch()">删除</a>-->
                <!-- <label class="check-active">
                     <input type="checkbox" id="isChooseAll" ng-click="chooseAll()" ng-model="isChoosedAll">

+ 1 - 1
src/main/webapp/resources/view/vendor/forstore/messagePersonal.html

@@ -150,7 +150,7 @@
                 </select>
             </div>-->
             <div class="filter-list">
-                <a ng-click="orderTime()">时间<i class="fa fa-long-arrow-up" aria-hidden="true" ng-show="params.timeSorting == 'ASC'"></i><i class="fa fa-long-arrow-down" aria-hidden="true" ng-show="params.timeSorting == 'DESC'"></i></a>
+                <a ng-click="orderTime()">时间<i class="fa fa-long-arrow-up" aria-hidden="true" ng-show="params.timeSorting == '{&quot;createTime&quot;:&quot;DESC&quot;}'"></i><i class="fa fa-long-arrow-down" aria-hidden="true" ng-show="params.timeSorting == '{&quot;createTime&quot;:&quot;ASC&quot;}'"></i></a>
               <!--<a ng-click="deleteBatch()">删除</a>-->
                <!-- <label class="check-active">
                     <input type="checkbox" id="isChooseAll" ng-click="chooseAll()" ng-model="isChoosedAll">