瀏覽代碼

Merge remote-tracking branch 'origin/dev-mysql' into dev-mysql

hulh 8 年之前
父節點
當前提交
bd3bac6f16
共有 25 個文件被更改,包括 536 次插入267 次删除
  1. 5 2
      src/main/java/com/uas/platform/b2c/common/account/controller/SecurityController.java
  2. 46 0
      src/main/java/com/uas/platform/b2c/common/account/model/UsageLog.java
  3. 11 1
      src/main/java/com/uas/platform/b2c/core/config/MicroServicesConf.java
  4. 14 3
      src/main/java/com/uas/platform/b2c/core/filter/KeyWordFilter.java
  5. 39 0
      src/main/java/com/uas/platform/b2c/core/support/EncryptablePropertyPlaceholderConfigurer.java
  6. 15 0
      src/main/java/com/uas/platform/b2c/prod/commodity/model/Goods.java
  7. 28 0
      src/main/java/com/uas/platform/b2c/prod/product/brand/modal/Brand.java
  8. 28 0
      src/main/java/com/uas/platform/b2c/prod/product/component/modal/Component.java
  9. 28 0
      src/main/java/com/uas/platform/b2c/prod/product/kind/model/Kind.java
  10. 3 3
      src/main/resources/dev/jdbc.properties
  11. 3 3
      src/main/resources/prod/jdbc.properties
  12. 10 1
      src/main/resources/spring/context.xml
  13. 3 3
      src/main/resources/test/jdbc.properties
  14. 1 0
      src/main/webapp/WEB-INF/spring/hessian.xml
  15. 3 1
      src/main/webapp/resources/css/common.css
  16. 191 191
      src/main/webapp/resources/js/usercenter/controllers/forstore/buyer_cart_ctrl.js
  17. 15 7
      src/main/webapp/resources/js/usercenter/controllers/forstore/buyer_transfer_ctrl.js
  18. 1 1
      src/main/webapp/resources/js/vendor/controllers/forstore/vendor_order_ctrl.js
  19. 3 3
      src/main/webapp/resources/view/admin/logUsage.html
  20. 1 1
      src/main/webapp/resources/view/usercenter/forstore/account_manager.html
  21. 15 15
      src/main/webapp/resources/view/usercenter/forstore/buyer_cart.html
  22. 1 0
      src/main/webapp/resources/view/usercenter/forstore/buyer_transfer.html
  23. 31 31
      src/main/webapp/resources/view/usercenter/forstore/order_pay.html
  24. 1 1
      src/main/webapp/resources/view/vendor/forstore/vendor_account_management.html
  25. 40 0
      src/test/java/com/uas/platform/b2c/DesTest.java

+ 5 - 2
src/main/java/com/uas/platform/b2c/common/account/controller/SecurityController.java

@@ -59,21 +59,24 @@ public class SecurityController {
 	@RequestMapping(value = "/logout", method = RequestMethod.GET, headers = "Accept=application/json")
 	@ResponseStatus(value = HttpStatus.OK)
 	@ResponseBody
-	public ModelMap logout(HttpServletRequest request, HttpServletResponse response, HttpSession session, String returnUrl)
+	public String logout(HttpServletRequest request, HttpServletResponse response, HttpSession session, String returnUrl)
 			throws IOException {
+		String callback =request.getParameter("jsoncallback");
+		response.setContentType("text/html;charset=UTF-8");
 		session.invalidate();
 		SSOHelper.clearLogin(request, response);
 		SystemSession.clear();
 		if (StringUtils.isEmpty(returnUrl)) {
 			returnUrl = request.getHeader("Referer");
 		}
+		return "successCallback({success:'1'})";
 		/*boolean cross = SSOHelper.isCrossDomain(request);
 		if (cross) {
 			request.getSession().setAttribute(SSOConfig.SSOReferer, returnUrl);
 			// 跨域情况,需要再次询问账户中心
 			returnUrl = request.getContextPath() + "/logout/proxy";
 		}*/
-		return new ModelMap("content", returnUrl);
+		//return new ModelMap("content", returnUrl);
 	}
 
 	/**

+ 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}

+ 191 - 191
src/main/webapp/resources/js/usercenter/controllers/forstore/buyer_cart_ctrl.js

@@ -43,47 +43,47 @@ define(["app/app", 'jquery-summernote'], function(app) {
 		$scope.isChooseAll = false;
 
 		$scope.loadData = function (){
-				Cart.getPageInfo($scope.pageInfo, function(data) {
-					$scope.isDataLoading = false;
-					$scope.total = data.totalElements;
-					$scope.pageNum = data.totalPages;
+			Cart.getPageInfo($scope.pageInfo, function(data) {
+				$scope.isDataLoading = false;
+				$scope.total = data.totalElements;
+				$scope.pageNum = data.totalPages;
 
-					angular.forEach(data.content, function (cart) {
-						cart.buyCurrency = cart.currencyName.indexOf("RMB") > -1 ? "RMB" : "USD";
-						cart.isSelect = false;
-						//计算分段和统计一下价格
-						$scope.getPrice(cart);
-
-						//便于后期循环
-						$scope.carts.push(cart);
-						$scope.disabledAddAndSub(cart);
-						$scope.countByPage += 1;
-						var isContain = false;
-						for (var i = 0; i < $scope.cartMap.length; i++) {
-							if(angular.equals($scope.cartMap[i].name, cart.storeName)) {
-								$scope.cartMap[i].arr.push(cart);
-								isContain = true;
-							}
-						}
-						if(!isContain) {
-							var obj = {};
-							obj.name = cart.storeName;
-							obj.arr = [];
-							obj.arr.push(cart);
-							$scope.cartMap.push(obj);
+				angular.forEach(data.content, function (cart) {
+					cart.buyCurrency = cart.currencyName.indexOf("RMB") > -1 ? "RMB" : "USD";
+					cart.isSelect = false;
+					//计算分段和统计一下价格
+					$scope.getPrice(cart);
+
+					//便于后期循环
+					$scope.carts.push(cart);
+					$scope.disabledAddAndSub(cart);
+					$scope.countByPage += 1;
+					var isContain = false;
+					for (var i = 0; i < $scope.cartMap.length; i++) {
+						if(angular.equals($scope.cartMap[i].name, cart.storeName)) {
+							$scope.cartMap[i].arr.push(cart);
+							isContain = true;
 						}
-					});
-					$scope.cartIsEmpty = !$scope.carts.length ? true : false;
-					//设置全选的复选框
-					$scope.isChooseAll = $scope.isAllSelect($scope.carts);
+					}
+					if(!isContain) {
+						var obj = {};
+						obj.name = cart.storeName;
+						obj.arr = [];
+						obj.arr.push(cart);
+						$scope.cartMap.push(obj);
+					}
+				});
+				$scope.cartIsEmpty = !$scope.carts.length ? true : false;
+				//设置全选的复选框
+				$scope.isChooseAll = $scope.isAllSelect($scope.carts);
 
-					//设置店铺复选框的状态
-					angular.forEach($scope.cartMap, function (store) {
-						$scope.selectedStore[store.name] = $scope.isAllSelect(store.arr);
-					});
-				},function() {
-					toaster.pop('error', "提示", "获取购物车信息失败,请刷新页面");
+				//设置店铺复选框的状态
+				angular.forEach($scope.cartMap, function (store) {
+					$scope.selectedStore[store.name] = $scope.isAllSelect(store.arr);
 				});
+			},function() {
+				toaster.pop('error', "提示", "获取购物车信息失败,请刷新页面");
+			});
 		};
 
 		$scope.loadData();
@@ -120,7 +120,7 @@ define(["app/app", 'jquery-summernote'], function(app) {
 			//计算总价格
 			$scope.calculateAmount($scope.selectedStoreCarts);
 		};
-		
+
 		// 减少按钮,每次减minPackQty
 		$scope.reduce = function(cart){
 			if(cart.status == 1) {
@@ -139,7 +139,7 @@ define(["app/app", 'jquery-summernote'], function(app) {
 			//计算总价格
 			$scope.calculateAmount($scope.selectedStoreCarts);
 		};
-				
+
 		//根据搜索词过滤购物车信息,对类目、品牌、器件筛选
 		$scope.cartFilterCurrency = function(cartGroup) {
 			var result = false;
@@ -167,8 +167,8 @@ define(["app/app", 'jquery-summernote'], function(app) {
 
 		$scope.closeTable = function() {
 			console.log('0kds');
-        };
-        // //监听点击的位置,隐藏价格梯度的信息
+		};
+		// //监听点击的位置,隐藏价格梯度的信息
 		// document.onclick = function(event) {
 		// 	$scope.$apply(function () {
 		// 		angular.forEach($scope.carts, function (cart) {
@@ -181,9 +181,9 @@ define(["app/app", 'jquery-summernote'], function(app) {
 
 		//查看价格分段。
 		$scope.togglePrice = function (cart) {
-            cart.display = cart.display == 'block' ? 'none' : 'block';
-        };
-        // 统计已勾选批次
+			cart.display = cart.display == 'block' ? 'none' : 'block';
+		};
+		// 统计已勾选批次
 		var creatSelectArr = function(){
 			var arr = [];
 			angular.forEach($scope.carts, function(cart) {
@@ -328,8 +328,8 @@ define(["app/app", 'jquery-summernote'], function(app) {
 						return ;
 					}
 				}
-                $scope.totalMoneyInfo.countBT++;
-                $scope.selectedStoreCarts.push(cart);
+				$scope.totalMoneyInfo.countBT++;
+				$scope.selectedStoreCarts.push(cart);
 			}else {//取消勾选
 				$scope.totalMoneyInfo.countBT--;
 				$scope.selectedStoreCarts = $scope.selectedStoreCarts.filter(function(item) {
@@ -373,36 +373,36 @@ define(["app/app", 'jquery-summernote'], function(app) {
 			}
 		};
 
-        // 清空失效产品
-        $scope.deleteInvalid = function(){
+		// 清空失效产品
+		$scope.deleteInvalid = function(){
 			var arr = [];
-            angular.forEach($scope.carts, function(cart){
-                if(cart.status == 1){
-                    arr.push(cart.id);
-                }
-            });
-            if(arr.length <= 0) {
-                toaster.pop('warning', '提示', '购物车内目前没有失效的产品');
-                return ;
-            }
-            var ids = angular.toJson(arr);
-            $modal.open({
-                templateUrl : 'static/view/common/modal/invalid_delete_modal.html',
-                controller : 'cartDeleteCtrl',
-                size : 'md',
-                resolve : {
-                    description : function () {
-                        return '是否删除购物车内的无效商品';
-                    },
-                    ids : function () {
-                        return ids;
-                    }
-                }
-            }).result.then(function () {
+			angular.forEach($scope.carts, function(cart){
+				if(cart.status == 1){
+					arr.push(cart.id);
+				}
+			});
+			if(arr.length <= 0) {
+				toaster.pop('warning', '提示', '购物车内目前没有失效的产品');
+				return ;
+			}
+			var ids = angular.toJson(arr);
+			$modal.open({
+				templateUrl : 'static/view/common/modal/invalid_delete_modal.html',
+				controller : 'cartDeleteCtrl',
+				size : 'md',
+				resolve : {
+					description : function () {
+						return '是否删除购物车内的无效商品';
+					},
+					ids : function () {
+						return ids;
+					}
+				}
+			}).result.then(function () {
 				afterDeleteRefreshInfo(arr);
 			}, function () {
-            });
-        };
+			});
+		};
 
 		var afterDeleteRefreshInfo = function (arr) {
 			if(arr.length < 1) {
@@ -446,22 +446,22 @@ define(["app/app", 'jquery-summernote'], function(app) {
 			$scope.calculateAmount($scope.selectedStoreCarts);
 		}
 
-        $scope.deleteById = function(id){
-            var arr = [];
-            if(id != null){
-                arr.push(id);
-            }else {
-                angular.forEach($scope.carts, function(cart){
-                    if(cart.isSelect){
-                        arr.push(cart.id);
-                    }
-                });
-            }
-            if(arr.length <= 0) {
+		$scope.deleteById = function(id){
+			var arr = [];
+			if(id != null){
+				arr.push(id);
+			}else {
+				angular.forEach($scope.carts, function(cart){
+					if(cart.isSelect){
+						arr.push(cart.id);
+					}
+				});
+			}
+			if(arr.length <= 0) {
 				toaster.pop('warning', '提示', '请选择需要删除的商品');
 				return ;
 			}
-            var ids = angular.toJson(arr);
+			var ids = angular.toJson(arr);
 			$modal.open({
 				templateUrl : 'static/view/common/modal/delete_modal.html',
 				controller : 'cartDeleteCtrl',
@@ -470,9 +470,9 @@ define(["app/app", 'jquery-summernote'], function(app) {
 					description : function () {
 						return '是否删除此商品';
 					},
-                    ids : function () {
-                        return ids;
-                    }
+					ids : function () {
+						return ids;
+					}
 				}
 			}).result.then(function () {
 				afterDeleteRefreshInfo(arr);
@@ -499,8 +499,8 @@ define(["app/app", 'jquery-summernote'], function(app) {
 				});
 				return !contain;
 			});
-        };
-        //判断是空对象
+		};
+		//判断是空对象
 		$scope.isNullObject = function(obj) {
 			var isObject = true;
 			for(var k in obj) {
@@ -538,8 +538,8 @@ define(["app/app", 'jquery-summernote'], function(app) {
 					cart.contactSeller = false;
 				};
 			});
-        };
-        /**
+		};
+		/**
 		 * 监听点击的位置,隐藏相应的状态框
 		 * @param event
 		 */
@@ -576,8 +576,8 @@ define(["app/app", 'jquery-summernote'], function(app) {
 					if(!isThisTag) {
 						$scope.carts[i].contactSeller = false;
 					}
-                }
-            });
+				}
+			});
 		};
 
 
@@ -599,23 +599,23 @@ define(["app/app", 'jquery-summernote'], function(app) {
 		$scope.setAllCartCheck = function(checked) {
 			$scope.selectedStoreCarts = [];
 			angular.forEach($scope.cartMap, function(store) {
-					if(store.arr && store.arr.length > 0) {
-						var storeChecked = false;
-						angular.forEach(store.arr, function (cart) {
-							if(cart.status != 1 && checked) {//购物车的信息是否有效【是否下架】
-								cart.isSelect = checked;
-								storeChecked = true;
-								$scope.selectedStoreCarts.push(cart);
-							}else {
-								cart.isSelect = false;
-							}
-						});
-						if(storeChecked) {
-							$scope.selectedStore[store.name] = checked;//店铺的复选框也需要同步
+				if(store.arr && store.arr.length > 0) {
+					var storeChecked = false;
+					angular.forEach(store.arr, function (cart) {
+						if(cart.status != 1 && checked) {//购物车的信息是否有效【是否下架】
+							cart.isSelect = checked;
+							storeChecked = true;
+							$scope.selectedStoreCarts.push(cart);
 						}else {
-							$scope.selectedStore[store.name] = false;//如果没有执行过storeChecked = true,则该店铺代表所有的都没有勾选
+							cart.isSelect = false;
 						}
+					});
+					if(storeChecked) {
+						$scope.selectedStore[store.name] = checked;//店铺的复选框也需要同步
+					}else {
+						$scope.selectedStore[store.name] = false;//如果没有执行过storeChecked = true,则该店铺代表所有的都没有勾选
 					}
+				}
 
 			});
 		};
@@ -634,8 +634,8 @@ define(["app/app", 'jquery-summernote'], function(app) {
 				}
 			}
 			return !isAlldisabled&&isAllChecked;
-        };
-        /**
+		};
+		/**
 		 * 店铺选中状态信息
 		 */
 		$scope.selectedStore = {};
@@ -780,17 +780,17 @@ define(["app/app", 'jquery-summernote'], function(app) {
 			SessionService.set("buyNow",false);
 			var jsonOrderDetails = angular.toJson(result);
 			Order.saveByGroup({}, jsonOrderDetails, function(result){
-                if(result.code == 1) {
+				if(result.code == 1) {
 					if(result.message) {
 						toaster.pop('info', result.message);
 					}
-                    $state.go('order_pay', {orderid :  enIdFilter(result.data.orderid)});
-                }else if(result.code == 7){
-                    toaster.pop('info', '提示', "选中的购物车信息已经失效,将为您刷新界面之后重新操作");
+					$state.go('order_pay', {orderid :  enIdFilter(result.data.orderid)});
+				}else if(result.code == 7){
+					toaster.pop('info', '提示', "选中的购物车信息已经失效,将为您刷新界面之后重新操作");
 					$timeout(function () {
 						window.location.reload();
 					}, 1500);
-                }else {
+				}else {
 					toaster.pop('info', '提示', result.message);
 				}
 			}, function(res){
@@ -838,41 +838,41 @@ define(["app/app", 'jquery-summernote'], function(app) {
 			}
 
 		};
-        // 移入收藏后删除购物车操作
+		// 移入收藏后删除购物车操作
 		$scope.collectDelete = function(id){
-            var arr = [];
-            if(id != null){
-                arr.push(id);
-            }else {
-                angular.forEach($scope.carts, function(cart){
-                    if(cart.isSelect){
-                        arr.push(cart.id);
-                    }
-                });
-            }
-            var ids = angular.toJson(arr);
-            Cart.deleteById({ids : ids}, function(data){
-                $rootScope.countCart = $rootScope.countCart - arr.length;
-
-                //更新选中的购物车信息
-                $scope.selectedStoreCarts = $scope.arrayFilterId($scope.selectedStoreCarts, arr);
-                //更新购物车信息
-                $scope.carts = $scope.arrayFilterId($scope.carts, arr);
-                //判断是否全部删除,如果全部删除,就将全选置为取消状态。
-                if($scope.carts.length == 0) {
-                    $scope.isChooseAll = false;
+			var arr = [];
+			if(id != null){
+				arr.push(id);
+			}else {
+				angular.forEach($scope.carts, function(cart){
+					if(cart.isSelect){
+						arr.push(cart.id);
+					}
+				});
+			}
+			var ids = angular.toJson(arr);
+			Cart.deleteById({ids : ids}, function(data){
+				$rootScope.countCart = $rootScope.countCart - arr.length;
+
+				//更新选中的购物车信息
+				$scope.selectedStoreCarts = $scope.arrayFilterId($scope.selectedStoreCarts, arr);
+				//更新购物车信息
+				$scope.carts = $scope.arrayFilterId($scope.carts, arr);
+				//判断是否全部删除,如果全部删除,就将全选置为取消状态。
+				if($scope.carts.length == 0) {
+					$scope.isChooseAll = false;
 					$scope.cartIsEmpty = true;
-                }
+				}
 
-                //更新map中购物车信息
-                var deleteStoreName = [];
+				//更新map中购物车信息
+				var deleteStoreName = [];
 				angular.forEach($scope.cartMap, function(store) {
-						if(store.arr && store.arr.length > 0) {
-							store.arr = $scope.arrayFilterId(store.arr, arr)
-							if(!store.arr || !store.arr.length || store.arr.length == 0) {
-								deleteStoreName.push(store.name);
-							}
+					if(store.arr && store.arr.length > 0) {
+						store.arr = $scope.arrayFilterId(store.arr, arr)
+						if(!store.arr || !store.arr.length || store.arr.length == 0) {
+							deleteStoreName.push(store.name);
 						}
+					}
 				});
 				//删除$scope.cartMap多余的部分。
 				angular.forEach(deleteStoreName, function(storeName) {
@@ -881,27 +881,27 @@ define(["app/app", 'jquery-summernote'], function(app) {
 					});
 				});
 
-                //计算总金额
-                $scope.calculateAmount($scope.selectedStoreCarts);
+				//计算总金额
+				$scope.calculateAmount($scope.selectedStoreCarts);
 
-            }, function (res) {
-                toaster.pop('error', '系统错误', '购物车信息删除失败' + res.data);
-            });
+			}, function (res) {
+				toaster.pop('error', '系统错误', '购物车信息删除失败' + res.data);
+			});
 
 
 		};
-        // 移入收藏
-        $scope.collect = function(uuid, id) {
+		// 移入收藏
+		$scope.collect = function(uuid, id) {
 			if(uuid){
-                ComponentActive.getSimpleInfoByUuid({uuid: uuid}, { }, function(data){
-                    var obj = {'componentid': data.id, 'kind': 2};
-                    collectionService.saveEntity({ }, obj, function(data) {
-                        $scope.collectDelete(id);
-                        toaster.pop('success', '收藏成功');
-                    }, function(response) {
-                        toaster.pop('error', '收藏失败');
-                    })
-                });
+				ComponentActive.getSimpleInfoByUuid({uuid: uuid}, { }, function(data){
+					var obj = {'componentid': data.id, 'kind': 2};
+					collectionService.saveEntity({ }, obj, function(data) {
+						$scope.collectDelete(id);
+						toaster.pop('success', '收藏成功');
+					}, function(response) {
+						toaster.pop('error', '收藏失败');
+					})
+				});
 			}else{
 				var uuids = [];
 				angular.forEach($scope.cartMap, function(store){
@@ -915,14 +915,14 @@ define(["app/app", 'jquery-summernote'], function(app) {
 					toaster.pop('info', '你还未选择任何产品');
 					return;
 				}
-                collectionService.saveStores({ }, uuids, function(response){
+				collectionService.saveStores({ }, uuids, function(response){
 					if(response.data == "success"){
-                        $scope.collectDelete();
-                        toaster.pop('success', '收藏成功');
+						$scope.collectDelete();
+						toaster.pop('success', '收藏成功');
 					}
 				},function () {
-                    toaster.pop('error', '收藏失败');
-                })
+					toaster.pop('error', '收藏失败');
+				})
 			}
 		}
 
@@ -968,32 +968,32 @@ define(["app/app", 'jquery-summernote'], function(app) {
 		}
 	}]);
 
-    /**
-     * 删除的逻辑
-     */
+	/**
+	 * 删除的逻辑
+	 */
 	app.register.controller('cartDeleteCtrl', ['$scope', 'description', 'Cart', '$modalInstance', 'toaster', 'ids', function ($scope, description, Cart, $modalInstance, toaster,ids) {
 
-        $scope.confirmDelete = function () {
-            Cart.deleteById({ids : ids}, function(data){
-                toaster.pop('success', '成功删除');
-                $modalInstance.close()
-            }, function (res) {
-                toaster.pop('error', '系统错误', '购物车信息删除失败' + res.data);
-            });
-        };
-
-        $scope.confirmDeleteInvalid = function () {
-            Cart.deleteById({ids : ids}, function(data){
-                toaster.pop('success', '成功清除购物车内的无效产品');
-                $modalInstance.close()
-            }, function (res) {
-                toaster.pop('error', '系统错误', '购物车信息删除失败' + res.data);
-            });
-        };
-
-        $scope.cancleDelete = function () {
-            $modalInstance.dismiss();
-        }
+		$scope.confirmDelete = function () {
+			Cart.deleteById({ids : ids}, function(data){
+				toaster.pop('success', '成功删除');
+				$modalInstance.close()
+			}, function (res) {
+				toaster.pop('error', '系统错误', '购物车信息删除失败' + res.data);
+			});
+		};
+
+		$scope.confirmDeleteInvalid = function () {
+			Cart.deleteById({ids : ids}, function(data){
+				toaster.pop('success', '成功清除购物车内的无效产品');
+				$modalInstance.close()
+			}, function (res) {
+				toaster.pop('error', '系统错误', '购物车信息删除失败' + res.data);
+			});
+		};
+
+		$scope.cancleDelete = function () {
+			$modalInstance.dismiss();
+		}
 
 	}]);
 

+ 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;

+ 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>

+ 15 - 15
src/main/webapp/resources/view/usercenter/forstore/buyer_cart.html

@@ -511,11 +511,11 @@
 		</div>
 		<div class="oder_list" style="margin-top: 0; background: #f5f5f5;">
 			<!--<div class="page">-->
-				<!--<ul>-->
-					<!--<li><a ng-click="jumpToPage(pageInfo.page - 1)">上一页</a> </li>-->
-					<!--<li>第<input ng-model="toPage" ng-search="jumpToPage(toPage)">页</li>-->
-					<!--<li><a ng-click="jumpToPage(pageInfo.page + 1)">下一页</a> </li>-->
-				<!--</ul>-->
+			<!--<ul>-->
+			<!--<li><a ng-click="jumpToPage(pageInfo.page - 1)">上一页</a> </li>-->
+			<!--<li>第<input ng-model="toPage" ng-search="jumpToPage(toPage)">页</li>-->
+			<!--<li><a ng-click="jumpToPage(pageInfo.page + 1)">下一页</a> </li>-->
+			<!--</ul>-->
 			<!--</div>-->
 			<!--购物车清单-->
 			<dl style="display: inline-block;" when-scrolled="scrollLoadData()">
@@ -749,14 +749,14 @@
 	</div>-->
 </div>
 <script>
-    $(function(){
-        $(window).bind("scroll",function() {
-            // 判断窗口的滚动条是否接近页面底部,这里的20可以自定义
-            if ($(document).scrollTop() + $(window).height() > $(document).height() - 330) {
-                $('.shopCar .oder_list dl .all_price.fixed-bottom').slideUp()
-            }else {
-                $('.shopCar .oder_list dl .all_price.fixed-bottom').slideDown()
-            }
-        })
-    })
+	$(function(){
+		$(window).bind("scroll",function() {
+			// 判断窗口的滚动条是否接近页面底部,这里的20可以自定义
+			if ($(document).scrollTop() + $(window).height() > $(document).height() - 330) {
+				$('.shopCar .oder_list dl .all_price.fixed-bottom').slideUp()
+			}else {
+				$('.shopCar .oder_list dl .all_price.fixed-bottom').slideDown()
+			}
+		})
+	})
 </script>

+ 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>

+ 31 - 31
src/main/webapp/resources/view/usercenter/forstore/order_pay.html

@@ -698,28 +698,28 @@
 								<p><a href="product/brand/{{detail.branduuid}}/" target="_blank" style="color: #323232">品牌:<b ng-bind="detail.brName" style="color: #323232" title="{{detail.brName}}"></b></a></p>
 							</div>
                         </span>
-						<span class="wd01" ng-if="order.status == 501">
+							<span class="wd01" ng-if="order.status == 501">
 							交期 :
 							<i ng-if="detail.goodsHistory.b2cMinDelivery == detail.goodsHistory.b2cMaxDelivery" ng-bind="detail.goodsHistory.b2cMinDelivery"></i>
 							<i ng-if="detail.goodsHistory.b2cMinDelivery != detail.goodsHistory.b2cMaxDelivery" ng-bind="detail.goodsHistory.b2cMinDelivery + '-' + detail.goodsHistory.b2cMaxDelivery"></i>
-							<!--{{detail.goodsHistory.b2cMinDelivery}}-{{detail.goodsHistory.b2cMaxDelivery}}-->
+								<!--{{detail.goodsHistory.b2cMinDelivery}}-{{detail.goodsHistory.b2cMaxDelivery}}-->
 						</span>
-						<span class="wd01" ng-if="order.status != 501">
+							<span class="wd01" ng-if="order.status != 501">
 							交期 :
 						<i ng-if="detail.b2cMinDelivery == detail.b2cMaxDelivery" ng-bind="detail.b2cMinDelivery"></i>
 						<i ng-if="detail.b2cMinDelivery != detail.b2cMaxDelivery" ng-bind="detail.b2cMinDelivery + '-' + detail.b2cMaxDelivery"></i>
 						</span>
-						<span>
+							<span>
 							<select class="select" ng-model="detail.currencyName" ng-if="order.buyNow&&(order.status == 501)&&(detail.goodsHistory.currencyName=='RMB-USD')" ng-change="changeCurrency(detail)">
 								<option value="RMB" selected="selected" ng-bind="detail.rmbUnitPrice | formateNumber : 6 | currencySysmbol : 'RMB'"></option>
 								<option value="USD" ng-bind="detail.usdUnitPrice | formateNumber : 6 | currencySysmbol : 'USD'"></option>
 							</select>
 						</span>
-						<span class="wd01" ng-if="(order.status == 501)&&(detail.goodsHistory.currencyName == 'RMB')" ng-bind="detail.rmbUnitPrice | formateNumber : 6 | currencySysmbol : 'RMB'"></span>
-						<span class="wd01" ng-if="(order.status == 501)&&(detail.goodsHistory.currencyName == 'USD')" ng-bind="detail.usdUnitPrice | formateNumber : 6 | currencySysmbol : 'USD'"></span>
-						<span class="wd01" ng-bind="detail.taxUnitprice | formateNumber : 6 | currencySysmbol : 'RMB'" ng-if="detail.currencyName.indexOf('RMB') > -1 && order.status != 501"></span>
-						<span class="wd01" ng-bind="detail.taxUnitprice | formateNumber : 6 | currencySysmbol : 'USD'" ng-if="detail.currencyName.indexOf('USD') > -1 && order.status != 501"></span>
-						<span class="wd01">
+							<span class="wd01" ng-if="(order.status == 501)&&(detail.goodsHistory.currencyName == 'RMB')" ng-bind="detail.rmbUnitPrice | formateNumber : 6 | currencySysmbol : 'RMB'"></span>
+							<span class="wd01" ng-if="(order.status == 501)&&(detail.goodsHistory.currencyName == 'USD')" ng-bind="detail.usdUnitPrice | formateNumber : 6 | currencySysmbol : 'USD'"></span>
+							<span class="wd01" ng-bind="detail.taxUnitprice | formateNumber : 6 | currencySysmbol : 'RMB'" ng-if="detail.currencyName.indexOf('RMB') > -1 && order.status != 501"></span>
+							<span class="wd01" ng-bind="detail.taxUnitprice | formateNumber : 6 | currencySysmbol : 'USD'" ng-if="detail.currencyName.indexOf('USD') > -1 && order.status != 501"></span>
+							<span class="wd01">
                             <div class="btn-wrap">
                             <span class="number add-minus" ng-if="order.status == 501">
                                 <a href="javascript:void(0)" class="reduce" ng-click="reduce(detail)" ng-disabled="detail.minusDisabled">-</a>
@@ -761,7 +761,7 @@
 									<i ng-bind="detail.remark">金石为开取数据五块钱叫稍微亲上加亲</i>
 								</div>
 								<em ng-if="order.status!=501 && !detail.remark">&nbsp;</em>
-                        		<!--<em ng-if="order.status!=501" ng-bind="detail.remark" style="color: #333; line-height: 20px; display: inline-block; padding-top: 10px;"></em>-->
+								<!--<em ng-if="order.status!=501" ng-bind="detail.remark" style="color: #333; line-height: 20px; display: inline-block; padding-top: 10px;"></em>-->
 							</span>
 						</dd>
 						<dd class="oder-remark">
@@ -816,17 +816,17 @@
 						</dd>
 						<div class="self-list" ng-if="order.status==501 && deliveryList[details[0].storeid].method == 1303">
 							<!--自提点列表-->
-								<ul class="self-advice" ng-if="order.status == 501">
-									<li ng-repeat="item in takeSelfMap[details[0].storeid]">
-										<label class="check-act">
-											<input type="radio" id="{{item.id}}" name="1" ng-click="updateTakeSelf(details[0].storeid, item)"/>
-											<label for="{{item.id}}"></label>
-										</label>
-										<strong style="margin-left: 0" ng-bind="item.takename"></strong>
-										<strong>地址:<i ng-bind="item.area"></i>&nbsp;&nbsp;<i ng-bind="item.detailAddress"></i></strong>
-										<strong>营业时间:<i ng-bind="item.businesstime">周一至周五 8:30-18:00</i></strong>
-									</li>
-								</ul>
+							<ul class="self-advice" ng-if="order.status == 501">
+								<li ng-repeat="item in takeSelfMap[details[0].storeid]">
+									<label class="check-act">
+										<input type="radio" id="{{item.id}}" name="1" ng-click="updateTakeSelf(details[0].storeid, item)"/>
+										<label for="{{item.id}}"></label>
+									</label>
+									<strong style="margin-left: 0" ng-bind="item.takename"></strong>
+									<strong>地址:<i ng-bind="item.area"></i>&nbsp;&nbsp;<i ng-bind="item.detailAddress"></i></strong>
+									<strong>营业时间:<i ng-bind="item.businesstime">周一至周五 8:30-18:00</i></strong>
+								</li>
+							</ul>
 						</div>
 						<dd class="line60" ng-if="order.status!=501 && (takeList ? takeList[details[0].storeid] : takeSelf)">
 							<span class="user-address" style="padding-left: 40px;" ng-if="takeList && takeList[details[0].storeid]">
@@ -841,16 +841,16 @@
 							</span>
 						</dd>
 						<!--<div class="self-list" ng-if="order.status!=501">-->
-							<!--<span ng-if="takeList">-->
-								<!--<strong style="margin-left: 0" ng-bind="takeList[details[0].storeid].takename"></strong>-->
-								<!--<strong>地址:<i ng-bind="takeList[details[0].storeid].area"></i>&nbsp;&nbsp;<i ng-bind="takeList[details[0].storeid].detailAddress"></i></strong>-->
-								<!--<strong>营业时间:<i ng-bind="takeList[details[0].storeid].businesstime">周一至周五 8:30-18:00</i></strong>-->
-							<!--</span>-->
-							<!--<span ng-if="!takeList && takeSelf">-->
-								<!--<strong style="margin-left: 0" ng-bind="takeSelf.takename"></strong>-->
-								<!--<strong>地址:<i ng-bind="takeSelf.area"></i>&nbsp;&nbsp;<i ng-bind="takeSelf.detailAddress"></i></strong>-->
-								<!--<strong>营业时间:<i ng-bind="takeSelf.businesstime">周一至周五 8:30-18:00</i></strong>-->
-							<!--</span>-->
+						<!--<span ng-if="takeList">-->
+						<!--<strong style="margin-left: 0" ng-bind="takeList[details[0].storeid].takename"></strong>-->
+						<!--<strong>地址:<i ng-bind="takeList[details[0].storeid].area"></i>&nbsp;&nbsp;<i ng-bind="takeList[details[0].storeid].detailAddress"></i></strong>-->
+						<!--<strong>营业时间:<i ng-bind="takeList[details[0].storeid].businesstime">周一至周五 8:30-18:00</i></strong>-->
+						<!--</span>-->
+						<!--<span ng-if="!takeList && takeSelf">-->
+						<!--<strong style="margin-left: 0" ng-bind="takeSelf.takename"></strong>-->
+						<!--<strong>地址:<i ng-bind="takeSelf.area"></i>&nbsp;&nbsp;<i ng-bind="takeSelf.detailAddress"></i></strong>-->
+						<!--<strong>营业时间:<i ng-bind="takeSelf.businesstime">周一至周五 8:30-18:00</i></strong>-->
+						<!--</span>-->
 						<!--</div>-->
 					</div>
 					<dd class="pay_price">

+ 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();
+        }
+
+    }
+}
+