Просмотр исходного кода

Merge remote-tracking branch 'origin/dev-mysql' into featue/info_text-1120

hangb 8 лет назад
Родитель
Сommit
bda7849d29
22 измененных файлов с 302 добавлено и 31 удалено
  1. 46 0
      src/main/java/com/uas/platform/b2c/common/account/model/UsageLog.java
  2. 11 1
      src/main/java/com/uas/platform/b2c/core/config/MicroServicesConf.java
  3. 14 3
      src/main/java/com/uas/platform/b2c/core/filter/KeyWordFilter.java
  4. 39 0
      src/main/java/com/uas/platform/b2c/core/support/EncryptablePropertyPlaceholderConfigurer.java
  5. 15 0
      src/main/java/com/uas/platform/b2c/prod/commodity/model/Goods.java
  6. 28 0
      src/main/java/com/uas/platform/b2c/prod/product/brand/modal/Brand.java
  7. 28 0
      src/main/java/com/uas/platform/b2c/prod/product/component/modal/Component.java
  8. 28 0
      src/main/java/com/uas/platform/b2c/prod/product/kind/model/Kind.java
  9. 3 3
      src/main/resources/dev/jdbc.properties
  10. 3 3
      src/main/resources/prod/jdbc.properties
  11. 10 1
      src/main/resources/spring/context.xml
  12. 3 3
      src/main/resources/test/jdbc.properties
  13. 1 0
      src/main/webapp/WEB-INF/spring/hessian.xml
  14. 3 1
      src/main/webapp/resources/css/common.css
  15. 15 7
      src/main/webapp/resources/js/usercenter/controllers/forstore/buyer_transfer_ctrl.js
  16. 8 3
      src/main/webapp/resources/js/vendor/controllers/forstore/vendor_materialCtrl.js
  17. 1 1
      src/main/webapp/resources/js/vendor/controllers/forstore/vendor_order_ctrl.js
  18. 3 3
      src/main/webapp/resources/view/admin/logUsage.html
  19. 1 1
      src/main/webapp/resources/view/usercenter/forstore/account_manager.html
  20. 1 0
      src/main/webapp/resources/view/usercenter/forstore/buyer_transfer.html
  21. 1 1
      src/main/webapp/resources/view/vendor/forstore/vendor_account_management.html
  22. 40 0
      src/test/java/com/uas/platform/b2c/DesTest.java

+ 46 - 0
src/main/java/com/uas/platform/b2c/common/account/model/UsageLog.java

@@ -84,6 +84,24 @@ public class UsageLog extends BufferedLogable implements Serializable {
 	@Column(name = "rel_key")
 	private Long key;
 
+	/**
+	 * 电话
+	 */
+	@Column(name = "user_tel")
+	private String userTel;
+
+	/**
+	 * 邮箱
+	 */
+	@Column(name = "user_email")
+	private String userEmail;
+
+	/**
+	 * 姓名
+	 */
+	@Column(name = "user_name")
+	private String userName;
+
 	@JsonIgnore
 	@JSONField(serialize = false)
 	public Long getId() {
@@ -166,6 +184,8 @@ public class UsageLog extends BufferedLogable implements Serializable {
 		this.key = key;
 	}
 
+	@JsonIgnore
+	@JSONField(serialize = false)
 	public UserBaseInfo getUser() {
 		return user;
 	}
@@ -174,6 +194,32 @@ public class UsageLog extends BufferedLogable implements Serializable {
 		this.user = user;
 	}
 
+	public String getUserTel() {
+		if(user.getUserTel()!=null){
+			return user.getUserTel().substring(0,user.getUserTel().length()-(user.getUserTel().substring(3)).length())+"****"+user.getUserTel().substring(7);
+		}
+		return user.getUserTel();
+	}
+
+	public String getUserEmail() {
+		if(user.getUserEmail()!=null){
+			String email = user.getUserEmail();
+			int index = org.apache.commons.lang.StringUtils.indexOf(user.getUserEmail(), "@");
+			if (index <= 1)
+				return user.getUserEmail();
+			else
+				return org.apache.commons.lang.StringUtils.rightPad(org.apache.commons.lang.StringUtils.left(email, 1), index, "*").concat(org.apache.commons.lang.StringUtils.mid(email, index, org.apache.commons.lang.StringUtils.length(email)));
+		}
+		return user.getUserEmail();
+	}
+
+	public String getUserName() {
+		if(user.getUserName()!=null){
+			return user.getUserName().substring(0,1)+"**";
+		}
+		return user.getUserName();
+	}
+
 	public UsageLog() {
 
 	}

+ 11 - 1
src/main/java/com/uas/platform/b2c/core/config/MicroServicesConf.java

@@ -28,6 +28,12 @@ public class MicroServicesConf {
 	@Value("#{sys.floorMicroServiceIp ?: '10.10.0.30'}")
 	private String floorMicroServiceIp;
 
+	/**
+	 * profile
+	 */
+	@Value("#{sys.profile}")
+	private String profile;
+
 	/**
 	 * 轮播
 	 */
@@ -71,7 +77,11 @@ public class MicroServicesConf {
 	}
 
 	public String getRequestUrlForNews(String requestUrl) {
-		return String.format("http://%s%s", this.newsMicroServiceIp, requestUrl);
+		if ("prod".equals(profile)){
+			return String.format("http://%s%s", this.newsMicroServiceIp, requestUrl);
+		}else {
+			return String.format("http://%s:%d%s", this.microServiceIp, 20210, requestUrl);
+		}
 	}
 
 	public String getRequestUrlForFloor(int port, String requestUrl) {

+ 14 - 3
src/main/java/com/uas/platform/b2c/core/filter/KeyWordFilter.java

@@ -14,6 +14,7 @@ import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.log4j.Logger;
 import org.springframework.util.StringUtils;
 import org.springframework.web.context.support.WebApplicationContextUtils;
 import org.springframework.web.context.support.XmlWebApplicationContext;
@@ -23,12 +24,19 @@ import org.springframework.web.context.support.XmlWebApplicationContext;
  * @author liusw
  */
 public class KeyWordFilter implements Filter {
+
     public static Set<String> keyworsSet = null;
 
+    /**
+     * hessian 请求路径前缀
+     */
+    private static String HESSIAN_URI_PREFIX = "/api/service/";
+
+    private Logger logger = Logger.getLogger(this.getClass());
+
     @Override
     public void destroy() {
         // TODO Auto-generated method stub
-
     }
 
     @Override
@@ -40,8 +48,11 @@ public class KeyWordFilter implements Filter {
         response.setContentType("application/json; charset=utf-8");
         String contentType = req.getContentType();
         String method = req.getMethod();
-        // POST请求 或 PUT请求,并且不是附件上传请求
-        if(("POST".equals(method) || "PUT".equals(method)) && (StringUtils.isEmpty(contentType) || !contentType.contains("multipart"))){
+        String uri = req.getRequestURI();
+        // POST请求 或 PUT请求,并且不是附件上传请求,并且不是hessian请求
+        if(("POST".equals(method) || "PUT".equals(method)) &&
+                (StringUtils.isEmpty(contentType) || !contentType.contains("multipart")) &&
+                !uri.contains(HESSIAN_URI_PREFIX)){
             //注入Service
             ServletContext sc = req.getSession().getServletContext();
             XmlWebApplicationContext cxt = (XmlWebApplicationContext) WebApplicationContextUtils.getWebApplicationContext(sc);

+ 39 - 0
src/main/java/com/uas/platform/b2c/core/support/EncryptablePropertyPlaceholderConfigurer.java

@@ -0,0 +1,39 @@
+package com.uas.platform.b2c.core.support;
+
+import com.uas.platform.core.util.Des;
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.BeanInitializationException;
+import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
+import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
+
+import java.util.Properties;
+
+public class EncryptablePropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer {
+    private static final String key = "10101010";
+
+    protected void processProperties(ConfigurableListableBeanFactory beanFactory, Properties props)
+            throws BeansException {
+        try {
+            Des des = new Des();
+            String username = props.getProperty("jdbc.username");
+            if (username != null) {
+                props.setProperty("jdbc.username", des.decrypt(username, key));
+            }
+
+            String password = props.getProperty("jdbc.password");
+            if (password != null) {
+                props.setProperty("jdbc.password", des.decrypt(password, key));
+            }
+
+            String url = props.getProperty("jdbc.url");
+            if (url != null) {
+                props.setProperty("jdbc.url", des.decrypt(url, key));
+            }
+
+            super.processProperties(beanFactory, props);
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new BeanInitializationException(e.getMessage());
+        }
+    }
+}

+ 15 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/model/Goods.java

@@ -475,6 +475,13 @@ public class Goods implements Serializable {
 	@Column(name= "go_perqty")
 	private Double perQty;
 
+	/**
+	 * 商品的点击次数
+	 */
+	@Column(name = "go_visit_count")
+	private Long visitCount;
+
+
 	@Transient
 	private String selfSale;
 
@@ -522,6 +529,14 @@ public class Goods implements Serializable {
 		this.id = id;
 	}
 
+	public Long getVisitCount() {
+		return visitCount;
+	}
+
+	public void setVisitCount(Long visitCount) {
+		this.visitCount = visitCount;
+	}
+
 	public String getUuid() {
 		return uuid;
 	}

+ 28 - 0
src/main/java/com/uas/platform/b2c/prod/product/brand/modal/Brand.java

@@ -151,6 +151,18 @@ public class Brand implements Serializable {
 	@Column(name = "br_weight")
 	private Double weight;
 
+	/**
+	 * 品牌的点击次数
+	 */
+	@Column(name = "br_visit_count")
+	private Long visitCount;
+
+	/**
+	 * 品牌的搜索次数
+	 */
+	@Column(name = "br_search_count")
+	private Long searchCount;
+
 	public Long getId() {
 		return id;
 	}
@@ -319,6 +331,22 @@ public class Brand implements Serializable {
 		this.inital = inital;
 	}
 
+	public Long getVisitCount() {
+		return visitCount;
+	}
+
+	public void setVisitCount(Long visitCount) {
+		this.visitCount = visitCount;
+	}
+
+	public Long getSearchCount() {
+		return searchCount;
+	}
+
+	public void setSearchCount(Long searchCount) {
+		this.searchCount = searchCount;
+	}
+
 	public Brand() {
 
 	}

+ 28 - 0
src/main/java/com/uas/platform/b2c/prod/product/component/modal/Component.java

@@ -301,6 +301,18 @@ public class Component implements Serializable {
 	@Column(name = "cmp_inastockqty")
 	private Double inactionStockQty;
 
+	/**
+	 * 器件的点击次数
+	 */
+	@Column(name = "cmp_visit_count")
+	private Long visitCount;
+
+	/**
+	 * 器件的搜索次数
+	 */
+	@Column(name = "cmp_search_count")
+	private Long searchCount;
+
 	/**
 	 * 废料数量
 	 */
@@ -315,6 +327,22 @@ public class Component implements Serializable {
 		this.id = id;
 	}
 
+	public Long getVisitCount() {
+		return visitCount;
+	}
+
+	public void setVisitCount(Long visitCount) {
+		this.visitCount = visitCount;
+	}
+
+	public Long getSearchCount() {
+		return searchCount;
+	}
+
+	public void setSearchCount(Long searchCount) {
+		this.searchCount = searchCount;
+	}
+
 	public String getUuid() {
 		return uuid;
 	}

+ 28 - 0
src/main/java/com/uas/platform/b2c/prod/product/kind/model/Kind.java

@@ -91,6 +91,18 @@ public class Kind implements Serializable {
 	@Column(name = "ki_cmpsuffix")
 	private Long componentsuffix;
 
+	/**
+	 * 类目的点击次数
+	 */
+	@Column(name = "ki_visit_count")
+	private Long visitCount;
+
+	/**
+	 * 类目的搜索次数
+	 */
+	@Column(name = "ki_search_count")
+	private Long searchCount;
+
 	/**
 	 * 包含的属性
 	 */
@@ -232,6 +244,22 @@ public class Kind implements Serializable {
 		this.componentsuffix = componentsuffix;
 	}
 
+	public Long getVisitCount() {
+		return visitCount;
+	}
+
+	public void setVisitCount(Long visitCount) {
+		this.visitCount = visitCount;
+	}
+
+	public Long getSearchCount() {
+		return searchCount;
+	}
+
+	public void setSearchCount(Long searchCount) {
+		this.searchCount = searchCount;
+	}
+
 	/*
 	 * public KindUas converUas(Kind kind){ KindUas uas = new KindUas();
 	 * uas.setComponentPrefix(kind.getComponentPrefix());

+ 3 - 3
src/main/resources/dev/jdbc.properties

@@ -1,8 +1,8 @@
 jdbc.driverClassName=com.mysql.jdbc.Driver
 #jdbc.url=jdbc:oracle:thin:@192.168.253.6:1521:orcl
-jdbc.url=jdbc:mysql://192.168.253.12:3306/mall_test_dev?characterEncoding=UTF-8&allowMultiQueries=true&rewriteBatchedStatements=true
-jdbc.username=root
-jdbc.password=select111***
+jdbc.url=7e5ef205e2ff4ca4ac98c9f833880ec6e2fe1a4579ebe6946c98747cbe3897b66b5c4cb4985aa8f22aa1cbab4bc6bfe12e09403e6255e2fda2f113bc366bbfc5d9a2cf99c34ce47ba6bd752a9bf5f04c3faf83464996ab6930a84c7d3b9f62d759eb691bc8cd1fe3225f6e7efa5ab3a583896b06178e65c56c3c4e448a0ae4fe
+jdbc.username=474e1aeadeeecac5
+jdbc.password=48981af937f010627b96e886a0d38aad
 jdbc.initialSize=1
 jdbc.maxActive=100
 jdbc.maxIdle=50

+ 3 - 3
src/main/resources/prod/jdbc.properties

@@ -3,9 +3,9 @@
 #jdbc.username=platform$b2b
 #jdbc.password=select*fromuu
 jdbc.driverClassName=com.mysql.jdbc.Driver
-jdbc.url=jdbc:mysql://10.10.0.208:8066/mall_prod?characterEncoding=UTF-8&allowMultiQueries=true&rewriteBatchedStatements=true
-jdbc.username=sa
-jdbc.password=Select123!#%*(
+jdbc.url=7e5ef205e2ff4ca46e29823f9c378880524d69d6c11d8c1c3688f4f0b3712ba1385b2cecff54843db21897fe0c75f0a36c7921cab8fadf398fa33412ca529b7f04233bf4ae6fd3870626fa79ef7f87cb7a8905195ea37bd042b530659d0e82dda7359ee0139e0d6fb23654ba47f5f4b8c682a3c72b9d81e7
+jdbc.username=73f3cd5578b9e08b
+jdbc.password=ee922d9f0e792f87e6dff054a282692d
 jdbc.initialSize=1
 jdbc.maxActive=100
 jdbc.maxIdle=50

+ 10 - 1
src/main/resources/spring/context.xml

@@ -11,7 +11,15 @@
 	http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
 	http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-3.1.xsd">
 
-	<context:property-placeholder location="classpath*:${profile}/*.properties" />
+	<bean id="propertyConfigurer"
+		  class="com.uas.platform.b2c.core.support.EncryptablePropertyPlaceholderConfigurer">
+		<property name="locations">
+			<list>
+				<value>classpath*:${profile}/*.properties</value>
+			</list>
+		</property>
+	</bean>
+	<!--<context:property-placeholder location="classpath*:${profile}/*.properties" />-->
 	<!-- 系统运行参数注入 -->
 	<util:properties id="sys"
 		location="classpath:${profile}/sys.properties" />
@@ -23,6 +31,7 @@
 	<!-- 容器启动完成之后执行 -->
 	<bean class="com.uas.platform.b2c.core.support.ContextRefreshedProcessor" />
 
+
 	<context:component-scan base-package="com.uas.platform" />
 	<context:annotation-config />
 

+ 3 - 3
src/main/resources/test/jdbc.properties

@@ -1,8 +1,8 @@
 jdbc.driverClassName=com.mysql.jdbc.Driver
 #jdbc.url=jdbc:oracle:thin:@192.168.253.6:1521:orcl
-jdbc.url=jdbc:mysql://192.168.253.12:3306/mall_test_dev?characterEncoding=UTF-8&allowMultiQueries=true&rewriteBatchedStatements=true
-jdbc.username=root
-jdbc.password=select111***
+jdbc.url=7e5ef205e2ff4ca4ac98c9f833880ec6e2fe1a4579ebe6946c98747cbe3897b66b5c4cb4985aa8f22aa1cbab4bc6bfe12e09403e6255e2fda2f113bc366bbfc5d9a2cf99c34ce47ba6bd752a9bf5f04c3faf83464996ab6930a84c7d3b9f62d759eb691bc8cd1fe3225f6e7efa5ab3a583896b06178e65c56c3c4e448a0ae4fe
+jdbc.username=474e1aeadeeecac5
+jdbc.password=48981af937f010627b96e886a0d38aad
 jdbc.initialSize=1
 jdbc.maxActive=100
 jdbc.maxIdle=50

+ 1 - 0
src/main/webapp/WEB-INF/spring/hessian.xml

@@ -8,6 +8,7 @@
 	<bean id="defaultHandlerMapping"
 		class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
 	<!-- 提供用于验证签名的私钥 -->
+	<!-- 注意保持name 链接规则一直,/api/service/** 否则会被过滤器KeyWordFilter过滤,验证无法通过 -->
 	<bean id="apiSecretKeyService" class="com.uas.platform.b2c.external.erp.support.SecretKeyServiceImpl" />
 	<!-- 验证成功后执行(将用户信息写到SystemSession) -->
 	<bean id="apiHandlerInterceptor"

+ 3 - 1
src/main/webapp/resources/css/common.css

@@ -939,4 +939,6 @@ input::-webkit-outer-spin-button,
 input::-webkit-inner-spin-button {
 	-webkit-appearance: none !important;
 	margin: 0;
-}
+}
+/*去除textarea默认右下角可自由放大样式*/
+textarea{resize:none}

+ 15 - 7
src/main/webapp/resources/js/usercenter/controllers/forstore/buyer_transfer_ctrl.js

@@ -402,6 +402,7 @@ define([ 'app/app' ], function(app) {
 			// 平台账户
 			bankInfoService.getAdminEnterAccount('', function(data) {
 				$scope.saleAccountInfos = resolveData(data);
+				console.log($scope.saleAccountInfos);
 				angular.forEach($scope.saleAccountInfos, function(saleAccountInfo) {
 					saleAccountInfo.filterAccount = hideBankFilter(saleAccountInfo.number);
 				});
@@ -612,6 +613,9 @@ define([ 'app/app' ], function(app) {
 							return;
 						}
 						imageArray.push($scope.imagesList[i].imageUrl);
+					} else if ($scope.type == "PAIDTOVENDOR" && $scope.imagesList[i].imageUrl == '') {
+						toaster.pop('info','提示','请输入付款金额对应的付款截图');
+						return;
 					}
 				}
 			}
@@ -622,12 +626,19 @@ define([ 'app/app' ], function(app) {
 				toaster.pop('info', '提示', '没有选择要付款的订单,或付款总额为0');
 				return ;
 			}
-			if(angular.isUndefined($scope.buyAccount)||angular.equals("{}", angular.toJson($scope.buyAccount))) {
+			if(angular.isUndefined($scope.buyAccount)||angular.equals("{}", angular.toJson($scope.buyAccount))  || $scope.buyAccount == null) {
 				toaster.pop('info', '提示', '请选择买家账户');
 				return ;
 			}
-			if(angular.isUndefined($scope.saleAccount)||angular.equals("{}", angular.toJson($scope.saleAccount))) {
-				toaster.pop('info', '提示', '请选择卖家账户');
+			if ($scope.type == 'PAIDTOVENDOR'){
+				$scope.saleAccount = $scope.salePerAccount;
+			}
+			if(angular.isUndefined($scope.saleAccount)||angular.equals("{}", angular.toJson($scope.saleAccount)) || $scope.saleAccount == null) {
+				if ($scope.type == 'PAIDTOVENDOR') {
+					toaster.pop('info', '提示', '尚未选择收款账户,请联系卖家处理');
+				} else {
+					toaster.pop('info', '提示', '请选择卖家账户');
+				}
 				return ;
 			}
 			if(!str || str == ''){
@@ -669,10 +680,7 @@ define([ 'app/app' ], function(app) {
 				})
 				transfer.installmentDetailId = installmentDetailId;
 			};
-			if ($scope.type == 'PAIDTOVENDOR'){
-				$scope.saleAccount = $scope.salePerAccount;
-			}
-			// console.log($scope.saleAccount);
+
 			var buyAccount = angular.copy($scope.buyAccount);
 			var saleAccount = angular.copy($scope.saleAccount);
 			delete saleAccount.filterAccount;

+ 8 - 3
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_materialCtrl.js

@@ -263,7 +263,7 @@ define([ 'app/app' ], function(app) {
 			});
 		};
 
-		function downloadByJs(url, keyword) {
+		function downloadByJs(url, keyword, type) {
 			var form = $("<form>");   //定义一个form表单
 			form.attr('style', 'display:none');   //在form表单中添加查询参数
 			form.attr('target', '');
@@ -274,10 +274,15 @@ define([ 'app/app' ], function(app) {
 			input1.attr('type', 'hidden');
 			input1.attr('name', 'keyword');
 			input1.attr('value', keyword);
+
+			var input2 = $('<input>');
 			input1.attr('type', 'hidden');
+			input1.attr('name', 'type');
+			input1.attr('value', type);
 
 			$('body').append(form);  //将表单放置在web中
 			form.append(input1);   //将查询参数控件提交到表单上
+			form.append(input2);   //将类型参数控件提交到表单上
 			form.submit();
 		}
 
@@ -288,9 +293,9 @@ define([ 'app/app' ], function(app) {
 				return;
 			}
 			if ('standard' == $scope.standard_tab)
-				downloadByJs('trade/products/template/standard', $scope.param.keyword);
+				downloadByJs('trade/products/template/download/type', $scope.param.keyword, 'standard');
 			if ('unstandard' == $scope.standard_tab)
-				downloadByJs('trade/products/template/unstandard', $scope.param.keyword);
+				downloadByJs('trade/products/template/download/type', $scope.param.keyword, 'nStandard');
 		};
 
 		//初始化页数信息

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

@@ -1674,7 +1674,7 @@ define(['app/app'], function (app) {
                 return ;
             }
             Purchase.sellerCancelOrder({purchaseId : purchaseid, reason : $scope.purchase.reason}, null, function () {
-                toaster.pop('success','操作成功,等待家确认');
+                toaster.pop('success','操作成功,等待家确认');
                 $modalInstance.close();
                 // $scope.reloadRoute();
             }, function (res) {

+ 3 - 3
src/main/webapp/resources/view/admin/logUsage.html

@@ -55,13 +55,13 @@
 			<tbody ng-repeat="logUsage in $data">
 				<tr class="text-center">
 					<td><span ng-bind="logUsage.userUU"></span></td>
-					<td><span ng-bind="logUsage.user.userName"></span></td>
+					<td><span ng-bind="logUsage.userName"></span></td>
 					<td><span ng-bind="logUsage.title"></span></td>
 					<td><span ng-bind="logUsage.message+logUsage.detail"></span></td>
 					<td><span ng-bind="logUsage.time | date:'yyyy-MM-dd HH:mm:ss'"></span></td>
 					<td><span ng-bind="logUsage.ip"></span></td>
-					<td><span ng-bind="logUsage.user.userTel"></span></td>
-					<td><span ng-bind="logUsage.user.userEmail"></span></td>
+					<td><span ng-bind="logUsage.userTel"></span></td>
+					<td><span ng-bind="logUsage.userEmail"></span></td>
 				</tr>
 			</tbody>
 		</table>

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

@@ -151,7 +151,7 @@
 				<span>
 					<h5><img src="static/img/user/images/ok.png"/><p>已完成</p></h5>
 					<font>绑定手机</font>
-					<span class="gray">绑定手机后,您即可享受淘宝丰富的手机服务,如手机找回密码等。</span>
+					<span class="gray">绑定手机后,您即可享受优软商城丰富的手机服务,如手机找回密码等。</span>
 				</span>
 				<!--<a href="javascript:void(0)">修改</a>-->
 			</li>

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

@@ -60,6 +60,7 @@
 						<div ng-if="type == 'PAIDTOVENDOR'" ng-bind="salePerAccount.bankname" title="{{salePerAccount.bankname}}" class="word-in-10"></div>
 						<div ng-if="type == 'PAIDTOVENDOR'" ng-bind="salePerAccount.number"></div>
 						<div ng-if="type == 'PAIDTOVENDOR'" ng-bind="salePerAccount.accountname"></div>
+						<div ng-if="!salePerAccount || salePerAccount == null"><i class="fa fa-exclamation-circle" style="color: #5078cb;margin-right: 5px;"></i>尚未选择收款账户,请联系卖家处理</div>
 					</li>
 				</ul>
 			</div>

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

@@ -450,7 +450,7 @@
                             <span>
                                 <h5><img src="static/img/vendor/images/ok.png"/><p>已完成</p></h5>
                                 <font>绑定手机</font>
-                                <span class="gray">绑定手机后,您即可享受淘宝丰富的手机服务,如手机找回密码等。</span>
+                                <span class="gray">绑定手机后,您即可享受优软商城丰富的手机服务,如手机找回密码等。</span>
                             </span>
                         <!--<a href="#">修改</a>-->
                     </li>

+ 40 - 0
src/test/java/com/uas/platform/b2c/DesTest.java

@@ -0,0 +1,40 @@
+package com.uas.platform.b2c;
+
+import com.uas.platform.core.util.Des;
+import org.junit.Test;
+
+public class DesTest {
+    @Test
+    public void test(){
+        try {
+            Des des = new Des();
+            byte b[] = des.encrypt("root", "10101010");
+            System.out.println(des.toHexString(b));
+
+            b = des.encrypt("jdbc:mysql://192.168.253.12:3306/mall_test_dev?characterEncoding=UTF-8&allowMultiQueries=true&rewriteBatchedStatements=true", "10101010");
+            System.out.println(des.toHexString(b));
+            //System.out.println(des.decrypt(des.toHexString(b), "10101010"));
+
+            b = des.encrypt("select111***", "10101010");
+            System.out.println(des.toHexString(b));
+
+            //正式
+            b = des.encrypt("sa", "10101010");
+            System.out.println(des.toHexString(b));
+
+            b = des.encrypt("jdbc:mysql://10.10.0.208:8066/mall_prod?characterEncoding=UTF-8&allowMultiQueries=true&rewriteBatchedStatements=true", "10101010");
+            System.out.println(des.toHexString(b));
+            //System.out.println(des.decrypt(des.toHexString(b), "10101010"));
+
+            b = des.encrypt("Select123!#%*(", "10101010");
+            System.out.println(des.toHexString(b));
+
+
+
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+
+    }
+}
+