Browse Source

Merge branch 'dev-mysql' into liusw-account-v1.0.10.19

liusw 8 years ago
parent
commit
66cf139bf5
100 changed files with 1857 additions and 678 deletions
  1. 7 23
      pom.xml
  2. 1 4
      src/main/java/com/uas/platform/b2c/advertise/ad/model/StoreAds.java
  3. 1 4
      src/main/java/com/uas/platform/b2c/advertise/ad/model/StoreContent.java
  4. 17 0
      src/main/java/com/uas/platform/b2c/advertise/ad/service/FloorsService.java
  5. 1 1
      src/main/java/com/uas/platform/b2c/advertise/ad/service/impl/CarouselsServiceImpl.java
  6. 37 1
      src/main/java/com/uas/platform/b2c/advertise/ad/service/impl/FloorsServiceImpl.java
  7. 41 8
      src/main/java/com/uas/platform/b2c/advertise/news/service/impl/NewsServiceImpl.java
  8. 3 3
      src/main/java/com/uas/platform/b2c/common/account/Readme.md
  9. 9 0
      src/main/java/com/uas/platform/b2c/common/account/controller/SecurityController.java
  10. 7 0
      src/main/java/com/uas/platform/b2c/common/account/dao/EnterpriseDao.java
  11. 279 0
      src/main/java/com/uas/platform/b2c/common/account/model/ChangeAdminDetail.java
  12. 3 3
      src/main/java/com/uas/platform/b2c/common/account/model/ErpB2cLog.java
  13. 1 2
      src/main/java/com/uas/platform/b2c/common/account/model/Resource.java
  14. 1 2
      src/main/java/com/uas/platform/b2c/common/account/model/ResourceItem.java
  15. 1 2
      src/main/java/com/uas/platform/b2c/common/account/model/Role.java
  16. 1 2
      src/main/java/com/uas/platform/b2c/common/account/model/SigninLog.java
  17. 3 3
      src/main/java/com/uas/platform/b2c/common/account/model/TradeLog.java
  18. 1 2
      src/main/java/com/uas/platform/b2c/common/account/model/UsageLog.java
  19. 1 2
      src/main/java/com/uas/platform/b2c/common/account/model/User.java
  20. 9 0
      src/main/java/com/uas/platform/b2c/common/account/service/EnterpriseService.java
  21. 11 0
      src/main/java/com/uas/platform/b2c/common/account/service/impl/EnterpriseServiceImpl.java
  22. 46 0
      src/main/java/com/uas/platform/b2c/common/account/v2/controller/EnterpriseController.java
  23. 42 0
      src/main/java/com/uas/platform/b2c/common/account/v2/controller/UserController.java
  24. 23 0
      src/main/java/com/uas/platform/b2c/common/account/v2/service/EnterpriseService.java
  25. 21 0
      src/main/java/com/uas/platform/b2c/common/account/v2/service/UserService.java
  26. 70 0
      src/main/java/com/uas/platform/b2c/common/account/v2/service/impl/EnterpriseServiceImpl.java
  27. 78 0
      src/main/java/com/uas/platform/b2c/common/account/v2/service/impl/UserServiceImpl.java
  28. 1 1
      src/main/java/com/uas/platform/b2c/common/base/api/FileUploadController.java
  29. 1 2
      src/main/java/com/uas/platform/b2c/common/base/api/UploadController.java
  30. 30 0
      src/main/java/com/uas/platform/b2c/common/base/constant/FileClientConstant.java
  31. 0 8
      src/main/java/com/uas/platform/b2c/common/base/service/FileService.java
  32. 0 9
      src/main/java/com/uas/platform/b2c/common/base/service/ImageService.java
  33. 18 28
      src/main/java/com/uas/platform/b2c/common/base/service/impl/DFSImageServiceImpl.java
  34. 110 0
      src/main/java/com/uas/platform/b2c/common/base/service/impl/FileClientImpl.java
  35. 2 31
      src/main/java/com/uas/platform/b2c/common/base/service/impl/FileServiceImpl.java
  36. 1 1
      src/main/java/com/uas/platform/b2c/common/help/dao/HelpNavDao.java
  37. 1 4
      src/main/java/com/uas/platform/b2c/common/help/model/HelpIssue.java
  38. 1 4
      src/main/java/com/uas/platform/b2c/common/help/model/HelpIssueInfo.java
  39. 1 4
      src/main/java/com/uas/platform/b2c/common/help/model/HelpNav.java
  40. 1 4
      src/main/java/com/uas/platform/b2c/common/message/model/MessageBoard.java
  41. 1 4
      src/main/java/com/uas/platform/b2c/common/message/model/MessageBoardImg.java
  42. 1 4
      src/main/java/com/uas/platform/b2c/common/message/model/MessageInfo.java
  43. 4 5
      src/main/java/com/uas/platform/b2c/common/search/api/SearchServiceImpl.java
  44. 118 0
      src/main/java/com/uas/platform/b2c/common/search/constant/SearchUrl.java
  45. 18 8
      src/main/java/com/uas/platform/b2c/common/search/controller/SearcherController.java
  46. 19 0
      src/main/java/com/uas/platform/b2c/common/search/rpc/Readme.md
  47. 60 0
      src/main/java/com/uas/platform/b2c/common/search/rpc/service/Impl/OrderSearchServiceImpl.java
  48. 381 0
      src/main/java/com/uas/platform/b2c/common/search/rpc/service/Impl/SearchServiceImpl.java
  49. 35 0
      src/main/java/com/uas/platform/b2c/common/search/rpc/service/OrderSearchService.java
  50. 53 0
      src/main/java/com/uas/platform/b2c/common/search/rpc/service/SearchService.java
  51. 2 1
      src/main/java/com/uas/platform/b2c/common/search/service/SearcherService.java
  52. 24 7
      src/main/java/com/uas/platform/b2c/common/search/service/impl/SearcherServiceImpl.java
  53. 54 0
      src/main/java/com/uas/platform/b2c/core/config/MicroServicesConf.java
  54. 4 1
      src/main/java/com/uas/platform/b2c/core/config/MicroServicesConfMulti.java
  55. 30 0
      src/main/java/com/uas/platform/b2c/core/config/SysConf.java
  56. 0 351
      src/main/java/com/uas/platform/b2c/core/utils/HttpUtils.java
  57. 1 1
      src/main/java/com/uas/platform/b2c/external/erp/order/api/OrderController.java
  58. 3 3
      src/main/java/com/uas/platform/b2c/external/erp/product/model/OperationInfo.java
  59. 1 2
      src/main/java/com/uas/platform/b2c/fa/payment/model/BankInfo.java
  60. 1 4
      src/main/java/com/uas/platform/b2c/fa/payment/model/BankTransAssociate.java
  61. 4 5
      src/main/java/com/uas/platform/b2c/fa/payment/model/BankTransfer.java
  62. 4 5
      src/main/java/com/uas/platform/b2c/fa/payment/model/Payment.java
  63. 1 2
      src/main/java/com/uas/platform/b2c/fa/payment/model/PaymentDetail.java
  64. 1 2
      src/main/java/com/uas/platform/b2c/fa/payment/model/TradeRecordChart.java
  65. 1 2
      src/main/java/com/uas/platform/b2c/fa/settlement/model/Bill.java
  66. 1 4
      src/main/java/com/uas/platform/b2c/fa/settlement/model/BillInfo.java
  67. 1 2
      src/main/java/com/uas/platform/b2c/fa/settlement/model/BillSubmit.java
  68. 1 4
      src/main/java/com/uas/platform/b2c/fa/settlement/model/Refund.java
  69. 1 4
      src/main/java/com/uas/platform/b2c/fa/settlement/model/RefundDetail.java
  70. 1 2
      src/main/java/com/uas/platform/b2c/fa/settlement/model/RequestPayment.java
  71. 1 1
      src/main/java/com/uas/platform/b2c/fa/settlement/service/impl/BillSubmitServiceImpl.java
  72. 1 2
      src/main/java/com/uas/platform/b2c/logistics/model/Address.java
  73. 1 2
      src/main/java/com/uas/platform/b2c/logistics/model/AddressTakeSelf.java
  74. 4 5
      src/main/java/com/uas/platform/b2c/logistics/model/DistributionRule.java
  75. 1 2
      src/main/java/com/uas/platform/b2c/logistics/model/DistributorSeller.java
  76. 1 4
      src/main/java/com/uas/platform/b2c/logistics/model/Invoice.java
  77. 1 4
      src/main/java/com/uas/platform/b2c/logistics/model/InvoiceDetail.java
  78. 1 4
      src/main/java/com/uas/platform/b2c/logistics/model/InvoiceFOrder.java
  79. 1 4
      src/main/java/com/uas/platform/b2c/logistics/model/InvoiceFOrderDetail.java
  80. 1 4
      src/main/java/com/uas/platform/b2c/logistics/model/InvoiceFPurchase.java
  81. 1 4
      src/main/java/com/uas/platform/b2c/logistics/model/InvoiceFPurchaseDetail.java
  82. 1 4
      src/main/java/com/uas/platform/b2c/logistics/model/Logistics.java
  83. 1 4
      src/main/java/com/uas/platform/b2c/logistics/model/LogisticsCompanyCode.java
  84. 1 4
      src/main/java/com/uas/platform/b2c/logistics/model/LogisticsInfo.java
  85. 1 4
      src/main/java/com/uas/platform/b2c/logistics/model/LogisticsInfoOld.java
  86. 1 4
      src/main/java/com/uas/platform/b2c/logistics/model/PickUpAddress.java
  87. 1 4
      src/main/java/com/uas/platform/b2c/logistics/model/Receipt.java
  88. 1 4
      src/main/java/com/uas/platform/b2c/logistics/model/ReceiptDetail.java
  89. 1 2
      src/main/java/com/uas/platform/b2c/logistics/model/SellerLogisticsInfo.java
  90. 13 0
      src/main/java/com/uas/platform/b2c/logistics/model/UsableRuleInfo.java
  91. 14 1
      src/main/java/com/uas/platform/b2c/logistics/service/impl/DistributionRuleServiceImpl.java
  92. 1 1
      src/main/java/com/uas/platform/b2c/logistics/service/impl/LogisticsCompanyCodeServiceImpl.java
  93. 38 6
      src/main/java/com/uas/platform/b2c/prod/commodity/controller/GoodsController.java
  94. 17 0
      src/main/java/com/uas/platform/b2c/prod/commodity/controller/ProductController.java
  95. 10 10
      src/main/java/com/uas/platform/b2c/prod/commodity/dao/GoodsDao.java
  96. 10 0
      src/main/java/com/uas/platform/b2c/prod/commodity/dao/ProductDao.java
  97. 2 2
      src/main/java/com/uas/platform/b2c/prod/commodity/dao/ReleaseProductByBatchDao.java
  98. 13 0
      src/main/java/com/uas/platform/b2c/prod/commodity/dao/StockInOutHistDao.java
  99. 5 6
      src/main/java/com/uas/platform/b2c/prod/commodity/model/Goods.java
  100. 4 5
      src/main/java/com/uas/platform/b2c/prod/commodity/model/GoodsHistory.java

+ 7 - 23
pom.xml

@@ -220,6 +220,12 @@
 			<groupId>com.oracle</groupId>
 			<artifactId>ojdbc6</artifactId>
 		</dependency>
+		<!-- mysql -->
+		<dependency>
+			<groupId>mysql</groupId>
+			<artifactId>mysql-connector-java</artifactId>
+			<version>5.1.21</version>
+		</dependency>
 		<dependency>
 			<groupId>org.springframework</groupId>
 			<artifactId>spring-orm</artifactId>
@@ -348,29 +354,7 @@
 			 <artifactId>spring-kafka</artifactId>
 			<version>1.2.2.RELEASE</version>
 		 </dependency>
-		<!-- dubbo -->
-		<dependency>
-			<groupId>com.alibaba</groupId>
-			<artifactId>dubbo</artifactId>
-			<exclusions>
-				<exclusion>
-					<groupId>javax.servlet</groupId>
-					<artifactId>javax.servlet-api</artifactId>
-				</exclusion>
-				<exclusion>
-					<groupId>org.apache.httpcomponents</groupId>
-					<artifactId>httpcore</artifactId>
-				</exclusion>
-			</exclusions>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.zookeeper</groupId>
-			<artifactId>zookeeper</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>com.github.sgroschupf</groupId>
-			<artifactId>zkclient</artifactId>
-		</dependency>
+
 		<!-- service on dubbo -->
 		<dependency>
 			<groupId>com.uas.dfs</groupId>

+ 1 - 4
src/main/java/com/uas/platform/b2c/advertise/ad/model/StoreAds.java

@@ -10,10 +10,8 @@ import javax.persistence.Entity;
 import javax.persistence.EnumType;
 import javax.persistence.Enumerated;
 import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.Index;
-import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 import javax.persistence.Transient;
 import java.util.Date;
@@ -33,8 +31,7 @@ public class StoreAds {
 	 * ID
 	 */
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "store$ads_gen")
-	@SequenceGenerator(name = "store$ads_gen", sequenceName = "store$ads_seq", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "id")
 	private Long id;
 

+ 1 - 4
src/main/java/com/uas/platform/b2c/advertise/ad/model/StoreContent.java

@@ -10,11 +10,9 @@ import javax.persistence.Entity;
 import javax.persistence.EnumType;
 import javax.persistence.Enumerated;
 import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
 import javax.persistence.ManyToOne;
-import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 import javax.persistence.Transient;
 
@@ -33,8 +31,7 @@ public class StoreContent {
 	 * ID
 	 */
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "store$content_gen")
-	@SequenceGenerator(name = "store$content_gen", sequenceName = "store$content_seq", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "id")
 	private Long id;
 

+ 17 - 0
src/main/java/com/uas/platform/b2c/advertise/ad/service/FloorsService.java

@@ -1,5 +1,6 @@
 package com.uas.platform.b2c.advertise.ad.service;
 
+import com.alibaba.dubbo.common.json.JSON;
 import com.alibaba.fastjson.JSONObject;
 
 import java.util.List;
@@ -19,4 +20,20 @@ public interface FloorsService {
 	 * @return the floors by module
 	 */
 	List<JSONObject> getFloorsByModule(String module);
+
+	/**
+	 * Gets floors by module.
+	 *
+	 * @param item the body
+	 * @return the floors by module
+	 */
+	Boolean setFloorsItem(JSONObject item);
+
+	/**
+	 * Gets floors by module.
+	 *
+	 * @param batchCode the body
+	 * @return the floors by module
+	 */
+	JSONObject isInHome(String batchCode);
 }

+ 1 - 1
src/main/java/com/uas/platform/b2c/advertise/ad/service/impl/CarouselsServiceImpl.java

@@ -31,7 +31,7 @@ public class CarouselsServiceImpl implements CarouselService{
 
 	@Override
 	public List<JSONObject> getCarousels(String usedFor) {
-		String url = conf.getRequestUrl(20030, "/carousels?usedFor=" + usedFor);
+		String url = conf.getRequestUrlForCarousel(20030, "/carousels?usedFor=" + usedFor);
 		String result = restTemplate.getForEntity(url, String.class).getBody();
 		List<JSONObject> r = JsonUtil.parseJsonToObject(result);
 		return r;

+ 37 - 1
src/main/java/com/uas/platform/b2c/advertise/ad/service/impl/FloorsServiceImpl.java

@@ -1,10 +1,13 @@
 package com.uas.platform.b2c.advertise.ad.service.impl;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.sun.org.apache.xpath.internal.operations.Bool;
 import com.uas.platform.b2c.advertise.ad.service.FloorsService;
 import com.uas.platform.b2c.core.config.MicroServicesConf;
 import com.uas.platform.b2c.core.utils.JacksonUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
 
@@ -31,8 +34,41 @@ public class FloorsServiceImpl implements FloorsService {
 
 	@Override
 	public List<JSONObject> getFloorsByModule(String module) {
-		String url = conf.getRequestUrl(20040, "/floors?usedFor=" + module);
+		String url = conf.getRequestUrlForFloor(20040, "/floors?usedFor=" + module);
 		String result = restTemplate.getForEntity(url, String.class).getBody();
 		return JacksonUtils.fromJsonArray(result, JSONObject.class);
 	}
+
+	@Override
+	public Boolean setFloorsItem(JSONObject item){       //(String name, String brandEn ,String kind, String pictureUrl, String hrefUrl) {
+
+		String url = conf.getRequestUrlForFloor(20040, "/floors/"+item.get("floorId").toString()+"/item");
+		item.remove("floorId");
+		HttpStatus status = restTemplate.postForEntity(url,item,String.class).getStatusCode();
+		if (status.equals(HttpStatus.OK)){
+			return true;
+		}else{
+			return false;
+		}
+	}
+
+	@Override
+	public JSONObject isInHome(String batchCode) {
+		String url = conf.getRequestUrlForFloor(20040, "/floors?usedFor=home-v3");
+		String result = restTemplate.getForEntity(url, String.class).getBody();
+		List<JSONObject> floors = JacksonUtils.fromJsonArray(result,JSONObject.class);
+		List<JSONObject> items;
+		for (JSONObject floor : floors){
+			if (floor.get("name").equals("器件楼层")){
+				String floorId = floor.get("id").toString();
+				items = JacksonUtils.fromJsonArray(floor.get("items").toString(),JSONObject.class);
+				for (JSONObject item : items){
+					if (item.get("hrefUrl").toString().indexOf(batchCode) != -1){
+						return item.fluentPut("floorId",floorId);
+					}
+				}
+			}
+		}
+		return null;
+	}
 }

+ 41 - 8
src/main/java/com/uas/platform/b2c/advertise/news/service/impl/NewsServiceImpl.java

@@ -5,9 +5,16 @@ import com.uas.platform.b2c.advertise.news.service.NewsService;
 import com.uas.platform.b2c.core.config.MicroServicesConf;
 import com.uas.platform.b2c.core.utils.JacksonUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.dao.DataAccessException;
+import org.springframework.data.redis.connection.RedisConnection;
+import org.springframework.data.redis.core.RedisCallback;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
 
+import java.io.Serializable;
+
 /**
  * 新闻操作业务实现类
  *
@@ -17,37 +24,63 @@ import org.springframework.web.client.RestTemplate;
 @Service
 public class NewsServiceImpl implements NewsService {
 
+	private final RedisTemplate<Serializable,Serializable> redisTemplate;
+
 	private final MicroServicesConf conf;
 
 	private final RestTemplate restTemplate;
 
+	/**
+	 * 缓存刷新时间
+	 */
+	@Value("#{sys.newsRedisRefresh ?: 600}")
+	private long newsRedisRefresh;
+
 	@Autowired
-	public NewsServiceImpl(MicroServicesConf conf, RestTemplate restTemplate) {
+	public NewsServiceImpl(MicroServicesConf conf, RestTemplate restTemplate, RedisTemplate redisTemplate) {
 		this.conf = conf;
 		this.restTemplate = restTemplate;
+		this.redisTemplate = redisTemplate;
 	}
 
 	@Override
 	public JSONObject getNewsListByPage(int page, int pageSize) {
 		if (page <= 0) page = 1;
-		String url = conf.getRequestUrl(20210, "/news/created/v2?pagenumber=" + page +"&pagesize=" + pageSize + "&taxonomySlug=B2C");
-		String result = restTemplate.getForEntity(url, String.class).getBody();
-		return JacksonUtils.fromJson(result, JSONObject.class);
+		String url = conf.getRequestUrlForNews( "/news/created/v2?pagenumber=" + page +"&pagesize=" + pageSize + "&taxonomySlug=B2C");
+		return getDataFromRedisByUrl(url);
 	}
 
 	@Override
 	public JSONObject getNewsListOrderByViewCount(int page, int pageSize) {
 		if (page <= 0) page = 1;
-		String url = conf.getRequestUrl(20210, "/news/viewcount/v2?pagenumber=" + page +"&pagesize=" + pageSize + "&taxonomySlug=B2C");
-		String result = restTemplate.getForEntity(url, String.class).getBody();
-		return JacksonUtils.fromJson(result, JSONObject.class);
+		String url = conf.getRequestUrlForNews("/news/viewcount/v2?pagenumber=" + page +"&pagesize=" + pageSize + "&taxonomySlug=B2C");
+		return getDataFromRedisByUrl(url);
 	}
 
 	@Override
 	public JSONObject getNewsById(Long id) {
 		if (id == null) return null;
-		String url = conf.getRequestUrl(20210, "/news/" +  id);
+		String url = conf.getRequestUrlForNews( "/news/" +  id);
 		String result = restTemplate.getForEntity(url, String.class).getBody();
 		return JacksonUtils.fromJson(result, JSONObject.class);
 	}
+
+	private JSONObject getDataFromRedisByUrl(final String url){
+		Object result = redisTemplate.execute(new RedisCallback<Object>() {
+			@Override
+			public Object doInRedis(RedisConnection connection) throws DataAccessException {
+				byte[] key = redisTemplate.getStringSerializer().serialize(url);
+				if (connection.exists(key)) {
+					String value = redisTemplate.getStringSerializer().deserialize(connection.get(key));
+					return value;
+				}else {
+					byte[] value = redisTemplate.getStringSerializer().serialize(restTemplate.getForEntity(url, String.class).getBody());
+					connection.set(key, value);
+					connection.expire(key, newsRedisRefresh);
+					return redisTemplate.getStringSerializer().deserialize(connection.get(key));
+				}
+			}
+		});
+		return JacksonUtils.fromJson(result.toString(), JSONObject.class);
+	}
 }

+ 3 - 3
src/main/java/com/uas/platform/b2c/common/account/Readme.md

@@ -8,12 +8,12 @@ account
 
 ## 创建人
 
-suntg
+hejq
 
 ## 创建时间
 
-2017年7月31日19:23:32
+2017年10月20
 
 ## 说明
 
-系统登录用户,用户、企业、角色、资源、权限
+商务平台、账户中心用户企业数据更新同步到商城

+ 9 - 0
src/main/java/com/uas/platform/b2c/common/account/controller/SecurityController.java

@@ -205,6 +205,15 @@ public class SecurityController {
 		model.addAttribute("askUrl", config.getCrossAskOutUrl());
 		Object referer = request.getSession().getAttribute(SSOConfig.SSOReferer);
 		model.addAttribute("returnUrl", null == referer ? "/" : referer.toString());
+		// 未登录情况下,登录地址
+		Object logoutUrl = null;
+		boolean cross = SSOHelper.isCrossDomain(request);
+		if (cross) {
+			logoutUrl = SSOHelper.getRedirectRefererLogoutUrl(request);
+		} else {
+			logoutUrl = SSOHelper.getRedirectLogoutUrl(request, String.valueOf(request.getSession().getAttribute("SSOReferer")));
+		}
+		model.addAttribute("logoutUrl", logoutUrl);
 		return model;
 	}
 

+ 7 - 0
src/main/java/com/uas/platform/b2c/common/account/dao/EnterpriseDao.java

@@ -19,4 +19,11 @@ public interface EnterpriseDao extends JpaSpecificationExecutor<Enterprise>, Jpa
 	
 	@Query(value="select e.uu from Enterprise e where e.enName like %?1%")
 	public List<Long> findEnuuByName(String name);
+
+	/**
+	 * 通过营业执照号码获取企业信息
+	 * @param bussinessCode
+	 * @return
+	 */
+	public Enterprise findByEnBussinessCode(String bussinessCode);
 }

+ 279 - 0
src/main/java/com/uas/platform/b2c/common/account/model/ChangeAdminDetail.java

@@ -0,0 +1,279 @@
+package com.uas.platform.b2c.common.account.model;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 更换管理员申请的详细信息
+ * 
+ * @author hejq
+ * @time 创建时间:2016年10月9日
+ */
+public class ChangeAdminDetail implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private Long id;
+	private String enName;
+	private Long enUu;
+	private String businessCodeImage;
+	private String businessCode;
+	private String adminName;
+	private String adminTel;
+	private String adminEmail;
+	private Long adminuu;
+	private String b2bUrl;
+	private Integer auditStatus;
+	private String auditResult;
+	private Short auditSendStatus;
+	private Integer dbStatus;
+	private Integer b2bStatus;
+	private Date enDate;
+	private String adminPassword;
+	private String appId;
+	private String method;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	/**
+	 * 企业名称
+	 */
+	public String getEnName() {
+		return enName;
+	}
+
+	public void setEnName(String enName) {
+		this.enName = enName;
+	}
+
+	/**
+	 * 企业UU
+	 * 
+	 * @return
+	 */
+	public Long getEnUu() {
+		return enUu;
+	}
+
+	public void setEnUu(Long enUu) {
+		this.enUu = enUu;
+	}
+
+	/**
+	 * 执照存储路径
+	 * 
+	 * @return
+	 */
+	public String getBusinessCodeImage() {
+		return businessCodeImage;
+	}
+
+	public void setBusinessCodeImage(String businessCodeImage) {
+		this.businessCodeImage = businessCodeImage;
+	}
+
+	/**
+	 * 企业执照号
+	 * 
+	 * @return
+	 */
+	public String getBusinessCode() {
+		return businessCode;
+	}
+
+	public void setBusinessCode(String businessCode) {
+		this.businessCode = businessCode;
+	}
+
+	/**
+	 * 管理员姓名
+	 * 
+	 * @return
+	 */
+	public String getAdminName() {
+		return adminName;
+	}
+
+	public void setAdminName(String adminName) {
+		this.adminName = adminName;
+	}
+
+	/**
+	 * 管理员手机
+	 * 
+	 * @return
+	 */
+	public String getAdminTel() {
+		return adminTel;
+	}
+
+	public void setAdminTel(String adminTel) {
+		this.adminTel = adminTel;
+	}
+
+	/**
+	 * 管理员邮箱
+	 * 
+	 * @return
+	 */
+	public String getAdminEmail() {
+		return adminEmail;
+	}
+
+	public void setAdminEmail(String adminEmail) {
+		this.adminEmail = adminEmail;
+	}
+
+	/**
+	 * 管理员uu
+	 * 
+	 * @return
+	 */
+	public Long getAdminuu() {
+		return adminuu;
+	}
+
+	public void setAdminuu(Long adminuu) {
+		this.adminuu = adminuu;
+	}
+
+	/**
+	 * 企业域名
+	 * 
+	 * @return
+	 */
+	public String getB2bUrl() {
+		return b2bUrl;
+	}
+
+	public void setB2bUrl(String b2bUrl) {
+		this.b2bUrl = b2bUrl;
+	}
+
+	/**
+	 * 申请审核状态
+	 * 
+	 * @return
+	 */
+	public Integer getAuditStatus() {
+		return auditStatus;
+	}
+
+	public void setAuditStatus(Integer auditStatus) {
+		this.auditStatus = auditStatus;
+	}
+
+	/**
+	 * 审核结果
+	 * 
+	 * @return
+	 */
+	public String getAuditResult() {
+		return auditResult;
+	}
+
+	public void setAuditResult(String auditResult) {
+		this.auditResult = auditResult;
+	}
+
+	/**
+	 * 资料上传状态
+	 * 
+	 * @return
+	 */
+	public Short getAuditSendStatus() {
+		return auditSendStatus;
+	}
+
+	public void setAuditSendStatus(Short auditSendStatus) {
+		this.auditSendStatus = auditSendStatus;
+	}
+
+	/**
+	 * 数据库账套情况
+	 * 
+	 * @return
+	 */
+	public Integer getDbStatus() {
+		return dbStatus;
+	}
+
+	public void setDbStatus(Integer dbStatus) {
+		this.dbStatus = dbStatus;
+	}
+
+	/**
+	 * 企业B2B状态 ( 申请中 未激活 已激活)
+	 * 
+	 * @return
+	 */
+	public Integer getB2bStatus() {
+		return b2bStatus;
+	}
+
+	public void setB2bStatus(Integer b2bStatus) {
+		this.b2bStatus = b2bStatus;
+	}
+
+	/**
+	 * 申请时间
+	 * 
+	 * @return
+	 */
+	public Date getEnDate() {
+		return enDate;
+	}
+
+	public void setEnDate(Date enDate) {
+		this.enDate = enDate;
+	}
+
+	/**
+	 * 管理员密码
+	 * 
+	 * @return
+	 */
+	public String getAdminPassword() {
+		return adminPassword;
+	}
+
+	public void setAdminPassword(String adminPassword) {
+		this.adminPassword = adminPassword;
+	}
+
+	/**
+	 * appId
+	 * 
+	 * @return
+	 */
+	public String getAppId() {
+		return appId;
+	}
+
+	public void setAppId(String appId) {
+		this.appId = appId;
+	}
+
+
+	/**
+	 * 更换方式
+	 *
+	 * @return
+	 */
+	public String getMethod() {
+		return method;
+	}
+
+	public void setMethod(String method) {
+		this.method = method;
+	}
+}

+ 3 - 3
src/main/java/com/uas/platform/b2c/common/account/model/ErpB2cLog.java

@@ -27,8 +27,7 @@ public class ErpB2cLog extends BufferedLogable implements Serializable {
 	private static final long serialVersionUID = 1L;
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "log$erp_b2c_gen")
-	@SequenceGenerator(name = "log$erp_b2c_gen", sequenceName = "log$erp_b2c_seq", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "log_id")
 	private Long id;
 
@@ -64,7 +63,8 @@ public class ErpB2cLog extends BufferedLogable implements Serializable {
 	/**
 	 * 具体内容
 	 */
-	@Column(name = "log_message")
+	@Lob
+	@Column(name = "log_message", columnDefinition = "TEXT")
 	private String message;
 
 	/**

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

@@ -25,8 +25,7 @@ public class Resource implements Serializable {
 	private static final long serialVersionUID = 1L;
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sec$resources_gen_b2c")
-	@SequenceGenerator(name = "sec$resources_gen_b2c", sequenceName = "sec$resources_seq_b2c", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "res_id")
 	private Long id;
 

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

@@ -24,8 +24,7 @@ public class ResourceItem implements Serializable {
 	private static final long serialVersionUID = 1L;
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sec$resourceitems_gen_b2c")
-	@SequenceGenerator(name = "sec$resourceitems_gen_b2c", sequenceName = "sec$resourceitems_seq_b2c", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "item_id")
 	private Long id;
 

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

@@ -23,8 +23,7 @@ public class Role implements Serializable {
 	private static final long serialVersionUID = 1L;
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sec$roles_gen_b2c")
-	@SequenceGenerator(name = "sec$roles_gen_b2c", sequenceName = "sec$roles_seq_b2c", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "role_id")
 	private Long id;
 

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

@@ -26,8 +26,7 @@ public class SigninLog implements Serializable {
 	private static final long serialVersionUID = 1L;
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "log$signin_b2c_gen")
-	@SequenceGenerator(name = "log$signin_b2c_gen", sequenceName = "log$signin_b2c_seq", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "log_id")
 	private Long id;
 

+ 3 - 3
src/main/java/com/uas/platform/b2c/common/account/model/TradeLog.java

@@ -23,8 +23,7 @@ public class TradeLog extends BufferedLogable implements Serializable {
 	private static final long serialVersionUID = 6066338442401737012L;
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "TRADE$LOG_VOUCHER_GEN")
-	@SequenceGenerator(name = "TRADE$LOG_VOUCHER_GEN", sequenceName = "TRADE$LOG_VOUCHER_SEQ", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "log_id")
 	private Long id;
 
@@ -79,7 +78,8 @@ public class TradeLog extends BufferedLogable implements Serializable {
 	 * 2、状态变更时,记录其状态变更以及受影响的单据编号
 	 * 3、启动异常流程时,记录异常单据的
 	 */
-	@Column(name = "log_change_log",length = 4000)
+	@Lob
+	@Column(name = "log_change_log", columnDefinition = "TEXT")
 	private String changeLog;
 
 	public enum VoucherOperation {

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

@@ -27,8 +27,7 @@ public class UsageLog extends BufferedLogable implements Serializable {
 	private static final long serialVersionUID = 1L;
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "log$usage_b2c_gen")
-	@SequenceGenerator(name = "log$usage_b2c_gen", sequenceName = "log$usage_b2c_seq", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "log_id")
 	private Long id;
 

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

@@ -44,8 +44,7 @@ public class User implements Serializable {
 	 * uu号,ID
 	 */
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "users_gen")
-	@SequenceGenerator(name = "users_gen", sequenceName = "users_seq", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "user_uu")
 	private Long userUU;
 

+ 9 - 0
src/main/java/com/uas/platform/b2c/common/account/service/EnterpriseService.java

@@ -4,10 +4,19 @@ import com.uas.platform.b2c.common.account.model.Enterprise;
 import com.uas.platform.b2c.common.account.model.User;
 import com.uas.platform.b2c.trade.support.ResultMap;
 
+import java.util.List;
+
 public interface EnterpriseService {
 
 	// 根据企业uu获取企业信息
 	public Enterprise getEnterpriseInfo(Long uu);
+
+	/**
+	 * 批量获取企业的信息
+	 * @param enuus uu号
+	 * @return List<Enterprise>
+	 */
+	List<Enterprise> getEnterpriseInfos(List<Long> enuus);
 	
 	// 得到企业是否有需要结算单据状态
 	public Enterprise getReceiptStatus(Enterprise enter);

+ 11 - 0
src/main/java/com/uas/platform/b2c/common/account/service/impl/EnterpriseServiceImpl.java

@@ -42,6 +42,17 @@ public class EnterpriseServiceImpl implements EnterpriseService{
 		return enterpriseDao.findByUu(uu);
 	}
 
+	/**
+	 * 批量获取企业的信息
+	 *
+	 * @param enuus uu号
+	 * @return List<Enterprise>
+	 */
+	@Override
+	public List<Enterprise> getEnterpriseInfos(List<Long> enuus) {
+		return enterpriseDao.findByUus(enuus);
+	}
+
 	@Override
 	public Enterprise getReceiptStatus(Enterprise enter) {
 		List<Receipt> receipts = receiptDao.findBySellerenuu(enter.getUu());

+ 46 - 0
src/main/java/com/uas/platform/b2c/common/account/v2/controller/EnterpriseController.java

@@ -0,0 +1,46 @@
+package com.uas.platform.b2c.common.account.v2.controller;
+
+import com.uas.account.entity.UserSpace;
+import com.uas.account.entity.UserSpaceDetail;
+import com.uas.platform.b2c.common.account.model.ChangeAdminDetail;
+import com.uas.platform.b2c.common.account.v2.service.EnterpriseService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+@Controller("v2.EnterpriseController")
+@RequestMapping(value = "api/public/enterprise")
+public class EnterpriseController {
+
+	@Autowired
+	private EnterpriseService enterpriseService;
+
+    /**
+     * 企业信息更新
+     *
+     * @param userSpace
+     * @param userSpaceDetail
+     */
+	@RequestMapping(method = RequestMethod.POST)
+	@ResponseBody
+	public void update(UserSpace userSpace, UserSpaceDetail userSpaceDetail) {
+		if (null != userSpace && null != userSpaceDetail) {
+			 enterpriseService.update(userSpace, userSpaceDetail);
+		}
+	}
+
+    /**
+     * 更换管理员同步信息
+     *
+     * @param detail
+     */
+	@RequestMapping(value = "/changeadmin", method = RequestMethod.POST)
+    @ResponseBody
+    public void  changeAmin(ChangeAdminDetail detail) {
+	    if(null != detail) {
+            enterpriseService.changeAdmin(detail);
+        }
+    }
+}

+ 42 - 0
src/main/java/com/uas/platform/b2c/common/account/v2/controller/UserController.java

@@ -0,0 +1,42 @@
+package com.uas.platform.b2c.common.account.v2.controller;
+
+import com.uas.account.entity.User;
+import com.uas.platform.b2c.common.account.v2.service.UserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+@Controller("v2.UserController")
+@RequestMapping(value = "api/public/user")
+public class UserController {
+
+	@Autowired
+	private UserService userService;
+
+    /**
+     * b2b修改用户信息
+     *
+     * @param user
+     */
+	@RequestMapping(method = RequestMethod.POST)
+	@ResponseBody
+	public void save(User user) {
+		if (user != null) {
+			 userService.save(user);
+		}
+	}
+
+    /**
+     * 删除用户
+     *
+     * @param uu
+     */
+	@RequestMapping(value = "/removeUser/{uu}", method = RequestMethod.POST)
+    @ResponseBody
+    public void removeUser(@PathVariable Long uu) {
+        userService.delete(uu);
+    }
+}

+ 23 - 0
src/main/java/com/uas/platform/b2c/common/account/v2/service/EnterpriseService.java

@@ -0,0 +1,23 @@
+package com.uas.platform.b2c.common.account.v2.service;
+
+import com.uas.account.entity.UserSpace;
+import com.uas.account.entity.UserSpaceDetail;
+import com.uas.platform.b2c.common.account.model.ChangeAdminDetail;
+
+public interface EnterpriseService {
+
+    /**
+     * 更新企业信息
+     *
+     * @param userSpace
+     * @param userSpaceDetail
+     */
+    void update(UserSpace userSpace, UserSpaceDetail userSpaceDetail);
+
+    /**
+     * 更换管理员
+     *
+     * @param detail
+     */
+    void changeAdmin(ChangeAdminDetail detail);
+}

+ 21 - 0
src/main/java/com/uas/platform/b2c/common/account/v2/service/UserService.java

@@ -0,0 +1,21 @@
+package com.uas.platform.b2c.common.account.v2.service;
+
+
+import com.uas.account.entity.User;
+
+public interface UserService {
+
+    /**
+     * b2b修改用户信息
+     *
+     * @param user
+     */
+	void save(User user);
+
+    /**
+     * 删除用户
+     *
+     * @param uu
+     */
+    void delete(Long uu);
+}

+ 70 - 0
src/main/java/com/uas/platform/b2c/common/account/v2/service/impl/EnterpriseServiceImpl.java

@@ -0,0 +1,70 @@
+package com.uas.platform.b2c.common.account.v2.service.impl;
+
+import com.uas.account.entity.UserSpace;
+import com.uas.account.entity.UserSpaceDetail;
+import com.uas.platform.b2c.common.account.dao.EnterpriseDao;
+import com.uas.platform.b2c.common.account.dao.UserDao;
+import com.uas.platform.b2c.common.account.model.ChangeAdminDetail;
+import com.uas.platform.b2c.common.account.model.Enterprise;
+import com.uas.platform.b2c.common.account.model.User;
+import com.uas.platform.b2c.common.account.v2.service.EnterpriseService;
+import com.uas.platform.b2c.core.support.log.UsageBufferedLogger;
+import com.uas.platform.core.logging.BufferedLoggerManager;
+import org.apache.commons.collections.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
+@Service("v2.EnterpriseService")
+public class EnterpriseServiceImpl implements EnterpriseService {
+
+	@Autowired
+	private EnterpriseDao enterpriseDao;
+
+	@Autowired
+    private UserDao userDao;
+
+    private static final UsageBufferedLogger logger = BufferedLoggerManager.getLogger(UsageBufferedLogger.class);
+
+    private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
+
+    @Override
+    public void update(UserSpace userSpace, UserSpaceDetail userSpaceDetail) {
+        Enterprise enterprise = new Enterprise();
+        Enterprise oldenterprise = enterpriseDao.findByUu(Long.valueOf(userSpace.getDialectUID()));
+        enterprise.setEnAddress(userSpaceDetail.getAddress());
+        enterprise.setEnArea(userSpaceDetail.getArea());
+        enterprise.setEnCorporation(userSpaceDetail.getCorporation());
+        enterprise.setEnBussinessCode(userSpaceDetail.getBusinessCode());
+        enterprise.setEnFax(userSpaceDetail.getFax());
+        enterprise.setEnEmail(userSpaceDetail.getAdminEmail());
+        enterprise.setEnIndustry(userSpaceDetail.getIndustry());
+        enterprise.setEnName(userSpaceDetail.getName());
+        enterprise.setEnLogoUrl(userSpaceDetail.getBusinessCodeImage());
+        enterprise.setUu(Long.valueOf(userSpace.getDialectUID()));
+        enterpriseDao.save(enterprise);
+        if(null != oldenterprise) {
+            logger.log("更新企业信息", enterprise.getUu()+"time: " + sdf.format(new Date()));
+        } else {
+            logger.log("新增企业信息", enterprise.getUu()+"time: " + sdf.format(new Date()));
+        }
+    }
+
+    @Override
+    public void changeAdmin(ChangeAdminDetail detail) {
+        Enterprise enterprise = enterpriseDao.findByUu(detail.getEnUu());
+        if(null != enterprise) {
+            if(null != detail.getAdminTel()) {
+                List<User> users = userDao.findUserByUserTel(detail.getAdminTel());
+                if(!CollectionUtils.isEmpty(users)) {
+                    enterprise.setEnAdminuu(users.get(0).getUserUU());
+                    enterpriseDao.save(enterprise);
+                    logger.log("更换管理员", enterprise.getEnName()+"," +users.get(0).getUserName() + "time:" + sdf.format(new Date()));
+                }
+            }
+        }
+    }
+}

+ 78 - 0
src/main/java/com/uas/platform/b2c/common/account/v2/service/impl/UserServiceImpl.java

@@ -0,0 +1,78 @@
+package com.uas.platform.b2c.common.account.v2.service.impl;
+
+import com.uas.account.entity.User;
+import com.uas.platform.b2c.common.account.dao.EnterpriseDao;
+import com.uas.platform.b2c.common.account.dao.UserDao;
+import com.uas.platform.b2c.common.account.model.Enterprise;
+import com.uas.platform.b2c.common.account.v2.service.UserService;
+import com.uas.platform.b2c.core.support.SystemSession;
+import com.uas.platform.b2c.core.support.log.UsageBufferedLogger;
+import com.uas.platform.core.logging.BufferedLoggerManager;
+import com.uas.platform.core.model.Status;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
+
+@Service("v2.UserService")
+public class UserServiceImpl implements UserService {
+
+	@Autowired
+	private UserDao userDao;
+
+	@Autowired
+    private EnterpriseDao enterpriseDao;
+
+    private static final UsageBufferedLogger logger = BufferedLoggerManager.getLogger(UsageBufferedLogger.class);
+
+    private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
+
+    @Override
+    public void save(User user) {
+        com.uas.platform.b2c.common.account.model.User u =  new com.uas.platform.b2c.common.account.model.User();
+        u.setUserPwd(user.getPassword());
+        u.setUserName(user.getName());
+        u.setEnable((short) 1);
+        u.setUserEmail(user.getSecondUID());
+        u.setUserUU(Long.valueOf(user.getDialectUID()));
+        Enterprise enterprise = enterpriseDao.findByUu(Long.valueOf(user.getSpaceDialectUID()));
+        if(null != enterprise) {
+            u.setEnterprise(enterprise);
+        }
+        List<com.uas.platform.b2c.common.account.model.User> oldUsers = userDao.findUserByUserUU(u.getUserUU());
+        userDao.save(u);
+        if(oldUsers.size() > 0) {
+            logger.log("更新用户信息", user.getDialectUID() + "time: " + sdf.format(new Date()));
+        } else {
+            if(null != enterprise && null == enterprise.getEnAdminuu()) {
+                enterprise.setEnAdminuu(u.getUserUU());
+                enterpriseDao.save(enterprise);
+                logger.log("设置管理员", enterprise.getEnName() + "," + u.getUserName() + "time: " + sdf.format(new Date()));
+            }
+            logger.log("新增用户信息", user.getDialectUID() + "time: " + sdf.format(new Date()));
+        }
+    }
+
+
+    @Override
+    public void delete(Long uu) {
+        com.uas.platform.b2c.common.account.model.User user = userDao.findOne(uu);
+        if(null != user) {
+            if (user.getEnterprises().contains(SystemSession.getUser().getEnterprise())) {
+                user.removeEnterprise(SystemSession.getUser().getEnterprise());
+                if (user.getEnterprises().size() != 0) {
+                    user.setEnable((short) Status.DISABLED.value());
+                    logger.log("删除用户", "禁用" + user.getUserUU());
+                    userDao.save(user);
+                }
+                if (user.getEnterprises().size() == 0) {
+                    userDao.delete(user);
+                    logger.log("删除用户", "删除" + user.getUserUU());
+                }
+            }
+        }
+    }
+}

+ 1 - 1
src/main/java/com/uas/platform/b2c/common/base/api/FileUploadController.java

@@ -49,7 +49,7 @@ public class FileUploadController {
 		for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
 			MultipartFile mf = entity.getValue();
 			try {
-				String path = fileService.save(mf);
+				String path = fileService.save(mf.getOriginalFilename(), mf.getBytes());
 				Map<String, Object> map = new HashMap<String, Object>();
 				map.put("path", path);
 				map.put("fileName", mf.getOriginalFilename());

+ 1 - 2
src/main/java/com/uas/platform/b2c/common/base/api/UploadController.java

@@ -12,7 +12,6 @@ import org.springframework.web.multipart.MultipartHttpServletRequest;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -43,7 +42,7 @@ public class UploadController {
         for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
             MultipartFile mf = entity.getValue();
             try {
-                IPicture picture = imageService.uploadFile(mf);
+                IPicture picture = imageService.save(mf.getOriginalFilename(), mf.getBytes());
                 pictures.add(picture);
             } catch (Exception e) {
                 e.printStackTrace();

+ 30 - 0
src/main/java/com/uas/platform/b2c/common/base/constant/FileClientConstant.java

@@ -0,0 +1,30 @@
+package com.uas.platform.b2c.common.base.constant;
+
+public class FileClientConstant {
+
+    /**
+     * 文件上传
+     */
+    public final static String FILE_UPLOAD = "/file/upload";
+
+
+    /**
+     * 文件下载
+     */
+    public final static String FILE_DOWNLOAD = "/file/download";
+
+    /**
+     * 文件删除
+     */
+    public final static String FILE_DELETE = "/file/delete";
+
+    /**
+     * 文件信息
+     */
+    public final static String FILE_INFO = "/file/info";
+
+    /**
+     * 文件额外属性
+     */
+    public final static String FILE_METADATA = "/file/metadata";
+}

+ 0 - 8
src/main/java/com/uas/platform/b2c/common/base/service/FileService.java

@@ -1,7 +1,6 @@
 package com.uas.platform.b2c.common.base.service;
 
 import com.uas.platform.b2c.common.base.model.FileUpload;
-import org.springframework.web.multipart.MultipartFile;
 
 /**
  * 文件上传
@@ -17,13 +16,6 @@ public interface FileService {
      */
     public String save(FileUpload fileUpload);
 
-    /**
-     * 保存文件
-     * @param mf 需要上传的文件
-     * @return 文件路径
-     */
-    public String save(MultipartFile mf);
-
     /**
      * 用户上传文件
      * @param fileName 文件名

+ 0 - 9
src/main/java/com/uas/platform/b2c/common/base/service/ImageService.java

@@ -1,7 +1,6 @@
 package com.uas.platform.b2c.common.base.service;
 
 import com.uas.platform.b2c.common.base.model.IPicture;
-import org.springframework.web.multipart.MultipartFile;
 
 import java.io.File;
 import java.util.List;
@@ -38,12 +37,4 @@ public interface ImageService {
 	 * @return 文件
 	 */
 	public IPicture save(String fileName, byte[] fileBytes);
-
-	/**
-	 * 保存图片
-	 * @param mf MultipartFile 文件的信息
-	 * @return
-	 * @throws Exception
-	 */
-    IPicture uploadFile(MultipartFile mf) throws Exception;
 }

+ 18 - 28
src/main/java/com/uas/platform/b2c/common/base/service/impl/DFSImageServiceImpl.java

@@ -1,19 +1,14 @@
 package com.uas.platform.b2c.common.base.service.impl;
 
-import com.alibaba.fastjson.JSONObject;
 import com.uas.dfs.service.FileClient;
-import com.uas.platform.b2c.common.base.constant.FileUrl;
 import com.uas.platform.b2c.common.base.dao.DBPictureRepository;
 import com.uas.platform.b2c.common.base.model.DBPicture;
 import com.uas.platform.b2c.common.base.model.IPicture;
 import com.uas.platform.b2c.common.base.service.ImageService;
-import com.uas.platform.b2c.core.utils.FastjsonUtils;
-import com.uas.platform.b2c.core.utils.HttpUtils;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.FilenameUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
 
 import java.io.File;
 import java.io.IOException;
@@ -34,14 +29,9 @@ public class DFSImageServiceImpl implements ImageService {
         List<DBPicture> pictures = new ArrayList<DBPicture>();
         for (File file : files) {
             try {
-                HttpUtils.Response response = HttpUtils.upload(FileUrl.FILE_UPLOAD, file, null);
-                if (response.getStatusCode() == 200) {
-                    JSONObject obj = FastjsonUtils.parseObject(response.getResponseText());
-                    String fileUrl = (String) obj.get("path");
-                    pictures.add(new DBPicture(file.getName(), fileUrl, com.uas.platform.core.util.FileUtils.getImagePixel(file)));
-                } else {
-                    throw new IllegalStateException(response.getResponseText());
-                }
+                String fileUrl = fileClient.upload(FileUtils.readFileToByteArray(file), file.length(),
+                        FilenameUtils.getExtension(file.getName()), null);
+                pictures.add(new DBPicture(file.getName(), fileUrl, com.uas.platform.core.util.FileUtils.getImagePixel(file)));
             } catch (Exception e) {
                 e.printStackTrace();
             }
@@ -52,7 +42,7 @@ public class DFSImageServiceImpl implements ImageService {
     @Override
     public DBPicture save(File file) {
         try {
-            String fileUrl = fileClient.uploadImage(FileUtils.readFileToByteArray(file), file.length(),
+            String fileUrl = fileClient.upload(FileUtils.readFileToByteArray(file), file.length(),
                     FilenameUtils.getExtension(file.getName()), null);
             return pictureRepository.save(new DBPicture(file.getName(), fileUrl, com.uas.platform.core.util.FileUtils.getImagePixel(file)));
         } catch (IOException e) {
@@ -63,22 +53,22 @@ public class DFSImageServiceImpl implements ImageService {
 
     @Override
     public IPicture save(String fileName, byte[] fileBytes) {
-        String fileUrl = fileClient.uploadImage(fileBytes, fileBytes.length, FilenameUtils.getExtension(fileName), null);
+        String fileUrl = fileClient.upload(fileBytes, fileBytes.length, FilenameUtils.getExtension(fileName), null);
         return pictureRepository.save(new DBPicture(fileName, fileUrl, com.uas.platform.core.util.FileUtils.getImagePixel(fileBytes)));
     }
 
-    @Override
-    public IPicture uploadFile(MultipartFile mf) throws Exception {
-        HttpUtils.Response response = HttpUtils.upload(FileUrl.FILE_UPLOAD, mf, null);
-        if (response.getStatusCode() == 200) {
-            JSONObject obj = FastjsonUtils.parseObject(response.getResponseText());
-
-            String fileName = mf.getOriginalFilename();
-            String fileUrl = (String) obj.get("path");
-            return pictureRepository.save(new DBPicture(fileName, fileUrl, com.uas.platform.core.util.FileUtils.getImagePixel(mf.getBytes())));
-        } else {
-            throw new IllegalStateException(response.getResponseText());
-        }
-    }
+//    @Override
+//    public IPicture uploadFile(MultipartFile mf) throws Exception {
+//        HttpUtils.Response response = HttpUtils.upload(FileUrl.FILE_UPLOAD, mf, null);
+//        if (response.getStatusCode() == 200) {
+//            JSONObject obj = FastjsonUtils.parseObject(response.getResponseText());
+//
+//            String fileName = mf.getOriginalFilename();
+//            String fileUrl = (String) obj.get("path");
+//            return pictureRepository.save(new DBPicture(fileName, fileUrl, com.uas.platform.core.util.FileUtils.getImagePixel(mf.getBytes())));
+//        } else {
+//            throw new IllegalStateException(response.getResponseText());
+//        }
+//    }
 
 }

+ 110 - 0
src/main/java/com/uas/platform/b2c/common/base/service/impl/FileClientImpl.java

@@ -0,0 +1,110 @@
+package com.uas.platform.b2c.common.base.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.uas.dfs.domain.FileInfo;
+import com.uas.dfs.domain.MetaData;
+import com.uas.dfs.service.FileClient;
+import com.uas.platform.b2c.common.base.constant.FileClientConstant;
+import com.uas.platform.b2c.core.config.SysConf;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.ByteArrayResource;
+import org.springframework.http.*;
+import org.springframework.stereotype.Service;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.RestTemplate;
+
+import java.io.*;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+@Service
+public class FileClientImpl implements FileClient {
+
+    private final RestTemplate restTemplate;
+
+    private final SysConf sysConf;
+
+    @Autowired
+    public FileClientImpl(RestTemplate restTemplate, SysConf sysConf) {
+        this.restTemplate = restTemplate;
+        this.sysConf = sysConf;
+    }
+
+    @Override
+    public String upload(byte[] bytes, long l, final String s, Set<MetaData> set) {
+        HttpHeaders headers = new HttpHeaders();
+        MediaType type = MediaType.parseMediaType("multipart/form-data;charset=UTF-8");
+        headers.setContentType(type);
+
+        File file = new File(s);
+        try {
+            OutputStream output = new FileOutputStream(file);
+            BufferedOutputStream bufferedOutput = new BufferedOutputStream(output);
+            bufferedOutput.write(bytes);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+        MultiValueMap<String, Object> form = new LinkedMultiValueMap<String, Object>();
+        ByteArrayResource arrayResource = new ByteArrayResource(bytes){
+            @Override
+            public String getFilename() throws IllegalStateException {
+                return "test." + s;
+            }
+
+        };
+        form.add("file", arrayResource);
+
+        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<MultiValueMap<String, Object>>(form, headers);
+        ResponseEntity<JSONObject> responseEntity = restTemplate.postForEntity(sysConf.getUploadFileUrl() + FileClientConstant.FILE_UPLOAD, requestEntity, JSONObject.class);
+        return responseEntity.getBody().getString("path");
+    }
+
+    @Override
+    public byte[] download(String s) {
+        Map<String, Object> params = new HashMap<String, Object>();
+        params.put("path", s);
+        HttpHeaders headers = new HttpHeaders();
+        ResponseEntity<byte[]> response = restTemplate.exchange(sysConf.getUploadFileUrl() + FileClientConstant.FILE_DOWNLOAD, HttpMethod.GET,
+                new HttpEntity<byte[]>(headers), byte[].class, params);
+        return response.getBody();
+    }
+
+    @Override
+    public void delete(String s) {
+        Map<String, Object> params = new HashMap<String, Object>();
+        params.put("path", s);
+        restTemplate.delete(sysConf.getUploadFileUrl() + FileClientConstant.FILE_DELETE, params);
+    }
+
+    @Override
+    public String uploadImage(byte[] bytes, long l, String s, Set<MetaData> set) {
+        // 项目无用到,暂不实现
+        return null;
+    }
+
+    @Override
+    public FileInfo getInfo(String s) {
+        // 项目无用到,暂不实现
+        return null;
+    }
+
+    @Override
+    public Set<MetaData> getMetaData(String s) {
+        // 项目无用到,暂不实现
+        return null;
+    }
+
+    @Override
+    public void mergeMetaData(String s, Set<MetaData> set) {
+        // 项目无用到,暂不实现
+    }
+
+    @Override
+    public void overrideMetaData(String s, Set<MetaData> set) {
+        // 项目无用到,暂不实现
+    }
+
+}

+ 2 - 31
src/main/java/com/uas/platform/b2c/common/base/service/impl/FileServiceImpl.java

@@ -1,17 +1,12 @@
 package com.uas.platform.b2c.common.base.service.impl;
 
-import com.alibaba.fastjson.JSONObject;
 import com.uas.dfs.service.FileClient;
-import com.uas.platform.b2c.common.base.constant.FileUrl;
 import com.uas.platform.b2c.common.base.model.FileUpload;
 import com.uas.platform.b2c.common.base.service.FileService;
-import com.uas.platform.b2c.core.utils.FastjsonUtils;
-import com.uas.platform.b2c.core.utils.HttpUtils;
 import com.uas.platform.core.exception.IllegalOperatorException;
 import org.apache.commons.io.FilenameUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.commons.CommonsMultipartFile;
 
 @Service
@@ -25,32 +20,8 @@ public class FileServiceImpl implements FileService {
 		CommonsMultipartFile file = fileUpload.getFile();
 		try {
 			// 上传到文件系统
-			HttpUtils.Response response = HttpUtils.upload(FileUrl.FILE_UPLOAD, file, null);
-			if (response.getStatusCode() == 200) {
-				JSONObject obj = FastjsonUtils.parseObject(response.getResponseText());
-				String fileUrl = (String) obj.get("path");
-				return fileUrl;
-			} else {
-				throw new IllegalStateException(response.getResponseText());
-			}
-		} catch (Exception e) {
-			e.printStackTrace();
-			throw new IllegalOperatorException("附件上传失败");
-		}
-	}
-
-	@Override
-	public String save(MultipartFile mf) {
-		try {
-            HttpUtils.Response response = HttpUtils.upload(FileUrl.FILE_UPLOAD, mf, null);
-            if (response.getStatusCode() == 200) {
-                JSONObject obj = FastjsonUtils.parseObject(response.getResponseText());
-
-                String fileUrl = (String) obj.get("path");
-                return fileUrl;
-            }else {
-                throw new IllegalStateException(response.getResponseText());
-            }
+			return fileClient.upload(file.getBytes(), file.getSize(),
+					FilenameUtils.getExtension(file.getOriginalFilename()), null);
 		} catch (Exception e) {
 			e.printStackTrace();
 			throw new IllegalOperatorException("附件上传失败");

+ 1 - 1
src/main/java/com/uas/platform/b2c/common/help/dao/HelpNavDao.java

@@ -27,7 +27,7 @@ public interface HelpNavDao extends JpaSpecificationExecutor<HelpNav>, JpaReposi
      * @param parentId 父导航id
      * @return 子导航最大序号
      */
-    @Query("select nvl(max(h.detno),0) from HelpNav h where h.parentId = :parentId")
+    @Query("select coalesce(max(h.detno),0) from HelpNav h where h.parentId = :parentId")
     Short findMaxDetno(@Param("parentId") Long parentId);
 
     /**

+ 1 - 4
src/main/java/com/uas/platform/b2c/common/help/model/HelpIssue.java

@@ -3,10 +3,8 @@ package com.uas.platform.b2c.common.help.model;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.Lob;
-import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 import java.io.Serializable;
 import java.util.Date;
@@ -30,8 +28,7 @@ public class HelpIssue implements Serializable{
      */
     @Id
     @Column(name = "hi_id")
-    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "help$issus_active_gen")
-    @SequenceGenerator(name = "help$issus_active_gen", sequenceName = "help$issus_active_seq", allocationSize = 1)
+    @GeneratedValue
     private Long id;
 
     /**

+ 1 - 4
src/main/java/com/uas/platform/b2c/common/help/model/HelpIssueInfo.java

@@ -3,9 +3,7 @@ package com.uas.platform.b2c.common.help.model;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 import javax.persistence.Id;
-import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 import java.util.Date;
 
@@ -23,8 +21,7 @@ public class HelpIssueInfo{
      */
     @Id
     @Column(name = "hi_id")
-    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "help$issus_active_gen")
-    @SequenceGenerator(name = "help$issus_active_gen", sequenceName = "help$issus_active_seq", allocationSize = 1)
+    @GeneratedValue
     private Long id;
 
     /**

+ 1 - 4
src/main/java/com/uas/platform/b2c/common/help/model/HelpNav.java

@@ -3,9 +3,7 @@ package com.uas.platform.b2c.common.help.model;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 import javax.persistence.Id;
-import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 import javax.persistence.Transient;
 import java.io.Serializable;
@@ -30,8 +28,7 @@ public class HelpNav implements Serializable{
      */
     @Id
     @Column(name = "hp_id")
-    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "help$nav_active_gen")
-    @SequenceGenerator(name = "help$nav_active_gen", sequenceName = "help$nav_active_seq", allocationSize = 1)
+    @GeneratedValue
     private Long id;
 
     /**

+ 1 - 4
src/main/java/com/uas/platform/b2c/common/message/model/MessageBoard.java

@@ -7,13 +7,11 @@ import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
 import javax.persistence.OneToMany;
 import javax.persistence.OneToOne;
 import javax.persistence.OrderBy;
-import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 import java.io.Serializable;
 import java.util.Date;
@@ -32,8 +30,7 @@ public class MessageBoard implements Serializable {
 	private static final long serialVersionUID = 1L;
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "opt$messageboard_gen")
-	@SequenceGenerator(name = "opt$messageboard_gen", sequenceName = "opt$messageboard_seq", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "mb_id")
 	private Long id;
 

+ 1 - 4
src/main/java/com/uas/platform/b2c/common/message/model/MessageBoardImg.java

@@ -3,9 +3,7 @@ package com.uas.platform.b2c.common.message.model;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 import javax.persistence.Id;
-import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 
 /**
@@ -19,8 +17,7 @@ public class MessageBoardImg {
     private static final long serialVersionUID = 1L;
 
     @Id
-    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "opt$messageboard_img_gen")
-    @SequenceGenerator(name = "opt$messageboard_img_gen", sequenceName = "opt$messageboard_img_seq", allocationSize = 1)
+    @GeneratedValue
     @Column(name = "mbi_id")
     private Long id;
 

+ 1 - 4
src/main/java/com/uas/platform/b2c/common/message/model/MessageInfo.java

@@ -3,9 +3,7 @@ package com.uas.platform.b2c.common.message.model;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 import javax.persistence.Id;
-import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 import java.util.Date;
 
@@ -20,8 +18,7 @@ import java.util.Date;
 public class MessageInfo {
 
     @Id
-    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$message_gen")
-    @SequenceGenerator(name = "trade$message_gen", sequenceName = "trade$message_seq", allocationSize = 1)
+    @GeneratedValue
     @Column(name = "message_id")
     private Long id;
 

+ 4 - 5
src/main/java/com/uas/platform/b2c/common/search/api/SearchServiceImpl.java

@@ -1,16 +1,15 @@
 package com.uas.platform.b2c.common.search.api;
 
-import java.util.List;
-import java.util.Map;
-
+import com.uas.api.b2c_erp.search.service.SearchService;
 import org.springframework.beans.factory.annotation.Autowired;
 
-import com.uas.api.b2c_erp.search.service.SearchService;
+import java.util.List;
+import java.util.Map;
 
 public class SearchServiceImpl implements SearchService {
 
 	@Autowired
-	private com.uas.search.service.SearchService searchService;
+	private com.uas.platform.b2c.common.search.rpc.service.SearchService searchService;
 
 	@Override
 	public List<Map<String, Object>> getAssociateBrands(String keyword) {

+ 118 - 0
src/main/java/com/uas/platform/b2c/common/search/constant/SearchUrl.java

@@ -0,0 +1,118 @@
+package com.uas.platform.b2c.common.search.constant;
+
+/**
+ * 搜索对应的链接
+ *
+ * @author yuj 2017-10-19 19:35
+ */
+public class SearchUrl {
+
+    /**
+     * 获取类目id
+     */
+    public static final String KIND_ID_URL = "/search/kindIds/{keyword}";
+
+    /**
+     * 获取类目的数据
+     *
+     */
+    public static final String KIND_INFO_URL = "/search/kinds/{keyword}?page={page}&size={size}";
+
+    /**
+     * 搜索品牌的id
+     */
+    public static final String BRAND_ID_URL = "/search/brandIds/{keyword}?page={page}&size={size}";
+
+    /**
+     * 搜索品牌的具体信息
+     */
+    public static final String BRAND_INFO_URL = "/search/brands/{keyword}?page={page}&size={size}";
+
+
+    /**
+     * 搜索器件的id
+     */
+    public static final String COMPONENT_ID_URL = "/search/componentIds?keyword={keyword}&params={params}";
+
+    /**
+     * 根据品牌id后去类目的id
+     */
+    public static final String KIND_ID_COMPONENT_URL = "/search/kindIdsByComponent?keyword={keyword}&brandId={brandId}";
+
+    /**
+     * 根据品牌id后去类目信息
+     */
+    public static final String KIND_COMPONENT_URL = "/search/kindsByComponent?keyword={keyword}&brandId={brandId}";
+
+    /**
+     * 根据类目的id,获取品牌id信息
+     */
+    public static final String BREAND_ID_COMPONENT_URL = "/search/brandIdsByComponent?keyword={keyword}&kindId={kindId}";
+
+
+    /**
+     * 根据类目的id,获取品牌信息
+     */
+    public static final String BREAND_COMPONENT_URL = "/search/brandsByComponent?keyword={keyword}&kindId={kindId}";
+
+
+    /**
+     * 根据关键字联想
+     */
+    public static final String SIMILAR_KEYWORD_URL = "/search/similarKeywords/{keyword}";
+
+
+    /**
+     * 根据关键字联想器件
+     */
+    public static final String SIMILAR_COMPONENT_URL = "/search/similarComponents/{keyword}";
+
+
+    /**
+     * 根据关键字联想品牌
+     */
+    public static final String SIMILAR_BRAND_URL = "/search/similarBrands/{keyword}";
+
+
+    /**
+     * 根据关键字联想类目
+     */
+    public static final String SIMILAR_KIND_URL = "/search/similarKinds/{keyword}";
+
+
+
+    /**
+     * 获取某个信息的叶子节点
+     */
+    public static final String SIMILAR_LEAF_KIND_URL = "/search/similarLeafKinds/{keyword}";
+
+
+    /**
+     * 获取类目的层级
+     */
+    public static final String SIMILAR__KIND_LEVEL_URL = "/search/similarKindsByLevel?kindName={kindName}&level={level}";
+
+
+    /**
+     * 属性值搜索
+     */
+    public static final String PROPERTYVALUES_URL = "/search/similarPropertyValues?kindId={kindId}&propertyId={propertyId}&keyword={keyword}&topNum={topNum}";
+
+
+    /**
+     * 搜索库存信息
+     */
+    public static final String GOODIS_URL= "/search/goodsIds?keyword={keyword}&params={params}";
+
+
+    /**
+     * 搜索库存
+     */
+    public static final String GOODS_COLLECT_URL= "/search/collectBySearchGoods?keyword={keyword}&collectedField={collectedField}&filters={filters}";
+
+    /**
+     * 搜索订单
+     */
+    public static final String ORDER_SEARCH_URL = "/search/orderIds?tableName={tableName}&keyword={keyword}&page={page}&size={size}&status={status}&buyeruu={buyeruu}&buyerenuu={buyerenuu}&sellerenuu={sellerenuu}&mintime={mintime}&maxtime={maxtime}";
+
+}

+ 18 - 8
src/main/java/com/uas/platform/b2c/common/search/controller/SearcherController.java

@@ -4,6 +4,7 @@ import com.uas.platform.b2c.common.account.model.User;
 import com.uas.platform.b2c.common.search.service.SearcherService;
 import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.prod.commodity.service.GoodsService;
+import com.uas.platform.b2c.prod.commodity.service.StockInOutHistService;
 import com.uas.platform.b2c.prod.store.model.StoreIn;
 import com.uas.platform.b2c.prod.store.service.StoreInService;
 import com.uas.platform.b2c.trade.presale.service.StoreFocusService;
@@ -57,6 +58,9 @@ public class SearcherController {
 	@Autowired
 	private GoodsService goodsService;
 
+	@Autowired
+	private StockInOutHistService stockInOutHistService;
+
 	/**
 	 * 作搜索展示跳转
 	 * 
@@ -81,7 +85,7 @@ public class SearcherController {
 		// 搜索类目
 		String type = request.getParameter("type");
 		if ("all".equals(type)) {
-			ModelMap results = new ModelMap();
+			/*ModelMap results = new ModelMap();
 			PageParams pageParams = new PageParams();
 			results = searcherService.searchComponentGoodsNums(w, pageParams);
 			if (((Integer)results.get("total")).intValue() == 0){
@@ -101,7 +105,10 @@ public class SearcherController {
                 // 跳转至器件搜索结果页
                 w = URLEncoder.encode(w, "UTF-8");
                 response.sendRedirect("commonSearch#/component?keyword=" + w);
-            }
+            }*/
+
+			w = URLEncoder.encode(w, "UTF-8");
+			response.sendRedirect("commonSearch#/component?keyword=" + w);
 			/*map = searcherService.searchKind(w, null);
 			int kindTotal = (int) map.get("total");
 			if (kindTotal > 1) {
@@ -231,8 +238,8 @@ public class SearcherController {
      */
     @RequestMapping(value = "/componentGoods/collect", method = RequestMethod.GET)
     @ResponseBody
-    public List<Map<String, Object>> searchCollectListByComponentGoodsSearch(String keyword, String collectList, String paramJSON) {
-        return searcherService.getCollectlistBySearchComponentGoods(keyword,collectList,paramJSON);
+    public List<Map<String, Object>> searchCollectListByComponentGoodsSearch(String keyword, String collectList, String paramJSON , HttpServletRequest request) {
+        return searcherService.getCollectlistBySearchComponentGoods(keyword,collectList,paramJSON,request);
     }
 
 
@@ -314,21 +321,24 @@ public class SearcherController {
 		PageInfo pageInfo = new PageInfo(params);
 		Page<StoreIn> stores = storeService.pageStoresByTypesAndKeyword(pageInfo, types, keyword);
 		List<Map<String, Object>> result = new ArrayList<>();
-		Map<String, Object> a = new HashedMap();
-		a.put("stores",stores);
-		result.add(a);
+		Map<String, Object> storesMap = new HashedMap();
+		storesMap.put("stores",stores);
+		result.add(storesMap);
 		Map<String, Object> b = new HashedMap();
 		ArrayList<String> flag = new ArrayList<>();
 		ArrayList<Object> flag2 = new ArrayList<>();
+		ArrayList<Object> flag3 = new ArrayList<>();
 		b.put("isFocus",flag);
 		b.put("image",flag2);
+		b.put("sales",flag3);
 		result.add(b);
 		for (StoreIn storeIn : stores){
 			flag.add(storeFocusService.storeIfFocus(storeIn.getId()));
-			PageInfo pageInfoCache = new PageInfo(1,4);
+			PageInfo pageInfoCache = new PageInfo(1,5);
 			//暂时只显示有图片的产品信息
 			pageInfoCache.expression(PredicateUtils.isNotNull("img"));
 			flag2.add(goodsService.pageCommoditiesByEnInfos(storeIn.getUuid(),null,null,pageInfoCache));
+			flag3.add(stockInOutHistService.getCountByenuuAndIoSellerType(storeIn.getEnUU(),1668));
 		}
 		return result;
 	}

+ 19 - 0
src/main/java/com/uas/platform/b2c/common/search/rpc/Readme.md

@@ -0,0 +1,19 @@
+## name
+
+rpc
+
+## 名称
+
+调用远程的搜索的接口
+
+## 创建人
+
+yujia
+
+## 创建时间
+
+2017年10月20日8:49:26
+
+## 说明
+
+使用Http协议调用远程的接口获取数据。

+ 60 - 0
src/main/java/com/uas/platform/b2c/common/search/rpc/service/Impl/OrderSearchServiceImpl.java

@@ -0,0 +1,60 @@
+package com.uas.platform.b2c.common.search.rpc.service.Impl;
+
+import com.uas.platform.b2c.common.search.constant.SearchUrl;
+import com.uas.platform.b2c.common.search.rpc.service.OrderSearchService;
+import com.uas.platform.b2c.core.utils.FastjsonUtils;
+import com.uas.search.exception.SearchException;
+import com.uas.search.model.BaseOrder;
+import com.uas.search.model.PageParams;
+import com.uas.search.model.SPage;
+import org.apache.commons.collections.map.HashedMap;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.Map;
+
+/**
+ * description
+ *
+ * @author yuj 2017-10-21 9:50
+ */
+@Service
+public class OrderSearchServiceImpl implements OrderSearchService {
+
+    private final RestTemplate restTemplate;
+
+    @Autowired
+    public OrderSearchServiceImpl(RestTemplate restTemplate) {
+        this.restTemplate = restTemplate;
+    }
+
+    @Override
+    public SPage<BaseOrder> getOrderIdsWithDetail(String keyword, Table_name tableName, PageParams var3) throws SearchException {
+        Map<String, Object> map = new HashedMap();
+        map.put("keyword", keyword);
+        map.put("tableName", tableName);
+        map.put("page", var3.getPage());
+        map.put("size", var3.getSize());
+        Map<PageParams.FilterField, Object> filters = var3.getFilters();
+        map.put("status", filters.get(PageParams.FilterField.ORDER_STATUS));
+        map.put("buyeruu", filters.get(PageParams.FilterField.ORDER_BUYER_UU));
+        map.put("buyerenuu", filters.get(PageParams.FilterField.ORDER_BUYER_EN_UU));
+        map.put("sellerenuu", filters.get(PageParams.FilterField.ORDER_SELLER_EN_UU));
+        map.put("mintime", filters.get(PageParams.FilterField.ORDER_MIN_TIME));
+        map.put("maxtime", filters.get(PageParams.FilterField.ORDER_MAX_TIME));
+        String str = restTemplate.getForObject(SearchUrl.ORDER_SEARCH_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                SPage<BaseOrder> reMap = FastjsonUtils.fromJson(str, SPage.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+}

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

@@ -0,0 +1,381 @@
+package com.uas.platform.b2c.common.search.rpc.service.Impl;
+
+
+import com.uas.platform.b2c.common.search.constant.SearchUrl;
+import com.uas.platform.b2c.common.search.rpc.service.SearchService;
+import com.uas.platform.b2c.core.config.SysConf;
+import com.uas.platform.b2c.core.utils.FastjsonUtils;
+import com.uas.platform.core.util.serializer.FlexJsonUtils;
+import com.uas.search.exception.SearchException;
+import com.uas.search.model.CollectField;
+import com.uas.search.model.PageParams;
+import com.uas.search.model.SPage;
+import org.apache.commons.collections.map.HashedMap;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * 通过resttemplate调用搜索接口的实现方法
+ *
+ * @author yuj 2017-10-20 8:57
+ */
+@Service
+public class SearchServiceImpl implements SearchService{
+
+    private final RestTemplate restTemplate;
+
+    private final SysConf sysConf;
+
+    @Autowired
+    public SearchServiceImpl(RestTemplate restTemplate, SysConf sysConf) {
+        this.restTemplate = restTemplate;
+        this.sysConf = sysConf;
+    }
+
+    @Override
+    public SPage<Long> getKindIds(String keyword, Integer page, Integer size) throws SearchException {
+        Map<String, Object> map = initSearchMap(keyword, page, size);
+        String str = restTemplate.getForObject(sysConf.getSearchUrl() + SearchUrl.KIND_ID_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                SPage<Long> sPage = FastjsonUtils.fromJson(str, SPage.class);
+                return sPage;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public SPage<Map<String, Object>> getKinds(String keyword, Integer page, Integer size) throws SearchException {
+        Map<String, Object> map = initSearchMap(keyword, page, size);
+        String str = restTemplate.getForObject(sysConf.getSearchUrl() + SearchUrl.KIND_INFO_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                SPage<Map<String, Object>> sPage = FastjsonUtils.fromJson(str, SPage.class);
+                return sPage;
+            }catch (Exception e) {
+                e.printStackTrace();
+              return null;
+            }
+        }
+    }
+
+    @Override
+    public SPage<Long> getBrandIds(String keyword, Integer page, Integer size) throws SearchException {
+        Map<String, Object> map = initSearchMap(keyword, page, size);
+        String str = restTemplate.getForObject(sysConf.getSearchUrl() + SearchUrl.BRAND_ID_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                SPage<Long> sPage = FastjsonUtils.fromJson(str, SPage.class);
+                return sPage;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+
+    }
+
+    @Override
+    public SPage<Map<String, List<Integer>>> getBrands(String keyword, Integer page, Integer size) throws SearchException {
+        Map<String, Object> map = initSearchMap(keyword, page, size);
+        String str = restTemplate.getForObject(sysConf.getSearchUrl() + SearchUrl.BRAND_INFO_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                SPage<Map<String, List<Integer>>> sPage = FastjsonUtils.fromJson(str, SPage.class);
+                return sPage;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public Map<String, Object> getComponentIds(String keyword, PageParams var2) throws SearchException {
+        Map<String, Object> map = new HashedMap();
+        map.put("keyword", keyword);
+        map.put("params", FlexJsonUtils.toJsonDeep(var2));
+        String str = restTemplate.getForObject(sysConf.getSearchUrl() + SearchUrl.COMPONENT_ID_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                Map<String, Object> reMap = FastjsonUtils.fromJson(str, Map.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public Set<Long> getKindIdsBySearchComponent(String keyword, String brandId) throws SearchException {
+        Map<String, Object> map = new HashedMap();
+        map.put("keyword", keyword);
+        map.put("brandId", brandId);
+        String str = restTemplate.getForObject(sysConf.getSearchUrl() + SearchUrl.KIND_ID_COMPONENT_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                Set<Long> reMap = FastjsonUtils.fromJson(str, Set.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public List<Map<String, Object>> getKindsBySearchComponent(String keyword, String brandId) throws SearchException {
+        Map<String, Object> map = new HashedMap();
+        map.put("keyword", keyword);
+        map.put("brandId", brandId);
+        String str = restTemplate.getForObject(sysConf.getSearchUrl() + SearchUrl.KIND_COMPONENT_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                List<Map<String, Object>> reMap = FastjsonUtils.fromJson(str, List.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public Set<Long> getBrandIdsBySearchComponent(String keyword, String kindId) throws SearchException {
+        Map<String, Object> map = new HashedMap();
+        map.put("keyword", keyword);
+        map.put("kindId", kindId);
+        String str = restTemplate.getForObject(sysConf.getSearchUrl() + SearchUrl.BREAND_ID_COMPONENT_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                Set<Long> reMap = FastjsonUtils.fromJson(str, Set.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public List<Map<String, Object>> getBrandsBySearchComponent(String keyword, String kindId) throws SearchException {
+        Map<String, Object> map = new HashedMap();
+        map.put("keyword", keyword);
+        map.put("kindId", kindId);
+        String str = restTemplate.getForObject(sysConf.getSearchUrl() + SearchUrl.BREAND_COMPONENT_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                List<Map<String, Object>> reMap = FastjsonUtils.fromJson(str, List.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public List<String> getSimilarKeywords(String keyword) throws SearchException {
+        Map<String, Object> map = new HashedMap();
+        map.put("keyword", keyword);
+        String str = restTemplate.getForObject(sysConf.getSearchUrl() + SearchUrl.SIMILAR_KEYWORD_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                List<String> reMap = FastjsonUtils.fromJson(str, List.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public List<Map<String, Object>> getSimilarComponents(String keyword) throws SearchException {
+        Map<String, Object> map = new HashedMap();
+        map.put("keyword", keyword);
+        String str = restTemplate.getForObject(sysConf.getSearchUrl() + SearchUrl.SIMILAR_COMPONENT_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                List<Map<String, Object>> reMap = FastjsonUtils.fromJson(str, List.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public List<Map<String, Object>> getSimilarBrands(String keyword) throws SearchException {
+        Map<String, Object> map = new HashedMap();
+        map.put("keyword", keyword);
+        String str = restTemplate.getForObject(sysConf.getSearchUrl() + SearchUrl.SIMILAR_BRAND_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                List<Map<String, Object>> reMap = FastjsonUtils.fromJson(str, List.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public List<Map<String, Object>> getSimilarKinds(String keyword) throws SearchException {
+        Map<String, Object> map = new HashedMap();
+        map.put("keyword", keyword);
+        String str = restTemplate.getForObject(sysConf.getSearchUrl() + SearchUrl.SIMILAR_KIND_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                List<Map<String, Object>> reMap = FastjsonUtils.fromJson(str, List.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public List<Map<String, Object>> getSimilarLeafKinds(String keyword) throws SearchException {
+        Map<String, Object> map = new HashedMap();
+        map.put("keyword", keyword);
+        String str = restTemplate.getForObject(sysConf.getSearchUrl() + SearchUrl.SIMILAR_LEAF_KIND_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                List<Map<String, Object>> reMap = FastjsonUtils.fromJson(str, List.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public List<Map<String, Object>> getSimilarKindsByLevel(String kindName, Short level) throws SearchException {
+        Map<String, Object> map = new HashedMap();
+        map.put("kindName", kindName);
+        map.put("level", level);
+        String str = restTemplate.getForObject(sysConf.getSearchUrl() + SearchUrl.SIMILAR__KIND_LEVEL_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                List<Map<String, Object>> reMap = FastjsonUtils.fromJson(str, List.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public List<Map<String, String>> getSimilarPropertyValues(Long kindId, Long propertyId, String keyword, Long topNum) throws SearchException {
+        Map<String, Object> map = new HashedMap();
+        map.put("kindId", kindId);
+        map.put("propertyId", propertyId);
+        map.put("keyword", keyword);
+        map.put("topNum", topNum);
+        String str = restTemplate.getForObject(sysConf.getSearchUrl() + SearchUrl.PROPERTYVALUES_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                List<Map<String, String>> reMap = FastjsonUtils.fromJson(str, List.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public Map<String, Object> getGoodsIds(String keyword, PageParams var2) throws SearchException {
+        Map<String, Object> map = new HashedMap();
+        map.put("keyword", keyword);
+        map.put("params", FlexJsonUtils.toJsonDeep(var2));
+        String str = restTemplate.getForObject(sysConf.getSearchUrl() + SearchUrl.GOODIS_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                Map<String, Object> reMap = FastjsonUtils.fromJson(str, Map.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    @Override
+    public List<Map<String, Object>> collectBySearchGoods(String keyword, CollectField collectField, Map<PageParams.FilterField, Object> filters) {
+        Map<String, Object> map = new HashedMap();
+        map.put("keyword", keyword);
+        map.put("collectedField", collectField);
+        map.put("filters", FastjsonUtils.toJson(filters));
+        String str = restTemplate.getForObject(sysConf.getSearchUrl() + SearchUrl.GOODS_COLLECT_URL, String.class, map);
+        if(StringUtils.isEmpty(str)) {
+            return null;
+        }else {
+            try {
+                List<Map<String, Object>> reMap = FastjsonUtils.fromJson(str, List.class);
+                return reMap;
+            }catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    public Map<String , Object> initSearchMap(String keyword, Integer page, Integer size) {
+        Map<String, Object> map = new HashedMap();
+        map.put("keyword", keyword);
+        map.put("page", page);
+        map.put("size", size);
+        return map;
+    }
+}

+ 35 - 0
src/main/java/com/uas/platform/b2c/common/search/rpc/service/OrderSearchService.java

@@ -0,0 +1,35 @@
+package com.uas.platform.b2c.common.search.rpc.service;
+
+import com.uas.search.exception.SearchException;
+import com.uas.search.model.BaseOrder;
+import com.uas.search.model.PageParams;
+import com.uas.search.model.SPage;
+
+/**
+ * Created by yujia on 2017/10/21.
+ */
+public interface OrderSearchService {
+
+    SPage<BaseOrder> getOrderIdsWithDetail(String var1, OrderSearchService.Table_name var2, PageParams var3) throws SearchException;
+
+    public static enum Table_name {
+        ORDER("order"),
+        PURCHASE("purchase"),
+        ORDER_INVOICE("order_invoice"),
+        PURCHASE_INVOICE("purchase_invocie");
+
+        private String phrase;
+
+        private Table_name(String phrase) {
+            this.phrase = phrase;
+        }
+
+        public String value() {
+            return this.phrase;
+        }
+
+        public String toString() {
+            return this.phrase;
+        }
+    }
+}

+ 53 - 0
src/main/java/com/uas/platform/b2c/common/search/rpc/service/SearchService.java

@@ -0,0 +1,53 @@
+package com.uas.platform.b2c.common.search.rpc.service;
+
+/**
+ * Created by yujia on 2017/10/20.
+ *
+ * 通过http方式调用远端的搜索接口
+ */
+import com.uas.search.exception.SearchException;
+import com.uas.search.model.CollectField;
+import com.uas.search.model.PageParams;
+import com.uas.search.model.SPage;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+public interface SearchService {
+    SPage<Long> getKindIds(String keyword, Integer page, Integer size) throws SearchException;
+
+    SPage<Map<String, Object>> getKinds(String keyword, Integer page, Integer size) throws SearchException;
+
+    SPage<Long> getBrandIds(String keyword, Integer page, Integer size) throws SearchException;
+
+    SPage<Map<String, List<Integer>>> getBrands(String keyword, Integer page, Integer size) throws SearchException;
+
+    Map<String, Object> getComponentIds(String keyword, PageParams var2) throws SearchException;
+
+    Set<Long> getKindIdsBySearchComponent(String keyword, String brandId) throws SearchException;
+
+    List<Map<String, Object>> getKindsBySearchComponent(String keyword, String brandId) throws SearchException;
+
+    Set<Long> getBrandIdsBySearchComponent(String keyword, String kindId) throws SearchException;
+
+    List<Map<String, Object>> getBrandsBySearchComponent(String keyword, String kindId) throws SearchException;
+
+    List<String> getSimilarKeywords(String keyword) throws SearchException;
+
+    List<Map<String, Object>> getSimilarComponents(String keyword) throws SearchException;
+
+    List<Map<String, Object>> getSimilarBrands(String keyword) throws SearchException;
+
+    List<Map<String, Object>> getSimilarKinds(String keyword) throws SearchException;
+
+    List<Map<String, Object>> getSimilarLeafKinds(String keyword) throws SearchException;
+
+    List<Map<String, Object>> getSimilarKindsByLevel(String kindName, Short level) throws SearchException;
+
+    List<Map<String, String>> getSimilarPropertyValues(Long kindId, Long propertyId, String keyword, Long topNum) throws SearchException;
+
+    Map<String, Object> getGoodsIds(String keyword, PageParams var2) throws SearchException;
+
+    List<Map<String, Object>> collectBySearchGoods(String keyword, CollectField collectField, Map<PageParams.FilterField, Object> filters);
+}

+ 2 - 1
src/main/java/com/uas/platform/b2c/common/search/service/SearcherService.java

@@ -4,6 +4,7 @@ import com.uas.platform.core.model.PageParams;
 import com.uas.search.exception.SearchException;
 import org.springframework.ui.ModelMap;
 
+import javax.servlet.http.HttpServletRequest;
 import java.io.IOException;
 import java.util.List;
 import java.util.Map;
@@ -94,7 +95,7 @@ public interface SearcherService {
 	 * @param paramJSON 参数json
 	 * @return 类目,器件,店铺类型,货币类型统计
 	 */
-	public List<Map<String, Object>> getCollectlistBySearchComponentGoods(String keyword, String collectList,String paramJSON);
+	public List<Map<String, Object>> getCollectlistBySearchComponentGoods(String keyword, String collectList, String paramJSON, HttpServletRequest request);
 
 
 	/**

+ 24 - 7
src/main/java/com/uas/platform/b2c/common/search/service/impl/SearcherServiceImpl.java

@@ -1,8 +1,10 @@
 package com.uas.platform.b2c.common.search.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
+import com.uas.platform.b2c.common.search.rpc.service.SearchService;
 import com.uas.platform.b2c.common.search.service.SearcherService;
 import com.uas.platform.b2c.core.utils.FastjsonUtils;
+import com.uas.platform.b2c.prod.product.brand.dao.BrandDao;
 import com.uas.platform.b2c.prod.product.component.dao.ComponentGoodsDao;
 import com.uas.platform.b2c.prod.product.component.dao.ComponentInfoDao;
 import com.uas.platform.b2c.prod.product.component.modal.ComponentGoods;
@@ -15,15 +17,17 @@ import com.uas.search.model.CollectField;
 import com.uas.search.model.PageParams.FilterField;
 import com.uas.search.model.SPage;
 import com.uas.search.model.Sort;
-import com.uas.search.service.SearchService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.mobile.device.DeviceResolver;
+import org.springframework.mobile.device.LiteDeviceResolver;
 import org.springframework.stereotype.Service;
 import org.springframework.ui.ModelMap;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 
+import javax.servlet.http.HttpServletRequest;
 import java.io.IOException;
 import java.util.*;
 import java.util.Map.Entry;
@@ -46,7 +50,11 @@ public class SearcherServiceImpl implements SearcherService {
 	@Autowired
 	private SearchService searchService;
 
+	@Autowired
+	private BrandDao brandDao;
+
 	private Logger logger = LoggerFactory.getLogger(getClass());
+	private final DeviceResolver deviceResolver = new LiteDeviceResolver();
 
 	/**
 	 * 智能搜索类目
@@ -83,7 +91,7 @@ public class SearcherServiceImpl implements SearcherService {
 	@Override
 	public ModelMap searchBrand(String keyword, String field) {
 		ModelMap map = new ModelMap();
-		SPage<Map<String, Object>> brands = null;
+		SPage<Map<String, List<Integer>>> brands = null;
 		try {
 			brands = searchService.getBrands(keyword,1,1024*1024*1024);
 		} catch (SearchException e) {
@@ -148,7 +156,7 @@ public class SearcherServiceImpl implements SearcherService {
 		List<Map<String, Object>> brands = (List)brandMap.get("brands");
 		if (!CollectionUtils.isEmpty(brands)) {
 			for (Map<String, Object> brand : brands){
-				if (keyword.equals(brand.get("nameCn").toString()) || keyword.equals(brand.get("nameEn").toString())){
+				if (keyword.equalsIgnoreCase(brand.get("nameCn").toString()) || keyword.equalsIgnoreCase(brand.get("nameEn").toString())){
 					map.put("brands",brand);
 				}
 			}
@@ -160,12 +168,14 @@ public class SearcherServiceImpl implements SearcherService {
 			map.put("components", new ArrayList<>());// 当前页器件内容
 			return map;
 		}
-		List<Long> componentIds = (List<Long>)results.get("componentIds");
-		List<Long> goodsIds = (List<Long>)results.get("goodsIds");
+		List<Integer> componentIds = (List<Integer>)results.get("componentIds");
+		List<Integer> goodsIds = (List<Integer>)results.get("goodsIds");
 		List<ComponentGoods> components = new ArrayList<>();
 		if (!CollectionUtils.isEmpty(componentIds)) {
 			for (int i = 0 ;i < componentIds.size() ; i++){
-				ComponentGoods componentGoods = componentGoodsDao.findByCmpIdAndGoId(componentIds.get(i),goodsIds.get(i));
+				Long cid = Long.valueOf(componentIds.get(i).toString());
+				Long gid = goodsIds.get(i) == null ? 0L : Long.valueOf(goodsIds.get(i).toString());
+				ComponentGoods componentGoods = componentGoodsDao.findByCmpIdAndGoId(cid, gid);
 				if (componentGoods != null){
 					components.add(componentGoods);
 				}
@@ -245,7 +255,7 @@ public class SearcherServiceImpl implements SearcherService {
 	 * @return
 	 */
 	@Override
-	public List<Map<String, Object>> getCollectlistBySearchComponentGoods(String keyword, String collectList, String paramJSON) {
+	public List<Map<String, Object>> getCollectlistBySearchComponentGoods(String keyword, String collectList, String paramJSON , HttpServletRequest request) {
 		List<Map<String, Object>> collectResult = new ArrayList<>();
 		JSONObject jsonObject = FastjsonUtils.parseObject(paramJSON);
 		Set<Entry<String,Object>> paramEntry = jsonObject.entrySet();
@@ -258,6 +268,13 @@ public class SearcherServiceImpl implements SearcherService {
 		} catch (SearchException e) {
 			throwSystemException(e);
 		}
+		if ("goods_brand".equals(collectList)) {
+			if (this.deviceResolver.resolveDevice(request).isMobile()) {
+				for (Map<String, Object> m : collectResult) {
+					m.put("logoUrl", brandDao.findOne(Long.parseLong(m.get("br_id").toString())).getLogoUrl());
+				}
+			}
+		}
 		return collectResult;
 	}
 

+ 54 - 0
src/main/java/com/uas/platform/b2c/core/config/MicroServicesConf.java

@@ -16,6 +16,24 @@ public class MicroServicesConf {
 	@Value("#{sys.microServiceIp ?: '10.10.101.23'}")
 	private String microServiceIp;
 
+	/**
+	 * 特殊:news用的是官网数据库
+	 */
+	@Value("#{sys.newsMicroServiceIp ?: 'news.usoftchina.com'}")
+	private String newsMicroServiceIp;
+
+	/**
+	 * floor
+	 */
+	@Value("#{sys.floorMicroServiceIp ?: '10.10.0.30'}")
+	private String floorMicroServiceIp;
+
+	/**
+	 * 轮播
+	 */
+	@Value("#{sys.carouselMicroServiceIp ?: '10.10.0.188'}")
+	private String carouselMicroServiceIp;
+
 	public String getMicroServiceIp() {
 		return microServiceIp;
 	}
@@ -24,10 +42,46 @@ public class MicroServicesConf {
 		this.microServiceIp = microServiceIp;
 	}
 
+	public String getNewsMicroServiceIp() {
+		return newsMicroServiceIp;
+	}
+
+	public void setNewsMicroServiceIp(String newsMicroServiceIp) {
+		this.newsMicroServiceIp = newsMicroServiceIp;
+	}
+
+	public String getFloorMicroServiceIp() {
+		return floorMicroServiceIp;
+	}
+
+	public void setFloorMicroServiceIp(String floorMicroServiceIp) {
+		this.floorMicroServiceIp = floorMicroServiceIp;
+	}
+
+	public String getCarouselMicroServiceIp() {
+		return carouselMicroServiceIp;
+	}
+
+	public void setCarouselMicroServiceIp(String carouselMicroServiceIp) {
+		this.carouselMicroServiceIp = carouselMicroServiceIp;
+	}
+
 	public String getRequestUrl(int port, String requestUrl) {
 		return String.format("http://%s:%d%s", this.microServiceIp, port, requestUrl);
 	}
 
+	public String getRequestUrlForNews(String requestUrl) {
+		return String.format("http://%s%s", this.newsMicroServiceIp, requestUrl);
+	}
+
+	public String getRequestUrlForFloor(int port, String requestUrl) {
+		return String.format("http://%s:%d%s", this.floorMicroServiceIp,port, requestUrl);
+	}
+
+	public String getRequestUrlForCarousel(int port, String requestUrl) {
+		return String.format("http://%s:%d%s", this.carouselMicroServiceIp,port, requestUrl);
+	}
+
 	public String getRequestUrl(int port, String requestUrl, PageParams pageable) {
 		return String.format("http://%s:%d%s%s", this.microServiceIp, port, requestUrl, "&count=" + pageable.getCount() + "&page=" + pageable.getPage() + "&filter=" + pageable.getFilter());
 	}

+ 4 - 1
src/main/java/com/uas/platform/b2c/core/config/MicroServicesConfMulti.java

@@ -16,6 +16,9 @@ public class MicroServicesConfMulti {
 	@Value("#{sys.endpointUri ?: '10.10.101.23'}")
 	private String microServiceIp;
 
+	@Value("#{sys.storecmsMicroServiceIp ?: '10.10.101.23'}")
+	private String storecmsMicroServiceIp;
+
 	@Value("#{sys.recommendPort ?: '20102'}")
 	private String recommendPort;
 
@@ -36,6 +39,6 @@ public class MicroServicesConfMulti {
 	}
 
 	public String getRecommendUrl(String requestUrl) {
-		return String.format("http://%s:%s%s", this.microServiceIp, this.recommendPort, requestUrl);
+		return String.format("http://%s:%s%s", this.storecmsMicroServiceIp, this.recommendPort, requestUrl);
 	}
 }

+ 30 - 0
src/main/java/com/uas/platform/b2c/core/config/SysConf.java

@@ -130,6 +130,18 @@ public class SysConf {
 	@Value("#{sys.reportUploadUrl}")
 	private String reportUploadUrl;
 
+	/**
+	 * 文件上传的地址
+	 */
+	@Value("#{sys.uploadFileUrl}")
+	private String uploadFileUrl;
+
+	/**
+	 * 搜索的地址
+	 */
+	@Value("#{sys.searchUrl}")
+	private String searchUrl;
+
 	public Boolean getRebuildIndexesOnRefresh() {
 		return rebuildIndexesOnRefresh;
 	}
@@ -275,4 +287,22 @@ public class SysConf {
 		this.adminName = adminName;
 		return this;
 	}
+
+	public String getUploadFileUrl() {
+		return uploadFileUrl;
+	}
+
+	public SysConf setUploadFileUrl(String uploadFileUrl) {
+		this.uploadFileUrl = uploadFileUrl;
+		return this;
+	}
+
+	public String getSearchUrl() {
+		return searchUrl;
+	}
+
+	public SysConf setSearchUrl(String searchUrl) {
+		this.searchUrl = searchUrl;
+		return this;
+	}
 }

+ 0 - 351
src/main/java/com/uas/platform/b2c/core/utils/HttpUtils.java

@@ -1,351 +0,0 @@
-package com.uas.platform.b2c.core.utils;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.http.Consts;
-import org.apache.http.HttpEntity;
-import org.apache.http.HttpResponse;
-import org.apache.http.NameValuePair;
-import org.apache.http.client.ClientProtocolException;
-import org.apache.http.client.entity.UrlEncodedFormEntity;
-import org.apache.http.client.methods.CloseableHttpResponse;
-import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.entity.ContentType;
-import org.apache.http.entity.StringEntity;
-import org.apache.http.entity.mime.MultipartEntityBuilder;
-import org.apache.http.entity.mime.content.FileBody;
-import org.apache.http.entity.mime.content.InputStreamBody;
-import org.apache.http.entity.mime.content.StringBody;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.HttpClients;
-import org.apache.http.message.BasicNameValuePair;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URLEncoder;
-import java.util.*;
-import java.util.Map.Entry;
-
-public class HttpUtils {
-
-	/**
-	 * 发起POST、PUT请求
-	 * 
-	 * @param params
-	 * @return
-	 * @throws Exception
-	 */
-	public static Response get(String url, Map<String, Object> params) throws Exception {
-		CloseableHttpClient httpClient = HttpClients.createDefault();
-		HttpEntityEnclosingRequestBase request = null;
-		CloseableHttpResponse response = null;
-		try {
-			StringBuilder buf = new StringBuilder(url);
-			if (params != null && !params.isEmpty()) {
-				if (url.indexOf("?") == -1)
-					buf.append("?");
-				else if (!url.endsWith("&"))
-					buf.append("&");
-				Set<Entry<String, Object>> entrys = params.entrySet();
-				for (Entry<String, Object> entry : entrys) {
-					buf.append(entry.getKey()).append("=").append(URLEncoder.encode(String.valueOf(entry.getValue()), "UTF-8")).append("&");
-				}
-			}
-			request = new HttpPost(buf.toString());
-			response = httpClient.execute(request);
-			return Response.getResponse(response);
-		} finally {
-			request.releaseConnection();
-			try {
-				httpClient.close();
-			} catch (IOException e) {
-			}
-			if (response != null) {
-				try {
-					response.close();
-				} catch (IOException e) {
-				}
-			}
-		}
-	}
-
-	/**
-	 * 发起POST、PUT请求
-	 *
-	 * @param datas
-	 * @return
-	 * @throws Exception
-	 */
-	public static Response post(String url, Collection<?> datas) throws Exception {
-		CloseableHttpClient httpClient = HttpClients.createDefault();
-		HttpEntityEnclosingRequestBase request = new HttpPost(url);
-		CloseableHttpResponse response = null;
-		try {
-			if (datas != null && !datas.isEmpty()) {
-				request.setEntity(new StringEntity(FastjsonUtils.toJson(datas), ContentType.create("text/plain", Consts.UTF_8)));
-			}
-			response = httpClient.execute(request);
-			return Response.getResponse(response);
-		} finally {
-			request.releaseConnection();
-			try {
-				httpClient.close();
-			} catch (IOException e) {
-			}
-			if (response != null) {
-				try {
-					response.close();
-				} catch (IOException e) {
-				}
-			}
-		}
-	}
-
-	/**
-	 * 发起POST、PUT请求
-	 *
-	 * @param params
-	 * @return
-	 * @throws Exception
-	 */
-	public static Response post(String url, Map<String, String> params) throws Exception {
-		CloseableHttpClient httpClient = HttpClients.createDefault();
-		HttpEntityEnclosingRequestBase request = new HttpPost(url);
-		CloseableHttpResponse response = null;
-		try {
-			List<NameValuePair> nvps = new ArrayList<NameValuePair>();
-			if (params != null && !params.isEmpty()) {
-				Set<Entry<String, String>> entrys = params.entrySet();
-				for (Entry<String, String> entry : entrys) {
-					nvps.add(new BasicNameValuePair(entry.getKey(), URLEncoder.encode(entry.getValue(), "UTF-8")));
-				}
-			}
-			request.setEntity(new UrlEncodedFormEntity(nvps));
-			response = httpClient.execute(request);
-			return Response.getResponse(response);
-		} finally {
-			request.releaseConnection();
-			try {
-				httpClient.close();
-			} catch (IOException e) {
-			}
-			if (response != null) {
-				try {
-					response.close();
-				} catch (IOException e) {
-				}
-			}
-		}
-	}
-
-	/**
-	 * http上传文件
-	 * 
-	 * @param url
-	 *            请求地址
-	 * @param filePath
-	 *            附件路径
-	 * @param params
-	 *            参数
-	 * @return
-	 * @throws Exception
-	 * @throws IOException
-	 * @throws IllegalStateException
-	 */
-	public static Response upload(String url, String filePath, Map<String, String> params) throws IllegalStateException, IOException,
-			Exception {
-		CloseableHttpClient httpClient = null;
-		CloseableHttpResponse response = null;
-		try {
-			httpClient = HttpClients.createDefault();
-			HttpPost httpPost = new HttpPost(url);
-			FileBody fileBody = new FileBody(new File(filePath));
-			MultipartEntityBuilder builder = MultipartEntityBuilder.create();
-			builder.addPart("file", fileBody);
-			if (params != null) {
-				for (String paramKey : params.keySet()) {
-					StringBody body = new StringBody(params.get(paramKey), ContentType.create("text/plain", Consts.UTF_8));
-					builder.addPart(paramKey, body);
-				}
-			}
-			HttpEntity reqEntity = builder.build();
-			httpPost.setEntity(reqEntity);
-			response = httpClient.execute(httpPost);
-			return Response.getResponse(response);
-		} finally {
-			try {
-				if (response != null) {
-					response.close();
-				}
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-			try {
-				if (httpClient != null) {
-					httpClient.close();
-				}
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-		}
-	}
-
-
-	/**
-	 * http上传文件
-	 *
-	 * @param url
-	 *            请求地址
-	 * @param file
-	 *            文件
-	 * @param params
-	 *            参数
-	 * @return
-	 * @throws Exception
-	 * @throws IOException
-	 * @throws IllegalStateException
-	 */
-	public static Response upload(String url, File file, Map<String, String> params) throws IllegalStateException, IOException,
-			Exception {
-		CloseableHttpClient httpClient = null;
-		CloseableHttpResponse response = null;
-		try {
-			httpClient = HttpClients.createDefault();
-			HttpPost httpPost = new HttpPost(url);
-			FileBody fileBody = new FileBody(file);
-			MultipartEntityBuilder builder = MultipartEntityBuilder.create();
-			builder.addPart("file", fileBody);
-			if (params != null) {
-				for (String paramKey : params.keySet()) {
-					StringBody body = new StringBody(params.get(paramKey), ContentType.create("text/plain", Consts.UTF_8));
-					builder.addPart(paramKey, body);
-				}
-			}
-			HttpEntity reqEntity = builder.build();
-			httpPost.setEntity(reqEntity);
-			response = httpClient.execute(httpPost);
-			return Response.getResponse(response);
-		} finally {
-			try {
-				if (response != null) {
-					response.close();
-				}
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-			try {
-				if (httpClient != null) {
-					httpClient.close();
-				}
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-		}
-	}
-
-	/**
-	 * http上传文件
-	 *
-	 * @param url
-	 *            请求地址
-	 * @param multipartFile
-	 *            附件路径
-	 * @param params
-	 *            参数
-	 * @return
-	 * @throws Exception
-	 * @throws IOException
-	 * @throws IllegalStateException
-	 */
-	public static Response upload(String url, MultipartFile multipartFile, Map<String, String> params) throws IllegalStateException, IOException,
-			Exception {
-		CloseableHttpClient httpClient = null;
-		CloseableHttpResponse response = null;
-		try {
-			httpClient = HttpClients.createDefault();
-			HttpPost httpPost = new HttpPost(url);
-			InputStreamBody streamBody = new InputStreamBody(multipartFile.getInputStream(),
-				multipartFile.getOriginalFilename());
-			MultipartEntityBuilder builder = MultipartEntityBuilder.create();
-			builder.addPart("file", streamBody);
-			if (params != null) {
-				for (String paramKey : params.keySet()) {
-					StringBody body = new StringBody(params.get(paramKey), ContentType.create("text/plain", Consts.UTF_8));
-					builder.addPart(paramKey, body);
-				}
-			}
-			HttpEntity reqEntity = builder.build();
-			httpPost.setEntity(reqEntity);
-			response = httpClient.execute(httpPost);
-			return Response.getResponse(response);
-		} finally {
-			try {
-				if (response != null) {
-					response.close();
-				}
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-			try {
-				if (httpClient != null) {
-					httpClient.close();
-				}
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-		}
-	}
-
-	/**
-	 * 下载
-	 * 
-	 * @param url
-	 * @return
-	 * @throws ClientProtocolException
-	 * @throws IOException
-	 */
-	public static InputStream download(String url) throws ClientProtocolException, IOException {
-		CloseableHttpClient httpClient = HttpClients.createDefault();
-		HttpGet httpGet = new HttpGet(url);
-		CloseableHttpResponse response = httpClient.execute(httpGet);
-		return response.getEntity().getContent();
-	}
-
-	public static class Response {
-		private int statusCode;
-		private String responseText;
-
-		public int getStatusCode() {
-			return statusCode;
-		}
-
-		public void setStatusCode(int statusCode) {
-			this.statusCode = statusCode;
-		}
-
-		public String getResponseText() {
-			return responseText;
-		}
-
-		public void setResponseText(String responseText) {
-			this.responseText = responseText;
-		}
-
-		public Response() {
-		}
-
-		public Response(HttpResponse response) throws IllegalStateException, IOException, Exception {
-			this.statusCode = response.getStatusLine().getStatusCode();
-			this.responseText = IOUtils.toString(response.getEntity().getContent());
-		}
-
-		public static Response getResponse(HttpResponse response) throws IllegalStateException, IOException, Exception {
-			if (response != null)
-				return new Response(response);
-			return null;
-		}
-	}
-}

+ 1 - 1
src/main/java/com/uas/platform/b2c/external/erp/order/api/OrderController.java

@@ -1,6 +1,5 @@
 package com.uas.platform.b2c.external.erp.order.api;
 
-import com.alibaba.dubbo.common.utils.StringUtils;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.uas.platform.b2c.common.account.model.Enterprise;
@@ -22,6 +21,7 @@ import com.uas.platform.core.model.Status;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.ui.ModelMap;
+import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.management.OperationsException;

+ 3 - 3
src/main/java/com/uas/platform/b2c/external/erp/product/model/OperationInfo.java

@@ -23,9 +23,8 @@ public class OperationInfo implements Serializable {
      * id
      */
     @Id
+    @GeneratedValue
     @Column(name = "id")
-    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sys$service_message_gen")
-    @SequenceGenerator(name = "sys$service_message_gen", sequenceName = "sys$service_message_seq", allocationSize = 1)
     private Long id;
 
     /**
@@ -85,7 +84,8 @@ public class OperationInfo implements Serializable {
     /**
      * 备注信息
      */
-    @Column(name = "sm_operationremark", length = 4000)
+    @Lob
+    @Column(name = "sm_operationremark", columnDefinition = "TEXT")
     private String operationRemark;
 
     /**

+ 1 - 2
src/main/java/com/uas/platform/b2c/fa/payment/model/BankInfo.java

@@ -23,8 +23,7 @@ public class BankInfo implements Serializable{
 	private static final long serialVersionUID = 1L;
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$bank_info_gen")
-	@SequenceGenerator(name = "trade$bank_info_gen", sequenceName = "trade$bank_info_seq", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "binfo_id")
 	private Long id;
 

+ 1 - 4
src/main/java/com/uas/platform/b2c/fa/payment/model/BankTransAssociate.java

@@ -5,9 +5,7 @@ import java.io.Serializable;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 import javax.persistence.Id;
-import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 
 /** 
@@ -28,8 +26,7 @@ public class BankTransAssociate implements Serializable{
 	  * 主键ID
 	  */
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$banktrans_associate_gen")
-	@SequenceGenerator(name="trade$banktrans_associate_gen", sequenceName = "trade$banktrans_associate_seq", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "bka_id")
 	private Long id;
 	

+ 4 - 5
src/main/java/com/uas/platform/b2c/fa/payment/model/BankTransfer.java

@@ -14,15 +14,14 @@ import java.util.Date;
 public class BankTransfer {
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$bank_transfer_gen")
-	@SequenceGenerator(name = "trade$bank_transfer_gen", sequenceName = "trade$bank_transfer_seq", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "banktf_id")
 	private Long id;
 
 	/**
 	 * 收款方银行信息
 	 */
-	@Column(name = "banktf_re", length = 4000)
+	@Column(name = "banktf_re", columnDefinition = "TEXT")
 	private String jsonReceive;
 
 	/**
@@ -64,13 +63,13 @@ public class BankTransfer {
 	/**
 	 * 付款方银行信息
 	 */
-	@Column(name = "banktf_pa", length = 4000)
+	@Column(name = "banktf_pa", columnDefinition = "TEXT")
 	private String jsonPament;
 
 	/**
 	 * 凭证图片
 	 */
-	@Column(name = "banktf_imgUrl")
+	@Column(name = "banktf_imgUrl", length = 2000)
 	private String imgUrl;
 
 	/**

+ 4 - 5
src/main/java/com/uas/platform/b2c/fa/payment/model/Payment.java

@@ -14,8 +14,7 @@ import java.util.Set;
 public class Payment {
 
     @Id
-    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$payment_order_gen")
-    @SequenceGenerator(name = "trade$payment_order_gen", sequenceName = "trade$payment_order_seq", allocationSize = 1)
+    @GeneratedValue
     @Column(name = "id")
     private Long id;
 
@@ -53,7 +52,7 @@ public class Payment {
      *  付款总金额
      */
     @Column(name = "pay_total_amount")
-    private double totalAmount;
+    private Double totalAmount;
 
     /**
      *  付款时间
@@ -115,11 +114,11 @@ public class Payment {
         this.createtime = createtime;
     }
 
-    public double getTotalAmount() {
+    public Double getTotalAmount() {
         return totalAmount;
     }
 
-    public void setTotalAmount(double totalAmount) {
+    public void setTotalAmount(Double totalAmount) {
         this.totalAmount = totalAmount;
     }
 

+ 1 - 2
src/main/java/com/uas/platform/b2c/fa/payment/model/PaymentDetail.java

@@ -11,8 +11,7 @@ import javax.persistence.*;
 public class PaymentDetail {
 
     @Id
-    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$payment_detail_gen")
-    @SequenceGenerator(name = "trade$payment_detail_gen", sequenceName = "trade$payment_detail_seq", allocationSize = 1)
+    @GeneratedValue
     @Column(name = "id")
     private Long id;
 

+ 1 - 2
src/main/java/com/uas/platform/b2c/fa/payment/model/TradeRecordChart.java

@@ -26,8 +26,7 @@ public class TradeRecordChart implements Serializable {
 	 */
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$payment_gen")
-	@SequenceGenerator(name = "trade$payment_gen", sequenceName = "trade$payment_seq", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "id")
 	private Long id;
 

+ 1 - 2
src/main/java/com/uas/platform/b2c/fa/settlement/model/Bill.java

@@ -14,8 +14,7 @@ public class Bill implements Serializable {
 	private static final long serialVersionUID = 1L;
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$bill_gen")
-	@SequenceGenerator(name = "trade$bill_gen", sequenceName = "trade$bill_seq", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "bill_id")
 	private Long id;
 

+ 1 - 4
src/main/java/com/uas/platform/b2c/fa/settlement/model/BillInfo.java

@@ -5,9 +5,7 @@ import java.io.Serializable;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 import javax.persistence.Id;
-import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 
 /**
@@ -23,8 +21,7 @@ public class BillInfo implements Serializable{
 	private static final long serialVersionUID = 1L;
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$bill_gen")
-	@SequenceGenerator(name = "trade$bill_gen", sequenceName = "trade$bill_seq", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "bill_id")
 	private Long id;
 	

+ 1 - 2
src/main/java/com/uas/platform/b2c/fa/settlement/model/BillSubmit.java

@@ -19,8 +19,7 @@ public class BillSubmit implements Serializable{
     private static final long serialVersionUID = 1L;
 
     @Id
-    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$bill_submit_gen")
-    @SequenceGenerator(name = "trade$bill_submit_gen", sequenceName = "trade$bill_submit_seq", allocationSize = 1)
+    @GeneratedValue
     @Column(name = "bs_id")
     private Long id;
 

+ 1 - 4
src/main/java/com/uas/platform/b2c/fa/settlement/model/Refund.java

@@ -14,11 +14,9 @@ import javax.persistence.EnumType;
 import javax.persistence.Enumerated;
 import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.OneToMany;
 import javax.persistence.OrderBy;
-import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 import java.io.Serializable;
 import java.util.ArrayList;
@@ -40,8 +38,7 @@ public class Refund implements Serializable{
 	
 	@Id
 	@Column(name = "id")
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$refund_gen")
-	@SequenceGenerator(name = "trade$refund_gen", allocationSize = 1, sequenceName = "trade$refund_seq")
+	@GeneratedValue
 	private Long id;
 
 	//*************************************************************************

+ 1 - 4
src/main/java/com/uas/platform/b2c/fa/settlement/model/RefundDetail.java

@@ -13,12 +13,10 @@ import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
 import javax.persistence.ManyToOne;
 import javax.persistence.OneToOne;
-import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 
 
@@ -36,8 +34,7 @@ public class RefundDetail extends Document implements Serializable{
 	
 	@Id
 	@Column(name = "id")
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$refunddeail_gen")
-	@SequenceGenerator(name = "trade$refunddeail_gen", sequenceName = "trade$refunddeail_seq", allocationSize = 1)
+	@GeneratedValue
 	private Long id;
 	
 	/**

+ 1 - 2
src/main/java/com/uas/platform/b2c/fa/settlement/model/RequestPayment.java

@@ -22,8 +22,7 @@ public class RequestPayment extends Document {
 
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$request_payment_gen")
-	@SequenceGenerator(name = "trade$request_payment_gen", sequenceName = "trade$request_payment_gen", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "id")
 	private Long id;
 

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

@@ -81,7 +81,7 @@ public class BillSubmitServiceImpl implements BillSubmitService {
             }
             orderidList.removeAll(orderIds);
 
-            String errorIdStr = com.alibaba.dubbo.common.utils.StringUtils.join(orderids, SplitChar.COMMA);
+            String errorIdStr = org.apache.commons.lang3.StringUtils.join(orderids, SplitChar.COMMA);
             throw new IllegalOperatorException("订单号: " + errorIdStr + " 不存在,请重新确认订单信息");
         }
 

+ 1 - 2
src/main/java/com/uas/platform/b2c/logistics/model/Address.java

@@ -16,8 +16,7 @@ import javax.persistence.*;
 public class Address {
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$address_gen")
-	@SequenceGenerator(name = "trade$address_gen", sequenceName = "trade$address_seq", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "add_id")
 	private Long id;
 

+ 1 - 2
src/main/java/com/uas/platform/b2c/logistics/model/AddressTakeSelf.java

@@ -15,8 +15,7 @@ public class AddressTakeSelf {
 	 * 主键 ID
 	 */
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$address_take_gen")
-	@SequenceGenerator(name = "trade$address_take_gen", sequenceName = "trade$address_take_seq", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "take_id")
 	private Long id;
 

+ 4 - 5
src/main/java/com/uas/platform/b2c/logistics/model/DistributionRule.java

@@ -21,8 +21,7 @@ public class DistributionRule {
 	 * 主键id
 	 */
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "logistics$distributor_gen")
-	@SequenceGenerator(name = "logistics$distributor_gen", sequenceName = "logistics$distributor_seq", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "rule_id")
 	private Long id;
 
@@ -90,7 +89,7 @@ public class DistributionRule {
 
 	/**
 	 * 计费方式
-	 * 1-统一规定运费,2-按总金额计算
+	 * 1-统一规定运费,2-按总金额计算, 3-到付,到付设置为统一运费0
 	 */
 	@Column(name = "rule_fare_type")
 	private Short fareType;
@@ -98,7 +97,7 @@ public class DistributionRule {
 	/**
 	 * 分段运费(JSON串)
 	 */
-	@Column(name = "rule_qtyFare")
+	@Column(name = "rule_qtyFare", columnDefinition = "TEXT")
 	private String qtyFare;
 
 	/**
@@ -116,7 +115,7 @@ public class DistributionRule {
 	/**
 	 * 分段地区(JSON串)
 	 */
-	@Column(name = "rule_qtyArea")
+	@Column(name = "rule_qtyArea", columnDefinition = "TEXT")
 	private String qtyArea;
 
 	/**

+ 1 - 2
src/main/java/com/uas/platform/b2c/logistics/model/DistributorSeller.java

@@ -12,8 +12,7 @@ import java.util.Date;
 public class DistributorSeller {
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "logistics$seller_distributor_gen")
-	@SequenceGenerator(name = "logistics$seller_distributor_gen", sequenceName = "logistics$distributor_seq", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "seller_id")
 	private Long id;
 

+ 1 - 4
src/main/java/com/uas/platform/b2c/logistics/model/Invoice.java

@@ -15,13 +15,11 @@ import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
 import javax.persistence.OneToMany;
 import javax.persistence.OneToOne;
 import javax.persistence.OrderBy;
-import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 import java.io.Serializable;
 import java.util.Date;
@@ -42,8 +40,7 @@ public class Invoice extends Document implements Serializable {
 	private static final long serialVersionUID = 1L;
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$invoice_gen")
-	@SequenceGenerator(name = "trade$invoice_gen", sequenceName = "trade$invoice_seq", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "id")
 	private Long id;
 

+ 1 - 4
src/main/java/com/uas/platform/b2c/logistics/model/InvoiceDetail.java

@@ -4,11 +4,9 @@ import javax.persistence.CascadeType;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
 import javax.persistence.ManyToOne;
-import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 
 import com.uas.platform.b2c.trade.aftersale.model.ChangeFB2cDetail;
@@ -30,8 +28,7 @@ import com.uas.platform.core.persistence.StatusColumn;
 public class InvoiceDetail {
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$invoice_detail_gen")
-	@SequenceGenerator(name = "trade$invoice_detail_gen", sequenceName = "trade$invoice_detail_seq", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "id")
 	private Long id;
 

+ 1 - 4
src/main/java/com/uas/platform/b2c/logistics/model/InvoiceFOrder.java

@@ -14,13 +14,11 @@ import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
 import javax.persistence.OneToMany;
 import javax.persistence.OneToOne;
 import javax.persistence.OrderBy;
-import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 import java.io.Serializable;
 import java.util.Date;
@@ -42,8 +40,7 @@ public class InvoiceFOrder extends Document implements Serializable {
 	private static final long serialVersionUID = 1L;
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$invoice_fmor_gen")
-	@SequenceGenerator(name = "trade$invoice_fmor_gen", sequenceName = "trade$invoice_fmor_gen", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "id")
 	private Long id;
 

+ 1 - 4
src/main/java/com/uas/platform/b2c/logistics/model/InvoiceFOrderDetail.java

@@ -12,11 +12,9 @@ import javax.persistence.CascadeType;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
 import javax.persistence.ManyToOne;
-import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 
 /**
@@ -30,8 +28,7 @@ import javax.persistence.Table;
 public class InvoiceFOrderDetail {
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$invoice_fmor_dt_gen")
-	@SequenceGenerator(name = "trade$invoice_fmor_dt_gen", sequenceName = "trade$invoice_fmor_dt_gen", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "id")
 	private Long id;
 

+ 1 - 4
src/main/java/com/uas/platform/b2c/logistics/model/InvoiceFPurchase.java

@@ -13,13 +13,11 @@ import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
 import javax.persistence.OneToMany;
 import javax.persistence.OneToOne;
 import javax.persistence.OrderBy;
-import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 import javax.persistence.Transient;
 import java.io.Serializable;
@@ -40,8 +38,7 @@ public class InvoiceFPurchase extends Document implements Serializable {
 	private static final long serialVersionUID = 1L;
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$invoice_fmpu_gen")
-	@SequenceGenerator(name = "trade$invoice_fmpu_gen", sequenceName = "trade$invoice_fmpu_gen", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "id")
 	private Long id;
 

+ 1 - 4
src/main/java/com/uas/platform/b2c/logistics/model/InvoiceFPurchaseDetail.java

@@ -10,11 +10,9 @@ import javax.persistence.CascadeType;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
 import javax.persistence.ManyToOne;
-import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 
 /**
@@ -28,8 +26,7 @@ import javax.persistence.Table;
 public class InvoiceFPurchaseDetail {
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$invoice_fmpu_dt_gen")
-	@SequenceGenerator(name = "trade$invoice_fmpu_dt_gen", sequenceName = "trade$invoice_fmpu_dt_gen", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "id")
 	private Long id;
 

+ 1 - 4
src/main/java/com/uas/platform/b2c/logistics/model/Logistics.java

@@ -5,9 +5,7 @@ import java.io.Serializable;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 import javax.persistence.Id;
-import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 
 /**
@@ -23,8 +21,7 @@ public class Logistics implements Serializable {
 	private static final long serialVersionUID = 1L;
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$logistics_gen")
-	@SequenceGenerator(name = "trade$logistics_gen", sequenceName = "trade$logistics_gen", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "id")
 	private Long id;
 

+ 1 - 4
src/main/java/com/uas/platform/b2c/logistics/model/LogisticsCompanyCode.java

@@ -6,9 +6,7 @@ import java.net.URLDecoder;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 import javax.persistence.Id;
-import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 
 /**
@@ -22,8 +20,7 @@ import javax.persistence.Table;
 public class LogisticsCompanyCode {
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$lgt_company_code_gen")
-	@SequenceGenerator(name = "trade$lgt_company_code_gen", sequenceName = "trade$lgt_company_code_seq", allocationSize = 1)
+	@GeneratedValue
 	private Long id;
 
 	/**

+ 1 - 4
src/main/java/com/uas/platform/b2c/logistics/model/LogisticsInfo.java

@@ -3,9 +3,7 @@ package com.uas.platform.b2c.logistics.model;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 import javax.persistence.Id;
-import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 
 /**
@@ -21,8 +19,7 @@ public class LogisticsInfo {
 	private static final long serialVersionUID = 1L;
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$logistics_inf_gen")
-	@SequenceGenerator(name = "trade$logistics_inf_gen", sequenceName = "trade$logistics_inf_seq", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "id")
 	private Long id;
 

+ 1 - 4
src/main/java/com/uas/platform/b2c/logistics/model/LogisticsInfoOld.java

@@ -3,9 +3,7 @@ package com.uas.platform.b2c.logistics.model;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 import javax.persistence.Id;
-import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 
 @Entity(name = "trade.logisticsInfo")
@@ -15,8 +13,7 @@ public class LogisticsInfoOld {
 	private static final long serialVersionUID = 1L;
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$logisticsInfo_gen")
-	@SequenceGenerator(name = "trade$logisticsInfo_gen", sequenceName = "trade$logisticsInfo_seq", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "logisticsInfo_id")
 	private Long id;
 

+ 1 - 4
src/main/java/com/uas/platform/b2c/logistics/model/PickUpAddress.java

@@ -3,9 +3,7 @@ package com.uas.platform.b2c.logistics.model;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 import javax.persistence.Id;
-import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 
 
@@ -21,8 +19,7 @@ import javax.persistence.Table;
 public class PickUpAddress{
 	
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "pickup$address_gen")
-	@SequenceGenerator(name = "pickup$address_gen", sequenceName = "pickup$address_seq", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "add_id")
 	private Long id;
 	

+ 1 - 4
src/main/java/com/uas/platform/b2c/logistics/model/Receipt.java

@@ -19,11 +19,9 @@ import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.OneToMany;
 import javax.persistence.OrderBy;
-import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 import java.io.Serializable;
 import java.util.Date;
@@ -43,8 +41,7 @@ public class Receipt extends Document implements Serializable {
 	private static final long serialVersionUID = 1L;
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$receipt_gen")
-	@SequenceGenerator(name = "trade$receipt_gen", sequenceName = "trade$receipt_gen", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "id")
 	private Long id;
 

+ 1 - 4
src/main/java/com/uas/platform/b2c/logistics/model/ReceiptDetail.java

@@ -4,11 +4,9 @@ import javax.persistence.CascadeType;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
 import javax.persistence.ManyToOne;
-import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 
 import com.uas.platform.b2c.trade.aftersale.model.ChangeFB2cDetail;
@@ -33,8 +31,7 @@ import com.uas.platform.core.persistence.StatusColumn;
 public class ReceiptDetail {
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$receipt_detail_gen")
-	@SequenceGenerator(name = "trade$receipt_detail_gen", sequenceName = "trade$receipt_detail_gen", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "id")
 	private Long id;
 

+ 1 - 2
src/main/java/com/uas/platform/b2c/logistics/model/SellerLogisticsInfo.java

@@ -13,8 +13,7 @@ public class SellerLogisticsInfo {
 	 * 唯一标识id
 	 */
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "logistics$seller_gen")
-	@SequenceGenerator(name = "logistics$seller_gen", sequenceName = "logistics$seller_seq", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "id")
 	private Long id;
 

+ 13 - 0
src/main/java/com/uas/platform/b2c/logistics/model/UsableRuleInfo.java

@@ -33,6 +33,10 @@ public class UsableRuleInfo {
 	 * 配送规则币别
 	 */
 	private String currencyName;
+	/**
+	 * 支付类型
+	 */
+	private Short fareType;
 
 	public UsableRuleInfo(){
 
@@ -44,6 +48,7 @@ public class UsableRuleInfo {
 		this.method = rule.getShippingMethod();
 		this.currencyName = rule.getCurrencyName();
 		this.enuu = rule.getEnuu();
+		this.fareType = rule.getFareType();
 	}
 
 	public Long getId() {
@@ -101,4 +106,12 @@ public class UsableRuleInfo {
 	public void setUuid(String uuid) {
 		this.uuid = uuid;
 	}
+
+	public Short getFareType() {
+		return fareType;
+	}
+
+	public void setFareType(Short fareType) {
+		this.fareType = fareType;
+	}
 }

+ 14 - 1
src/main/java/com/uas/platform/b2c/logistics/service/impl/DistributionRuleServiceImpl.java

@@ -84,6 +84,13 @@ public class DistributionRuleServiceImpl implements DistributionRuleService{
 		if (rule.getFareType() == 2 && CollectionUtils.isEmpty(rule.getFares())){
 			return new ResultMap(CodeType.NO_INFO, "请完善计费方式");
 		}
+		if (rule.getFareType() == 2){
+			rule.setUniformPrice(null);
+		}else {
+			if (CollectionUtils.isEmpty(rule.getFares())){
+				rule.setQtyFare(null);
+			}
+		}
 		if (rule.getId() == null){ //新增配送规则,初始化数据
 			Long uu = SystemSession.getUser().getUserUU();
 			Long enuu = SystemSession.getUser().getEnterprise().getUu();
@@ -101,6 +108,9 @@ public class DistributionRuleServiceImpl implements DistributionRuleService{
 		}else {
 			rule.setActive(ShortConstant.NO_SHORT);
 		}
+		if (rule.getFareType() == 3){ //到付类型
+			rule.setUniformPrice(0d);
+		}
 		if (!isAdd){ //若为另存为,则将主键id设为空
 			if (rule.getId() != null){
 				rule.setId(null);
@@ -397,9 +407,12 @@ public class DistributionRuleServiceImpl implements DistributionRuleService{
 	 */
 	public Double getFareOfRule(DistributionRule rule, Double price){
 		Double needFare = null;
-		if (rule.getFareType() == 1){
+		if (rule.getFareType() == 1 || rule.getFareType() == 3){
 			needFare = rule.getUniformPrice();
 		}else {
+			if (CollectionUtils.isEmpty(rule.getFares())){
+				throw new  IllegalOperatorException("配送规则信息丢失,刷新后重试");
+			}
 			for (RuleQtyFare fare : rule.getFares()){
 				if (fare.getStart() <= price){
 					if (fare.getEnd() != null){

+ 1 - 1
src/main/java/com/uas/platform/b2c/logistics/service/impl/LogisticsCompanyCodeServiceImpl.java

@@ -6,11 +6,11 @@ import java.util.List;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import com.alibaba.dubbo.common.utils.CollectionUtils;
 import com.uas.platform.b2c.logistics.dao.LogisticsCompanyCodeDao;
 import com.uas.platform.b2c.logistics.model.LogisticsCompanyCode;
 import com.uas.platform.b2c.logistics.service.LogisticsCompanyCodeService;
 import com.uas.platform.core.exception.IllegalOperatorException;
+import org.springframework.util.CollectionUtils;
 
 @Service
 public class LogisticsCompanyCodeServiceImpl implements LogisticsCompanyCodeService {

+ 38 - 6
src/main/java/com/uas/platform/b2c/prod/commodity/controller/GoodsController.java

@@ -1,5 +1,12 @@
 package com.uas.platform.b2c.prod.commodity.controller;
 
+import com.uas.platform.b2c.common.base.model.FileUpload;
+import com.uas.platform.b2c.common.search.rpc.service.SearchService;
+import com.uas.platform.b2c.core.support.SystemSession;
+import com.uas.platform.b2c.core.support.log.UsageBufferedLogger;
+import com.uas.platform.b2c.core.support.view.JxlsExcelView;
+import com.uas.platform.b2c.core.utils.FastjsonUtils;
+import com.uas.platform.b2c.core.utils.StringUtilB2C;
 import com.uas.platform.b2c.prod.commodity.dao.GoodsDao;
 import com.uas.platform.b2c.prod.commodity.model.Goods;
 import com.uas.platform.b2c.prod.commodity.model.GoodsHistory;
@@ -7,20 +14,15 @@ import com.uas.platform.b2c.prod.commodity.model.GoodsQtyPrice;
 import com.uas.platform.b2c.prod.commodity.model.GoodsSimple;
 import com.uas.platform.b2c.prod.commodity.service.GoodsHistoryService;
 import com.uas.platform.b2c.prod.commodity.service.GoodsService;
-import com.uas.platform.b2c.common.base.model.FileUpload;
 import com.uas.platform.b2c.prod.product.component.modal.ComponentInfo;
 import com.uas.platform.b2c.prod.product.component.service.ComponentService;
-import com.uas.platform.b2c.core.support.SystemSession;
-import com.uas.platform.b2c.core.support.log.UsageBufferedLogger;
-import com.uas.platform.b2c.core.utils.FastjsonUtils;
-import com.uas.platform.b2c.core.utils.StringUtilB2C;
-import com.uas.platform.b2c.core.support.view.JxlsExcelView;
 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;
 import com.uas.platform.core.model.PageParams;
 import com.uas.platform.core.model.Status;
+import org.apache.commons.collections.map.HashedMap;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@@ -65,6 +67,9 @@ public class GoodsController {
 	@Autowired
 	private GoodsDao goodsDao;
 
+	@Autowired
+	private SearchService searchService;
+
     /**
      * 发布(上架)产品
      *
@@ -644,4 +649,31 @@ public class GoodsController {
 		logger.log("商品管理", "下架该公司所有商品");
 		return goodsService.downAllGoodsByEnterprise(eName);
 	}
+
+	@RequestMapping(value = "/test/str", method = RequestMethod.GET)
+	public void getTest() {
+		searchService.getKindIds("电阻", 1, 10);
+
+		searchService.getKinds("电阻", 1, 10);
+
+		searchService.getBrandIds("Panasonic", 1, 10);
+
+		searchService.getBrands("Panasonic", 1, 10);
+
+		com.uas.search.model.PageParams page = new com.uas.search.model.PageParams();
+		page.setPage(1);
+		page.setSize(10);
+		searchService.getComponentIds("ac", page);
+
+		Map<com.uas.search.model.PageParams.FilterField, Object> filters = new HashedMap();
+		filters.put(com.uas.search.model.PageParams.FilterField.GOODS_KINDID, "401,23");
+		filters.put(com.uas.search.model.PageParams.FilterField.GOODS_BRANDID, "45");
+		filters.put(com.uas.search.model.PageParams.FilterField.GOODS_STORE_TYPE, "DISTRIBUTION");
+		filters.put(com.uas.search.model.PageParams.FilterField.GOODS_CRNAME, "RMB-USD");
+		filters.put(com.uas.search.model.PageParams.FilterField.GOODS_MINPRICERMB, "0");
+		filters.put(com.uas.search.model.PageParams.FilterField.GOODS_MAXPRICERMB, "10");
+		filters.put(com.uas.search.model.PageParams.FilterField.GOODS_MINPRICEUSD, "0");
+		filters.put(com.uas.search.model.PageParams.FilterField.GOODS_MAXPRICEUSD, "10");
+		page.setFilters(filters);
+	}
 }

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

@@ -6,6 +6,7 @@ import com.uas.platform.b2c.prod.commodity.model.Product;
 import com.uas.platform.b2c.prod.commodity.service.ProductService;
 import com.uas.platform.b2c.core.constant.SplitChar;
 import com.uas.platform.b2c.core.support.view.JxlsExcelView;
+import com.uas.platform.b2c.prod.commodity.type.ProductConstant;
 import com.uas.platform.b2c.trade.support.ResultMap;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageParams;
@@ -195,4 +196,20 @@ public class ProductController {
 	private ResultMap updateMatch(@RequestBody String json) {
 		return productService.updateMatch(json);
 	}
+
+	/**
+	 * 批量删除所有的非标的产品
+	 */
+	@RequestMapping(value = "/unstandard", method = RequestMethod.DELETE)
+	private ResultMap deleteUnstandardByBatch() {
+		 return productService.deleteBatch(ProductConstant.NSTANDARD);
+	}
+
+	/**
+	 * 批量删除所有的标准的产品
+	 */
+	@RequestMapping(value = "/standard", method = RequestMethod.DELETE)
+	private ResultMap deleteStandardByBatch() {
+		return productService.deleteBatch(ProductConstant.STANDARD);
+	}
 }

+ 10 - 10
src/main/java/com/uas/platform/b2c/prod/commodity/dao/GoodsDao.java

@@ -80,7 +80,7 @@ public interface GoodsDao extends JpaSpecificationExecutor<Goods>, JpaRepository
      * @param status the status 状态
      * @return double
      */
-    @Query("select sum(nvl(g.reserve, 0)) from Goods g where g.uuid=:uuid and g.status =:status")
+    @Query("select sum(coalesce(g.reserve)) from Goods g where g.uuid=:uuid and g.status =:status")
 	Double findTotalReserveByUuid(@Param("uuid") String uuid, @Param("status") Integer status);
 
     /**
@@ -199,7 +199,7 @@ public interface GoodsDao extends JpaSpecificationExecutor<Goods>, JpaRepository
      * @param status the status 状态
      * @return double
      */
-    @Query("select sum(nvl(g.sampleQty, 0) - nvl(g.sampleAppliedQty, 0)) from Goods g where g.uuid=:uuid and g.status =:status")
+    @Query("select sum(coalesce(g.sampleQty, 0) - coalesce(g.sampleAppliedQty, 0)) from Goods g where g.uuid=:uuid and g.status =:status")
 	Double findAvailableSampleQtyByUuid(@Param("uuid") String uuid, @Param("status") Integer status);
 
     /**
@@ -209,7 +209,7 @@ public interface GoodsDao extends JpaSpecificationExecutor<Goods>, JpaRepository
      * @param status the status 状态
      * @return double
      */
-    @Query("select sum(nvl(g.reserve, 0)) from Goods g where g.uuid=:uuid and g.original=1311 and g.status =:status")
+    @Query("select sum(coalesce(g.reserve, 0)) from Goods g where g.uuid=:uuid and g.original=1311 and g.status =:status")
 	Double findOriginalQtyByUuid(@Param("uuid") String uuid, @Param("status") Integer status);
 
     /**
@@ -219,7 +219,7 @@ public interface GoodsDao extends JpaSpecificationExecutor<Goods>, JpaRepository
      * @param status the status 状态
      * @return double
      */
-    @Query("select sum(nvl(g.reserve, 0)) from Goods g where g.uuid=:uuid and g.original=1312 and g.status =:status")
+    @Query("select sum(coalesce(g.reserve, 0)) from Goods g where g.uuid=:uuid and g.original=1312 and g.status =:status")
 	Double findInactionStockQtyByUuid(@Param("uuid") String uuid, @Param("status") Integer status);
 
     /**
@@ -229,7 +229,7 @@ public interface GoodsDao extends JpaSpecificationExecutor<Goods>, JpaRepository
      * @param status the status 状态
      * @return double
      */
-    @Query(value = "select sum(nvl(g.sampleAppliedQty, 0)) from Goods g where g.uuid=:uuid and g.status =:status")
+    @Query(value = "select sum(coalesce(g.sampleAppliedQty, 0)) from Goods g where g.uuid=:uuid and g.status =:status")
 	Double findApplyedSampleQty(@Param("uuid") String uuid, @Param("status") Integer status);
 
 	/**
@@ -248,7 +248,7 @@ public interface GoodsDao extends JpaSpecificationExecutor<Goods>, JpaRepository
      * @param qty the qty 数量
      * @return list
      */
-    @Query(value = "select * from (select * from trade$goods g where nvl(g.go_sampleqty, 0) - nvl(g.go_sampleappliedqty, 0) >0 order by go_id desc) where rownum<=:qty", nativeQuery = true)
+    @Query(value = "select * from (select * from trade$goods g where coalesce(g.go_sampleqty, 0) - coalesce(g.go_sampleappliedqty, 0) >0 order by go_id desc) where rownum<=:qty", nativeQuery = true)
 	List<Goods> findAvailableSampleQty(@Param("qty") Integer qty);
 
     /**
@@ -266,7 +266,7 @@ public interface GoodsDao extends JpaSpecificationExecutor<Goods>, JpaRepository
      * @param qty the qty 数量
      * @return list
      */
-    @Query(value = "select * from (select u from (select cmp_code, max(cmp_img) i, max(go_createddate) d,max(cmp_uuid) u from trade$goods group by cmp_code) order by i, d desc) where rownum<=:qty", nativeQuery = true)
+    @Query(value = "select u from (select cmp_code, max(cmp_img) as i, max(go_createddate) as d, max(cmp_uuid) as u from trade$goods group by cmp_code) k order by i, d desc limit :qty", nativeQuery = true)
 	List<String> findAvailableOriginalWithImg(@Param("qty") Integer qty);
 
     /**
@@ -361,7 +361,7 @@ public interface GoodsDao extends JpaSpecificationExecutor<Goods>, JpaRepository
      * @param storeid the storeid 店铺uuid
      * @return double
      */
-    @Query(value = "select sum(nvl(g.reserve, 0)) from Goods g where g.enUU =:enUU and g.storeid =:storeid")
+    @Query(value = "select sum(coalesce(g.reserve, 0)) from Goods g where g.enUU =:enUU and g.storeid =:storeid")
 	Double findSumReserveByEnuuAndStoreid(@Param("enUU") Long enuu, @Param("storeid") String storeid);
 
     /**
@@ -379,7 +379,7 @@ public interface GoodsDao extends JpaSpecificationExecutor<Goods>, JpaRepository
      * @param enuu the enuu 企业的enuu
      * @return double
      */
-    @Query(value = "select sum(g.reserve * nvl(g.maxPriceRMB, 0)) from Goods g where g.enUU =:enUU")
+    @Query(value = "select sum(g.reserve * coalesce(g.maxPriceRMB, 0)) from Goods g where g.enUU =:enUU")
 	public Double findSumRMBByEnuu(@Param("enUU") Long enuu);
 
     /**
@@ -455,7 +455,7 @@ public interface GoodsDao extends JpaSpecificationExecutor<Goods>, JpaRepository
      * @param length the length 需要获取的批次的长度
      * @return list
      */
-    @Query(value = "select m from Goods m where m.batchCode in (select max(g.batchCode) from Goods g where g.img is not null group by g.code) and rownum <:length")
+    @Query(value = "select * from trade$goods m where m.go_batchCode in (select max(g.go_batchCode) from trade$goods g where g.cmp_img is not null group by g.cmp_code) limit :length", nativeQuery = true)
 	List<Goods> findLatestGoods(@Param("length") Long length);
 
 

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

@@ -70,4 +70,14 @@ public interface ProductDao extends JpaSpecificationExecutor<Product>, JpaReposi
      */
     @Query(value = "select p from Product p where p.pcmpcode=:pcmpcode and p.pbranden=:pbranden and p.enUU=:enUU and p.standard=:standard")
     List<Product> findProductByPcmpcodeAndPbrandenAndEnUUAndStandard(@Param("pcmpcode") String pcmpcode, @Param("pbranden") String pbranden, @Param("enUU") Long enUU, @Param("standard") Integer standard);
+
+    /**
+     * 获取该企业的产品信息
+     * @param enuu 企业的uu号
+     * @param standard 是否是标准的信息
+     * @return 返回所属该公司的产品信息
+     */
+    @Query(value = "select p from Product p where p.enUU = :enuu and p.standard = :standard")
+    List<Product> findProductByEnuuAndStandard(@Param("enuu") Long enuu, @Param("standard") Integer standard);
+
 }

+ 2 - 2
src/main/java/com/uas/platform/b2c/prod/commodity/dao/ReleaseProductByBatchDao.java

@@ -59,7 +59,7 @@ public interface ReleaseProductByBatchDao
      * @param publisherUu the publisher uu 发布人
      * @param batchid     the batchid 批次号
      */
-    @Procedure(procedureName = "product$release$valid")
+    @Procedure(procedureName = "PRODUCT_RELEASE_VALID")
 	public void callValidProcedure(Long publisherUu, String batchid);
 
     /**
@@ -71,6 +71,6 @@ public interface ReleaseProductByBatchDao
      * @return String string
      * @Description: 批量上架的存储过程
      */
-    @Procedure(procedureName = "product$release$batch$publish")
+    @Procedure(procedureName = "PRODUCT_RELEASE_BATCH_PUBLISH")
 	public String callPublishByBatch(Long enuu, String enterName, String batchid);
 }

+ 13 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/dao/StockInOutHistDao.java

@@ -3,6 +3,8 @@ package com.uas.platform.b2c.prod.commodity.dao;
 import com.uas.platform.b2c.prod.commodity.model.StockInOutHist;
 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 java.util.List;
@@ -23,4 +25,15 @@ public interface StockInOutHistDao extends JpaRepository<StockInOutHist, Long>,
      * @return list
      */
     List<StockInOutHist> findStockInOutHistByProdidOrderByOperateDateDesc(Long prodid);
+
+    /**
+     * 根据企业和类型统计该类型下的总量
+     * @param sellerenuu
+     * @param status
+     * @param storeid
+     * @return
+     */
+    @Query(nativeQuery = true , value = "select count(stock_qty) from trade$stock_in_out where stock_enuu = :enuu and stock_ioseller_type = :type")
+    int getCountByenuuAndIoSellerType(@Param("enuu") Long enuu, @Param("type") Integer type);
+
 }

+ 5 - 6
src/main/java/com/uas/platform/b2c/prod/commodity/model/Goods.java

@@ -27,7 +27,7 @@ import java.util.List;
  *
  */
 @Entity
-@Table(name = "trade$goods")
+@Table(name = "trade$goods", indexes = { @Index(name = "trade_goods_cmpuuid_index", columnList = "cmp_uuid"), @Index(name = "goods_reserve_index", columnList = "go_reserve"), @Index(name = "goods_status_index", columnList = "go_status"), @Index(name = "goods_code_index", columnList = "cmp_code")})
 @Cacheable
 @Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = "com.uas.platform.b2c.prod.commodity.model.Goods")
 public class Goods implements Serializable {
@@ -38,8 +38,7 @@ public class Goods implements Serializable {
 	private static final long serialVersionUID = 1L;
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$goods_gen")
-	@SequenceGenerator(name = "trade$goods_gen", sequenceName = "trade$goods_seq", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "go_id")
 	private Long id;
 
@@ -282,7 +281,7 @@ public class Goods implements Serializable {
 	/**
 	 * 封装
 	 */
-	@Column(name = "go_encapsulation ")
+	@Column(name = "go_encapsulation")
 	private String encapsulation;
 
 	/**
@@ -369,7 +368,7 @@ public class Goods implements Serializable {
 	/**
 	 * 是否被推荐到店铺的首页
 	 */
-	@Column(name = "go_recommond")
+	@Column(name = "go_recommond", columnDefinition = "TINYINT(1)")
 	private Boolean isRecommond;
 
 	/**
@@ -467,7 +466,7 @@ public class Goods implements Serializable {
 	/**
 	 * 是否拆卖
 	 */
-	@Column(name = "go_isbreakup")
+	@Column(name = "go_isbreakup", columnDefinition = "TINYINT(1)")
 	private Boolean breakUp;
 
 	/**

+ 4 - 5
src/main/java/com/uas/platform/b2c/prod/commodity/model/GoodsHistory.java

@@ -18,8 +18,7 @@ import java.util.List;
 public class GoodsHistory {
 
 	@Id
-	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trade$goods_history_gen")
-	@SequenceGenerator(name = "trade$goods_history_gen", sequenceName = "trade$goods_history_seq", allocationSize = 1)
+	@GeneratedValue
 	@Column(name = "go_id")
 	private Long id;
 
@@ -142,7 +141,7 @@ public class GoodsHistory {
 	/**
 	 * 分段报价(JSON串) eg:[{"start":0,"end":1000,"price":2.3,"taxPrice":2.5},...]
 	 */
-	@Column(name = "go_qtyprice")
+	@Column(name = "go_qtyprice", length = 4000)
 	private String qtyPrice;
 
 	/**
@@ -196,7 +195,7 @@ public class GoodsHistory {
 	/**
 	 * 封装
 	 */
-	@Column(name = "go_encapsulation ")
+	@Column(name = "go_encapsulation")
 	private String encapsulation;
 
 	/**
@@ -383,7 +382,7 @@ public class GoodsHistory {
 	/**
 	 * 是否可拆卖
 	 */
-	@Column(name = "go_breakup")
+	@Column(name = "go_breakup", columnDefinition = "TINYINT(1)")
 	private Boolean breakUp;
 
 	/**

Some files were not shown because too many files changed in this diff