Browse Source

Merge branch 'release-201825-wangcz'

huangb 7 years ago
parent
commit
34f80b4696
65 changed files with 1433 additions and 600 deletions
  1. 1 1
      src/main/java/com/uas/platform/b2c/common/account/model/Enterprise.java
  2. 1 1
      src/main/java/com/uas/platform/b2c/common/account/model/Resource.java
  3. 1 1
      src/main/java/com/uas/platform/b2c/common/account/model/ResourceItem.java
  4. 1 1
      src/main/java/com/uas/platform/b2c/common/account/model/Role.java
  5. 1 1
      src/main/java/com/uas/platform/b2c/common/account/model/SecQuestion.java
  6. 1 1
      src/main/java/com/uas/platform/b2c/common/account/model/User.java
  7. 1 1
      src/main/java/com/uas/platform/b2c/common/account/model/UserBaseInfo.java
  8. 1 1
      src/main/java/com/uas/platform/b2c/common/account/model/UserQuestion.java
  9. 0 7
      src/main/java/com/uas/platform/b2c/common/psmessage/OrderCompleteInfo.java
  10. 0 61
      src/main/java/com/uas/platform/b2c/common/psmessage/controller/MessageController.java
  11. 0 13
      src/main/java/com/uas/platform/b2c/common/psmessage/dao/OrderCompleteInfoDao.java
  12. 0 61
      src/main/java/com/uas/platform/b2c/common/psmessage/model/OrderCompleteInfo.java
  13. 0 86
      src/main/java/com/uas/platform/b2c/common/psmessage/task/MessageTask.java
  14. 0 1
      src/main/java/com/uas/platform/b2c/fa/payment/service/impl/BankTransferServiceImpl.java
  15. 0 6
      src/main/java/com/uas/platform/b2c/fa/settlement/service/SettlementService.java
  16. 1 30
      src/main/java/com/uas/platform/b2c/fa/settlement/service/impl/SettlementServiceImpl.java
  17. 12 0
      src/main/java/com/uas/platform/b2c/prod/commodity/controller/ProductController.java
  18. 1 0
      src/main/java/com/uas/platform/b2c/prod/commodity/dao/ProductDao.java
  19. 2 1
      src/main/java/com/uas/platform/b2c/prod/commodity/model/Product.java
  20. 12 0
      src/main/java/com/uas/platform/b2c/prod/commodity/service/ProductService.java
  21. 7 11
      src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ProductAttachServiceImpl.java
  22. 31 0
      src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ProductServiceImpl.java
  23. 1 0
      src/main/java/com/uas/platform/b2c/prod/product/brand/api/BrandController.java
  24. 14 0
      src/main/java/com/uas/platform/b2c/prod/product/brand/controller/BrandSubmitController.java
  25. 22 3
      src/main/java/com/uas/platform/b2c/prod/product/brand/dao/BrandSubmitDao.java
  26. 11 0
      src/main/java/com/uas/platform/b2c/prod/product/brand/service/BrandSubmitService.java
  27. 21 0
      src/main/java/com/uas/platform/b2c/prod/product/brand/service/impl/BrandSubmitServiceImpl.java
  28. 5 1
      src/main/java/com/uas/platform/b2c/prod/product/common/CommonTask.java
  29. 9 0
      src/main/java/com/uas/platform/b2c/prod/product/common/api/CommonCountController.java
  30. 10 2
      src/main/java/com/uas/platform/b2c/prod/product/common/dao/CommonCountDao.java
  31. 15 0
      src/main/java/com/uas/platform/b2c/prod/product/common/model/CommonCount.java
  32. 6 0
      src/main/java/com/uas/platform/b2c/prod/product/common/service/CommonCountService.java
  33. 5 0
      src/main/java/com/uas/platform/b2c/prod/product/common/service/impl/CommonCountServiceImpl.java
  34. 13 2
      src/main/java/com/uas/platform/b2c/prod/product/component/controller/ComponentSubmitController.java
  35. 22 3
      src/main/java/com/uas/platform/b2c/prod/product/component/dao/ComponentSubmitDao.java
  36. 11 0
      src/main/java/com/uas/platform/b2c/prod/product/component/service/ComponentSubmitService.java
  37. 22 0
      src/main/java/com/uas/platform/b2c/prod/product/component/service/impl/ComponentSubmitServiceImpl.java
  38. 24 8
      src/main/java/com/uas/platform/b2c/prod/product/kind/controller/KindConcernController.java
  39. 1 1
      src/main/java/com/uas/platform/b2c/prod/product/kind/model/KindConcern.java
  40. 8 0
      src/main/java/com/uas/platform/b2c/prod/product/kind/service/KindConcernService.java
  41. 39 18
      src/main/java/com/uas/platform/b2c/prod/product/kind/service/impl/KindConcernServiceImpl.java
  42. 0 7
      src/main/java/com/uas/platform/b2c/trade/order/service/OrderService.java
  43. 0 1
      src/main/java/com/uas/platform/b2c/trade/order/service/impl/OrderDetailServiceImpl.java
  44. 0 35
      src/main/java/com/uas/platform/b2c/trade/order/service/impl/OrderServiceImpl.java
  45. 18 31
      src/main/java/com/uas/platform/b2c/trade/vendor/service/impl/VendorIntroductionServiceImpl.java
  46. 0 2
      src/main/resources/spring/hibernate-redis.properties
  47. 0 5
      src/main/resources/spring/task.xml
  48. 7 1
      src/main/webapp/WEB-INF/views/normal/adminWithNav.html
  49. 36 1
      src/main/webapp/resources/css/admin.css
  50. 16 2
      src/main/webapp/resources/js/admin/app.js
  51. 75 0
      src/main/webapp/resources/js/admin/controllers/SeekManageCtrl.js
  52. 278 0
      src/main/webapp/resources/js/admin/controllers/statsDataCtrl.js
  53. 28 28
      src/main/webapp/resources/js/admin/controllers/trade/goodsStatisticsCtrl.js
  54. 2 1
      src/main/webapp/resources/js/admin/main.js
  55. 11 0
      src/main/webapp/resources/js/common/query/goods.js
  56. 5 0
      src/main/webapp/resources/view/admin/index.html
  57. 75 0
      src/main/webapp/resources/view/admin/seek_manage.html
  58. 384 0
      src/main/webapp/resources/view/admin/stats_data.html
  59. 45 45
      src/main/webapp/resources/view/admin/trade/trade_goods_statistics.html
  60. 20 20
      src/main/webapp/resources/view/common/bankInfoModal.html
  61. 2 2
      src/main/webapp/resources/view/sso/staffManagement.html
  62. 48 48
      src/main/webapp/resources/view/usercenter/forstore/pay_center.html
  63. 44 44
      src/main/webapp/resources/view/vendor/forstore/pay_center.html
  64. 5 3
      src/main/webapp/resources/view/vendor/forstore/seekPurchase.html
  65. 1 1
      src/main/webapp/resources/view/vendor/forstore/vendor_order.html

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

@@ -21,7 +21,7 @@ import java.util.Date;
 		@Index(name = "en_address_index", columnList = "en_address"),
 		@Index(name = "en_industry_index", columnList = "en_industry"), })
 @Cacheable
-@Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = "com.uas.platform.b2c.model.EnterpriseUas")
+@Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = "com.uas.platform.b2c.common.account.model.Enterprise")
 public class Enterprise implements Serializable {
 
 	/**

+ 1 - 1
src/main/java/com/uas/platform/b2c/common/account/model/Resource.java

@@ -17,7 +17,7 @@ import java.util.Set;
 @Table(name = "sec$resources_b2c")
 @Entity
 @Cacheable
-@Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = "com.uas.platform.b2c.model.Resource")
+@Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = "com.uas.platform.b2c.common.account.model.Resource")
 public class Resource implements Serializable {
 
 	/**

+ 1 - 1
src/main/java/com/uas/platform/b2c/common/account/model/ResourceItem.java

@@ -15,7 +15,7 @@ import java.io.Serializable;
 @Table(name = "sec$resourceitems_b2c")
 @Entity
 @Cacheable
-@Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = "com.uas.platform.b2c.model.ResourceItem")
+@Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = "com.uas.platform.b2c.common.account.model.ResourceItem")
 public class ResourceItem implements Serializable {
 
 	/**

+ 1 - 1
src/main/java/com/uas/platform/b2c/common/account/model/Role.java

@@ -14,7 +14,7 @@ import java.util.Set;
 @Table(name = "sec$roles_b2c", indexes = { @Index(name = "sec$roles_enuu_name_b2c", columnList = "role_enuu,role_name", unique = true),
 @Index(name = "sec$roles_enuu_desc_b2c", columnList = "role_enuu,role_desc", unique = true) })
 @Cacheable
-@Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = "com.uas.platform.b2c.model.Role")
+@Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = "com.uas.platform.b2c.common.account.model.Role")
 public class Role implements Serializable {
 
 	/**

+ 1 - 1
src/main/java/com/uas/platform/b2c/common/account/model/SecQuestion.java

@@ -18,7 +18,7 @@ import org.hibernate.annotations.CacheConcurrencyStrategy;
 @Entity
 @Table(name = "sec$secquestion")
 @Cacheable
-@Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = "com.uas.platform.b2b.model.User")
+@Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = "com.uas.platform.b2c.common.account.model.SecQuestion")
 public class SecQuestion implements Serializable {
     /**
      *

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

@@ -24,7 +24,7 @@ import java.io.Serializable;
 @Entity
 @Table(name = "sec$users")
 @Cacheable
-@Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = "com.uas.platform.b2c.model.User")
+@Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = "com.uas.platform.b2c.common.account.model.User")
 public class User implements Serializable {
 
 	/**

+ 1 - 1
src/main/java/com/uas/platform/b2c/common/account/model/UserBaseInfo.java

@@ -14,7 +14,7 @@ import java.io.Serializable;
 @Entity
 @Table(name = "sec$users")
 @Cacheable
-@Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = "com.uas.platform.b2b.model.User")
+@Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = "com.uas.platform.b2c.common.account.model.UserBaseInfo")
 public class UserBaseInfo implements Serializable {
 
 	/**

+ 1 - 1
src/main/java/com/uas/platform/b2c/common/account/model/UserQuestion.java

@@ -13,7 +13,7 @@ import java.io.Serializable;
 @Entity
 @Table(name = "sec$userquestion")
 @Cacheable
-@Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = "com.uas.platform.b2b.model.User")
+@Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = "com.uas.platform.b2c.common.account.model.UserQuestion")
 public class UserQuestion implements Serializable {
     /**
      *

+ 0 - 7
src/main/java/com/uas/platform/b2c/common/psmessage/OrderCompleteInfo.java

@@ -1,7 +0,0 @@
-package com.uas.platform.b2c.common.psmessage;
-
-/**
- * Created by yujia on 2018/7/12.
- */
-public interface OrderCompleteInfo {
-}

+ 0 - 61
src/main/java/com/uas/platform/b2c/common/psmessage/controller/MessageController.java

@@ -1,61 +0,0 @@
-package com.uas.platform.b2c.common.psmessage.controller;
-
-import com.uas.platform.b2c.common.message.model.MessageModel;
-import com.uas.platform.b2c.common.psmessage.service.MessageService;
-import com.uas.platform.b2c.trade.support.ResultMap;
-import com.uas.platform.core.model.PageParams;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.Map;
-
-/**
- * 获取ps-message保存的站内信的接口
- *
- * @author yuj 2018-07-11 17:01
- */
-@RestController
-@RequestMapping("/webMessage")
-public class MessageController {
-
-    private final MessageService messageService;
-
-    @Autowired
-    public MessageController(MessageService messageService) {
-        this.messageService = messageService;
-    }
-
-    /**
-     * 根据分页信息和过滤类型分页获取站内信
-     * @param params
-     * @param type
-     * @return
-     */
-    @RequestMapping(value = "/page", method = RequestMethod.GET)
-    public Page<MessageModel> findByPageAndParams(PageParams params, String type) {
-        return messageService.findByPageAndParams(params, type);
-    }
-
-
-    /**
-     * 获取未读消息数量
-     * @return
-     */
-    @RequestMapping(value = "/count/unread", method = RequestMethod.GET)
-    public Map<String, Object> getUnReadMessageCount(String type) {
-        return messageService.getUnReadMessageCount(type);
-    }
-
-    /**
-     * 阅读消息
-     * @param messageId 消息接收者信息
-     * @return
-     */
-    @RequestMapping(value = "/read", method = RequestMethod.POST)
-    public ResultMap read(Long messageId) {
-        return messageService.readMessage(messageId);
-    }
-}

+ 0 - 13
src/main/java/com/uas/platform/b2c/common/psmessage/dao/OrderCompleteInfoDao.java

@@ -1,13 +0,0 @@
-package com.uas.platform.b2c.common.psmessage.dao;
-
-import com.uas.platform.b2c.common.psmessage.model.OrderCompleteInfo;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
-import org.springframework.stereotype.Repository;
-
-/**
- * Created by yujia on 2018/7/12.
- */
-@Repository
-public interface OrderCompleteInfoDao extends JpaRepository<OrderCompleteInfo, Long>, JpaSpecificationExecutor<OrderCompleteInfo> {
-}

+ 0 - 61
src/main/java/com/uas/platform/b2c/common/psmessage/model/OrderCompleteInfo.java

@@ -1,61 +0,0 @@
-package com.uas.platform.b2c.common.psmessage.model;
-
-import javax.persistence.*;
-import java.io.Serializable;
-
-/**
- * Created by yujia on 2018/7/12.
- */
-@Entity
-@Table(name = "ordercompleteinfo")
-public class OrderCompleteInfo implements Serializable {
-
-
-    private static final long serialVersionUID = 3488774334604983126L;
-
-    @Id
-    @Column(name = "id")
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    private Long id;
-
-    @Column(name = "order_id")
-    private String orderId;
-
-    @Column(name = "remark")
-    private String remark;
-
-    public Long getId() {
-        return id;
-    }
-
-    public OrderCompleteInfo setId(Long id) {
-        this.id = id;
-        return this;
-    }
-
-    public String getOrderId() {
-        return orderId;
-    }
-
-    public OrderCompleteInfo setOrderId(String orderId) {
-        this.orderId = orderId;
-        return this;
-    }
-
-    public String getRemark() {
-        return remark;
-    }
-
-    public OrderCompleteInfo setRemark(String remark) {
-        this.remark = remark;
-        return this;
-    }
-
-    @Override
-    public String toString() {
-        return "OrderCompleteInfo{" +
-                "id=" + id +
-                ", orderId='" + orderId + '\'' +
-                '}';
-    }
-}

+ 0 - 86
src/main/java/com/uas/platform/b2c/common/psmessage/task/MessageTask.java

@@ -1,86 +0,0 @@
-package com.uas.platform.b2c.common.psmessage.task;
-
-import com.uas.platform.b2c.common.account.model.Enterprise;
-import com.uas.platform.b2c.common.account.service.EnterpriseService;
-import com.uas.platform.b2c.common.message.model.MessageModel;
-import com.uas.platform.b2c.common.message.type.ConsumerApp;
-import com.uas.platform.b2c.common.message.type.ConsumerType;
-import com.uas.platform.b2c.common.message.type.SMSType;
-import com.uas.platform.b2c.common.psmessage.dao.OrderCompleteInfoDao;
-import com.uas.platform.b2c.common.psmessage.model.OrderCompleteInfo;
-import com.uas.platform.b2c.common.psmessage.service.MessageService;
-import com.uas.platform.b2c.core.config.SysConf;
-import com.uas.platform.b2c.trade.order.StringConstant.StringFormat;
-import com.uas.platform.b2c.trade.order.model.MessageNotifyPersonalManagement;
-import com.uas.platform.b2c.trade.order.service.MessageNotifyPersonalManagementService;
-import com.uas.platform.b2c.trade.order.type.MessageType;
-import org.apache.commons.collections.CollectionUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.springframework.util.StringUtils;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * description
- *
- * @author yuj 2018-07-12 9:08
- */
-@Component("MessageTask")
-public class MessageTask {
-
-    private final MessageService messageService;
-
-    private final OrderCompleteInfoDao completeInfoDao;
-
-    private final MessageNotifyPersonalManagementService messageNotifyPersonalManagementService;
-
-    private final SysConf sysConf;
-
-    private final EnterpriseService enterpriseService;
-
-    @Autowired
-    public MessageTask(MessageService messageService, OrderCompleteInfoDao completeInfoDao, MessageNotifyPersonalManagementService messageNotifyPersonalManagementService, SysConf sysConf, EnterpriseService enterpriseService) {
-        this.messageService = messageService;
-        this.completeInfoDao = completeInfoDao;
-        this.messageNotifyPersonalManagementService = messageNotifyPersonalManagementService;
-        this.sysConf = sysConf;
-        this.enterpriseService = enterpriseService;
-    }
-
-    /**
-     * 根据订单信息获取
-     */
-    public void sendMessage() {
-        List<OrderCompleteInfo> completeInfos = completeInfoDao.findAll();
-        List<MessageNotifyPersonalManagement> managements = messageNotifyPersonalManagementService.findNotifyPersonalEnuuAndType(sysConf.getEnUU(), MessageType.APPLY_PAID.getType());
-        List<MessageModel> sendMessageList = new ArrayList<>();
-        Enterprise enterpriseInfo = enterpriseService.getEnterpriseInfo(sysConf.getEnUU());
-        Long adminUu = null;
-        if (enterpriseInfo != null) {
-            adminUu = enterpriseInfo.getEnAdminuu();
-        }
-        if (CollectionUtils.isNotEmpty(managements)) {
-            if (CollectionUtils.isNotEmpty(completeInfos)) {
-                for (OrderCompleteInfo completeInfo : completeInfos) {
-                    String orderId = completeInfo.getOrderId();
-                    if (!StringUtils.isEmpty(orderId)) {
-                        for (MessageNotifyPersonalManagement management : managements) {
-                            Long notifyPersonalUseruu = management.getNotifyPersonalUseruu();
-                            MessageModel model = messageService.initMessage(String.format(StringFormat.APPLYPAID, orderId), MessageType.APPLY_PAID.getType(), notifyPersonalUseruu, sysConf.getEnUU(), ConsumerType.SINGLE, ConsumerApp.MALL, SMSType.DONT_SEND, completeInfo.getRemark(), adminUu, sysConf.getEnUU());
-                            sendMessageList.add(model);
-                        }
-
-                    }
-                }
-            }
-        }
-        if (CollectionUtils.isNotEmpty(sendMessageList)) {
-            messageService.sendMessage(sendMessageList);
-        }
-        if (CollectionUtils.isNotEmpty(completeInfos)) {
-            completeInfoDao.delete(completeInfos);
-        }
-    }
-}

+ 0 - 1
src/main/java/com/uas/platform/b2c/fa/payment/service/impl/BankTransferServiceImpl.java

@@ -415,7 +415,6 @@ public class BankTransferServiceImpl implements BankTransferService {
 				}
 				purchaseDao.save(purchases);
 				orderDao.save(orderN);
-				orderService.sendConfirmPaidMessage(orderN);
 			}
 		}
 

+ 0 - 6
src/main/java/com/uas/platform/b2c/fa/settlement/service/SettlementService.java

@@ -82,10 +82,4 @@ public interface SettlementService {
      * @return the bank transfer
      */
     BankTransfer findBankTransfer(String requestId);
-
-    /**
-     * 生成站内信消息
-     * @param paymentId
-     */
-    void sendFinancialSettlementMessage(String paymentId);
 }

+ 1 - 30
src/main/java/com/uas/platform/b2c/fa/settlement/service/impl/SettlementServiceImpl.java

@@ -6,7 +6,6 @@ import com.uas.platform.b2c.common.message.model.MessageModel;
 import com.uas.platform.b2c.common.message.type.ConsumerApp;
 import com.uas.platform.b2c.common.message.type.ConsumerType;
 import com.uas.platform.b2c.common.message.type.SMSType;
-import com.uas.platform.b2c.common.psmessage.service.MessageService;
 import com.uas.platform.b2c.core.config.SysConf;
 import com.uas.platform.b2c.core.constant.SplitChar;
 import com.uas.platform.b2c.core.support.SystemSession;
@@ -84,8 +83,6 @@ public class SettlementServiceImpl implements SettlementService {
 
     private final SysConf sysConf;
 
-	private final MessageService messageService;
-
 	private final MessageNotifyPersonalManagementService messageNotifyPersonalManagementService;
 
     /**
@@ -105,7 +102,7 @@ public class SettlementServiceImpl implements SettlementService {
 	 */
     @Autowired
 	public SettlementServiceImpl(EnterpriseDao enterpriseDao, PurchaseDao purchaseDao, PurchaseDetailDao purchaseDetailDao,
-								 RequestPaymentDao requestPaymentDao, CreateNumberService createNumberService, BankTransferService transferService, BankTransAssociateService bankTransAssociateService, BankTransAssociateDao transAssociateDao, BankTransferDao bankTransferDao, SysConf sysConf, MessageService messageService, MessageNotifyPersonalManagementService messageNotifyPersonalManagementService) {
+								 RequestPaymentDao requestPaymentDao, CreateNumberService createNumberService, BankTransferService transferService, BankTransAssociateService bankTransAssociateService, BankTransAssociateDao transAssociateDao, BankTransferDao bankTransferDao, SysConf sysConf, MessageNotifyPersonalManagementService messageNotifyPersonalManagementService) {
 		this.enterpriseDao = enterpriseDao;
 		this.purchaseDao = purchaseDao;
 		this.purchaseDetailDao = purchaseDetailDao;
@@ -116,7 +113,6 @@ public class SettlementServiceImpl implements SettlementService {
 		this.transAssociateDao = transAssociateDao;
 		this.bankTransferDao = bankTransferDao;
         this.sysConf = sysConf;
-		this.messageService = messageService;
 		this.messageNotifyPersonalManagementService = messageNotifyPersonalManagementService;
 	}
 
@@ -339,34 +335,9 @@ public class SettlementServiceImpl implements SettlementService {
 		payment.setSettleTime(calendar.getTime());
 
 		requestPaymentDao.save(payment);
-		sendFinancialSettlementMessage(payment.getRequestId());
 		return payment.getRequestId();
 	}
 
-	/**
-	 * 生成站内信消息
-	 *
-	 * @param paymentId
-	 */
-	@Override
-	public void sendFinancialSettlementMessage(String paymentId) {
-		List<MessageNotifyPersonalManagement> notifyPersonalEnuuAndType = messageNotifyPersonalManagementService.findNotifyPersonalEnuuAndType(sysConf.getEnUU(), MessageType.FINANCIAL_SETTLEMENT.getType());
-		if (org.apache.commons.collections.CollectionUtils.isNotEmpty(notifyPersonalEnuuAndType)) {
-			List<MessageModel> sendMessageModel = new ArrayList<>();
-			for (MessageNotifyPersonalManagement messageNotifyPersonalManagement : notifyPersonalEnuuAndType) {
-				Long notifyPersonalUseruu = messageNotifyPersonalManagement.getNotifyPersonalUseruu();
-				if (notifyPersonalEnuuAndType != null) {
-					MessageModel model = messageService.initMessage(String.format(StringFormat.FINANCIAL_SETTLEMENT, paymentId), MessageType.FINANCIAL_SETTLEMENT.getType(), notifyPersonalUseruu, sysConf.getEnUU(), ConsumerType.SINGLE, ConsumerApp.MALL, SMSType.DONT_SEND, "");
-					sendMessageModel.add(model);
-				}
-			}
-
-			if (org.apache.commons.collections.CollectionUtils.isNotEmpty(sendMessageModel)) {
-				messageService.sendMessage(sendMessageModel);
-			}
-		}
-	}
-
 	/**
 	 * 计算付款单佣金
 	 *

+ 12 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/controller/ProductController.java

@@ -430,4 +430,16 @@ public class ProductController {
 	public List<Product> getProductsByKeyword(String keyword) {
 		return new ArrayList<>();
 	}
+
+	/**
+	 * 根据起止时间统计未审核品牌数
+	 *
+	 * @param fromDate 开始时间
+	 * @param toDate 截止时间
+	 * @return 返回时间
+	 */
+	@RequestMapping(value = "/apply/count", method = RequestMethod.GET)
+	public ResultMap countProduct(Long fromDate, Long toDate) {
+		return productService.countProduct(fromDate, toDate);
+	}
 }

+ 1 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/dao/ProductDao.java

@@ -8,6 +8,7 @@ import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
+import java.util.Date;
 import java.util.List;
 
 /**

+ 2 - 1
src/main/java/com/uas/platform/b2c/prod/commodity/model/Product.java

@@ -22,7 +22,8 @@ import java.util.Set;
 	@Index(name = "products_brand_index", columnList = "pr_brand"),
 	@Index(name = "products_enuu_code_index", columnList = "pr_enuu,pr_code", unique = true),
 	@Index(name = "products_enuu_standard_index", columnList = "pr_enuu,pr_standard"),
-	@Index(name = "products_erpdown_index", columnList = "pr_erpdown")})
+	@Index(name = "products_erpdown_index", columnList = "pr_erpdown"),
+	@Index(name = "pr_createtime_index", columnList = "pr_create_time")})
 @Logger
 //@Cacheable
 //@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = "com.uas.platform.b2b.model.Product")

+ 12 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/service/ProductService.java

@@ -8,6 +8,8 @@ import com.uas.platform.b2c.trade.support.ResultMap;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageParams;
 import org.springframework.data.domain.Page;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
 
 import java.util.List;
 import java.util.Map;
@@ -344,4 +346,14 @@ public interface ProductService {
      * @param list
      */
     void saveByJdbcTemplate(List<ReleaseProductByBatch> list);
+
+
+    /**
+     * 根据起止时间统计未审核品牌数
+     *
+     * @param fromDate 开始时间
+     * @param toDate 截止时间
+     * @return 返回时间
+     */
+    ResultMap countProduct(Long fromDate, Long toDate);
 }

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

@@ -33,16 +33,6 @@ import com.uas.platform.core.persistence.criteria.CriterionExpression.Operator;
 import com.uas.platform.core.persistence.criteria.LogicalExpression;
 import com.uas.platform.core.persistence.criteria.PredicateUtils;
 import com.uas.platform.core.persistence.criteria.SimpleExpression;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -53,6 +43,12 @@ import org.springframework.data.jpa.domain.Specification;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+import java.util.*;
+
 /**
  * Created by wangyc on 2018/6/26.
  *
@@ -91,7 +87,7 @@ public class ProductAttachServiceImpl implements ProductAttachService {
     private ProductService productService;
 
     @Autowired
-    public ProductAttachServiceImpl(ProductDao productDao, ProductAttachSubmitDao productAttachSubmitDao,ComponentDao componentDao, BrandInfoDao brandInfoDao, KindInfoDao kindInfoDao, ComponentService componentService, KindDao kindDao, EnterpriseDao enterpriseDao, UserBaseInfoDao userBaseInfoDao,MessageService messageService) {
+    public ProductAttachServiceImpl(ProductDao productDao, ProductAttachSubmitDao productAttachSubmitDao,ComponentDao componentDao, BrandInfoDao brandInfoDao, KindInfoDao kindInfoDao, ComponentService componentService, KindDao kindDao, EnterpriseDao enterpriseDao, UserBaseInfoDao userBaseInfoDao, MessageService messageService) {
         this.productDao = productDao;
         this.productAttachSubmitDao = productAttachSubmitDao;
         this.componentDao = componentDao;

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

@@ -90,6 +90,7 @@ import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -2340,5 +2341,35 @@ public class ProductServiceImpl implements ProductService {
         }
 
     }
+
+    /**
+     * 根据起止时间统计未审核品牌数
+     *
+     * @param fromDate 开始时间
+     * @param toDate   截止时间
+     * @return 返回时间
+     */
+    @Override
+    public ResultMap countProduct(Long fromDate, Long toDate) {
+        if (fromDate == null || toDate == null) {
+            //统计所有的未审核的品牌信息
+            Map<String, Integer> map = new HashedMap();
+            Integer productAmout = jdbcTemplate.queryForInt("select count(1) from products p left join product$private pp on p.pr_id = pp.pr_id  where pp.pr_b2cenabled = 1;");
+            map.put("productAmout", productAmout);
+            Integer productUserAmout = jdbcTemplate.queryForInt("select count(DISTINCT pr_enuu) from products p left join product$private pp on p.pr_id = pp.pr_id  where pp.pr_b2cenabled = 1;");
+            map.put("productUserAmout", productUserAmout);
+            return ResultMap.success(map);
+        } else {
+            Date fromT = new Date(fromDate);
+            Date toT = new Date(toDate);
+            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            Map<String, Integer> map = new HashedMap();
+            Integer productAmout = jdbcTemplate.queryForInt("select count(1) from products p left join product$private pp on p.pr_id = pp.pr_id  where pr_create_time < '" + dateFormat.format(toT) + "' and pr_create_time > '" + dateFormat.format(fromT) + "' and pp.pr_b2cenabled = 1;");
+            map.put("productAmout", productAmout);
+            Integer productUserAmout = jdbcTemplate.queryForInt("select count(DISTINCT pr_enuu) from products p left join product$private pp on p.pr_id = pp.pr_id  where pr_create_time < '" + dateFormat.format(toT) + "' and pr_create_time > '" + dateFormat.format(fromT) + "' and pp.pr_b2cenabled = 1;");
+            map.put("productUserAmout", productUserAmout);
+            return ResultMap.success(map);
+        }
+    }
 }
 

+ 1 - 0
src/main/java/com/uas/platform/b2c/prod/product/brand/api/BrandController.java

@@ -7,6 +7,7 @@ import com.uas.platform.b2c.prod.product.brand.modal.BrandMostSimpleInfo;
 import com.uas.platform.b2c.prod.product.kind.model.Kind;
 import com.uas.platform.b2c.prod.product.brand.service.BrandService;
 import com.uas.platform.b2c.prod.product.kind.service.KindService;
+import com.uas.platform.b2c.trade.support.ResultMap;
 import com.uas.platform.core.exception.IllegalOperatorException;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageParams;

+ 14 - 0
src/main/java/com/uas/platform/b2c/prod/product/brand/controller/BrandSubmitController.java

@@ -8,6 +8,7 @@ import com.uas.platform.b2c.external.erp.product.service.OperationInfoService;
 import com.uas.platform.b2c.prod.product.brand.modal.Brand;
 import com.uas.platform.b2c.prod.product.brand.modal.BrandSubmit;
 import com.uas.platform.b2c.prod.product.brand.service.BrandSubmitService;
+import com.uas.platform.b2c.trade.support.ResultMap;
 import com.uas.platform.core.exception.IllegalOperatorException;
 import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.model.PageInfo;
@@ -201,4 +202,17 @@ public class BrandSubmitController {
 		}
 		return map;
 	}
+
+	/**
+	 * 根据起止时间统计未审核品牌数
+	 *
+	 * @param fromDate 开始时间
+	 * @param toDate 截止时间
+	 * @return 返回时间
+	 */
+	@RequestMapping(value = "/submit/count", method = RequestMethod.GET)
+	public ResultMap countUnAuditedBrand(Long fromDate, Long toDate) {
+		logger.log("品牌维护", "统计未审核品牌信息");
+		return brandSubmitService.countUnAuditedBrand(fromDate, toDate);
+	}
 }

+ 22 - 3
src/main/java/com/uas/platform/b2c/prod/product/brand/dao/BrandSubmitDao.java

@@ -1,13 +1,14 @@
 package com.uas.platform.b2c.prod.product.brand.dao;
 
-import java.util.List;
-
+import com.uas.platform.b2c.prod.product.brand.modal.BrandSubmit;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
-import com.uas.platform.b2c.prod.product.brand.modal.BrandSubmit;
+import java.util.Date;
+import java.util.List;
 
 @Repository
 public interface BrandSubmitDao extends JpaSpecificationExecutor<BrandSubmit>, JpaRepository<BrandSubmit, Long> {
@@ -36,4 +37,22 @@ public interface BrandSubmitDao extends JpaSpecificationExecutor<BrandSubmit>, J
 	 * @return
 	 */
 	public List<BrandSubmit> findByModifyenuu(Long enuu);
+
+
+	/**
+	 * 统计起止时间内的待审核品牌数
+	 * @param fromDate
+	 * @param toDate
+	 * @return 统计数
+	 */
+	@Query(value = "select count(1) from BrandSubmit b where b.definetime > :fromDate and b.definetime < :toDate")
+	Integer countBrandSubmitByDate(@Param("fromDate") Date fromDate, @Param("toDate") Date toDate);
+
+
+	/**
+	 * 统计起止时间内的待审核品牌数
+	 * @return 统计数
+	 */
+	@Query(value = "select count(1) from BrandSubmit b")
+	Integer countAllBrandSubmit();
 }

+ 11 - 0
src/main/java/com/uas/platform/b2c/prod/product/brand/service/BrandSubmitService.java

@@ -2,6 +2,7 @@ package com.uas.platform.b2c.prod.product.brand.service;
 
 import com.uas.platform.b2c.prod.product.brand.modal.Brand;
 import com.uas.platform.b2c.prod.product.brand.modal.BrandSubmit;
+import com.uas.platform.b2c.trade.support.ResultMap;
 import com.uas.platform.core.model.PageInfo;
 import org.springframework.data.domain.Page;
 
@@ -70,4 +71,14 @@ public interface BrandSubmitService {
 	 */
 	public String saveFromUnstandard(String json);
 
+
+	/**
+	 * 根据起止时间统计未审核品牌数
+	 *
+	 * @param fromDate 开始时间
+	 * @param toDate 截止时间
+	 * @return 返回时间
+	 */
+	ResultMap countUnAuditedBrand(Long fromDate, Long toDate);
+
 }

+ 21 - 0
src/main/java/com/uas/platform/b2c/prod/product/brand/service/impl/BrandSubmitServiceImpl.java

@@ -10,6 +10,7 @@ import com.uas.platform.b2c.prod.product.brand.modal.Brand;
 import com.uas.platform.b2c.prod.product.brand.modal.BrandSubmit;
 import com.uas.platform.b2c.prod.product.brand.service.BrandSubmitService;
 import com.uas.platform.b2c.prod.product.brand.service.BrandVersionService;
+import com.uas.platform.b2c.trade.support.ResultMap;
 import com.uas.platform.core.exception.IllegalOperatorException;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.ServiceCode;
@@ -377,4 +378,24 @@ public class BrandSubmitServiceImpl implements BrandSubmitService {
 		return null;
 	}
 
+	/**
+	 * 根据起止时间统计未审核品牌数
+	 *
+	 * @param fromDate 开始时间
+	 * @param toDate   截止时间
+	 * @return 返回时间
+	 */
+	@Override
+	public ResultMap countUnAuditedBrand(Long fromDate, Long toDate) {
+		if (fromDate == null || toDate == null) {
+			//统计所有的未审核的品牌信息
+			Integer count = brandSubmitDao.countAllBrandSubmit();
+			return ResultMap.success(count);
+		} else {
+			Date fromT = new Date(fromDate);
+			Date toT = new Date(toDate);
+			Integer count = brandSubmitDao.countBrandSubmitByDate(fromT, toT);
+			return ResultMap.success(count);
+		}
+	}
 }

+ 5 - 1
src/main/java/com/uas/platform/b2c/prod/product/common/CommonTask.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.uas.platform.b2c.prod.product.common.dao.CommonCountDao;
 import com.uas.platform.b2c.prod.product.common.model.CommonCount;
 import com.uas.platform.core.util.HttpUtil;
+import java.util.Date;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Component;
@@ -37,7 +38,9 @@ public class CommonTask {
                 try {
                     String responseText = HttpUtil.sendGetRequest(commonCount.getSql(), null).getResponseText();
                     if (!StringUtils.isEmpty(responseText)) {
-                        if (responseText.contains("{")) {
+                        if (commonCount.getSql().contains("113.105.74.140:8092")) {
+                            commonCount.setCount(JSON.parseObject(responseText).getDouble("totalCount"));
+                        } else if (responseText.contains("{")) {
                             commonCount.setCount(JSON.parseObject(responseText).getDouble("count"));
                         } else {
                             commonCount.setCount(Double.parseDouble(responseText));
@@ -49,6 +52,7 @@ public class CommonTask {
                 // 默认,通过执行SQL语句获取数据结果
                 commonCount.setCount(jdbcTemplate.queryForObject(commonCount.getSql(), Double.class));
             }
+            commonCount.setUpdateTime(new Date());
         }
         commonCountDao.save(commonCounts);
     }

+ 9 - 0
src/main/java/com/uas/platform/b2c/prod/product/common/api/CommonCountController.java

@@ -114,4 +114,13 @@ public class CommonCountController {
         return commonCounts;
     }
 
+    /**
+     * 获取全部统计数据
+     * @return
+     */
+    @RequestMapping(value = "/all", method = RequestMethod.GET)
+    public List<CommonCount> findAll() {
+        return commonCountService.findAllForCust();
+    }
+
 }

+ 10 - 2
src/main/java/com/uas/platform/b2c/prod/product/common/dao/CommonCountDao.java

@@ -3,6 +3,7 @@ package com.uas.platform.b2c.prod.product.common.dao;
 import com.uas.platform.b2c.prod.product.common.model.CommonCount;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
@@ -18,12 +19,19 @@ public interface CommonCountDao extends JpaSpecificationExecutor<CommonCount>,Jp
      * @param status 状态
      * @return 计数器
      */
-    public List<CommonCount> findByStatusAndUsedForOrderByDetno(Short status, String usedFor);
+    List<CommonCount> findByStatusAndUsedForOrderByDetno(Short status, String usedFor);
 
     /**
      * 通过状态获取计数器
      * @param status
      * @return
      */
-    public List<CommonCount> findByStatus(Short status);
+    List<CommonCount> findByStatus(Short status);
+
+    /**
+     * 获取全部技术器(对外)
+     * @return
+     */
+    @Query(value = "select c from CommonCount c where c.status=1 order by c.id")
+    List<CommonCount> findAllForCust();
 }

+ 15 - 0
src/main/java/com/uas/platform/b2c/prod/product/common/model/CommonCount.java

@@ -2,6 +2,7 @@ package com.uas.platform.b2c.prod.product.common.model;
 
 import com.alibaba.fastjson.annotation.JSONField;
 
+import java.util.Date;
 import javax.persistence.*;
 import java.io.Serializable;
 
@@ -71,6 +72,12 @@ public class CommonCount implements Serializable{
     @Column(name = "cc_status")
     private Short status = 0;
 
+    /**
+     * 更新时间
+     */
+    @Column(name = "cc_updatetime")
+    private Date updateTime;
+
     public Long getId() {
         return id;
     }
@@ -127,6 +134,14 @@ public class CommonCount implements Serializable{
         this.status = status;
     }
 
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
     public String getSourceType() {
         return sourceType;
     }

+ 6 - 0
src/main/java/com/uas/platform/b2c/prod/product/common/service/CommonCountService.java

@@ -22,4 +22,10 @@ public interface CommonCountService {
      * @return
      */
     CommonCount findById(Long id);
+
+    /**
+     * 获取全部计数器(对外)
+     * @return
+     */
+    List<CommonCount> findAllForCust();
 }

+ 5 - 0
src/main/java/com/uas/platform/b2c/prod/product/common/service/impl/CommonCountServiceImpl.java

@@ -27,4 +27,9 @@ public class CommonCountServiceImpl implements CommonCountService{
     public CommonCount findById(Long id) {
         return commonCountDao.findOne(id);
     }
+
+    @Override
+    public List<CommonCount> findAllForCust() {
+        return commonCountDao.findAllForCust();
+    }
 }

+ 13 - 2
src/main/java/com/uas/platform/b2c/prod/product/component/controller/ComponentSubmitController.java

@@ -469,6 +469,17 @@ public class ComponentSubmitController {
 		logger.log("器件上传", "器件重新上传");
 		return componentSubmitService.uploadComponentCrawlWithSame(uploadItem, kindContrastId);
 	}
-	
-	
+
+	/**
+	 * 根据起止时间统计未审核品牌数
+	 *
+	 * @param fromDate 开始时间
+	 * @param toDate 截止时间
+	 * @return 返回时间
+	 */
+	@RequestMapping(value = "/submit/count", method = RequestMethod.GET)
+	public ResultMap countUnAuditedComponentSubmit(Long fromDate, Long toDate) {
+		logger.log("品牌维护", "统计未审核品牌信息");
+		return componentSubmitService.countUnAuditedComponentSubmit(fromDate, toDate);
+	}
 }

+ 22 - 3
src/main/java/com/uas/platform/b2c/prod/product/component/dao/ComponentSubmitDao.java

@@ -1,13 +1,14 @@
 package com.uas.platform.b2c.prod.product.component.dao;
 
-import java.util.List;
-
+import com.uas.platform.b2c.prod.product.component.modal.ComponentSubmit;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
-import com.uas.platform.b2c.prod.product.component.modal.ComponentSubmit;
+import java.util.Date;
+import java.util.List;
 
 @Repository
 public interface ComponentSubmitDao extends JpaSpecificationExecutor<ComponentSubmit>, JpaRepository<ComponentSubmit, Long> {
@@ -55,4 +56,22 @@ public interface ComponentSubmitDao extends JpaSpecificationExecutor<ComponentSu
 	 */
 	public List<ComponentSubmit> findByCodeAndKindid(String code, Long kindid);
 
+
+	/**
+	 * 统计起止时间内的待审核品牌数
+	 * @param fromDate
+	 * @param toDate
+	 * @return 统计数
+	 */
+	@Query(value = "select count(1) from ComponentSubmit c where c.definetime > :fromDate and c.definetime < :toDate")
+	Integer countComponentSubmitByDate(@Param("fromDate") Date fromDate, @Param("toDate") Date toDate);
+
+
+	/**
+	 * 统计起止时间内的待审核品牌数
+	 * @return 统计数
+	 */
+	@Query(value = "select count(1) from ComponentSubmit c")
+	Integer countAllComponentSubmit();
+
 }

+ 11 - 0
src/main/java/com/uas/platform/b2c/prod/product/component/service/ComponentSubmitService.java

@@ -144,4 +144,15 @@ public interface ComponentSubmitService {
 	 */
 	public ResultMap uploadComponentCrawlWithSame(FileUpload uploadItem, Long kindContrastId);
 
+
+
+	/**
+	 * 根据起止时间统计申请的器件数
+	 *
+	 * @param fromDate 开始时间
+	 * @param toDate 截止时间
+	 * @return 返回时间
+	 */
+	ResultMap countUnAuditedComponentSubmit(Long fromDate, Long toDate);
+
 }

+ 22 - 0
src/main/java/com/uas/platform/b2c/prod/product/component/service/impl/ComponentSubmitServiceImpl.java

@@ -919,4 +919,26 @@ public class ComponentSubmitServiceImpl implements ComponentSubmitService {
 		resultMap.setData(components.size());
 		return resultMap;
 	}
+
+
+	/**
+	 * 根据起止时间统计申请的器件数
+	 *
+	 * @param fromDate 开始时间
+	 * @param toDate   截止时间
+	 * @return 返回时间
+	 */
+	@Override
+	public ResultMap countUnAuditedComponentSubmit(Long fromDate, Long toDate) {
+		if (fromDate == null || toDate == null) {
+			//统计所有的未审核的品牌信息
+			Integer count = componentSubmitDao.countAllComponentSubmit();
+			return ResultMap.success(count);
+		} else {
+			Date fromT = new Date(fromDate);
+			Date toT = new Date(toDate);
+			Integer count = componentSubmitDao.countComponentSubmitByDate(fromT, toT);
+			return ResultMap.success(count);
+		}
+	}
 }

+ 24 - 8
src/main/java/com/uas/platform/b2c/prod/product/kind/controller/KindConcernController.java

@@ -1,7 +1,11 @@
 package com.uas.platform.b2c.prod.product.kind.controller;
 
+import com.uas.platform.b2c.common.account.model.User;
+import com.uas.platform.b2c.core.support.SystemSession;
+import com.uas.platform.b2c.fa.payment.utils.StringUtils;
 import com.uas.platform.b2c.prod.product.kind.model.KindConcern;
 import com.uas.platform.b2c.prod.product.kind.service.KindConcernService;
+import com.uas.platform.core.exception.IllegalOperatorException;
 import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.model.PageParams;
 import com.uas.sso.support.Page;
@@ -64,6 +68,18 @@ public class KindConcernController {
         return null;
     }
 
+    /**
+     * 获取所有的类目信息包括已关注和未关注
+     * @param pageParams
+     * @param keyword
+     * @param enUU
+     * @return
+     */
+    @RequestMapping(value = "/kindList", method = RequestMethod.GET)
+    public Page<KindConcern> getKindByPage(PageParams pageParams, String keyword, Long enUU) {
+        return kindConcernService.getKindByPage(pageParams, keyword, enUU);
+    }
+
     /**
      * 设置关注、取消关注接口
      * @param kindConcern  类目关注实体
@@ -71,16 +87,16 @@ public class KindConcernController {
      */
     @RequestMapping(value = "/modify", method = RequestMethod.POST)
     public ModelMap addKindConcern(@RequestBody KindConcern kindConcern) {
-        // status 为0,说明是未关注类目
-        if (Constant.NO == kindConcern.getStatus()) {
-            return kindConcernService.addKindConcern(kindConcern);
-        } else if (Constant.YES == kindConcern.getStatus()) {
+        if (kindConcern != null && kindConcern.getId() != null) {
             return kindConcernService.deleteKindConcern(kindConcern);
         }
-        ModelMap map = new ModelMap();
-        map.put("success", false);
-        map.put("message", "参数错误");
-        return map;
+        User user = SystemSession.getUser();
+        if (user != null && user.getEnterprise() != null) {
+            kindConcern.setEnUU(user.getEnterprise().getUu());
+        } else {
+            throw new IllegalOperatorException("用户信息错误");
+        }
+        return kindConcernService.addKindConcern(kindConcern);
     }
 
     /**

+ 1 - 1
src/main/java/com/uas/platform/b2c/prod/product/kind/model/KindConcern.java

@@ -59,7 +59,7 @@ public class KindConcern {
      * 关注状态 (1已关注 0 未关注)
      */
     @Column(name = "kc_status")
-    private Short status = 1;
+    private Short status;
 
     /**
      * 最近更新时间

+ 8 - 0
src/main/java/com/uas/platform/b2c/prod/product/kind/service/KindConcernService.java

@@ -59,4 +59,12 @@ public interface KindConcernService {
      * @return 结果
      */
     ModelMap deleteKindConcernByBatch(List<Long> ids);
+
+    /**
+     * 获取所有的类目信息包括已关注和未关注
+     * @param pageParams
+     * @param keyword
+     * @return
+     */
+    Page<KindConcern> getKindByPage(PageParams pageParams, String keyword, Long enUU);
 }

+ 39 - 18
src/main/java/com/uas/platform/b2c/prod/product/kind/service/impl/KindConcernServiceImpl.java

@@ -14,6 +14,8 @@ import com.uas.sso.support.Page;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Sort;
 import org.springframework.data.jpa.domain.Specification;
+import org.springframework.jdbc.core.BeanPropertyRowMapper;
+import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.ui.ModelMap;
 import org.springframework.util.CollectionUtils;
@@ -23,9 +25,7 @@ import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 /**
  * 类目接口实现
@@ -42,6 +42,9 @@ public class KindConcernServiceImpl implements KindConcernService {
     @Autowired
     private KindDao kindDao;
 
+    @Autowired
+    private NamedParameterJdbcTemplate jdbcTemplate;
+
 
     /**
      * 添加关注
@@ -91,26 +94,26 @@ public class KindConcernServiceImpl implements KindConcernService {
     public ModelMap deleteKindConcern(KindConcern kindConcern) {
         ModelMap map = new ModelMap();
         try {
-            if (null == kindConcern) {
-                map.put("success", false);
-                map.put("message", "传入参数为空");
-                return map;
-            }
+//            if (null == kindConcern) {
+//                map.put("success", false);
+//                map.put("message", "传入参数为空");
+//                return map;
+//            }
             if (null == kindConcern.getId()) {
                 map.put("success", false);
                 map.put("message", "传入id为空");
                 return map;
             }
-            if (null == kindConcern.getEnUU()) {
-                map.put("success", false);
-                map.put("message", "传入企业为空");
-                return map;
-            }
-            if (StringUtils.isEmpty(kindConcern.getNameCn())) {
-                map.put("success", false);
-                map.put("message", "传入物料名称(类目)为空");
-                return map;
-            }
+//            if (null == kindConcern.getEnUU()) {
+//                map.put("success", false);
+//                map.put("message", "传入企业为空");
+//                return map;
+//            }
+//            if (StringUtils.isEmpty(kindConcern.getNameCn())) {
+//                map.put("success", false);
+//                map.put("message", "传入物料名称(类目)为空");
+//                return map;
+//            }
             KindConcern concern = kindConcernDao.findOne(kindConcern.getId());
             if (null != concern) {
                 kindConcernDao.delete(concern);
@@ -288,4 +291,22 @@ public class KindConcernServiceImpl implements KindConcernService {
             return map;
         }
     }
+
+    @Override
+    public Page<KindConcern> getKindByPage(PageParams pageParams, String keyword, Long enUU) {
+        Map<String, Object> params = new HashMap<>();
+        String sql = "select ki_name as nameCn, kc_id as id, kc_date as date,kc_enuu as enUU, kc_name_en as nameEn, kc_status as status " +
+                "from (select ki_name from product$kind where ki_isleaf = 1) a left join (select * from product$kind_concern where kc_enuu = :enUU) b on a.ki_name = b.kc_name ";
+        params.put("enUU", enUU);
+        if (!StringUtils.isEmpty(keyword)) {
+            sql += " where ki_name LIKE '%' :keyword '%' ";
+            params.put("keyword", keyword);
+        }
+        sql += " order by status desc limit :start,:pageSize;";
+        PageInfo pageInfo = new PageInfo(pageParams);
+        params.put("start", pageInfo.getOffset());
+        params.put("pageSize", pageInfo.getPageSize());
+        List<KindConcern> kindConcerns = jdbcTemplate.query(sql, params, new BeanPropertyRowMapper<>(KindConcern.class));
+        return new Page<KindConcern>(pageInfo.getPageNumber(), pageInfo.getPageSize(), kindConcerns, (int) kindDao.count());
+    }
 }

+ 0 - 7
src/main/java/com/uas/platform/b2c/trade/order/service/OrderService.java

@@ -664,11 +664,4 @@ public interface OrderService {
 	 * @return
 	 */
 	ResultMap checkConsignment(List<String> uuidArray);
-
-	/**
-	 * 用户确认付款,通知管理后台确认收矿
-	 * @param order 确认付款的订单
-	 * @return
-	 */
-	void sendConfirmPaidMessage(Order order);
 }

+ 0 - 1
src/main/java/com/uas/platform/b2c/trade/order/service/impl/OrderDetailServiceImpl.java

@@ -418,7 +418,6 @@ public class OrderDetailServiceImpl implements OrderDetailService {
 					orderService.setToBeShipped(order.getOrderid());
 				} else if (isPaid) {
 					order.setStatusPaid(userUU);
-                    orderService.sendConfirmPaidMessage(order);
                 } else {
 					order.setStatusToBePaid(userUU);
 				}

+ 0 - 35
src/main/java/com/uas/platform/b2c/trade/order/service/impl/OrderServiceImpl.java

@@ -14,7 +14,6 @@ import com.uas.platform.b2c.common.message.model.MessageModel;
 import com.uas.platform.b2c.common.message.type.ConsumerApp;
 import com.uas.platform.b2c.common.message.type.ConsumerType;
 import com.uas.platform.b2c.common.message.type.SMSType;
-import com.uas.platform.b2c.common.psmessage.service.MessageService;
 import com.uas.platform.b2c.common.search.rpc.service.OrderSearchService;
 import com.uas.platform.b2c.core.config.SysConf;
 import com.uas.platform.b2c.core.constant.ShortConstant;
@@ -212,10 +211,6 @@ public class OrderServiceImpl implements OrderService {
     @Autowired
     private SeekPurchaseService seekPurchaseService;
 
-
-    @Autowired
-    private MessageService messageService;
-
     @Autowired
     private MessageNotifyPersonalManagementService messageNotifyPersonalManagementService;
 
@@ -3476,34 +3471,4 @@ public class OrderServiceImpl implements OrderService {
         }
         return ResultMap.success(bool);
     }
-
-    /**
-     * 用户确认付款,通知管理后台确认收款
-     *
-     * @param order 确认付款的订单
-     * @return
-     */
-    @Override
-    public void sendConfirmPaidMessage(Order order) {
-        if (order == null || StringUtils.isEmpty(order.getOrderid())) {
-            return ;
-        }
-        List<MessageNotifyPersonalManagement> notifyPersonalManagements = messageNotifyPersonalManagementService.findNotifyPersonalEnuuAndType(sysConf.getEnUU(), com.uas.platform.b2c.trade.order.type.MessageType.CONFIRM_PAID.getType());
-        if (org.apache.commons.collections.CollectionUtils.isNotEmpty(notifyPersonalManagements)) {
-            ArrayList<MessageModel> list = new ArrayList<>();
-            for (MessageNotifyPersonalManagement management : notifyPersonalManagements) {
-                Long notifyPersonalUseruu = management.getNotifyPersonalUseruu();
-                if (notifyPersonalUseruu != null) {
-                    MessageModel model = messageService.initMessage(String.format(StringFormat.CONFIRMPAID, order.getOrderid()), com.uas.platform.b2c.trade.order.type.MessageType.CONFIRM_PAID.getType(), notifyPersonalUseruu, sysConf.getEnUU(), ConsumerType.SINGLE, ConsumerApp.MALL, SMSType.DONT_SEND, "");
-                    if (model != null) {
-                        list.add(model);
-                    }
-                }
-            }
-
-            if (org.apache.commons.collections.CollectionUtils.isNotEmpty(list)) {
-                messageService.sendMessage(list);
-            }
-        }
-    }
 }

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

@@ -5,7 +5,6 @@ import com.uas.platform.b2c.common.account.model.Enterprise;
 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.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.prod.store.dao.StoreInDao;
@@ -94,10 +93,6 @@ public class VendorIntroductionServiceImpl implements VendorIntroductionService
                 enterpriseCondition = "(en_name like '%" + keyword + "%' or en_address like '%" + keyword + "%' or en_industry like '% "
                         + keyword + "%')";
             }
-        }
-        Long enUU = 0L;
-        if (null != SystemSession.getUser() && null != SystemSession.getUser().getEnterprise()) {
-            enUU = SystemSession.getUser().getEnterprise().getUu();
         }
 		// 查询所有企业个数
 		Integer total;
@@ -106,11 +101,11 @@ public class VendorIntroductionServiceImpl implements VendorIntroductionService
 		if (!StringUtils.isEmpty(productCondition)) {
 			enterpriseCondition = "(en_name like '%" + keyword + "%' or en_address like '%" + keyword + "%' or en_industry like '% "
 					+ keyword + "%')";
-			total = getTotalCount(enUU, enterpriseCondition, productCondition);
-			vendorIntroductions = getEnterpriseWithProductCondition(enUU, enterpriseCondition, productCondition,  page, size);
+			total = getTotalCount(enterpriseCondition, productCondition);
+			vendorIntroductions = getEnterpriseWithProductCondition(enterpriseCondition, productCondition,  page, size);
 		} else {
-			total = getTotalCount(enUU, enterpriseCondition, productCondition);
-			vendorIntroductions = getEnterpriseWithoutProductCondition(enUU, enterpriseCondition,  page, size);
+			total = getTotalCount(enterpriseCondition, productCondition);
+			vendorIntroductions = getEnterpriseWithoutProductCondition( enterpriseCondition,  page, size);
 		}
 		return new Page<VendorIntroduction>(page, size, vendorIntroductions, total);
 	}
@@ -181,27 +176,22 @@ public class VendorIntroductionServiceImpl implements VendorIntroductionService
 	 */
 	@Override
 	public Integer getVendorCount() {
-		Long enUU = 0L;
-		if (null != SystemSession.getUser() && null != SystemSession.getUser().getEnterprise()) {
-			enUU = SystemSession.getUser().getEnterprise().getUu();
-		}
-		return getTotalCount(enUU, null, null);
+		return getTotalCount(null, null);
 	}
 
 	/**
 	 * 获取供应商资源信息
-	 * @param enUU 本企业UU
 	 * @param enterpriseCondition 企业搜索条件
 	 * @param productCondition 物料搜索条件
 	 * @param page 页码
 	 * @param size 尺寸
 	 * @return
 	 */
-	private List<VendorIntroduction> getEnterpriseWithProductCondition(Long enUU, String enterpriseCondition, String productCondition, int page, int size) {
+	private List<VendorIntroduction> getEnterpriseWithProductCondition(String enterpriseCondition, String productCondition, int page, int size) {
 		StringBuilder enterpriseSql = new StringBuilder();
 		// 查询所有符合条件的enUU的语句,按待售物料数量排序
-		String enUUSql = getEnUUGroupByEnUUOrderByCount(enUU, " 1 = 1 ", productCondition);
-		String noProductenUUSql = getEnUUGroupByEnUUOrderByCount(enUU, enterpriseCondition, null);
+		String enUUSql = getEnUUGroupByEnUUOrderByCount(" 1 = 1 ", productCondition);
+		String noProductenUUSql = getEnUUGroupByEnUUOrderByCount(enterpriseCondition, null);
 		// 获取企业sql
 		enterpriseSql.append("select en.en_uu enUU, en.en_name enName, en.en_shortname enShortname, st.st_logo_url storeLogoUrl, en.en_logurl enLogoUrl, en.en_address enAddress, en.en_tel enTel, " +
 				" en.en_email enEmail, en.en_corporation enCorporation, en.en_businesscode enBusinesscode, en.en_industry enIndustry, en.en_Businessscope enBusinessScope " +
@@ -219,21 +209,20 @@ public class VendorIntroductionServiceImpl implements VendorIntroductionService
 
 	/**
 	 * 获取供应商资源信息
-	 * @param enUU 本企业UU
 	 * @param enterpriseCondition 企业搜索条件
 	 * @param page 页码
 	 * @param size 尺寸
 	 * @return
 	 */
-	private List<VendorIntroduction> getEnterpriseWithoutProductCondition(Long enUU, String enterpriseCondition, int page, int size) {
+	private List<VendorIntroduction> getEnterpriseWithoutProductCondition(String enterpriseCondition, int page, int size) {
 		StringBuilder enterpriseSql = new StringBuilder();
 		// 获取企业sql
 		enterpriseSql.append("select en.en_uu enUU, en.en_name enName, en.en_shortname enShortname, st.st_logo_url storeLogoUrl, en.en_logurl enLogoUrl, en.en_address enAddress, en.en_tel enTel, " +
 				"en.en_email enEmail, en.en_corporation enCorporation, en.en_businesscode enBusinesscode, en.en_industry enIndustry, en.en_Businessscope enBusinessScope " +
 				",st.st_enuu,st.st_status from sec$enterprises en left join store$info st on st.st_enuu = en.en_uu where en_name not like '%测试%' and en_name not like '%test%' " +
 				"and (length(en_businesscode) > 12 or en_name like '%香港%' or en_name like '%HONG KONG%' or en_area like '%香港%') and " +
-				" (en_name not REGEXP '^[0-9]*$' and (en_name like '%ltd%' or en_name like '%limited%' or en_name like '%tcl%' or en_name not regexp '[\\u4e00-\\u9fa5_a-zA-Z0-9]')) and en_uu <> ")
-				.append(enUU).append(" and ").append(enterpriseCondition);
+				" (en_name not REGEXP '^[0-9]*$' and (en_name like '%ltd%' or en_name like '%limited%' or en_name like '%tcl%' or en_name not regexp '[\\u4e00-\\u9fa5_a-zA-Z0-9]'))")
+				.append(" and ").append(enterpriseCondition);
 		// rownum 控制
 		String rownumSql = ") s order by isStore desc,enUU asc limit " + (page - 1) * size + "," + size ;
 		// 查询企业是否开店语句
@@ -244,25 +233,24 @@ public class VendorIntroductionServiceImpl implements VendorIntroductionService
 
 	/**
 	 * 获取所有符合条件企业数量
-	 * @param enUU  本企业UU
 	 * @param enterpriseCondition 企业过滤条件
 	 * @param productCondition 物料过滤条件
 	 * @return
 	 */
-	private Integer getTotalCount(Long enUU, String enterpriseCondition, String productCondition) {
+	private Integer getTotalCount(String enterpriseCondition, String productCondition) {
 		StringBuilder enCountSql = new StringBuilder();
 		enCountSql.append("select count(1) from (select distinct(en_uu) from (select en_uu from sec$enterprises where en_name not like '%测试%' " +
 				" and en_name not like '%test%' and (length(en_businesscode) > 12 or en_name like '%香港%' or en_name like '%HONG KONG%' " +
 				" or en_area like '%香港%')and (en_name not REGEXP '^[0-9]*$' and (en_name like '%ltd%' or en_name like '%limited%' or " +
-				" en_name like '%tcl%' or en_name not regexp '[\\u4e00-\\u9fa5_a-zA-Z0-9]') ) and ");
+				" en_name like '%tcl%' or en_name not regexp '[\\u4e00-\\u9fa5_a-zA-Z0-9]') )");
 		if (StringUtils.isEmpty(productCondition) && !StringUtils.isEmpty(enterpriseCondition)) {
-			enCountSql.append(enterpriseCondition).append(" and ");
+			enCountSql.append(" and ").append(enterpriseCondition);
 		}
-		enCountSql.append(" en_uu <> ").append(enUU).append(") e ");
+		enCountSql.append(") e ");
 		if (!StringUtils.isEmpty(productCondition)) {
 			enCountSql.append("right join ( select pr_enuu from products where ").append(productCondition).append(") p on pr_enuu = en_uu");
 			enCountSql.append(" union select en_uu from sec$enterprises where en_name not like '%测试%'  and en_name not like '%test%' and (length(en_businesscode) > 12 or en_name like '%香港%' or en_name like '%HONG KONG%'  or en_area like '%香港%')and (en_name not REGEXP '^[0-9]*$' and (en_name like '%ltd%' or en_name like '%limited%' or  en_name like '%tcl%' or en_name not regexp '[\\u4e00-\\u9fa5_a-zA-Z0-9]') and ")
-					.append(enterpriseCondition).append(" and en_uu <> ").append(enUU).append(")");
+					.append(enterpriseCondition).append(")");
 		}
 		enCountSql.append(")a");
 		return commonDao.queryForObject(enCountSql.toString(), Integer.class);
@@ -270,18 +258,17 @@ public class VendorIntroductionServiceImpl implements VendorIntroductionService
 
 	/**
 	 * 拼接所有待售物料所属企业UU,按enUU分组,按物料数量倒序
-	 * @param enUU 当前企业UU
 	 * @param enterpriseCondition 企业过滤条件
 	 * @param productCondition 物料匹配条件
 	 * @return
 	 */
-	private String getEnUUGroupByEnUUOrderByCount(Long enUU, String enterpriseCondition, String productCondition) {
+	private String getEnUUGroupByEnUUOrderByCount(String enterpriseCondition, String productCondition) {
 		StringBuilder enUUSql = new StringBuilder();
 		// 含名称、企业执照号、地址、邮箱、电话、行业、经营范围搜索
 		enUUSql.append("select distinct(en_uu) from (select en_uu from sec$enterprises where en_name not like '%测试%' " +
 				" and en_name not like '%test%' and (length(en_businesscode) > 12 or en_name like '%香港%' or en_name like '%HONG KONG%' " +
 				" or en_area like '%香港%')and (en_name not REGEXP '^[0-9]*$' and (en_name like '%ltd%' or en_name like '%limited%' or " +
-				" en_name like '%tcl%' or en_name not regexp '[\\u4e00-\\u9fa5_a-zA-Z0-9]')) and ").append(enterpriseCondition).append(" and en_uu <> ").append(enUU)
+				" en_name like '%tcl%' or en_name not regexp '[\\u4e00-\\u9fa5_a-zA-Z0-9]')) and ").append(enterpriseCondition)
 				.append(") e");
 		if (!StringUtils.isEmpty(productCondition)) {
 			enUUSql.append(" inner join ( select pr_enuu from products where ").append(productCondition).append(") p on pr_enuu = en_uu ");

+ 0 - 2
src/main/resources/spring/hibernate-redis.properties

@@ -22,5 +22,3 @@ redisson-config=classpath:${profile}/redisson.yaml
 # default = 120 seconds (2 minutes) (see RedisCacheUtil.DEFAULT_EXPIRY_IN_SECONDS)
 #
 redis.expiryInSeconds.default=120
-redis.expiryInSeconds.hibernate.common=0
-redis.expiryInSeconds.hibernate.com.uas.platform.b2c.model.User=10

+ 0 - 5
src/main/resources/spring/task.xml

@@ -33,9 +33,4 @@
         <task:scheduled ref="CommonTask" method="updateCount" cron="0 0 1 * * ?"/>
     </task:scheduled-tasks>
     <context:annotation-config />
-
-    <!--超时自动确认收货-->
-    <task:scheduled-tasks>
-        <task:scheduled ref="MessageTask" method="sendMessage" cron="0 0/1 * * * ?"/>
-    </task:scheduled-tasks>
 </beans>

+ 7 - 1
src/main/webapp/WEB-INF/views/normal/adminWithNav.html

@@ -32,6 +32,11 @@
 			<li class="nav-header">B2B</li>
 			<li class="nav-node"><a href="#/b2b/manage"><i
 					class="fa fa-home"></i><span> b2b后台管理</span></a></li>
+
+			<li class="nav-header">数据管理</li>
+			<li class="nav-node"><a href="#/statsData"><i
+					class="fa fa-home"></i><span> 数据中心</span></a></li>
+
 			<li class="nav-header">交易管理</li>
 			<li class="nav-node"><a href="#trade/buyerOrder"><i
 					class="fa fa-home"></i><span> 买家销售单跟踪</span></a></li>
@@ -51,7 +56,6 @@
 					class="fa fa-home"></i><span> 评价管理</span></a></li>
 			<li class="nav-node"><a href="#trade/record_chart"><i
 					class="fa fa-th"></i><span> 交易记录表</span></a></li>
-
 			<li class="nav-header">财务结算中心</li>
 			<li class="nav-node"><a href="#check/check_vender"><i
 					class="fa fa-user"></i><span> 付款申请</span></a></li>
@@ -189,6 +193,8 @@
 					class="fa fa-flag"></i><span>优质采购商</span></a></li>
 			<li class="nav-node"><a href="#/seekSalesman"><i
 					class="fa fa-flag"></i><span>求购-业务员分配</span></a></li>
+			<li class="nav-node"><a href="#/seekManage"><i
+					class="fa fa-flag"></i><span>求购信息管理</span></a></li>
 
 			<li class="nav-header">禁用信息</li>
 			<li class="nav-node"><a href="#/disable/brand"><i

+ 36 - 1
src/main/webapp/resources/css/admin.css

@@ -1193,4 +1193,39 @@ body div.ng-table-pager a.page-a{
 body div.ng-table-pager a.page-a:hover{
 	background: #3ba9e9 !important;
 	color: #fff;
-}
+}
+
+/*---------------------标准控件-单选框start---------------------*/
+/** html代码
+    <label class="com-check-radio">
+        <input type="radio" id="effect" name="radio">
+        <label for="effect"></label>
+        生效
+    </label>
+    <label class="com-check-radio">
+        <input type="radio" id="no-effect" name="radio" checked="checked">
+        <label for="no-effect"></label>
+        暂不生效
+    </label>
+**/
+.com-check-radio input[type='radio']{
+	display: none!important;
+	margin: 7px 8px 0!important;
+}
+.com-check-radio input[type='radio'] + label{
+	position: relative!important;
+	top: 7px!important;
+	margin-right: 5px!important;
+	display: inline-block!important;
+	width: 12px!important;
+	height: 12px!important;
+	font-weight: normal!important;
+	background: url(../img/icon/check-rule.png) no-repeat;
+}
+.com-check-radio label{
+	background-position: 0 0!important;
+}
+.com-check-radio input:checked + label{
+	background-position: -15px 0!important;
+}
+/*---------------------标准控件-单选框end---------------------*/

+ 16 - 2
src/main/webapp/resources/js/admin/app.js

@@ -1,4 +1,4 @@
- define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ui-form', 'ngLocal', 'ngTable', 'ngSanitize', 'ngDraggable', 'common/services', 'common/directives', 'common/query/brand', 'common/query/address', 'common/query/return' , 'common/query/change' ,'common/query/component', 'common/query/order', 'common/query/purchase', 'common/query/invoice', 'common/query/property', 'common/query/kind', 'common/query/property', 'common/query/commodity', 'common/query/receipt', 'common/query/logistics' ,'angular-toaster', 'ui-jquery', 'jquery-uploadify','common/query/dateParse' , 'common/query/bankTransfer' ,'common/query/bankInfo', 'common/query/urlencryption', 'common/query/bill', 'common/query/makerDemand', 'common/query/goods', 'common/query/validtime', 'file-upload','file-upload-shim', 'common/query/slideImage', 'common/query/kindAdvice', 'common/query/responseLogistics', 'common/query/search','common/directives/dynamicInput', 'common/query/auditorMail', 'common/query/tradeBasicProperties', 'common/query/exchangeRate', 'common/query/tradeDeliveryDelayTime', 'common/query/payment', 'common/query/kindContrast', 'common/query/crawlTask', 'common/query/afterSale', 'common/query/refund', 'common/query/messageBoard', 'common/query/logisticsPort', 'common/query/storeInfo', 'common/query/cms', 'common/query/help', 'common/query/commonCount', 'common/module/store_admin_violations_module', 'common/query/internalMessage','common/query/user','common/query/secQuestion','common/query/keyWord','common/query/logUsage','common/query/seekQualityBuyer','common/query/loanApply', 'common/query/supplier', 'common/query/seekSalesman', 'common/query/b2bManage', 'common/query/adminNews'], function(angularAMD) {
+ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ui-form', 'ngLocal', 'ngTable', 'ngSanitize', 'ngDraggable', 'common/services', 'common/directives', 'common/query/brand', 'common/query/address', 'common/query/return' , 'common/query/change' ,'common/query/component', 'common/query/order', 'common/query/purchase', 'common/query/invoice', 'common/query/property', 'common/query/kind', 'common/query/property', 'common/query/commodity', 'common/query/receipt', 'common/query/logistics' ,'angular-toaster', 'ui-jquery', 'jquery-uploadify','common/query/dateParse' , 'common/query/bankTransfer' ,'common/query/bankInfo', 'common/query/urlencryption', 'common/query/bill', 'common/query/makerDemand', 'common/query/goods', 'common/query/validtime', 'file-upload','file-upload-shim', 'common/query/slideImage', 'common/query/kindAdvice', 'common/query/responseLogistics', 'common/query/search','common/directives/dynamicInput', 'common/query/auditorMail', 'common/query/tradeBasicProperties', 'common/query/exchangeRate', 'common/query/tradeDeliveryDelayTime', 'common/query/payment', 'common/query/kindContrast', 'common/query/crawlTask', 'common/query/afterSale', 'common/query/refund', 'common/query/messageBoard', 'common/query/logisticsPort', 'common/query/storeInfo', 'common/query/cms', 'common/query/help', 'common/query/commonCount', 'common/module/store_admin_violations_module', 'common/query/internalMessage','common/query/user','common/query/secQuestion','common/query/keyWord','common/query/logUsage','common/query/seekQualityBuyer','common/query/loanApply', 'common/query/supplier', 'common/query/seekSalesman', 'common/query/b2bManage', 'common/query/adminNews', 'common/query/seekPurchase'], function(angularAMD) {
 	'use strict';
 
 	 /**
@@ -8,7 +8,7 @@
 		 return this.length > 0 ? this[this.length - 1] : null;
 	 };
 
-	var app = angular.module('myApp', [ 'ui.router', 'ui.bootstrap', 'ui.form', 'ng.local', 'ngTable', 'ngSanitize', 'ngDraggable', 'common.services', 'common.directives', 'brandServices', 'addressServices', 'returnServices', 'changeServices', 'componentServices', 'orderServices', 'purchaseServices', 'invoiceServices', 'propertyServices', 'receiptServices', 'logisticsServices', 'common.query.kind', 'toaster','ui.jquery', 'commodityServices', 'dateparseServices', 'bankInfo' , 'bankTransfer', 'urlencryptionServices', 'billServices', 'makerDemand', 'goodsServices', 'validtimeServices', 'angularFileUpload', 'slideImageService', 'common.query.kindAdvice', 'responseLogisticsService', 'searchService', 'ngDynamicInput', 'ReviewerEmailInfoService', 'tradeBasicPropertiesServices', 'exchangeRateModule', 'tradeDeliveryDelayTimeModule', 'PaymentService', 'kindContrastServices', 'crawlTaskServices', 'afterSaleService', 'refundModule', 'messageBoardServices', 'logisticsPortService', 'storeInfoServices', 'cmsService', 'helpServices', 'commonCountServices', 'tool.directives', 'StoreAdminViolationsModule', 'internalMessageServices','common.query.user','secQuestionServices','keyWordServices','logUsageServices','seekQualityBuyerServices', 'loanApplyService', 'supplierServices', 'seekSalesmanServices', 'b2bManageService','adminNewsService']);
+	var app = angular.module('myApp', [ 'ui.router', 'ui.bootstrap', 'ui.form', 'ng.local', 'ngTable', 'ngSanitize', 'ngDraggable', 'common.services', 'common.directives', 'brandServices', 'addressServices', 'returnServices', 'changeServices', 'componentServices', 'orderServices', 'purchaseServices', 'invoiceServices', 'propertyServices', 'receiptServices', 'logisticsServices', 'common.query.kind', 'toaster','ui.jquery', 'commodityServices', 'dateparseServices', 'bankInfo' , 'bankTransfer', 'urlencryptionServices', 'billServices', 'makerDemand', 'goodsServices', 'validtimeServices', 'angularFileUpload', 'slideImageService', 'common.query.kindAdvice', 'responseLogisticsService', 'searchService', 'ngDynamicInput', 'ReviewerEmailInfoService', 'tradeBasicPropertiesServices', 'exchangeRateModule', 'tradeDeliveryDelayTimeModule', 'PaymentService', 'kindContrastServices', 'crawlTaskServices', 'afterSaleService', 'refundModule', 'messageBoardServices', 'logisticsPortService', 'storeInfoServices', 'cmsService', 'helpServices', 'commonCountServices', 'tool.directives', 'StoreAdminViolationsModule', 'internalMessageServices','common.query.user','secQuestionServices','keyWordServices','logUsageServices','seekQualityBuyerServices', 'loanApplyService', 'supplierServices', 'seekSalesmanServices', 'b2bManageService','adminNewsService', 'seekPurchaseServices']);
 	app.init = function() {
 		angularAMD.bootstrap(app);
 	};
@@ -660,6 +660,13 @@
             controller: 'SeekSalesmanDetailCtrl',
             controllerUrl: 'app/controllers/SeekSalesmanDetailCtrl',
             title: '求购业务员分配详情'
+        })).state('seekManage', angularAMD.route({
+            // 求购信息管理
+            url: '/seekManage',
+            templateUrl: 'static/view/admin/seek_manage.html',
+            controller: 'SeekManageCtrl',
+            controllerUrl: 'app/controllers/SeekManageCtrl',
+            title: '求购业务员分配'
         })).state('keyWord', angularAMD.route({
 			url: '/keyWord',
 			templateUrl: 'static/view/admin/keyword.html',
@@ -826,6 +833,13 @@
             controller: 'b2bManageCtrl',
             controllerUrl: 'app/controllers/b2b/b2bManageCtrl',
             title: '贷款申请列表'
+        })).state('statsData', angularAMD.route({
+            // b2b后台管理
+            url: '/statsData',
+            templateUrl: 'static/view/admin/stats_data.html',
+            controller: 'statsDataCtrl',
+            controllerUrl: 'app/controllers/statsDataCtrl',
+            title: '数据统计数据'
 		}));
 		
 		$httpProvider.interceptors.push(['Loading', '$q', function(Loading, $q) {

+ 75 - 0
src/main/webapp/resources/js/admin/controllers/SeekManageCtrl.js

@@ -0,0 +1,75 @@
+define(['app/app'], function (app) {
+  'use strict';
+  app.register.controller('SeekManageCtrl', ['$scope', 'toaster', 'BaseService','$modal','ngTableParams', '$http', 'seekPurchase',
+      function ($scope, toaster, BaseService,$modal,ngTableParams, $http, seekPurchase) {
+
+      $scope.valid = 1;
+      $scope.seekUrl = 'http://192.168.253.12:24000/';
+      seekPurchase.getSeekUrl({}, function(data) {
+          $scope.seekUrl = data.url;
+          $scope.seekManageTableParams = new ngTableParams({
+              pageNumber: 1,
+              pageSize: 10
+          }, {
+              total: 0,
+              getData: function ($defer, params) {
+                  var param = BaseService.parseParams(params.url());
+                  param.keyword = $scope.keyword;
+                  // param.fromDate = $scope.startDate
+                  //     ? $scope.startDate.getTime() : null;
+                  // param.endDate = $scope.endDate ? $scope.endDate.getTime()
+                  //     : null;
+                  param.pageNumber = param.page;
+                  param.pageSize = param.count;
+                  param.valid = $scope.valid;
+                  $http({
+                      method: 'get',
+                      dataType: 'json',
+                      url: $scope.seekUrl + '/inquiry/public',
+                      params: param
+                  }).success(function (data) {
+                      params.total(data.totalElements);
+                      $defer.resolve(data.content);
+                  }).error(function (response) {
+                      toaster.pop('error', response);
+                  });
+              }
+          })
+      });
+
+      $scope.onSearchKeyWord = function() {
+          $scope.seekManageTableParams.page(1);
+          $scope.seekManageTableParams.reload();
+      };
+
+      $scope.onSearchValid = function(valid) {
+          $scope.valid = valid;
+          $scope.seekManageTableParams.page(1);
+          $scope.seekManageTableParams.reload();
+      };
+
+      $scope.deleteItem = function(id, valid) {
+
+          $http({
+              method: 'post',
+              dataType: 'json',
+              url: $scope.seekUrl + '/inquiry/public/deleteItem',
+              params: {
+                  id: id,
+                  valid: valid
+              }
+          }).success(function (data) {
+              if (data.success) {
+                  toaster.pop("success", "操作成功");
+              } else {
+                  toaster.pop("error", data.message);
+              }
+              $scope.seekManageTableParams.page(1);
+              $scope.seekManageTableParams.reload();
+          }).error(function (response) {
+              toaster.pop('error', response.message);
+          });
+      };
+
+  }]);
+});

+ 278 - 0
src/main/webapp/resources/js/admin/controllers/statsDataCtrl.js

@@ -0,0 +1,278 @@
+define([ 'app/app' ], function(app) {
+    //在售商品信息统计
+    app.register.controller('statsDataCtrl', ['$scope', 'Goods', 'toaster', 'ComponentActive', 'BrandActive', 'CommonCountAPI', 'User', '$http', function($scope, Goods, toaster, ComponentActive, BrandActive, CommonCountAPI, User, $http) {
+        $scope.dateArea = 'oneMonth';
+        var _formatDate = function (date, fmt) {
+            if (!date) {
+                return null;
+            }
+            if (typeof date === 'string') {
+                date = new Date(Date.parse(date.replace(/-/g, '/')));
+            }
+            var o = {
+                'M+': date.getMonth() + 1, // 月份
+                'd+': date.getDate(), // 日
+                'h+': date.getHours(), // 小时
+                'm+': date.getMinutes(), // 分
+                's+': date.getSeconds(), // 秒
+                'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
+                'S': date.getMilliseconds() // 毫秒
+            }
+            if (/(y+)/.test(fmt)) {
+                fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
+            }
+            for (var k in o) {
+                if (new RegExp('(' + k + ')').test(fmt)) {
+                    fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)));
+                }
+            }
+            return fmt;
+        };
+        var _getClearDay = function (date) {
+            return new Date(_formatDate(date, 'yyyy-MM-dd')).getTime() - 8 * 60 * 60 * 1000
+        };
+
+        var currentTime = _getClearDay(new Date());
+        $scope.startDate = new Date(currentTime - 30 * 24 * 60 * 60 * 1000);
+        $scope.endDate = new Date(currentTime + 23 * 60 * 60 * 1000 + 59 * 60 * 1000 + 59 * 1000);
+        $scope.startFormatDate = _formatDate($scope.startDate, 'yyyy-MM-dd');
+        $scope.endFormatDate = _formatDate($scope.endDate, 'yyyy-MM-dd');
+
+        $scope.setFilters = function (type, val) {
+            $scope[type] = val;
+            if (type == 'dateArea') {
+                // 时间筛选
+                var currentTime = _getClearDay(new Date());
+                console.log(currentTime, 'currentTime')
+                var endDate = new Date(currentTime + 23 * 60 * 60 * 1000 + 59 * 60 * 1000 + 59 * 1000);
+                if (val == 'oneMonth') {
+                    $scope.startDate = new Date(currentTime - 30 * 24 * 60 * 60 * 1000 - 24 * 60 * 60 * 1000);
+                    $scope.endDate = endDate;
+                    $scope.startFormatDate = _formatDate($scope.startDate, 'yyyy-MM-dd');
+                    $scope.endFormatDate = _formatDate($scope.endDate, 'yyyy-MM-dd');
+                } else if (val == 'threeMonth') {
+                    $scope.startDate = new Date(currentTime - 3 * 30 * 24 * 60 * 60 * 1000 - 24 * 60 * 60 * 1000);
+                    $scope.endDate = endDate;
+                    $scope.startFormatDate = _formatDate($scope.startDate, 'yyyy-MM-dd');
+                    $scope.endFormatDate =  _formatDate($scope.endDate, 'yyyy-MM-dd');
+                } else if (val == 'sixMonth') {
+                    $scope.startDate = new Date(currentTime - 6 * 30 * 24 * 60 * 60 * 1000 - 24 * 60 * 60 * 1000);
+                    $scope.endDate = endDate;
+                    $scope.startFormatDate = _formatDate($scope.startDate, 'yyyy-MM-dd');
+                    $scope.endFormatDate =  _formatDate($scope.endDate, 'yyyy-MM-dd');
+                }
+            }
+            if (val != 'autoMonth') {
+                initData();
+            } else {
+                $scope.startDate = null;
+                $scope.endDate = null;
+            }
+        };
+
+        $scope.condition = [];
+        var start = {
+            open : false
+        };
+        var end = {
+            open : false
+        };
+        $scope.condition.push(start);
+        $scope.condition.push(end);
+        // 打开日期选择框
+        $scope.openDatePicker = function($event, item, openParam) {
+            $event.preventDefault();
+            $event.stopPropagation();
+            openParam == 0 ? $scope.condition[1].open = false : $scope.condition[0].open = false;
+            item[openParam].open = !item[openParam].open;
+        };
+
+        $scope.onDateCondition = function (bool) {
+            var startTime = $scope.startDate ? $scope.startDate.getTime() : null;
+            var endTime = $scope.endDate ? $scope.endDate.getTime() : null;
+            if (startTime && endTime && startTime > endTime) {
+                if (bool == 1) {
+                    toaster.pop('info', '起始时间不能大于结束时间');
+                    $scope.startDate = null;
+                } else {
+                    toaster.pop('info', '结束时间不能小于起始时间');
+                    $scope.endDate = null;
+                }
+            }
+            if ($scope.endDate && bool == 2) {
+                $scope.endDate = new Date($scope.endDate.getFullYear(), $scope.endDate.getMonth(), $scope.endDate.getDate())
+                $scope.endDate = new Date($scope.endDate.getTime() + 23 * 60 * 60 * 1000 + 59 * 60 * 1000 + 59 * 1000);
+            }
+            initData();
+        };
+
+        // 获取帐户中心数据和询价接口数据
+        var getDevOrProdData = function () {
+            User.isDevOrProd(null, function (data) {
+                $scope.ssoUrl = data.data == 'success' ? 'https://sso.ubtob.com' : 'http://192.168.253.6:32323';
+                $scope.uasUrl = data.data == 'success' ? 'http://uas.ubtob.com' : 'http://192.168.253.12:9000/b2b-test';
+                $scope.commonUrl = data.data == 'success' ? 'https://api-inquiry.usoftmall.com' : 'http://218.17.158.219:24000';
+                // 询价信息
+                $http({
+                    method: 'get',
+                    dataType: 'json',
+                    url: $scope.commonUrl + '/inquiry/public/getInquiryCountData',
+                    params: {startDate: $scope.startFormatDate, endDate: $scope.endFormatDate}
+                }).success(function (data) {
+                    $scope.inquiryData = data
+                }).error(function () {
+                    toaster.pop('error', '获取未处理审批数据失败');
+                });
+                // 新增企业用户数
+                $http({
+                    method: 'get',
+                    dataType: 'json',
+                    url: $scope.ssoUrl + '/api/userspace/inputTime/count/apps',
+                    params: {start: $scope.startFormatDate, end: $scope.endFormatDate, fromApps:'mall,b2b'}
+                }).success(function (data) {
+                    $scope.newAddUserSpaceData = data.content
+                }).error(function () {
+                    toaster.pop('error', '获取未处理审批数据失败');
+                });
+                // 新增个人用户
+                $http({
+                    method: 'get',
+                    dataType: 'json',
+                    url: $scope.ssoUrl + '/api/user/inputTime/count/apps',
+                    params: {start: $scope.startFormatDate, end: $scope.endFormatDate, fromApps:'mall,b2b'}
+                }).success(function (data) {
+                    $scope.newAddUserData = data.content
+                }).error(function () {
+                    toaster.pop('error', '获取未处理审批数据失败');
+                });
+                // 半年未登录用户数
+                $http({
+                    method: 'get',
+                    dataType: 'json',
+                    url: $scope.ssoUrl + '/api/user/count/notlgoin/month',
+                    params: {start: $scope.startFormatDate, end: $scope.endFormatDate, months: '6,12,24'}
+                }).success(function (data) {
+                    $scope.monthLogoData = data
+                }).error(function () {
+                    toaster.pop('error', '获取未处理审批数据失败');
+                });
+            }, function (response) {
+                toaster.pop('error', '获取运行环境失败');
+            });
+        };
+
+        // 获取不同时间阶段的相关数据
+        var initData = function () {
+            getDevOrProdData();
+            // 上传产品个数
+            Goods.getProductsCmp({fromDate: $scope.startDate.getTime(), toDate: $scope.endDate.getTime()}, function (data) {
+                $scope.productsCount = data.data
+            }, function (res) {
+                toaster.pop('error', '数据获取失败,请重试')
+            });
+        };
+        initData();
+
+        Goods.getAllCmp({}, function (data) {
+            angular.forEach(data, function(value) {
+                switch(value.item) {
+                    case '规格书':
+                        $scope.start1 = value.count;
+                        break;
+                    case '品牌':
+                        $scope.start2 = value.count;
+                        break;
+                    case '现货':
+                        $scope.start3 = value.count;
+                        break;
+                    case '当前器件总数':
+                        $scope.start4 = value.count;
+                        break;
+                    case '本月新增器件数':
+                        $scope.start5 = value.count;
+                        break;
+                    case '上月新增器件数':
+                        $scope.start6 = value.count;
+                        break;
+                    case '本月新增品牌数':
+                        $scope.start7 = value.count;
+                        break;
+                    case '当前类目总数':
+                        $scope.start8 = value.count;
+                        break;
+                    case '本月更新器件数':
+                        $scope.start9 = value.count;
+                        break;
+                    case '库存合计':
+                        $scope.start10 = value.count;
+                        break;
+                    case '在售商品品牌数量':
+                        $scope.start11 = value.count;
+                        break;
+                    case '在售商品类目数量':
+                        $scope.start12 = value.count;
+                        break;
+                    case '在售商品型号数量':
+                        $scope.start13 = value.count;
+                        break;
+                    case '含税金额合计(RMB)':
+                        $scope.start14 = value.count;
+                        break;
+                    case '未税金额合计(RMB)':
+                        $scope.start15 = value.count;
+                        break;
+                    case '上年交易金额':
+                        $scope.start16 = value.count;
+                        break;
+                    case '本年交易金额':
+                        $scope.start17 = value.count;
+                        break;
+                    case '上月器件总数':
+                        $scope.start18 = value.count;
+                        break;
+                    case '上月品牌总数':
+                        $scope.start19 = value.count;
+                        break;
+                    case '上月开通店铺数量':
+                        $scope.start20 = value.count;
+                        break;
+                    case '上个月用户注册量':
+                        $scope.start21 = value.count;
+                        break;
+                    case '上个月企业注册量':
+                        $scope.start22 = value.count;
+                        break;
+                    case '供应商总数':
+                        $scope.start23 = value.count;
+                        break;
+                    case '店铺总数':
+                        $scope.start24 = value.count;
+                        break;
+                    case '本月新增店铺数':
+                        $scope.start25 = value.count;
+                        break;
+                    case '上月新增店铺数':
+                        $scope.start26 = value.count;
+                        break;
+                    case '优软云个人用户数':
+                        $scope.start27 = value.count;
+                        break;
+                    case '注册总数量':
+                        $scope.start28 = value.count;
+                        break;
+                    case '当月注册数量':
+                        $scope.start29 = value.count;
+                        break;
+                    case '上月注册汇总':
+                        $scope.start30 = value.count;
+                        break;
+                    case '手机UU用户数':
+                        $scope.start31 = value.count;
+                        break;
+                }
+            });
+        }, function(res) {
+            toaster.pop('error', '提示', '获取数据失败,请刷新页面')
+        })
+    }]);
+});

+ 28 - 28
src/main/webapp/resources/js/admin/controllers/trade/goodsStatisticsCtrl.js

@@ -1,6 +1,6 @@
 define([ 'app/app' ], function(app) {
 	//在售商品信息统计
-	app.register.controller('goodsStatisticsCtrl', ['$scope', 'Goods', 'toaster', 'ComponentActive', 'BrandActive', 'CommonCountAPI', function($scope, toaster, ComponentActive, BrandActive, Goods, CommonCountAPI) {
+	app.register.controller('goodsStatisticsCtrl', ['$scope', 'Goods', 'toaster', 'ComponentActive', 'BrandActive', 'CommonCountAPI', function($scope, Goods, toaster, ComponentActive, BrandActive, CommonCountAPI) {
 		// 在售商品信息汇总
 		Goods.getStatistics({}, {}, function(data) {
 			$scope.statistics = data;
@@ -8,33 +8,33 @@ define([ 'app/app' ], function(app) {
 			toaster.pop('error', '提示', '获取数据失败,请刷新页面');
 		});
 
-		// 各月新增器件数量
-		ComponentActive.getIncreaseCount({}, function(data) {
-			$scope.increaseCmpCount = data;
-		}, function (response) {
-			toaster.pop('error', '数据获取失败,请重试');
-		});
-
-		//各月新增品牌数量
-		BrandActive.getIncreaseCount({}, function(data) {
-			$scope.increaseBrandCount = data;
-		}, function (response) {
-			toaster.pop('error', '数据获取失败,请重试');
-		});
-
-		//各月新增批次数量
-		Goods.getIncreaseBatch({}, function(data) {
-			$scope.increaseBatchCount = data;
-		}, function (response) {
-			toaster.pop('error', '数据获取失败,请重试');
-		});
-
-		//各月新增在售器件数量
-		Goods.getIncreaseCmp({}, function(data) {
-			$scope.increaseInSaleCmpCount = data;
-		}, function (response) {
-			toaster.pop('error', '数据获取失败,请重试');
-		});
+		// // 各月新增器件数量
+		// ComponentActive.getIncreaseCount({}, function(data) {
+		// 	$scope.increaseCmpCount = data;
+		// }, function (response) {
+		// 	toaster.pop('error', '数据获取失败,请重试');
+		// });
+		//
+		// //各月新增品牌数量
+		// BrandActive.getIncreaseCount({}, function(data) {
+		// 	$scope.increaseBrandCount = data;
+		// }, function (response) {
+		// 	toaster.pop('error', '数据获取失败,请重试');
+		// });
+		//
+		// //各月新增批次数量
+		// Goods.getIncreaseBatch({}, function(data) {
+		// 	$scope.increaseBatchCount = data;
+		// }, function (response) {
+		// 	toaster.pop('error', '数据获取失败,请重试');
+		// });
+		//
+		// //各月新增在售器件数量
+		// Goods.getIncreaseCmp({}, function(data) {
+		// 	$scope.increaseInSaleCmpCount = data;
+		// }, function (response) {
+		// 	toaster.pop('error', '数据获取失败,请重试');
+		// });
 
 		// 首页轮播数据统计
 		CommonCountAPI.getActived({}, function (data) {

+ 2 - 1
src/main/webapp/resources/js/admin/main.js

@@ -29,7 +29,8 @@ require.config({
 		'showdown' : 'lib/showdown/showdown.min',
 		'quill-core' : 'lib/quill/quill.core',
 		'quill' : 'lib/quill/quill',
-		'big': 'lib/decimal/big.min'
+		'big': 'lib/decimal/big.min',
+		'seekPurchase':'js/common/query/seekPurchase'
 	},
 	shim : {
 		'angular' : {

+ 11 - 0
src/main/webapp/resources/js/common/query/goods.js

@@ -203,6 +203,17 @@ define([ 'ngResource' ], function() {
 				method : 'GET',
 				isArray : true
 			},
+            // 上传产品个数
+            getProductsCmp: {
+                url : rootPath + '/trade/products/apply/count',
+                method : 'GET'
+            },
+			// 所有统计信息数据
+            getAllCmp: {
+                url : rootPath + '/api/product/commoncount/all',
+                method : 'GET',
+				isArray: true
+            },
 			getDownLoadStatus: {
 				url : 'release/product/release/failure/status',
 				method : 'GET'

+ 5 - 0
src/main/webapp/resources/view/admin/index.html

@@ -36,6 +36,11 @@
 							<span class="green">9</span> b2b管理页面
 						</a>
 					</li>
+					<li>
+						<a href="#/statsData">
+							<span class="red">10</span>数据统计
+						</a>
+					</li>
 				</ul>
 			</div>
 		</div>

+ 75 - 0
src/main/webapp/resources/view/admin/seek_manage.html

@@ -0,0 +1,75 @@
+<style>
+.row {
+	margin-bottom: 10px;
+}
+table {
+	table-layout: fixed;
+	word-wrap:break-word;
+}
+
+</style>
+<div>
+	<div class="box-header well">
+		求购-信息管理
+	</div>
+	<div  class="box-content">
+		<div class="row">
+			<div class="col-sm-1">
+
+			</div>
+			<div class="col-sm-7">
+
+			</div>
+			<div class="col-sm-4">
+				<div class="input-group">
+					<input placeholder="请输入品牌/型号/类目" class="form-control ng-pristine ng-untouched ng-valid" ng-model="keyword" ng-search="onSearchKeyWord()"type="text">
+					<span class="input-group-btn">
+						<button class="btn btn-primary" type="button" ng-click="onSearchKeyWord()">搜索</button>
+					</span>
+				</div>
+			</div>
+		</div>
+		<table ng-table="seekManageTableParams"
+			class="table table-bordered table-striped table-hover" style="word-break:break-all; word-wrap:break-all;">
+			<thead>
+				<tr class="tr-default">
+					<th width="15%;" class="text-center">求购企业</th>
+					<th width="10%;" class="text-center">发布时间</th>
+					<th width="10%" class="text-center">品牌</th>
+					<th width="15%" class="text-center">物料名称</th>
+					<th width="15%" class="text-center">型号</th>
+					<th width="15%" class="text-center">规格</th>
+					<th width="5%" class="text-center">采购数量</th>
+					<th width="5%" class="text-center">已报价数量</th>
+					<th width="10%" class="text-center">截止时间</th>
+					<th width="10%" class="text-center"><select ng-change="onSearchValid(valid)" ng-model="valid">
+						<option value="1">可报价</option>
+						<option value="0">已禁用</option>
+					</select></th>
+					<th width="10%" class="text-center">操作</th>
+				</tr>
+			</thead>
+			<tbody ng-repeat="seek in $data">
+				<tr class="text-center">
+					<td><span ng-bind="seek.inquiry.enName"></span></td>
+					<td><span ng-bind="seek.date | date : 'yyyy-MM-dd HH:mm:ss'"></span></td>
+					<td><span ng-bind="seek.inbrand"></span></td>
+					<td><span ng-bind="seek.prodTitle"></span></td>
+					<td><p ng-bind="seek.cmpCode"></p></td>
+					<td><p ng-bind="seek.spec"></p></td>
+					<td><p ng-bind="seek.needquantity"></p></td>
+					<td><p ng-bind="seek.offerAmount"></p></td>
+					<td><span ng-bind="seek.endDate | date : 'yyyy-MM-dd HH:mm:ss'"></span></td>
+					<td>
+						<span ng-if="seek.valid == 1">可报价</span>
+						<span ng-if="seek.valid != 1">已禁用</span>
+					</td>
+					<td>
+						<button ng-if="seek.valid == 1" class="btn btn-sm btn-danger" ng-click="deleteItem(seek.id, 0)">禁用</button>
+						<button ng-if="seek.valid != 1" class="btn btn-sm btn-info" ng-click="deleteItem(seek.id, 1)">恢复</button>
+					</td>
+				</tr>
+			</tbody>
+		</table>
+	</div>
+</div>

+ 384 - 0
src/main/webapp/resources/view/admin/stats_data.html

@@ -0,0 +1,384 @@
+<style>
+    .fl{
+        float:left;
+    }
+    .fr{
+        float:right;
+    }
+
+    #rootStats .fullscreen{
+        padding: 0 10px;
+    }
+
+    #rootStats .fullscreen .title span{
+        font-weight: bold;
+        margin-bottom:10px;
+        color:#333;
+    }
+    #rootStats .form-group{
+        margin-bottom:10px;
+    }
+    #rootStats .col-sm-6,#rootStats .col-sm-8{
+        padding-right:0;
+    }
+    #rootStats .col-sm-6,#rootStats .col-sm-4{
+        padding-left:0;
+    }
+
+    /*搜索时间筛选 start*/
+    #rootStats .screen {
+        position: absolute;
+        top: 15px;
+        left: 175px;
+        font-size: 14px;
+        font-weight: normal;
+        margin-right:10px;
+        width:750px;
+    }
+    #rootStats .com-check-radio{
+        font-size: 14px;
+        font-weight: normal;
+        line-height: 32px;
+        margin-right: 10px;
+        cursor:pointer;
+    }
+    #rootStats .screen .sreach .date{
+        margin:0 20px;
+    }
+    #rootStats .screen .sreach .date input{
+        width: 117px;
+        text-align: left;
+        border: 1px solid #5078cb;
+    }
+    #rootStats .screen .sreach .date input:hover{
+        cursor: pointer;
+    }
+    #rootStats .screen .sreach .date strong{
+        float: left;
+        line-height: 32px;
+        color: #999;
+        margin: 0 5px;
+    }
+    #rootStats .data-input{
+        float: left;
+        position: relative;
+    }
+    #rootStats .data-input button.open{
+        position: absolute;
+        right: 1px;
+        top: 1px;
+        width: 20px;
+        height: 30px;
+        background: url('static/img/user/images/xiala.png') right no-repeat #fff !important;
+        background-position-x: 100% !important;
+        border: none;
+    }
+    #rootStats .screen .sreach .date input.form-control{
+        padding: 6px 6px;
+        border-radius: 2px;
+        height:32px;
+    }
+</style>
+<div class="row-fluid sortable" id="rootStats">
+    <div class="box">
+        <div class="box-header well" data-original-title>
+            <i class="icon-user"></i> 信息统计
+        </div>
+        <div class="box-content row">
+            <div class="fullscreen">
+                <div class="col-sm-4 f14">
+                    <div class="form-group row title">
+                        <span class="col-sm-6 text-right">经营目标统计:</span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">注册总数量:</span>
+                        <span class="col-sm-6" ng-bind="start28 | number"></span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">当月注册总量:</span>
+                        <span class="col-sm-6" ng-bind="start29 | number"></span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">上月注册总量:</span>
+                        <span class="col-sm-6" ng-bind="start30 | number"></span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">商城开店总数:</span>
+                        <span class="col-sm-6" ng-bind="start24 | number"></span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">商城本月开店数:</span>
+                        <span class="col-sm-6">
+							<span ng-bind="start25 | number"></span>
+						</span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">商城上月开店总数:</span>
+                        <span class="col-sm-6">
+							<span ng-bind="start26 | number"></span>
+						</span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">本年度交易总额折合(RMB):</span>
+                        <span class="col-sm-6">¥
+							<span ng-bind="start17 | number"></span>
+						</span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">上年度交易总额折合(RMB):</span>
+                        <span class="col-sm-6">¥
+							<span ng-bind="start16 | number"></span>
+						</span>
+                    </div>
+                    <!--<div class="form-group row">
+                        <span class="col-sm-6 text-right">企业信息库总数:</span>
+                        <span class="col-sm-6">
+							<span ng-bind="statistics.sumPriceRMBNT | number"></span>
+						</span>
+                    </div>-->
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">优软云个人用户数:</span>
+                        <span class="col-sm-6">
+							<span ng-bind="start27 | number"></span>
+						</span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">手机UU用户数:</span>
+                        <span class="col-sm-6">
+							<span ng-bind="start31 | number"></span>
+						</span>
+                    </div>
+                </div>
+                <div class="col-sm-4 f14">
+                    <div class="form-group row title">
+                        <span class="col-sm-6 text-right">器件信息统计:</span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">当前器件总数:</span>
+                        <span class="col-sm-6" ng-bind="start4 | number"></span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">本月新增器件数:</span>
+                        <span class="col-sm-6" ng-bind="start5 | number"></span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">上月新增器件数:</span>
+                        <span class="col-sm-6" ng-bind="start6 | number"></span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">当前品牌数:</span>
+                        <span class="col-sm-6" ng-bind="start2 | number"></span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">本月新增品牌数:</span>
+                        <span class="col-sm-6" ng-bind="start7 | number"></span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">当前类目总数:</span>
+                        <span class="col-sm-6">
+							<span ng-bind="start8 | number"></span>
+						</span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">本月更新器件数:</span>
+                        <span class="col-sm-6">
+							<span ng-bind="start9 | number"></span>
+						</span>
+                    </div>
+                    <!--<div class="form-group row">-->
+                    <!--<span class="col-sm-6 text-right">商城本月开店数:</span>-->
+                    <!--<span class="col-sm-5 text-num">-->
+                    <!--<span ng-bind="statistics.sumPriceRMB | number"></span>-->
+                    <!--</span>-->
+                    <!--</div>-->
+                </div>
+                <div class="col-sm-4 f14">
+                    <div class="form-group row title">
+                        <span class="col-sm-6 text-right">在售商品统计:</span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">在售商品型号总数:</span>
+                        <span class="col-sm-6" ng-bind="start13 | number"></span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">在售商品类目:</span>
+                        <span class="col-sm-6" ng-bind="start12 | number"></span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">在售商品品牌总数:</span>
+                        <span class="col-sm-6" ng-bind="start11 | number"></span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">库存合计:</span>
+                        <span class="col-sm-6" ng-bind="start10 | number"></span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">含税金额合计(RMB):</span>
+                        <span class="col-sm-6 text-num">¥
+							<span ng-bind="start14 | number"></span>
+						</span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">未税金额合计(RMB):</span>
+                        <span class="col-sm-6 text-num">¥
+							<span ng-bind="start15 | number"></span>
+						</span>
+                    </div>
+
+                    <!--<div class="form-group row">-->
+                    <!--<span class="col-sm-6 text-right">商城本月开店数:</span>-->
+                    <!--<span class="col-sm-5 text-num">-->
+                    <!--<span ng-bind="statistics.sumPriceRMB | number"></span>-->
+                    <!--</span>-->
+                    <!--</div>-->
+                </div>
+            </div>
+        </div>
+    </div>
+    <div class="box" style="height:350px">
+        <div class="box-header well" data-original-title style="position:relative;">
+            <i class="icon-user"></i> 更多数据统计
+            <!--搜索时间筛选-->
+            <div class="screen">
+                <div class="radio-block fl">
+                    日期区间:
+                    <label class="com-check-radio">
+                        <input type="radio" id="oneMonth" name="date" ng-click="setFilters('dateArea', 'oneMonth')" ng-checked="dateArea == 'oneMonth'">
+                        <label for="oneMonth"></label>
+                        一个月
+                    </label>
+                    <label class="com-check-radio">
+                        <input type="radio" id="threeMonth" name="date" ng-click="setFilters('dateArea', 'threeMonth')" ng-checked="dateArea == 'threeMonth'">
+                        <label for="threeMonth"></label>
+                        三个月
+                    </label>
+                    <label class="com-check-radio">
+                        <input type="radio" id="sixMonth" name="date" ng-click="setFilters('dateArea', 'sixMonth')" ng-checked="dateArea == 'sixMonth'">
+                        <label for="sixMonth"></label>
+                        六个月
+                    </label>
+                    <label class="com-check-radio">
+                        <input type="radio" id="autoMonth" name="date" ng-click="setFilters('dateArea', 'autoMonth')" ng-checked="dateArea == 'autoMonth'">
+                        <label for="autoMonth"></label>
+                        自定义
+                    </label>
+                </div>
+                <div class="sreach fr">
+                    <div  ng-show="dateArea == 'autoMonth'" class="date fl">
+                        <div class="data-input">
+                            <input id="start" type="text" ng-model="startDate" readonly="readonly"
+                                   class="form-control select-adder" placeholder="起始时间"
+                                   datepicker-popup="yyyy-MM-dd"
+                                   is-open="condition[0].open"
+                                   current-text="今天" clear-text="清除" close-text="关闭"
+                                   datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
+                                   ng-click="openDatePicker($event, condition, 0,1)"
+                                   ng-change="onDateCondition(1)"/>
+                            <button class="open" ng-click="openDatePicker($event, condition, 0)"></button>
+                        </div>
+                        <strong>–</strong>
+                        <div class="data-input">
+                            <input id="end" type="text" ng-model="endDate" readonly="readonly"
+                                   class="form-control select-adder" placeholder="结束时间"
+                                   datepicker-popup="yyyy-MM-dd"
+                                   is-open="condition[1].open"
+                                   current-text="今天" clear-text="清除" close-text="关闭"
+                                   datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
+                                   ng-click="openDatePicker($event, condition, 1, 2)"
+                                   ng-change="onDateCondition(2)"/>
+                            <button class="open" ng-click="openDatePicker($event, condition, 1)"></button>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="box-content row">
+            <div class="fullscreen">
+                <div class="col-sm-2 f14">
+                    <div class="form-group row title">
+                        <span class="col-sm-8 text-right">新增用户数:</span>
+                        <span class="col-sm-4" ng-bind="(newAddUserSpaceData.b2b + newAddUserSpaceData.mall + newAddUserData.mall) | number"></span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-8 text-right">B2B新增用户数:</span>
+                        <span class="col-sm-4" ng-bind="newAddUserSpaceData.b2b | number"></span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-8 text-right">商城新增企业用户数:</span>
+                        <span class="col-sm-4" ng-bind="newAddUserSpaceData.mall | number"></span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-8 text-right">商城新增个人用户数:</span>
+                        <span class="col-sm-4" ng-bind="newAddUserData.mall | number"></span>
+                    </div>
+                </div>
+                <!--<div class="col-sm-2 f14">-->
+                    <!--<div class="form-group row title">-->
+                        <!--<span class="col-sm-6 text-right">在线用户数:</span>-->
+                        <!--<span class="col-sm-6" ng-bind="statistics.codes | number"></span>-->
+                    <!--</div>-->
+                    <!--<div class="form-group row">-->
+                        <!--<span class="col-sm-6 text-right">已开店企业用户数:</span>-->
+                        <!--<span class="col-sm-6" ng-bind="statistics.codes | number"></span>-->
+                    <!--</div>-->
+                    <!--<div class="form-group row">-->
+                        <!--<span class="col-sm-6 text-right">未开店企业用户数:</span>-->
+                        <!--<span class="col-sm-6" ng-bind="statistics.kinds | number"></span>-->
+                    <!--</div>-->
+                    <!--<div class="form-group row">-->
+                        <!--<span class="col-sm-6 text-right">个人用户数:</span>-->
+                        <!--<span class="col-sm-6" ng-bind="statistics.brands | number"></span>-->
+                    <!--</div>-->
+                <!--</div>-->
+                <div class="col-sm-2 f14">
+                    <div class="form-group row title">
+                        <span class="col-sm-6 text-right">上传产品用户数:</span>
+                        <span class="col-sm-6" ng-bind="productsCount.productUserAmout | number"></span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">上传产品个数:</span>
+                        <span class="col-sm-6" ng-bind="productsCount.productAmout | number"></span>
+                    </div>
+                </div>
+                <div class="col-sm-2 f14">
+                    <div class="form-group row title">
+                        <span class="col-sm-6 text-right">询价用户数:</span>
+                        <span class="col-sm-6" ng-bind="inquiryData.inquiryUserAmount | number"></span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">询价产品个数:</span>
+                        <span class="col-sm-6" ng-bind="inquiryData.inquiryAmount | number"></span>
+                    </div>
+                </div>
+                <div class="col-sm-2 f14">
+                    <div class="form-group row title">
+                        <span class="col-sm-6 text-right">报价用户数:</span>
+                        <span class="col-sm-6" ng-bind="inquiryData.offerAmount | number"></span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">报价产品个数:</span>
+                        <span class="col-sm-6" ng-bind="inquiryData.offerEnAmount | number"></span>
+                    </div>
+                </div>
+                <div class="col-sm-2 f14">
+                    <div class="form-group row title">
+                        <span class="col-sm-6 text-right">流失用户数:</span>
+                        <span class="col-sm-6" ng-bind="(monthLogoData.month6 + monthLogoData.month12 + monthLogoData.month24) | number"></span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">半年未登录:</span>
+                        <span class="col-sm-6" ng-bind="monthLogoData.month6 | number"></span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">一年未登录:</span>
+                        <span class="col-sm-6" ng-bind="monthLogoData.month12 | number"></span>
+                    </div>
+                    <div class="form-group row">
+                        <span class="col-sm-6 text-right">两年未登录:</span>
+                        <span class="col-sm-6" ng-bind="monthLogoData.month24 | number"></span>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>

+ 45 - 45
src/main/webapp/resources/view/admin/trade/trade_goods_statistics.html

@@ -77,49 +77,49 @@
 			</div>
 		</div>
 	</div>
-	<div class="box">
-		<div class="box-header well" data-original-title>
-			<i class="icon-user"></i> 各月新增信息统计
-		</div>
-		<div class="box-content">
-			<ul class="fullscreen row f14" style="padding: 10px;">
-				<li class="newItem row">
-					<div class="text-center form-group newTitle">各月新增器件数量</div>
-					<div class="col-xs-6 form-group text-center">月份</div>
-					<div class="col-xs-6 form-group text-center">数量</div>
-					<div ng-repeat="increaseCmp in increaseCmpCount | orderBy : 'MONTH'" class="form-group">
-						<div class="col-xs-6 form-group text-center month" ng-bind="::increaseCmp.MONTH"></div>
-						<div class="col-xs-6 form-group text-right count" ng-bind="::increaseCmp.COUNT | number"></div>
-					</div>
-				</li>
-				<li class="newItem row">
-					<div class="text-center form-group newTitle">各月新增品牌数量</div>
-					<div class="col-xs-6 form-group text-center">月份</div>
-					<div class="col-xs-6 form-group text-center">数量</div>
-					<div ng-repeat="increase in increaseBrandCount | orderBy : 'MONTH'" class="form-group">
-						<div class="col-xs-6 form-group text-center month" ng-bind="::increase.MONTH"></div>
-						<div class="col-xs-6 form-group text-right count" ng-bind="::increase.COUNT | number"></div>
-					</div>
-				</li>
-				<li class="newItem row">
-					<div class="text-center form-group newTitle">各月新增批次数量</div>
-					<div class="col-xs-6 form-group text-center">月份</div>
-					<div class="col-xs-6 form-group text-center">数量</div>
-					<div ng-repeat="increase in increaseBatchCount | orderBy : 'MONTH'" class="form-group">
-						<div class="col-xs-6 form-group text-center month" ng-bind="::increase.MONTH"></div>
-						<div class="col-xs-6 form-group text-right count" ng-bind="::increase.COUNT | number"></div>
-					</div>
-				</li>
-				<li class="newItem row">
-					<div class="text-center form-group newTitle">各月新增在售器件数量</div>
-					<div class="col-xs-6 form-group text-center">月份</div>
-					<div class="col-xs-6 form-group text-center">数量</div>
-					<div ng-repeat="increase in increaseInSaleCmpCount | orderBy : 'MONTH'" class="form-group">
-						<div class="col-xs-6 form-group text-center month" ng-bind="::increase.MONTH"></div>
-						<div class="col-xs-6 form-group text-right count" ng-bind="::increase.COUNT | number"></div>
-					</div>
-				</li>
-			</ul>
-		</div>
-	</div>
+	<!--<div class="box">-->
+		<!--<div class="box-header well" data-original-title>-->
+			<!--<i class="icon-user"></i> 各月新增信息统计-->
+		<!--</div>-->
+		<!--<div class="box-content">-->
+			<!--<ul class="fullscreen row f14" style="padding: 10px;">-->
+				<!--<li class="newItem row">-->
+					<!--<div class="text-center form-group newTitle">各月新增器件数量</div>-->
+					<!--<div class="col-xs-6 form-group text-center">月份</div>-->
+					<!--<div class="col-xs-6 form-group text-center">数量</div>-->
+					<!--<div ng-repeat="increaseCmp in increaseCmpCount | orderBy : 'MONTH'" class="form-group">-->
+						<!--<div class="col-xs-6 form-group text-center month" ng-bind="::increaseCmp.MONTH"></div>-->
+						<!--<div class="col-xs-6 form-group text-right count" ng-bind="::increaseCmp.COUNT | number"></div>-->
+					<!--</div>-->
+				<!--</li>-->
+				<!--<li class="newItem row">-->
+					<!--<div class="text-center form-group newTitle">各月新增品牌数量</div>-->
+					<!--<div class="col-xs-6 form-group text-center">月份</div>-->
+					<!--<div class="col-xs-6 form-group text-center">数量</div>-->
+					<!--<div ng-repeat="increase in increaseBrandCount | orderBy : 'MONTH'" class="form-group">-->
+						<!--<div class="col-xs-6 form-group text-center month" ng-bind="::increase.MONTH"></div>-->
+						<!--<div class="col-xs-6 form-group text-right count" ng-bind="::increase.COUNT | number"></div>-->
+					<!--</div>-->
+				<!--</li>-->
+				<!--<li class="newItem row">-->
+					<!--<div class="text-center form-group newTitle">各月新增批次数量</div>-->
+					<!--<div class="col-xs-6 form-group text-center">月份</div>-->
+					<!--<div class="col-xs-6 form-group text-center">数量</div>-->
+					<!--<div ng-repeat="increase in increaseBatchCount | orderBy : 'MONTH'" class="form-group">-->
+						<!--<div class="col-xs-6 form-group text-center month" ng-bind="::increase.MONTH"></div>-->
+						<!--<div class="col-xs-6 form-group text-right count" ng-bind="::increase.COUNT | number"></div>-->
+					<!--</div>-->
+				<!--</li>-->
+				<!--<li class="newItem row">-->
+					<!--<div class="text-center form-group newTitle">各月新增在售器件数量</div>-->
+					<!--<div class="col-xs-6 form-group text-center">月份</div>-->
+					<!--<div class="col-xs-6 form-group text-center">数量</div>-->
+					<!--<div ng-repeat="increase in increaseInSaleCmpCount | orderBy : 'MONTH'" class="form-group">-->
+						<!--<div class="col-xs-6 form-group text-center month" ng-bind="::increase.MONTH"></div>-->
+						<!--<div class="col-xs-6 form-group text-right count" ng-bind="::increase.COUNT | number"></div>-->
+					<!--</div>-->
+				<!--</li>-->
+			<!--</ul>-->
+		<!--</div>-->
+	<!--</div>-->
 </div>

+ 20 - 20
src/main/webapp/resources/view/common/bankInfoModal.html

@@ -76,6 +76,26 @@
 </div>
 <form class="form-horizontal add-bank-account" style="margin-left: 17px;" name="myForm" novalidate>
     <div class="modal-body">
+        <div class="form-group">
+            <label class="margin15"><b class="text-inverse">*&nbsp;</b>开户名称</label>
+            <div class="divinline">
+                <input name="accountname" type="text" class="form-control" ng-model="account.accountname"
+                       placeholder="请填写开户人姓名或企业名称" ng-required="true" ng-change="checkAccount(4)" autocomplete="off">
+            </div>
+            <span class="warn-message" ng-if="account.accountname && nameError">请勿超过50个字</span>
+            <span class="warn-message" ng-if="myForm.accountname.$touched && myForm.accountname.$invalid">开户名称不能为空</span>
+        </div>
+        <div class="form-group">
+            <label class="margin15"><b class="text-inverse">*&nbsp;</b>银行账号</label>
+            <div class="divinline">
+                <input name="number" ng-model="account.number" type="text" class="form-control"
+                       placeholder="请填写银行账号" ng-required="true" ng-change="checkAccount(3)" autocomplete="off">
+            </div>
+            <span class="warn-message" ng-if="account.number && numberPattError">请填写正确的银行账号</span>
+            <span class="warn-message" ng-if="account.number && !numberPattError && numberError">请勿超过30个字符</span>
+            <span class="warn-message" ng-if="account.number && !numberPattError && !numberError && repeatError">该银行账号已存在</span>
+            <span class="warn-message" ng-if="myForm.number.$touched && myForm.number.$invalid">银行账号不能为空</span>
+        </div>
         <div class="form-group">
             <label class="margin15"><b class="text-inverse">*&nbsp;</b>开户银行</label>
             <div class="divinline" style="position:relative;margin-right:25px;">
@@ -103,26 +123,6 @@
             <span class="warn-message" ng-if="account.branchname && !branchPattError && branchError">请勿超过20个字</span>
             <span class="warn-message" ng-if="myForm.branchname.$touched && myForm.branchname.$invalid">开户支行不能为空</span>
         </div>
-        <div class="form-group">
-            <label class="margin15"><b class="text-inverse">*&nbsp;</b>银行账号</label>
-            <div class="divinline">
-                <input name="number" ng-model="account.number" type="text" class="form-control"
-                       placeholder="请填写银行账号" ng-required="true" ng-change="checkAccount(3)" autocomplete="off">
-            </div>
-            <span class="warn-message" ng-if="account.number && numberPattError">请填写正确的银行账号</span>
-            <span class="warn-message" ng-if="account.number && !numberPattError && numberError">请勿超过30个字符</span>
-            <span class="warn-message" ng-if="account.number && !numberPattError && !numberError && repeatError">该银行账号已存在</span>
-            <span class="warn-message" ng-if="myForm.number.$touched && myForm.number.$invalid">银行账号不能为空</span>
-        </div>
-        <div class="form-group">
-            <label class="margin15"><b class="text-inverse">*&nbsp;</b>开户名称</label>
-            <div class="divinline">
-                <input name="accountname" type="text" class="form-control" ng-model="account.accountname"
-                       placeholder="请填写开户人姓名或企业名称" ng-required="true" ng-change="checkAccount(4)" autocomplete="off">
-            </div>
-            <span class="warn-message" ng-if="account.accountname && nameError">请勿超过50个字</span>
-            <span class="warn-message" ng-if="myForm.accountname.$touched && myForm.accountname.$invalid">开户名称不能为空</span>
-        </div>
         <label class="remind-message"><b class="text-inverse">*&nbsp;</b>为保障您的资金安全,账户信息加密显示且不可修改,只能删除后重新提交。</label>
     </div>
 </form>

+ 2 - 2
src/main/webapp/resources/view/sso/staffManagement.html

@@ -1026,9 +1026,9 @@
                         <td class="edit-btn-area">
                             <!--<a class="operator-trigger" href="javascript:void(0);"><i class="fa fa-pencil fa-lg" ng-show="(userInfo.sys && enterprise.enAdminuu != user.userUU) || users.length == 1"></i></a>-->
                             <div>  <!--&& enterprise.enAdminuu != user.userUU-->
-                                <span ng-click="editUserRole(user)" ng-show="user.userUU != userInfo.userUU" title="编辑"><i></i>编辑 | </span>
+                                <span ng-click="editUserRole(user)" ng-show="user.userUU != userInfo.userUU" title="角色分配"><i></i>角色分配 | </span>
                                 <span ng-click="setShowDelUserFlag(true, user)" ng-show="user.userUU != userInfo.userUU" title="删除"><i></i>删除</span>
-                                <span ng-show="user.userUU == userInfo.userUU" disabled="false" title="编辑" style="color: #606168; cursor: not-allowed;"><i></i>编辑 | </span>
+                                <span ng-show="user.userUU == userInfo.userUU" disabled="false" title="角色分配" style="color: #606168; cursor: not-allowed;"><i></i>角色分配 | </span>
                                 <span ng-show="user.userUU == userInfo.userUU" disabled="false" title="删除" style="color: #606168; cursor: not-allowed;"><i></i>删除</span>
                             </div>
                         </td>

+ 48 - 48
src/main/webapp/resources/view/usercenter/forstore/pay_center.html

@@ -498,6 +498,30 @@
 				</div>
 				<div class="new-accounts" ng-if="accounts && accounts.length <= 0">
 					<form name="myForm" novalidate>
+						<div class="row">
+							<div class="col-sm-3"><em class="colorRed">*</em>开户名称</div>
+							<div class="col-sm-5">
+								<input name="accountname" type="text" class="form-control" ng-model="account.accountname"
+									   placeholder="请填写开户人姓名或企业名称" ng-required="true" ng-change="checkAccount(4)" autocomplete="off">
+							</div>
+							<div class="col-sm-4">
+								<p ng-if="account.accountname && nameError">请勿超过50个字</p>
+								<p ng-if="myForm.accountname.$touched && myForm.accountname.$invalid">开户名称不能为空</p>
+							</div>
+						</div>
+						<div class="row">
+							<div class="col-sm-3"><em class="colorRed">*</em>银行账号</div>
+							<div class="col-sm-5">
+								<input name="number" ng-model="account.number" type="text" class="form-control"
+									   placeholder="请填写银行账号" ng-required="true" ng-change="checkAccount(3)" autocomplete="off">
+							</div>
+							<div class="col-sm-4">
+								<p ng-if="account.number && numberPattError">请填写正确的银行账号</p>
+								<p ng-if="account.number && !numberPattError && numberError">请勿超过30个字符</p>
+								<p ng-if="account.number && !numberPattError && !numberError && repeatError">该银行账号已存在</p>
+								<p ng-if="myForm.number.$touched && myForm.number.$invalid">银行账号不能为空</p>
+							</div>
+						</div>
 						<div class="row">
 							<div class="col-sm-3"><em class="colorRed">*</em>开户银行</div>
 							<div class="col-sm-5" style="position:relative;">
@@ -524,30 +548,6 @@
 								<p ng-if="myForm.branchname.$touched && myForm.branchname.$invalid">开户支行不能为空</p>
 							</div>
 						</div>
-						<div class="row">
-							<div class="col-sm-3"><em class="colorRed">*</em>银行账号</div>
-							<div class="col-sm-5">
-								<input name="number" ng-model="account.number" type="text" class="form-control"
-									   placeholder="请填写银行账号" ng-required="true" ng-change="checkAccount(3)" autocomplete="off">
-							</div>
-							<div class="col-sm-4">
-								<p ng-if="account.number && numberPattError">请填写正确的银行账号</p>
-								<p ng-if="account.number && !numberPattError && numberError">请勿超过30个字符</p>
-								<p ng-if="account.number && !numberPattError && !numberError && repeatError">该银行账号已存在</p>
-								<p ng-if="myForm.number.$touched && myForm.number.$invalid">银行账号不能为空</p>
-							</div>
-						</div>
-						<div class="row">
-							<div class="col-sm-3"><em class="colorRed">*</em>开户名称</div>
-							<div class="col-sm-5">
-								<input name="accountname" type="text" class="form-control" ng-model="account.accountname"
-									   placeholder="请填写开户人姓名或企业名称" ng-required="true" ng-change="checkAccount(4)" autocomplete="off">
-							</div>
-							<div class="col-sm-4">
-								<p ng-if="account.accountname && nameError">请勿超过50个字</p>
-								<p ng-if="myForm.accountname.$touched && myForm.accountname.$invalid">开户名称不能为空</p>
-							</div>
-						</div>
 						<div class="row">
 							<div class="col-sm-9 col-sm-offset-2" style="position: relative;left: -10px;font-size: 12px;"><em class="colorRed">*声明:</em>为保障您的资金安全,账户信息加密显示且不可修改,只能删除后重新提交。</div>
 						</div>
@@ -772,6 +772,30 @@
 			<h2>新增账户信息</h2>
 			<span style="color:#cbcaca;width:10px;height:10px;position:absolute;top:15px;right:15px;"><i class="fa fa-close" ng-click="cancel()"></i></span>
 			<form name="myForm" novalidate>
+				<div class="row">
+					<div class="col-sm-3"><em class="colorRed">*</em>开户名称</div>
+					<div class="col-sm-5">
+						<input name="accountname" type="text" class="form-control" ng-model="account.accountname"
+							   placeholder="请填写开户人姓名或企业名称" ng-required="true" ng-change="checkAccount(4)" autocomplete="off">
+					</div>
+					<div class="col-sm-4">
+						<p ng-if="account.accountname && nameError">请勿超过50个字</p>
+						<p ng-if="myForm.accountname.$touched && myForm.accountname.$invalid">开户名称不能为空</p>
+					</div>
+				</div>
+				<div class="row">
+					<div class="col-sm-3"><em class="colorRed">*</em>银行账号</div>
+					<div class="col-sm-5">
+						<input name="number" ng-model="account.number" type="text" class="form-control"
+							   placeholder="请填写银行账号" ng-required="true" ng-change="checkAccount(3)" autocomplete="off">
+					</div>
+					<div class="col-sm-4">
+						<p ng-if="account.number && numberPattError">请填写正确的银行账号</p>
+						<p ng-if="account.number && !numberPattError && numberError">请勿超过30个字符</p>
+						<p ng-if="account.number && !numberPattError && !numberError && repeatError">该银行账号已存在</p>
+						<p ng-if="myForm.number.$touched && myForm.number.$invalid">银行账号不能为空</p>
+					</div>
+				</div>
 				<div class="row">
 					<div class="col-sm-3"><em class="colorRed">*</em>开户银行</div>
 					<div class="col-sm-5" style="position:relative;">
@@ -798,30 +822,6 @@
 						<p ng-if="myForm.branchname.$touched && myForm.branchname.$invalid">开户支行不能为空</p>
 					</div>
 				</div>
-				<div class="row">
-					<div class="col-sm-3"><em class="colorRed">*</em>银行账号</div>
-					<div class="col-sm-5">
-						<input name="number" ng-model="account.number" type="text" class="form-control"
-							   placeholder="请填写银行账号" ng-required="true" ng-change="checkAccount(3)" autocomplete="off">
-					</div>
-					<div class="col-sm-4">
-						<p ng-if="account.number && numberPattError">请填写正确的银行账号</p>
-						<p ng-if="account.number && !numberPattError && numberError">请勿超过30个字符</p>
-						<p ng-if="account.number && !numberPattError && !numberError && repeatError">该银行账号已存在</p>
-						<p ng-if="myForm.number.$touched && myForm.number.$invalid">银行账号不能为空</p>
-					</div>
-				</div>
-				<div class="row">
-					<div class="col-sm-3"><em class="colorRed">*</em>开户名称</div>
-					<div class="col-sm-5">
-						<input name="accountname" type="text" class="form-control" ng-model="account.accountname"
-							   placeholder="请填写开户人姓名或企业名称" ng-required="true" ng-change="checkAccount(4)" autocomplete="off">
-					</div>
-					<div class="col-sm-4">
-						<p ng-if="account.accountname && nameError">请勿超过50个字</p>
-						<p ng-if="myForm.accountname.$touched && myForm.accountname.$invalid">开户名称不能为空</p>
-					</div>
-				</div>
 				<div class="row">
 					<div class="col-sm-10 col-sm-offset-2" style="position: relative;left: -43px;font-size: 12px;"><em class="colorRed">*声明:</em>为保障您的资金安全,账户信息加密显示且不可修改,只能删除后重新提交。</div>
 				</div>

+ 44 - 44
src/main/webapp/resources/view/vendor/forstore/pay_center.html

@@ -879,6 +879,28 @@
                 </table>
                 <div class="add-count" ng-if="accounts && accounts.length <= 0">
                     <form name="myForm">
+                        <div class="row">
+                            <div class="col-sm-3"><em class="colorRed">*</em>开户名称</div>
+                            <div class="col-sm-5">
+                                <input name="accountname" ng-model="account.accountname" ng-change="checkAccount(4)" class="form-control" autocomplete="off" type="text" placeholder="请填写开户人姓名或企业名称">
+                            </div>
+                            <div class="col-sm-4">
+                                <p ng-if="account.accountname && nameError">请勿超过50个字</p>
+                                <p ng-if="myForm.accountname.$touched && !account.accountname">开户名称不能为空</p>
+                            </div>
+                        </div>
+                        <div class="row">
+                            <div class="col-sm-3"><em class="colorRed">*</em>银行账号</div>
+                            <div class="col-sm-5">
+                                <input name="number" ng-model="account.number" ng-change="checkAccount(3)" class="form-control" autocomplete="off" type="text" placeholder="请填写银行账号">
+                            </div>
+                            <div class="col-sm-4">
+                                <p ng-if="account.number && numberPattError">请填写正确的银行账号</p>
+                                <p ng-if="account.number && !numberPattError && numberError">请勿超过30个字符</p>
+                                <p ng-if="account.number && !numberPattError && !numberError && repeatError">该银行账号已存在</p>
+                                <p ng-if="myForm.number.$touched && !account.number">银行账号不能为空</p>
+                            </div>
+                        </div>
                         <div class="row">
                             <div class="col-sm-3"><em class="colorRed">*</em>开户银行</div>
                             <div class="col-sm-5" style="position:relative;">
@@ -904,28 +926,6 @@
                                 <p ng-if="myForm.branchname.$touched && !account.branchname">开户支行不能为空</p>
                             </div>
                         </div>
-                        <div class="row">
-                            <div class="col-sm-3"><em class="colorRed">*</em>银行账号</div>
-                            <div class="col-sm-5">
-                                <input name="number" ng-model="account.number" ng-change="checkAccount(3)" class="form-control" autocomplete="off" type="text" placeholder="请填写银行账号">
-                            </div>
-                            <div class="col-sm-4">
-                                <p ng-if="account.number && numberPattError">请填写正确的银行账号</p>
-                                <p ng-if="account.number && !numberPattError && numberError">请勿超过30个字符</p>
-                                <p ng-if="account.number && !numberPattError && !numberError && repeatError">该银行账号已存在</p>
-                                <p ng-if="myForm.number.$touched && !account.number">银行账号不能为空</p>
-                            </div>
-                        </div>
-                        <div class="row">
-                            <div class="col-sm-3"><em class="colorRed">*</em>开户名称</div>
-                            <div class="col-sm-5">
-                                <input name="accountname" ng-model="account.accountname" ng-change="checkAccount(4)" class="form-control" autocomplete="off" type="text" placeholder="请填写开户人姓名或企业名称">
-                            </div>
-                            <div class="col-sm-4">
-                                <p ng-if="account.accountname && nameError">请勿超过50个字</p>
-                                <p ng-if="myForm.accountname.$touched && !account.accountname">开户名称不能为空</p>
-                            </div>
-                        </div>
                         <!--<div class="row">
                             <div class="col-sm-3"><em class="colorRed">*</em>上传开户许可证</div>
                             <div class="col-sm-5 upload">
@@ -981,6 +981,28 @@
             <h2>新增账户信息</h2>
             <span style="color:#cbcaca;width:10px;height:10px;position:absolute;top:15px;right:15px;"><i class="fa fa-close" ng-click="cancelAdd()"></i></span>
             <form name="myForm">
+                <div class="row">
+                    <div class="col-sm-3"><em class="colorRed">*</em>开户名称</div>
+                    <div class="col-sm-5">
+                        <input name="accountname" ng-model="account.accountname" ng-change="checkAccount(4)" class="form-control" autocomplete="off" type="text" placeholder="请填写开户人姓名或企业名称">
+                    </div>
+                    <div class="col-sm-4">
+                        <p ng-if="account.accountname && nameError">请勿超过50个字</p>
+                        <p ng-if="myForm.accountname.$touched && !account.accountname">开户名称不能为空</p>
+                    </div>
+                </div>
+                <div class="row">
+                    <div class="col-sm-3"><em class="colorRed">*</em>银行账号</div>
+                    <div class="col-sm-5">
+                        <input name="number" ng-model="account.number" ng-change="checkAccount(3)" class="form-control" autocomplete="off" type="text" placeholder="请填写银行账号">
+                    </div>
+                    <div class="col-sm-4">
+                        <p ng-if="account.number && numberPattError">请填写正确的银行账号</p>
+                        <p ng-if="account.number && !numberPattError && numberError">请勿超过30个字符</p>
+                        <p ng-if="account.number && !numberPattError && !numberError && repeatError">该银行账号已存在</p>
+                        <p ng-if="myForm.number.$touched && !account.number">银行账号不能为空</p>
+                    </div>
+                </div>
                 <div class="row">
                     <div class="col-sm-3"><em class="colorRed">*</em>开户银行</div>
                     <div class="col-sm-5" style="position:relative;">
@@ -1006,28 +1028,6 @@
                         <p ng-if="myForm.branchname.$touched && !account.branchname">开户支行不能为空</p>
                     </div>
                 </div>
-                <div class="row">
-                    <div class="col-sm-3"><em class="colorRed">*</em>银行账号</div>
-                    <div class="col-sm-5">
-                        <input name="number" ng-model="account.number" ng-change="checkAccount(3)" class="form-control" autocomplete="off" type="text" placeholder="请填写银行账号">
-                    </div>
-                    <div class="col-sm-4">
-                        <p ng-if="account.number && numberPattError">请填写正确的银行账号</p>
-                        <p ng-if="account.number && !numberPattError && numberError">请勿超过30个字符</p>
-                        <p ng-if="account.number && !numberPattError && !numberError && repeatError">该银行账号已存在</p>
-                        <p ng-if="myForm.number.$touched && !account.number">银行账号不能为空</p>
-                    </div>
-                </div>
-                <div class="row">
-                    <div class="col-sm-3"><em class="colorRed">*</em>开户名称</div>
-                    <div class="col-sm-5">
-                        <input name="accountname" ng-model="account.accountname" ng-change="checkAccount(4)" class="form-control" autocomplete="off" type="text" placeholder="请填写开户人姓名或企业名称">
-                    </div>
-                    <div class="col-sm-4">
-                        <p ng-if="account.accountname && nameError">请勿超过50个字</p>
-                        <p ng-if="myForm.accountname.$touched && !account.accountname">开户名称不能为空</p>
-                    </div>
-                </div>
                <!-- <div class="row">
                     <div class="col-sm-3"><em class="colorRed">*</em>上传开户许可证</div>
                     <div class="col-sm-5 upload">

+ 5 - 3
src/main/webapp/resources/view/vendor/forstore/seekPurchase.html

@@ -963,7 +963,7 @@
                     <th width="245">品牌/物料名称</th>
                     <th width="245">型号/规格</th>
                     <th width="110">采购数量(PCS)</th>
-                    <th width="130">剩余时间</th>
+                    <th width="130">截至日期</th>
                     <th width="90">操作</th>
                 </tr>
             </thead>
@@ -975,7 +975,8 @@
                                 <span ng-if="seek.inquiry.enterprise.enName" title="{{seek.inquiry.enterprise.enName}}" ng-bind="seek.inquiry.enterprise.enName"></span>
                                 <span ng-if="!seek.inquiry.enterprise.enName" title="{{seek.userName}}" ng-bind="seek.userName"></span>
                             </div>
-                            <div class="date-bottom-item" ng-bind="seek.reDate | date:'yyyy-MM-dd HH:mm'"></div>
+                            <div ng-if="vendorType == 'noOppor'" class="date-bottom-item" ng-bind="seek.date | date:'yyyy-MM-dd HH:mm'"></div>
+                            <div ng-if="vendorType != 'noOppor'" class="date-bottom-item" ng-bind="seek.reDate | date:'yyyy-MM-dd HH:mm'"></div>
                         </div>
                     </td>
                     <td>
@@ -1004,7 +1005,8 @@
                             </div>
                         </div>
                     </td>
-                    <td class="left-time" ng-if="seek.remainingTime > 0">剩余&nbsp;<span ng-bind="getDay(seek.remainingTime)" ng-if="getDay(seek.remainingTime) > 0" class="red-text"></span><i ng-if="getDay(seek.remainingTime) > 0">&nbsp;天&nbsp;</i><span ng-if="getDay(seek.remainingTime) <= 0" ng-bind="getHours(seek.remainingTime)" class="red-text">5</span><i ng-if="getDay(seek.remainingTime) <= 0">&nbsp;小时</i></td>
+                    <!--<td class="left-time" ng-if="seek.remainingTime > 0">剩余&nbsp;<span ng-bind="getDay(seek.remainingTime)" ng-if="getDay(seek.remainingTime) > 0" class="red-text"></span><i ng-if="getDay(seek.remainingTime) > 0">&nbsp;天&nbsp;</i><span ng-if="getDay(seek.remainingTime) <= 0" ng-bind="getHours(seek.remainingTime)" class="red-text">5</span><i ng-if="getDay(seek.remainingTime) <= 0">&nbsp;小时</i></td>-->
+                    <td class="left-time" ng-if="seek.remainingTime > 0" ng-bind="seek.endDate | date:'yyyy-MM-dd'"></td>
                     <td class="left-time" ng-if="seek.remainingTime <= 0"><span>已截止</span></td>
                     <td class="left-time" ng-if="seek.remainingTime == null"><span>-</span></td>
                     <td class="operate">

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

@@ -1505,7 +1505,7 @@
 						</div>
 						<div class="content">
 							<p>您还未填写<a target="_blank" ng-click="goToSettle(purchase)">收款账户信息&nbsp;</a>,请进行完善,<br/>否则在交易完成后,商城无法给您打款。</p>
-							<p>前往账户中心<a target="_blank" ng-click="goToSettle(purchase)">开票信息&nbsp;<i class="fa fa-arrow-right"></i></a></p>
+							<p>前往账户中心<a target="_blank" ng-click="goToSettle(purchase)">收款账户&nbsp;<i class="fa fa-arrow-right"></i></a></p>
 						</div>
 					</div>
 				</div>