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

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

# Conflicts:
#	src/main/java/com/uas/platform/b2c/prod/product/brand/dao/BrandDao.java
yangc 8 лет назад
Родитель
Сommit
98f57ec968
29 измененных файлов с 891 добавлено и 307 удалено
  1. 20 4
      src/main/java/com/uas/platform/b2c/common/search/service/impl/SearcherServiceImpl.java
  2. 233 220
      src/main/java/com/uas/platform/b2c/core/filter/SSOInterceptor.java
  3. 1 0
      src/main/java/com/uas/platform/b2c/prod/commodity/controller/GoodsController.java
  4. 10 0
      src/main/java/com/uas/platform/b2c/prod/commodity/dao/GoodsDao.java
  5. 14 0
      src/main/java/com/uas/platform/b2c/prod/commodity/model/Goods.java
  6. 7 0
      src/main/java/com/uas/platform/b2c/prod/commodity/service/GoodsService.java
  7. 5 0
      src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/GoodsServiceImpl.java
  8. 21 0
      src/main/java/com/uas/platform/b2c/prod/product/brand/api/BrandController.java
  9. 1 0
      src/main/java/com/uas/platform/b2c/prod/product/brand/controller/BrandController.java
  10. 15 3
      src/main/java/com/uas/platform/b2c/prod/product/brand/dao/BrandDao.java
  11. 15 0
      src/main/java/com/uas/platform/b2c/prod/product/brand/dao/BrandInfoDao.java
  12. 20 0
      src/main/java/com/uas/platform/b2c/prod/product/brand/service/BrandService.java
  13. 18 0
      src/main/java/com/uas/platform/b2c/prod/product/brand/service/impl/BrandServiceImpl.java
  14. 1 0
      src/main/java/com/uas/platform/b2c/prod/product/component/api/ComponentController.java
  15. 12 4
      src/main/java/com/uas/platform/b2c/prod/product/component/dao/ComponentDao.java
  16. 74 0
      src/main/java/com/uas/platform/b2c/prod/product/component/modal/ComponentGoods.java
  17. 7 0
      src/main/java/com/uas/platform/b2c/prod/product/component/service/ComponentService.java
  18. 4 0
      src/main/java/com/uas/platform/b2c/prod/product/component/service/impl/ComponentServiceImpl.java
  19. 2 2
      src/main/resources/test/sys.properties
  20. 7 3
      src/main/webapp/WEB-INF/views/normal/adminWithNav.html
  21. 21 7
      src/main/webapp/resources/js/admin/app.js
  22. 61 0
      src/main/webapp/resources/js/admin/controllers/ads/ads_brand.js
  23. 171 0
      src/main/webapp/resources/js/admin/controllers/search/search_See.js
  24. 11 0
      src/main/webapp/resources/js/common/query/brand.js
  25. 16 32
      src/main/webapp/resources/js/usercenter/controllers/forstore/account_manager_ctrl.js
  26. 16 32
      src/main/webapp/resources/js/vendor/controllers/forstore/vendor_account_management_ctrl.js
  27. 27 0
      src/main/webapp/resources/view/admin/ads/ads_brand.html
  28. 70 0
      src/main/webapp/resources/view/admin/search/search_See.html
  29. 11 0
      src/test/java/com/uas/platform/b2c/DesTest.java

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

@@ -9,6 +9,8 @@ import com.uas.platform.b2c.common.search.rpc.service.SearchService;
 import com.uas.platform.b2c.common.search.service.SearcherService;
 import com.uas.platform.b2c.common.search.service.SearcherService;
 import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.core.utils.FastjsonUtils;
 import com.uas.platform.b2c.core.utils.FastjsonUtils;
+import com.uas.platform.b2c.prod.commodity.dao.GoodsDao;
+import com.uas.platform.b2c.prod.commodity.model.Goods;
 import com.uas.platform.b2c.prod.product.brand.dao.BrandDao;
 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.ComponentGoodsDao;
 import com.uas.platform.b2c.prod.product.component.dao.ComponentInfoDao;
 import com.uas.platform.b2c.prod.product.component.dao.ComponentInfoDao;
@@ -60,6 +62,9 @@ public class SearcherServiceImpl implements SearcherService {
 	@Autowired
 	@Autowired
 	private BrandDao brandDao;
 	private BrandDao brandDao;
 
 
+	@Autowired
+	private GoodsDao goodsDao;
+
 	@Autowired
 	@Autowired
 	private SearchHistoryDao searchHistoryDao;
 	private SearchHistoryDao searchHistoryDao;
 
 
@@ -220,11 +225,22 @@ public class SearcherServiceImpl implements SearcherService {
 		List<ComponentGoods> components = new ArrayList<>();
 		List<ComponentGoods> components = new ArrayList<>();
 		if (!CollectionUtils.isEmpty(componentIds)) {
 		if (!CollectionUtils.isEmpty(componentIds)) {
 			for (int i = 0 ;i < componentIds.size() ; i++){
 			for (int i = 0 ;i < componentIds.size() ; i++){
-				Long cid = Long.valueOf(componentIds.get(i).toString());
+				Long cid = null;
+				if(!StringUtils.isEmpty
+						(componentIds.get(i)))  {
+					cid = Long.valueOf(componentIds.get(i).toString());
+				}
 				Long gid = goodsIds.get(i) == null ? 0L : Long.valueOf(goodsIds.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);
+				if((cid == null) && (gid != 0L)) {
+					Goods goods = goodsDao.findOne(gid);
+					if(goods != null) {
+						components.add(new ComponentGoods(goods));
+					}
+				}else if(cid != null){
+					ComponentGoods componentGoods = componentGoodsDao.findByCmpIdAndGoId(cid, gid);
+					if (componentGoods != null){
+						components.add(componentGoods);
+					}
 				}
 				}
 			}
 			}
 			map.put("components", components);// 当前页器件内容
 			map.put("components", components);// 当前页器件内容

+ 233 - 220
src/main/java/com/uas/platform/b2c/core/filter/SSOInterceptor.java

@@ -44,246 +44,259 @@ import java.util.*;
  */
  */
 public class SSOInterceptor extends AbstractSSOInterceptor {
 public class SSOInterceptor extends AbstractSSOInterceptor {
 
 
-	private static final Logger logger = Logger.getLogger(SSOInterceptor.class);
+    private static final Logger logger = Logger.getLogger(SSOInterceptor.class);
 
 
-	@Autowired
-	private UserService userService;
-	@Autowired
-	private ResourceItemDao resourceItemDao;
-	@Autowired
-	private SigninLogService signinLogService;
-	@Value("#{sys.profile}")
-	private String profile;
+    @Autowired
+    private UserService userService;
+    @Autowired
+    private ResourceItemDao resourceItemDao;
+    @Autowired
+    private SigninLogService signinLogService;
+    @Value("#{sys.profile}")
+    private String profile;
 
 
-	private final DeviceResolver deviceResolver = new LiteDeviceResolver();
+    private final DeviceResolver deviceResolver = new LiteDeviceResolver();
 
 
-	private HashMap<String, Collection<ConfigAttribute>> resourceMap;
-	private HashMap<Long, Collection<GrantedAuthority>> authorities;
+    private HashMap<String, Collection<ConfigAttribute>> resourceMap;
+    private HashMap<Long, Collection<GrantedAuthority>> authorities;
 
 
-	private User getUserByToken(SSOToken token) {
-		User authedUser = null;
-		if (token.getData() != null) {
-			com.uas.account.entity.User tokenUser = FlexJsonUtils.fromJson(token.getData(), com.uas.account.entity.User.class);
-			if (!StringUtils.isEmpty(tokenUser.getDialectUID())) {
-				// dialectUID表示client系统自己的唯一标识,比如user_uu,手机号没设置的情况下使用
-				authedUser = userService.findUserByUserUU(Long.parseLong(tokenUser.getDialectUID()));
-			} else if (!StringUtils.isEmpty(tokenUser.getUid())) {
-				// UID表示所有系统公认的唯一标识,这里统一使用手机号
-				authedUser = userService.findUserByUserTel(tokenUser.getUid());
-			} else {
-				logger.error(String.format("invalid user %s, please set uid or dialectUID", tokenUser.getName()));
-			}
-			if (authedUser != null && authedUser.getEnterprises() != null) {
-				// 企业资料在client系统自己的唯一标识,比如en_uu
-				if (tokenUser.getSpaceDialectUID() != null) {
-					authedUser.setCurrentEnterprise(Long.parseLong(tokenUser.getSpaceDialectUID()));
-				} else if (tokenUser.getSpaceUID() != null) {
-					for (Enterprise enterprise : authedUser.getEnterprises()) {
-						// 企业资料在所有系统公认的唯一标识,这里使用商业登记证号
-						if (tokenUser.getSpaceUID().equals(enterprise.getEnBussinessCode())) {
-							authedUser.setEnterprise(enterprise);
-							break;
-						}
-					}
-				}
-			}
-		}
-		return authedUser;
-	}
+    private User getUserByToken(SSOToken token) {
+        User authedUser = null;
+        if (token.getData() != null) {
+            com.uas.account.entity.User tokenUser = FlexJsonUtils.fromJson(token.getData(), com.uas.account.entity.User.class);
+            if (!StringUtils.isEmpty(tokenUser.getDialectUID())) {
+                // dialectUID表示client系统自己的唯一标识,比如user_uu,手机号没设置的情况下使用
+                authedUser = userService.findUserByUserUU(Long.parseLong(tokenUser.getDialectUID()));
+            } else if (!StringUtils.isEmpty(tokenUser.getUid())) {
+                // UID表示所有系统公认的唯一标识,这里统一使用手机号
+                authedUser = userService.findUserByUserTel(tokenUser.getUid());
+            } else {
+                logger.error(String.format("invalid user %s, please set uid or dialectUID", tokenUser.getName()));
+            }
+            if (authedUser != null && authedUser.getEnterprises() != null) {
+                // 企业资料在client系统自己的唯一标识,比如en_uu
+                if (tokenUser.getSpaceDialectUID() != null) {
+                    authedUser.setCurrentEnterprise(Long.parseLong(tokenUser.getSpaceDialectUID()));
+                } else if (tokenUser.getSpaceUID() != null) {
+                    for (Enterprise enterprise : authedUser.getEnterprises()) {
+                        // 企业资料在所有系统公认的唯一标识,这里使用商业登记证号
+                        if (tokenUser.getSpaceUID().equals(enterprise.getEnBussinessCode())) {
+                            authedUser.setEnterprise(enterprise);
+                            break;
+                        }
+                    }
+                }
+            }
+        }
+        return authedUser;
+    }
 
 
-	@Override
-	protected boolean onAuthenticateFailed(HttpServletRequest request, HttpServletResponse response) {
-		SystemSession.clear();
-		if (request.getRequestURI().endsWith(PathConstant.AUTHENTICATION_URL)) {
-			return true;
-		}
-		response.setStatus(HttpStatus.UNAUTHORIZED.value());
-		if (!isRedirectAble(request)) {
-			try {
-				printJson(response, new ModelMap("loginUrl", getLoginPage(request, response)));
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-		}
-		return false;
-	}
+    @Override
+    protected boolean onAuthenticateFailed(HttpServletRequest request, HttpServletResponse response) {
+        SystemSession.clear();
+        if (request.getRequestURI().endsWith(PathConstant.AUTHENTICATION_URL)) {
+            return true;
+        }
+        response.setStatus(HttpStatus.UNAUTHORIZED.value());
+        if (!isRedirectAble(request)) {
+            try {
+                printJson(response, new ModelMap("loginUrl", getLoginPage(request, response)));
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        return false;
+    }
 
 
-	/**
-	 * 输出json格式
-	 * 
-	 * @param obj
-	 * @throws IOException
-	 */
-	protected void printJson(HttpServletResponse response, Object obj) throws IOException {
-		response.addHeader("Content-Type", "application/json; charset=UTF-8");
-		PrintWriter printWriter = response.getWriter();
-		printWriter.append(FlexJsonUtils.toJson(obj));
-		printWriter.flush();
-		printWriter.close();
-	}
+    /**
+     * 输出json格式
+     *
+     * @param obj
+     * @throws IOException
+     */
+    protected void printJson(HttpServletResponse response, Object obj) throws IOException {
+        response.addHeader("Content-Type", "application/json; charset=UTF-8");
+        PrintWriter printWriter = response.getWriter();
+        printWriter.append(FlexJsonUtils.toJson(obj));
+        printWriter.flush();
+        printWriter.close();
+    }
 
 
-	private String getLoginPage(HttpServletRequest request, HttpServletResponse response) throws IOException {
-		request.getSession().setAttribute(SSOConfig.SSOReferer, request.getHeader("Referer"));
-		SSOHelper.clearLogin(request, response);
-		String redirectUrl = SSOHelper.getRedirectRefererLoginUrl(request);
-		/*boolean cross = SSOHelper.isCrossDomain(request);
+    private String getLoginPage(HttpServletRequest request, HttpServletResponse response) throws IOException {
+        request.getSession().setAttribute(SSOConfig.SSOReferer, request.getHeader("Referer"));
+        SSOHelper.clearLogin(request, response);
+        String redirectUrl;
+        if ("prod".equals(profile)) {
+            redirectUrl = (SSOHelper.getRedirectLoginUrl(request, "https://www.usoftmall.com" + request.getRequestURI()));
+        } else {
+            if (null == request.getParameter("returnURL") || "".equals(request.getParameter("returnURL"))) {
+                redirectUrl = (SSOHelper.getRedirectLoginUrl(request,"http://192.168.253.12:23400" + request.getRequestURI()));
+            } else {
+                redirectUrl = (SSOHelper.getRedirectLoginUrl(request, request.getParameter("returnURL")));
+            }
+        }
+        //String redirectUrl = SSOHelper.getRedirectRefererLoginUrl(request);
+        /*boolean cross = SSOHelper.isCrossDomain(request);
 		if (cross) {
 		if (cross) {
 			// 跨域代理界面
 			// 跨域代理界面
 			redirectUrl = request.getContextPath() + "/login/proxy";
 			redirectUrl = request.getContextPath() + "/login/proxy";
 		}*/
 		}*/
-		return redirectUrl;
-	}
+        return redirectUrl;
+    }
 
 
-	@Override
-	protected void onAuthenticateSuccess(HttpServletRequest request, HttpServletResponse response) {
-		User user = (User) request.getSession().getAttribute("user");
-		SSOToken token = SSOHelper.attrToken(request);
-		// cookie变化的情况下,session可能还未变化
-		if (user == null || (user.getUserTel() != null && !token.getUid().equals(user.getUserTel()))) {
-			user = getUserByToken(token);
-			if (user != null) {
-				user.setIp(AgentUtils.getIp(request));
-				request.getSession().setAttribute("user", user);
-				setGrantedAuthorities(user);
-			}
-		}
-		if (user != null) {
-			SystemSession.setUser(user);
-			accessDecision(request, user);
-		}
-	}
+    @Override
+    protected void onAuthenticateSuccess(HttpServletRequest request, HttpServletResponse response) {
+        User user = (User) request.getSession().getAttribute("user");
+        SSOToken token = SSOHelper.attrToken(request);
+        // cookie变化的情况下,session可能还未变化
+        if (user == null || (user.getUserTel() != null && !token.getUid().equals(user.getUserTel()))) {
+            user = getUserByToken(token);
+            if (user != null) {
+                user.setIp(AgentUtils.getIp(request));
+                request.getSession().setAttribute("user", user);
+                setGrantedAuthorities(user);
+            }
+        }
+        if (user != null) {
+            SystemSession.setUser(user);
+            accessDecision(request, user);
+        }
+    }
 
 
-	/**
-	 * 权限验证
-	 */
-	private void accessDecision(HttpServletRequest request, User user) {
-		Collection<ConfigAttribute> configAttributes = getAttributes(request);
-		if (null == configAttributes || configAttributes.size() == 0 || user.isSys()) {
-			return;
-		}
-		Iterator<ConfigAttribute> iterator = configAttributes.iterator();
-		String needPermission = null;
-		if (!authorities.containsKey(user.getUserUU())) {
-			setGrantedAuthorities(user);
-		}
-		Collection<GrantedAuthority> userAuthorities = authorities.get(user.getUserUU());
-		while (iterator.hasNext()) {
-			ConfigAttribute configAttribute = iterator.next();
-			needPermission = configAttribute.getAttribute();
-			if (userAuthorities != null) {
-				for (GrantedAuthority ga : userAuthorities) {
-					if (needPermission.equals(ga.getAuthority())) {
-						return;
-					}
-				}
-			}
-		}
-		if (needPermission != null){
-			return;
+    /**
+     * 权限验证
+     */
+    private void accessDecision(HttpServletRequest request, User user) {
+        Collection<ConfigAttribute> configAttributes = getAttributes(request);
+        if (null == configAttributes || configAttributes.size() == 0 || user.isSys()) {
+            return;
+        }
+        Iterator<ConfigAttribute> iterator = configAttributes.iterator();
+        String needPermission = null;
+        if (!authorities.containsKey(user.getUserUU())) {
+            setGrantedAuthorities(user);
+        }
+        Collection<GrantedAuthority> userAuthorities = authorities.get(user.getUserUU());
+        while (iterator.hasNext()) {
+            ConfigAttribute configAttribute = iterator.next();
+            needPermission = configAttribute.getAttribute();
+            if (userAuthorities != null) {
+                for (GrantedAuthority ga : userAuthorities) {
+                    if (needPermission.equals(ga.getAuthority())) {
+                        return;
+                    }
+                }
+            }
+        }
+        if (needPermission != null) {
+            return;
 //			throw new AccessDeniedException("无法访问,没有 " + needPermission + " 权限!");
 //			throw new AccessDeniedException("无法访问,没有 " + needPermission + " 权限!");
-		}
-	}
+        }
+    }
 
 
-	@Override
-	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
-		try {
-			super.afterCompletion(request, response, handler, ex);
-		} finally {
-			SystemSession.clear();
-		}
-	}
+    @Override
+    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
+        try {
+            super.afterCompletion(request, response, handler, ex);
+        } finally {
+            SystemSession.clear();
+        }
+    }
 
 
-	/**
-	 * 加载资源,初始化资源变量
-	 * 
-	 */
-	private void loadResourceDefine() {
-		if (resourceMap == null) {
-			resourceMap = new HashMap<String, Collection<ConfigAttribute>>();
-			List<ResourceItem> resources = resourceItemDao.findAll();
-			for (ResourceItem resource : resources) {
-				Collection<ConfigAttribute> configAttributes = new ArrayList<ConfigAttribute>();
-				ConfigAttribute configAttribute = new SecurityConfig(resource.getName());
-				configAttributes.add(configAttribute);
-				resourceMap.put(resource.getMethod() + ":" + resource.getUrl(), configAttributes);
-			}
-		}
-	}
+    /**
+     * 加载资源,初始化资源变量
+     */
+    private void loadResourceDefine() {
+        if (resourceMap == null) {
+            resourceMap = new HashMap<String, Collection<ConfigAttribute>>();
+            List<ResourceItem> resources = resourceItemDao.findAll();
+            for (ResourceItem resource : resources) {
+                Collection<ConfigAttribute> configAttributes = new ArrayList<ConfigAttribute>();
+                ConfigAttribute configAttribute = new SecurityConfig(resource.getName());
+                configAttributes.add(configAttribute);
+                resourceMap.put(resource.getMethod() + ":" + resource.getUrl(), configAttributes);
+            }
+        }
+    }
 
 
-	/**
-	 * 根据路径获取访问权限的集合接口
-	 * 
-	 * @param request
-	 * @return
-	 * @throws IllegalArgumentException
-	 */
-	public Collection<ConfigAttribute> getAttributes(HttpServletRequest request) throws IllegalArgumentException {
-		if (resourceMap == null)
-			loadResourceDefine();
+    /**
+     * 根据路径获取访问权限的集合接口
+     *
+     * @param request
+     * @return
+     * @throws IllegalArgumentException
+     */
+    public Collection<ConfigAttribute> getAttributes(HttpServletRequest request) throws IllegalArgumentException {
+        if (resourceMap == null)
+            loadResourceDefine();
 
 
-		for (Iterator<String> iter = resourceMap.keySet().iterator(); iter.hasNext();) {
-			String resourceKey = iter.next();
-			String[] resourceParam = resourceKey.split(":");
-			String resourceMethod = resourceParam[0];
-			String resourceUrl = resourceParam[1];
-			AntPathRequestMatcher matcher = new AntPathRequestMatcher(resourceUrl);
-			if (null != resourceUrl && request.getMethod().equals(resourceMethod) && matcher.matches(request)) {
-				return resourceMap.get(resourceKey);
-			}
-		}
-		return null;
-	}
+        for (Iterator<String> iter = resourceMap.keySet().iterator(); iter.hasNext(); ) {
+            String resourceKey = iter.next();
+            String[] resourceParam = resourceKey.split(":");
+            String resourceMethod = resourceParam[0];
+            String resourceUrl = resourceParam[1];
+            AntPathRequestMatcher matcher = new AntPathRequestMatcher(resourceUrl);
+            if (null != resourceUrl && request.getMethod().equals(resourceMethod) && matcher.matches(request)) {
+                return resourceMap.get(resourceKey);
+            }
+        }
+        return null;
+    }
 
 
-	private void setGrantedAuthorities(User user) {
-		Set<GrantedAuthority> authSet = new HashSet<GrantedAuthority>();
-		user.setCurrentEnterpriseRoles();
-		Set<Role> roles = user.getRoles();
-		if (!CollectionUtils.isEmpty(roles)) {
-			for (Role role : roles) {
-				if (role.isSys()) {// 超级账号
-					user.setIssys(Constant.YES);
-					break;
-				}
-				Set<ResourceItem> resourceItems = role.getResourceItems();
-				if (!CollectionUtils.isEmpty(resourceItems)) {
-					for (ResourceItem res : resourceItems) {
-						authSet.add(new SimpleGrantedAuthority(res.getName()));
-					}
-				}
-			}
-		}
-		if (authorities == null) {
-			authorities = new HashMap<Long, Collection<GrantedAuthority>>();
-		}
-		authorities.put(user.getUserUU(), authSet);
-	}
+    private void setGrantedAuthorities(User user) {
+        Set<GrantedAuthority> authSet = new HashSet<GrantedAuthority>();
+        user.setCurrentEnterpriseRoles();
+        Set<Role> roles = user.getRoles();
+        if (!CollectionUtils.isEmpty(roles)) {
+            for (Role role : roles) {
+                if (role.isSys()) {// 超级账号
+                    user.setIssys(Constant.YES);
+                    break;
+                }
+                Set<ResourceItem> resourceItems = role.getResourceItems();
+                if (!CollectionUtils.isEmpty(resourceItems)) {
+                    for (ResourceItem res : resourceItems) {
+                        authSet.add(new SimpleGrantedAuthority(res.getName()));
+                    }
+                }
+            }
+        }
+        if (authorities == null) {
+            authorities = new HashMap<Long, Collection<GrantedAuthority>>();
+        }
+        authorities.put(user.getUserUU(), authSet);
+    }
 
 
-	@Override
-	protected void sendRedirect(HttpServletRequest request, HttpServletResponse response) throws IOException {
-		boolean cross = SSOHelper.isCrossDomain(request);
-		if (cross) {
-			request.getSession().setAttribute("SSOReferer", request.getRequestURL());
-			if ("prod".equals(profile)){
-				response.sendRedirect(SSOHelper.getRedirectLoginUrl(request, "https://www.usoftmall.com"+request.getRequestURI()));
-			}else{
-				response.sendRedirect(SSOHelper.getRedirectLoginUrl(request, request.getParameter("returnURL"))+ "&baseUrl=http://192.168.253.121:3000/login/other" );
-			}
-		} else {
-			SSOHelper.clearRedirectLogin(request, response);
-		}
-	}
+    @Override
+    protected void sendRedirect(HttpServletRequest request, HttpServletResponse response) throws IOException {
+        boolean cross = SSOHelper.isCrossDomain(request);
+        if (cross) {
+            request.getSession().setAttribute("SSOReferer", request.getRequestURL());
+            if ("prod".equals(profile)) {
+                response.sendRedirect(SSOHelper.getRedirectLoginUrl(request, "https://www.usoftmall.com" + request.getRequestURI()));
+            } else {
+                if (null == request.getParameter("returnURL") || "".equals(request.getParameter("returnURL"))) {
+                    response.sendRedirect(SSOHelper.getRedirectLoginUrl(request,"http://192.168.253.12:23400" + request.getRequestURI()));
+                } else {
+                    response.sendRedirect(SSOHelper.getRedirectLoginUrl(request, request.getParameter("returnURL")));
+                }
+            }
+        } else {
+            SSOHelper.clearRedirectLogin(request, response);
+        }
+    }
 
 
-	private SitePreference getDefaultSitePreferenceForDevice(Device device) {
-		if (device == null) {
-			return null;
-		}
-		if (device.isMobile()) {
-			return SitePreference.MOBILE;
-		}
-		if (device.isTablet()) {
-			return SitePreference.TABLET;
-		}
-		return SitePreference.NORMAL;
-	}
+    private SitePreference getDefaultSitePreferenceForDevice(Device device) {
+        if (device == null) {
+            return null;
+        }
+        if (device.isMobile()) {
+            return SitePreference.MOBILE;
+        }
+        if (device.isTablet()) {
+            return SitePreference.TABLET;
+        }
+        return SitePreference.NORMAL;
+    }
 
 
 }
 }

+ 1 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/controller/GoodsController.java

@@ -313,6 +313,7 @@ public class GoodsController {
 	public Goods findByBatchCode(@PathVariable String batchCode) {
 	public Goods findByBatchCode(@PathVariable String batchCode) {
 		batchCode = StringUtilB2C.decodeValue(batchCode);
 		batchCode = StringUtilB2C.decodeValue(batchCode);
 		Goods goods = goodsService.findGoodsByBatchCode(batchCode);
 		Goods goods = goodsService.findGoodsByBatchCode(batchCode);
+		goodsService.addVisitCount(batchCode);
 		logger.log("商品批次", "根据批次号获取商品信息", "批次号:" + batchCode);
 		logger.log("商品批次", "根据批次号获取商品信息", "批次号:" + batchCode);
 		return goods;
 		return goods;
 	}
 	}

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

@@ -521,4 +521,14 @@ public interface GoodsDao extends JpaSpecificationExecutor<Goods>, JpaRepository
      */
      */
     @Query(value = "select sum(go_reserve) from trade$goods where go_enuu=:enuu and cmp_uuid=:uuid and go_status=:status ", nativeQuery = true)
     @Query(value = "select sum(go_reserve) from trade$goods where go_enuu=:enuu and cmp_uuid=:uuid and go_status=:status ", nativeQuery = true)
     Double getSumReserveByEnUUAndUuidAndStatus(@Param("enuu") Long enuu, @Param("uuid") String uuid, @Param("status") Integer status);
     Double getSumReserveByEnUUAndUuidAndStatus(@Param("enuu") Long enuu, @Param("uuid") String uuid, @Param("status") Integer status);
+
+    /**
+     * 产品点击次数加一
+     * @param batchCode
+     * @return
+     */
+    @Modifying
+    @Transactional
+    @Query( nativeQuery = true, value = "update trade$goods set go_visit_count = ifnull(go_visit_count, 0) + 1 where go_batchcode = :batchCode")
+    public void addVisitCount(@Param("batchCode") String batchCode);
 }
 }

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

@@ -212,6 +212,12 @@ public class Goods implements Serializable {
 	@Transient
 	@Transient
 	private Double oldReserve;
 	private Double oldReserve;
 
 
+	/**
+	 * 单位
+	 */
+	@Column(name = "go_unit")
+	private String unit;
+
 	/**
 	/**
 	 * 发布备注
 	 * 发布备注
 	 */
 	 */
@@ -561,6 +567,14 @@ public class Goods implements Serializable {
 		this.img = img;
 		this.img = img;
 	}
 	}
 
 
+	public String getUnit() {
+		return unit;
+	}
+
+	public void setUnit(String unit) {
+		this.unit = unit;
+	}
+
 	public String getKindNameCn() {
 	public String getKindNameCn() {
 		return kindNameCn;
 		return kindNameCn;
 	}
 	}

+ 7 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/service/GoodsService.java

@@ -548,4 +548,11 @@ public interface GoodsService {
      * @return
      * @return
      */
      */
     ResultMap updateGoodsRelateInfo(List<Order> orders, List<Cart> carts, List<GoodsBrowsingHistory> browsingHistoryList, Product product, ProductStandardPutOnInfo putOnInfo, GoodsHistory goodsHistory, Goods goods);
     ResultMap updateGoodsRelateInfo(List<Order> orders, List<Cart> carts, List<GoodsBrowsingHistory> browsingHistoryList, Product product, ProductStandardPutOnInfo putOnInfo, GoodsHistory goodsHistory, Goods goods);
+
+    /**
+     * 商品点击次数加一
+     * @param uuid
+     * @return
+     */
+    public void addVisitCount(String batchCode);
 }
 }

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

@@ -2379,4 +2379,9 @@ public class GoodsServiceImpl implements GoodsService {
 		goodsHistoryService.save(goodsHistory);
 		goodsHistoryService.save(goodsHistory);
 		return ResultMap.success(null);
 		return ResultMap.success(null);
 	}
 	}
+
+	@Override
+	public void addVisitCount(String batchCode) {
+		goodsDao.addVisitCount(batchCode);
+	}
 }
 }

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

@@ -45,6 +45,26 @@ public class BrandController {
 		return brandService.getAllBrandInfo();
 		return brandService.getAllBrandInfo();
 	}
 	}
 
 
+	/**
+	 * 查找已推广的按权重排序的品牌信息
+	 *
+	 * @return 品牌简易信息
+	 */
+	@RequestMapping(value = "/Info/weight", method = RequestMethod.GET)
+	public List<BrandInfo> getBrankInfoOrderByWeight() {
+		return brandService.getAllBrandInfoByWeight();
+	}
+
+	/**
+	 * 修改某个品牌的 权重
+	 *
+	 * @return 品牌简易信息
+	 */
+	@RequestMapping(value = "/Info/weight", method = RequestMethod.PUT)
+	public BrandInfo updateBrankInfoOrderByWeight(@RequestBody BrandInfo brandInfo ,@RequestParam Double weight) {
+		return brandService.updateBrankInfoOrderByWeight(brandInfo,weight);
+	}
+
 	/**
 	/**
 	 * 获取按首字母分组的品牌信息
 	 * 获取按首字母分组的品牌信息
 	 * @return 品牌简易信息
 	 * @return 品牌简易信息
@@ -123,6 +143,7 @@ public class BrandController {
 	 */
 	 */
 	@RequestMapping(value = "/{uuid}")
 	@RequestMapping(value = "/{uuid}")
 	private Brand findByUuid(@PathVariable("uuid") String uuid) {
 	private Brand findByUuid(@PathVariable("uuid") String uuid) {
+		brandService.addVisitCount(uuid);
 		return brandService.findByUuid(uuid);
 		return brandService.findByUuid(uuid);
 	}
 	}
 
 

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

@@ -52,6 +52,7 @@ public class BrandController {
 	 */
 	 */
 	@RequestMapping(value = "/{uuid}", method = RequestMethod.GET)
 	@RequestMapping(value = "/{uuid}", method = RequestMethod.GET)
 	public Brand findByUuid(@PathVariable("uuid") String uuid) {
 	public Brand findByUuid(@PathVariable("uuid") String uuid) {
+		brandService.addVisitCount(uuid);
 		return brandService.findByUuid(uuid);
 		return brandService.findByUuid(uuid);
 	}
 	}
 
 

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

@@ -7,11 +7,13 @@ import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.query.Param;
 import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 import org.springframework.stereotype.Repository;
 
 
 import com.uas.platform.b2c.prod.product.brand.modal.Brand;
 import com.uas.platform.b2c.prod.product.brand.modal.Brand;
+import org.springframework.transaction.annotation.Transactional;
 
 
 /**
 /**
  * 品牌
  * 品牌
@@ -72,10 +74,20 @@ public interface BrandDao extends JpaSpecificationExecutor<Brand>, JpaRepository
 	public List<Brand> findByUpperNameCn(@Param("nameCn") String nameCn);
 	public List<Brand> findByUpperNameCn(@Param("nameCn") String nameCn);
 
 
 	/**
 	/**
-	 * 分页根据首字母获取品牌信息
-	 * @param initals
+	 * 器件点击次数加一
+	 * @param uuid
 	 * @return
 	 * @return
 	 */
 	 */
-	@Query(value = "select b from Brand b  where b.inital in :initals")
+	@Modifying
+	@Transactional
+	@Query( nativeQuery = true, value = "update product$brand b set b.br_visit_count = ifnull(b.br_visit_count, 0) + 1 where b.br_uuid = :uuid")
+
+    public void addVisitCount(@Param("uuid") String uuid);
+    /**
+     * 分页根据首字母获取品牌信息
+     * @param initals
+     * @return
+     */
+    @Query(value = "select b from Brand b  where b.inital in :initals")
 	public Page<Brand> findInInitalsPage(@Param("initals") String[] initals , Pageable pageable);
 	public Page<Brand> findInInitalsPage(@Param("initals") String[] initals , Pageable pageable);
 }
 }

+ 15 - 0
src/main/java/com/uas/platform/b2c/prod/product/brand/dao/BrandInfoDao.java

@@ -66,4 +66,19 @@ public interface BrandInfoDao extends JpaSpecificationExecutor<BrandInfo>, JpaRe
 	 */
 	 */
 	@Query(nativeQuery = true, value = "select * from product$brand where br_inital in :initals")
 	@Query(nativeQuery = true, value = "select * from product$brand where br_inital in :initals")
 	public List<BrandInfo> findInInitals(@Param("initals") String[] initals);
 	public List<BrandInfo> findInInitals(@Param("initals") String[] initals);
+
+	/**
+	 * 根据权重倒序排列品牌信息
+	 * @return
+	 */
+	@Query(value = "select b from BrandInfo b where b.weight is not null and b.weight <> 0 order by b.weight desc")
+	public List<BrandInfo> findByWeight();
+
+	/**
+	 * 根据权重倒序排列品牌信息
+	 * @return
+	 */
+	@Modifying
+	@Query(value = "update BrandInfo b set b.weight = :increaseNum where b.uuid = :uuid")
+	public int setWeight(@Param("uuid") String uuid, @Param("increaseNum") Double increaseNum);
 }
 }

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

@@ -42,6 +42,19 @@ public interface BrandService {
 	 */
 	 */
 	public List<BrandInfo> getAllBrandInfo();
 	public List<BrandInfo> getAllBrandInfo();
 
 
+	/**
+	 * 查找已推广的按权重排序的品牌信息
+	 * @author wangdy
+	 * @return 品牌简易信息
+	 */
+	public List<BrandInfo> getAllBrandInfoByWeight();
+
+	/**
+	 * 修改某个品牌的 权重
+	 * @return 品牌简易信息
+	 */
+	public BrandInfo updateBrankInfoOrderByWeight(BrandInfo brandInfo , Double weight);
+
 	/**
 	/**
 	 * 获取按首字母分组的品牌信息
 	 * 获取按首字母分组的品牌信息
 	 * @return 品牌简易信息
 	 * @return 品牌简易信息
@@ -173,4 +186,11 @@ public interface BrandService {
 	 * @return 品牌信息
 	 * @return 品牌信息
 	 */
 	 */
 	public List<BrandMostSimpleInfo> getBatchBrandMostSimpleInfs(List<Long> batchIds);
 	public List<BrandMostSimpleInfo> getBatchBrandMostSimpleInfs(List<Long> batchIds);
+
+	/**
+	 * 器件点击次数加一
+	 * @param uuid
+	 * @return
+	 */
+	public void addVisitCount(String uuid);
 }
 }

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

@@ -29,6 +29,7 @@ import org.springframework.data.domain.Sort;
 import org.springframework.data.jpa.domain.Specification;
 import org.springframework.data.jpa.domain.Specification;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 import org.springframework.util.StringUtils;
 
 
 import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -68,6 +69,18 @@ public class BrandServiceImpl implements BrandService {
 		return brandInfoDao.findAll();
 		return brandInfoDao.findAll();
 	}
 	}
 
 
+	@Override
+	public List<BrandInfo> getAllBrandInfoByWeight() {
+		return brandInfoDao.findByWeight();
+	}
+
+	@Override
+	@Transactional
+	public BrandInfo updateBrankInfoOrderByWeight(BrandInfo brandInfo , Double weight) {
+		brandInfoDao.setWeight(brandInfo.getUuid(),weight);
+		return brandInfoDao.findOne(brandInfo.getId());
+	}
+
 	@Override
 	@Override
 	public Map<String, List<BrandInfo>> getInitialSimpleInfo() {
 	public Map<String, List<BrandInfo>> getInitialSimpleInfo() {
 		List<BrandInfo> brands = brandInfoDao.findAll();
 		List<BrandInfo> brands = brandInfoDao.findAll();
@@ -399,4 +412,9 @@ public class BrandServiceImpl implements BrandService {
 		}
 		}
 		return brandMostSimpleInfoDao.findBatchBrands(batchIds);
 		return brandMostSimpleInfoDao.findBatchBrands(batchIds);
 	}
 	}
+
+	@Override
+	public void addVisitCount(String uuid) {
+		brandDao.addVisitCount(uuid);
+	}
 }
 }

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

@@ -166,6 +166,7 @@ public class ComponentController {
 		// 获取user信息 方便获取器件信息时 能根据是否登录 返回不同的附件链接,不登陆 不能看附件信息。
 		// 获取user信息 方便获取器件信息时 能根据是否登录 返回不同的附件链接,不登陆 不能看附件信息。
 		User user = (User) request.getSession().getAttribute("user");
 		User user = (User) request.getSession().getAttribute("user");
 		SystemSession.setUser(user);
 		SystemSession.setUser(user);
+		componentService.addVisitCount(uuid);
 		return componentService.findByUuid(uuid);
 		return componentService.findByUuid(uuid);
 	}
 	}
 
 

+ 12 - 4
src/main/java/com/uas/platform/b2c/prod/product/component/dao/ComponentDao.java

@@ -4,14 +4,12 @@ import java.util.List;
 
 
 import javax.persistence.QueryHint;
 import javax.persistence.QueryHint;
 
 
-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.jpa.repository.QueryHints;
+import org.springframework.data.jpa.repository.*;
 import org.springframework.data.repository.query.Param;
 import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 import org.springframework.stereotype.Repository;
 
 
 import com.uas.platform.b2c.prod.product.component.modal.Component;
 import com.uas.platform.b2c.prod.product.component.modal.Component;
+import org.springframework.transaction.annotation.Transactional;
 
 
 @Repository
 @Repository
 public interface ComponentDao extends JpaSpecificationExecutor<Component>, JpaRepository<Component, Long> {
 public interface ComponentDao extends JpaSpecificationExecutor<Component>, JpaRepository<Component, Long> {
@@ -122,4 +120,14 @@ public interface ComponentDao extends JpaSpecificationExecutor<Component>, JpaRe
 	 */
 	 */
 	@Query("select count(1) from Component")
 	@Query("select count(1) from Component")
 	public Integer findAllCount();
 	public Integer findAllCount();
+
+	/**
+	 * 器件点击次数加一
+	 * @param uuid
+	 * @return
+	 */
+	@Modifying
+	@Transactional
+	@Query( nativeQuery = true, value = "update product$component set cmp_visit_count = ifnull(cmp_visit_count, 0) + 1 where cmp_uuid = :uuid")
+	public void addVisitCount(@Param("uuid") String uuid);
 }
 }

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

@@ -1,6 +1,7 @@
 package com.uas.platform.b2c.prod.product.component.modal;
 package com.uas.platform.b2c.prod.product.component.modal;
 
 
 import com.alibaba.fastjson.annotation.JSONField;
 import com.alibaba.fastjson.annotation.JSONField;
+import com.uas.platform.b2c.prod.commodity.model.Goods;
 import com.uas.platform.b2c.prod.commodity.model.GoodsQtyPrice;
 import com.uas.platform.b2c.prod.commodity.model.GoodsQtyPrice;
 import com.uas.platform.b2c.prod.product.brand.modal.BrandInfo;
 import com.uas.platform.b2c.prod.product.brand.modal.BrandInfo;
 import com.uas.platform.b2c.prod.product.kind.model.KindInfo;
 import com.uas.platform.b2c.prod.product.kind.model.KindInfo;
@@ -146,6 +147,11 @@ public class ComponentGoods implements Serializable {
 	@Transient
 	@Transient
 	private boolean hasSample;
 	private boolean hasSample;
 
 
+	@Transient
+	private String brandEn;
+
+	@Transient
+	private String kindName;
 	/**
 	/**
 	 * 本批次的库存数量
 	 * 本批次的库存数量
 	 */
 	 */
@@ -290,6 +296,22 @@ public class ComponentGoods implements Serializable {
 		return b2cMaxDelivery;
 		return b2cMaxDelivery;
 	}
 	}
 
 
+	public String getBrandEn() {
+		return brandEn;
+	}
+
+	public void setBrandEn(String brandEn) {
+		this.brandEn = brandEn;
+	}
+
+	public String getKindName() {
+		return kindName;
+	}
+
+	public void setKindName(String kindName) {
+		this.kindName = kindName;
+	}
+
 	public void setB2cMaxDelivery(Short b2cMaxDelivery) {
 	public void setB2cMaxDelivery(Short b2cMaxDelivery) {
 		this.b2cMaxDelivery = b2cMaxDelivery;
 		this.b2cMaxDelivery = b2cMaxDelivery;
 	}
 	}
@@ -568,4 +590,56 @@ public class ComponentGoods implements Serializable {
 		this.breakUp = breakUp;
 		this.breakUp = breakUp;
 		return this;
 		return this;
 	}
 	}
+
+    public ComponentGoods() {
+    }
+	public ComponentGoods(Goods goods) {
+		this.cmpId = 0L;
+		this.goId = goods.getId();
+		this.code = goods.getCode();
+		this.img = goods.getImg();
+		this.uuid = goods.getUuid();
+		this.breakUp = goods.getBreakUp();
+		this.batchCode = goods.getBatchCode();
+		this.minpriceusd = goods
+				.getMinPriceUSD() == null ? ""
+				: goods
+				.getMinPriceUSD().toString();
+		this.minpricermb = goods
+				.getMinPriceRMB() == null ? ""
+				: goods
+				.getMinPriceRMB().toString();
+		this.status = goods.getStatus();
+		this.kindid = goods.getKindUuid();
+		this.brandEn = goods.getBrandNameEn();
+		this.kindName = goods.getKindNameCn();
+		this.brandid = goods.getBrandid();
+//		this. BrandInfo brand;
+//		this. KindInfo kind;
+		this.attach = goods.getAttach();
+		this.sampleQty = goods.getSampleQty();
+		this.sampleAppliedQty = goods
+				.getSampleAppliedQty();
+		this.reserve = goods.getReserve();
+		this.unit = goods.getUnit();
+		this.qtyPrice = goods.getQtyPrice();
+		this.currencyName = goods
+				.getCurrencyName();
+		this.cmpReserve = 0d;
+		this.produceDate = goods.getProduceDate();
+		this.original = goods.getOriginal();
+		this.packaging = goods.getPackaging();
+		this.encapsulation = goods
+				.getEncapsulation();
+		this.minPackQty = goods.getMinPackQty();
+		this.minBuyQty = goods.getMinBuyQty();
+		this.updateDate = goods.getUpdateDate();
+		this.b2cMaxDelivery = goods
+				.getB2cMaxDelivery();
+		this.b2cMinDelivery = goods
+				.getB2cMinDelivery();
+		this.shipArea = goods.getShipArea();
+		this.storeId = goods.getStoreid();
+		this.storeName = goods.getStoreName();
+	}
 }
 }

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

@@ -210,4 +210,11 @@ public interface ComponentService {
 	 * @return 器件信息
 	 * @return 器件信息
 	 */
 	 */
 	List<ComponentInfo> getBatchComponents(List<Long> batchIds);
 	List<ComponentInfo> getBatchComponents(List<Long> batchIds);
+
+	/**
+	 * 器件点击次数加一
+	 * @param uuid
+	 * @return
+	 */
+	public void addVisitCount(String uuid);
 }
 }

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

@@ -545,4 +545,8 @@ public class ComponentServiceImpl implements ComponentService {
 		return componentInfoDao.findByBatchids(batchIds);
 		return componentInfoDao.findByBatchids(batchIds);
 	}
 	}
 
 
+	@Override
+	public void addVisitCount(String uuid) {
+		componentDao.addVisitCount(uuid);
+	}
 }
 }

+ 2 - 2
src/main/resources/test/sys.properties

@@ -30,9 +30,9 @@ newsMicroServiceIp=news.usoftchina.com
 newsRedisRefresh=3600
 newsRedisRefresh=3600
 floorMicroServiceIp=10.10.101.23
 floorMicroServiceIp=10.10.101.23
 carouselMicroServiceIp=10.10.101.23
 carouselMicroServiceIp=10.10.101.23
-storecmsMicroServiceIp=10.10.101.23
+storecmsMicroServiceIp=192.168.253.12
 endpointUri=10.10.101.23
 endpointUri=10.10.101.23
-recommendPort=20102
+recommendPort=20100
 # upload file
 # upload file
 uploadFileUrl = http://10.10.100.200:9999
 uploadFileUrl = http://10.10.100.200:9999
 # search file
 # search file

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

@@ -207,10 +207,14 @@
 			<li class="nav-node"><a href="#help/publish" ><i
 			<li class="nav-node"><a href="#help/publish" ><i
 					class="fa fa-envelope"></i><span> 发布</span></a></li>
 					class="fa fa-envelope"></i><span> 发布</span></a></li>
 
 
-			<!--<li class="nav-header">推广管理</li>
-			<li class="nav-node"><a href="#help/maintenance" ><i
+			<li class="nav-header">推广管理</li>
+			<li class="nav-node"><a href="#ads/brand" ><i
 					class="fa fa-upload"></i><span> 品牌推广</span></a></li>
 					class="fa fa-upload"></i><span> 品牌推广</span></a></li>
-			<li class="nav-node"><a href="#help/publish" ><i
+
+			<li class="nav-header">搜索预览</li>
+			<li class="nav-node"><a href="#search/see" ><i
+					class="fa fa-upload"></i><span> 搜索预览</span></a></li>
+			<!--<li class="nav-node"><a href="#help/publish" ><i
 					class="fa fa-upload"></i><span> 产品推广</span></a></li>
 					class="fa fa-upload"></i><span> 产品推广</span></a></li>
 			<li class="nav-node"><a href="#help/publish" ><i
 			<li class="nav-node"><a href="#help/publish" ><i
 					class="fa fa-upload"></i><span> 店铺推广</span></a></li>-->
 					class="fa fa-upload"></i><span> 店铺推广</span></a></li>-->

+ 21 - 7
src/main/webapp/resources/js/admin/app.js

@@ -721,13 +721,27 @@
             controllerUrl: 'app/controllers/AutomaticReceiving',
             controllerUrl: 'app/controllers/AutomaticReceiving',
             title: '买家提醒发货时间条件'
             title: '买家提醒发货时间条件'
         })).state('downAllGoodsByEnterprise', angularAMD.route({
         })).state('downAllGoodsByEnterprise', angularAMD.route({
-			//下架该公司所有的商品
-			url : '/product/downAllGoodsByEnterprise',
-			templateUrl: 'static/view/admin/product/downGoodsByEnterprise.html',
-			controller: 'downGoodsByEnterpriseCtrl',
-			controllerUrl: 'app/controllers/product/downGoodsByEnterprise',
-			title: '下架公司产品'
-		})).state('internalMessage', angularAMD.route({
+            //下架该公司所有的商品
+            url : '/product/downAllGoodsByEnterprise',
+            templateUrl: 'static/view/admin/product/downGoodsByEnterprise.html',
+            controller: 'downGoodsByEnterpriseCtrl',
+            controllerUrl: 'app/controllers/product/downGoodsByEnterprise',
+            title: '下架公司产品'
+        })).state('adsBrand', angularAMD.route({
+            //品牌推广
+            url : '/ads/brand',
+            templateUrl: 'static/view/admin/ads/ads_brand.html',
+            controller: 'adsBrandCtrl',
+            controllerUrl: 'app/controllers/ads/ads_brand',
+            title: '品牌推广'
+        })).state('searchSee', angularAMD.route({
+            //搜索预览
+            url : '/search/see',
+            templateUrl: 'static/view/admin/search/search_See.html',
+            controller: 'SearchSeeBrandCtrl',
+            controllerUrl: 'app/controllers/search/search_See',
+            title: '搜索预览'
+        })).state('internalMessage', angularAMD.route({
 			// 消息列表
 			// 消息列表
 			url: '/internalMessages',
 			url: '/internalMessages',
 			templateUrl: 'static/view/admin/common/message/internalMessageList.html',
 			templateUrl: 'static/view/admin/common/message/internalMessageList.html',

+ 61 - 0
src/main/webapp/resources/js/admin/controllers/ads/ads_brand.js

@@ -0,0 +1,61 @@
+define([ 'app/app' ], function(app) {
+    //品牌审批
+    app.register.controller('adsBrandCtrl', ['$scope', 'NgTableParams', 'BrandDisable', 'BrandActive', 'toaster', 'BaseService', function($scope, NgTableParams, BrandDisable, BrandActive ,toaster, BaseService) {
+        BaseService.scrollBackToTop();
+
+        $scope.load =  function(params) {
+            if (params == "weight") {
+                BrandActive.getSimpleInfoByWeight({}, {}, function(data) {
+                    $scope.brands =data;
+                    //$scope.isDisable = true;
+                    $scope.brandsTableParams = new NgTableParams({}, { dataset: $scope.brands});
+                }, function(){
+
+                })
+            } else {
+                $scope.isDisable = false;
+                loadData();
+            }
+        };
+
+        var loadData = function(){
+            BrandActive.getSimpleInfo({}, {}, function(data){
+                $scope.brands = data;
+                $scope.brandsTableParams = new NgTableParams({}, { dataset: $scope.brands});
+            }, function(){
+            })
+        };
+
+        loadData();
+
+        $scope.weight = function(brand){
+            BrandActive.setSimpleInfoWeight({weight: brand.inputWeight}, brand, function(data){
+                toaster.pop('success', '处理成功', '【' + data[0].nameCn + '】' + '禁用成功');
+                loadData();
+            }, function(res){
+                toaster.pop('error', '错误', res.data);
+            })
+        };
+        $scope.disweight = function(brand){
+            BrandActive.setSimpleInfoWeight({weight: 0}, brand, function(data){
+                if (data.weight == 0){
+                    toaster.pop('success', '处理成功', '【' + data.nameCn + '】' + '已取消推广');
+                    $scope.load('weight');
+                } else{
+                    toaster.pop('error', '错误', '取消推广失败');
+                }
+            }, function(res){
+                toaster.pop('error', '错误', res.data);
+            })
+        };
+        $scope.updateweight = function(brand){
+            BrandActive.setSimpleInfoWeight({weight: brand.inputWeight}, brand, function(data){
+                toaster.pop('success', '处理成功', '【' + data.nameCn + '】' + '已修改推广');
+                $scope.load('weight');
+            }, function(res){
+                toaster.pop('error', '错误', res.data);
+            })
+        };
+
+    }]);
+});

+ 171 - 0
src/main/webapp/resources/js/admin/controllers/search/search_See.js

@@ -0,0 +1,171 @@
+define(['app/app'], function (app) {
+    'use strict';
+    app.register.controller('SearchSeeBrandCtrl', ['$scope', '$http', '$rootScope', 'SessionService', function($scope, $http, $rootScope, SessionService) {
+        $scope.searchType = 'original';// 搜索类型
+        $scope.searchType = {
+            original: false,
+            inaction: false,
+            proffing: false,
+            brand: false,
+            isCmp: function() {
+                var me = this;
+                return me.original || me.inaction || me.proffing;
+            }
+        };
+        if(SessionService.get('brand')) {
+            $scope.searchType.brand = true;
+        }
+
+        var componentSearchType = SessionService.get('component');
+        if(componentSearchType) {
+            $scope.searchType = angular.fromJson(componentSearchType);
+            $scope.searchType.isCmp = function() {
+                var me = this;
+                return me.original || me.inaction || me.proffing;
+            }
+        }
+
+        // 点击搜索库存、样品、呆滞
+        $scope.cmpTypeClick = function() {
+            if($scope.searchType.isCmp()) {
+                $scope.searchType.brand = false;
+            }
+        };
+
+        // 点击搜索品牌
+        $scope.brandTypeClick = function() {
+            if($scope.searchType.brand) {
+                $scope.searchType.original = false;
+                $scope.searchType.inaction = false;
+                $scope.searchType.proffing = false;
+            }
+        };
+
+        // 选搜索类型
+        $scope.setSearchType = function(t) {
+            $scope.searchType = t;
+        };
+
+        // 搜索
+        $scope.search = function() {
+            if($scope.keyword) {
+                if($scope.searchType.brand) {
+                    SessionService.set('brand', true);
+                    SessionService.unset('component');
+                    window.location.href = 'search?w=' + encodeURI(encodeURIComponent($scope.keyword)) + '&type=brand';
+                }else if($scope.searchType.isCmp()){
+                    SessionService.set('component', angular.toJson($scope.searchType));
+                    SessionService.unset('brand');
+                    window.location.href = 'search?w=' + encodeURI(encodeURIComponent($scope.keyword)) + '&type=component';
+                }else {
+                    SessionService.unset('component');
+                    SessionService.unset('brand');
+                    var timestart = (new Date()).valueOf();
+                    $http({
+                        method:'GET',
+                        url:'api/product/component/search/compGoods',
+                        params:{
+                            'keyword' : $scope.keyword
+                     }}).then(function (data) {
+                        $scope.result = data.data;
+                        $scope.result.time = (new Date()).valueOf() - timestart;
+                        console.log(data);
+                    },function (error) {
+                    });
+
+                    $http({
+                        method:'GET',
+                        url:'search/componentGoods/collect',
+                        params:{
+                            'keyword' : $scope.keyword,
+                            'collectList' : 'goods_kind',
+                            'paramJSON':{}
+                        }}).then(function (data) {
+                        $scope.result = data.data;
+                        $scope.kindtime = (new Date()).valueOf() - timestart;
+                        console.log(data);
+                    },function (error) {
+                    });
+
+
+
+                   // window.location.href = 'search?w=' + encodeURI(encodeURIComponent($scope.keyword)) + '&type=all';
+                }
+
+            }
+        };
+
+        // 搜索框获得焦点,显示联想框
+        $scope.onFocus = function() {
+            $scope.associate = true;
+            $scope.selectIndex = -1;
+            if(!$scope.keyword) $scope.keyword = '';
+        };
+
+        // 搜索框失去焦点,关闭联想框
+        $scope.onBlur = function() {
+            $scope.associate = false;
+        };
+
+        // 搜索框通过按键选取想要的联想词
+        $scope.onKeyup = function() {
+            if($scope.associates && $scope.associates.length) {
+                if(event.keyCode == 40) { //监听到按下键
+                    $scope.selectIndex ++;
+                    if($scope.selectIndex >= $scope.associates.length) $scope.selectIndex = 0;
+                    $scope.keyword = $scope.associates[$scope.selectIndex];
+                } else if(event.keyCode == 38) { //监听到按上键
+                    $scope.selectIndex --;
+                    if($scope.selectIndex < 0) $scope.selectIndex = $scope.associates.length - 1;
+                    $scope.keyword = $scope.keyword = $scope.associates[$scope.selectIndex];
+                } else if(event.keyCode == 13) { //确定键
+                    $scope.search();
+                }
+            }
+        };
+
+        // 输入框内容变化,获取新的联想词
+        $scope.onChange = function() {
+            if ($scope.keyword) {
+                var params = {
+                    keyword: $scope.keyword
+                };
+                if($rootScope.userInfo) {
+                    params.userUU = $rootScope.userInfo.userUU;
+                }
+                $http.get('search/similarKeywords', {
+                    params : params
+                }).success(function(data){
+                    $scope.associates = data;// 联想词数组
+                }).error(function(response) {
+
+                });
+            } else {
+                $scope.associates = [];// 联想词数组
+            }
+
+        };
+
+        // 点击联想词
+        $scope.onAssociateClick = function(component) {
+            $scope.keyword = component;
+            $scope.search();
+        };
+
+        // 鼠标进入联想词框,不能关闭联想词框
+        $scope.onAssociateEnter = function() {
+            $scope.associateEnter = true;
+        };
+
+        // 鼠标离开联想词框,可以关闭联想词框
+        $scope.onAssociateLeave = function() {
+            $scope.associateEnter = false;
+        };
+
+        // 热词
+        $scope.hotwords = [{name : 'SCT2080KEC', url :'product#/component/1100400300009990/'},
+            {name : '电池组', url : 'product#/kinds/346'},
+            {name : 'Vishay',url : 'product#/brand/30327265e42a871be050007f01003d96/'},
+            {name : 'Panasonic Battery', url : 'product#/brand/30327265e4e7871be050007f01003d96/'}];
+    }]);
+});

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

@@ -85,6 +85,17 @@ define([ 'ngResource' ], function() {
 				method : 'GET',
 				method : 'GET',
 				isArray : true
 				isArray : true
 			},
 			},
+            // 查找已推广的按权重排序的品牌信息
+            getSimpleInfoByWeight : {
+                url : 'api/product/brand/Info/weight',
+                method : 'GET',
+                isArray : true
+            },
+            // 修改权重品牌信息
+           setSimpleInfoWeight : {
+                url : 'api/product/brand/Info/weight',
+                method : 'PUT'
+            },
 			// 根据品牌ID获取相关的类目列表
 			// 根据品牌ID获取相关的类目列表
 			getKinds : {
 			getKinds : {
 				url: 'api/product/brand/:brandId/kinds',
 				url: 'api/product/brand/:brandId/kinds',

+ 16 - 32
src/main/webapp/resources/js/usercenter/controllers/forstore/account_manager_ctrl.js

@@ -1359,7 +1359,7 @@ define(['app/app'], function (app) {
           $scope.checkSuccess2 = false;
           $scope.checkSuccess2 = false;
           $scope.checkFailed2 = false;
           $scope.checkFailed2 = false;
           $scope.choose = function () {
           $scope.choose = function () {
-            if ($scope.uq[0].question != "") {
+            if ($scope.uq[0]!=undefined && $scope.uq[0].question != undefined && $scope.uq[0].question!="") {
               $scope.checkSuccess = true;
               $scope.checkSuccess = true;
               $scope.checkFailed = false;
               $scope.checkFailed = false;
             } else {
             } else {
@@ -1369,7 +1369,7 @@ define(['app/app'], function (app) {
           }
           }
 
 
           $scope.choose1 = function () {
           $scope.choose1 = function () {
-            if ($scope.uq[1].question != "") {
+            if ($scope.uq[1]!=undefined && $scope.uq[1].question != undefined && $scope.uq[1].question!="") {
               $scope.checkSuccess2 = true;
               $scope.checkSuccess2 = true;
               $scope.checkFailed2 = false;
               $scope.checkFailed2 = false;
             } else {
             } else {
@@ -1386,17 +1386,17 @@ define(['app/app'], function (app) {
           $scope.checkFailed3 = false;
           $scope.checkFailed3 = false;
           $scope.checkFailed3_1 = false;
           $scope.checkFailed3_1 = false;
           $scope.inputAnswer = function () {
           $scope.inputAnswer = function () {
-            if ($scope.uq[0].answer == null) {
+            if ($scope.uq[0]==undefined || $scope.uq[0].answer == undefined || $scope.uq[0].answer=="") {
               $scope.checkSuccess1 = false;
               $scope.checkSuccess1 = false;
               $scope.checkFailed1 = true;
               $scope.checkFailed1 = true;
               $scope.checkFailed1_1 = false;
               $scope.checkFailed1_1 = false;
-              return;
+              return false;
             }
             }
             if ($scope.uq[0].answer.length > 30) {
             if ($scope.uq[0].answer.length > 30) {
               $scope.checkSuccess1 = false;
               $scope.checkSuccess1 = false;
               $scope.checkFailed1 = false;
               $scope.checkFailed1 = false;
               $scope.checkFailed1_1 = true;
               $scope.checkFailed1_1 = true;
-              return;
+              return false;
             }
             }
             $scope.checkSuccess1 = true;
             $scope.checkSuccess1 = true;
             $scope.checkFailed1 = false;
             $scope.checkFailed1 = false;
@@ -1404,17 +1404,17 @@ define(['app/app'], function (app) {
           }
           }
 
 
           $scope.inputAnswer1 = function () {
           $scope.inputAnswer1 = function () {
-            if ($scope.uq[1].answer == null) {
+            if ($scope.uq[1]==undefined || $scope.uq[1].answer == undefined || $scope.uq[1].answer=="") {
               $scope.checkSuccess3 = false;
               $scope.checkSuccess3 = false;
               $scope.checkFailed3 = true;
               $scope.checkFailed3 = true;
               $scope.checkFailed3_1 = false;
               $scope.checkFailed3_1 = false;
-              return;
+              return false;
             }
             }
             if ($scope.uq[1].answer.length > 30) {
             if ($scope.uq[1].answer.length > 30) {
               $scope.checkSuccess3 = false;
               $scope.checkSuccess3 = false;
               $scope.checkFailed3 = false;
               $scope.checkFailed3 = false;
               $scope.checkFailed3_1 = true;
               $scope.checkFailed3_1 = true;
-              return;
+              return false;
             }
             }
             $scope.checkSuccess3 = true;
             $scope.checkSuccess3 = true;
             $scope.checkFailed3 = false;
             $scope.checkFailed3 = false;
@@ -1423,35 +1423,19 @@ define(['app/app'], function (app) {
 
 
           //保存密保
           //保存密保
           $scope.ok = function () {
           $scope.ok = function () {
+            //问题1校验
+            $scope.choose();
+            $scope.inputAnswer();
+            $scope.choose1();
+            $scope.inputAnswer1();
+            if(!$scope.checkSuccess || !$scope.checkSuccess1 || !$scope.checkSuccess2 || !$scope.checkSuccess3){
+              return;
+            }
             var arr = [];
             var arr = [];
             for (var key in $scope.uq) {
             for (var key in $scope.uq) {
               $scope.uq[key].sort = Number(key) + 1;
               $scope.uq[key].sort = Number(key) + 1;
               arr[key] = $scope.uq[key];
               arr[key] = $scope.uq[key];
             }
             }
-            if(!arr[0].question){
-              $scope.checkFailed = true;
-              return;
-            }
-            if(!arr[0].answer){
-              $scope.checkFailed1 = true;
-              return;
-            }
-            if((arr[0].answer).length>30){
-              $scope.checkFailed1_1 = true;
-              return;
-            }
-            if(!arr[1].question){
-              $scope.checkFailed2 = true;
-              return;
-            }
-            if(!arr[1].answer){
-              $scope.checkFailed3 = true;
-              return;
-            }
-            if((arr[1].answer).length>30){
-              $scope.checkFailed3_1 = true;
-              return;
-            }
             User.updateUserQuestion({}, arr, function () {
             User.updateUserQuestion({}, arr, function () {
               toaster.pop('success', '成功', '密保问题设置成功。');
               toaster.pop('success', '成功', '密保问题设置成功。');
               $modalInstance.close();
               $modalInstance.close();

+ 16 - 32
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_account_management_ctrl.js

@@ -1281,7 +1281,7 @@ define(['app/app'], function(app) {
           $scope.checkSuccess2 = false;
           $scope.checkSuccess2 = false;
           $scope.checkFailed2 = false;
           $scope.checkFailed2 = false;
           $scope.choose = function () {
           $scope.choose = function () {
-            if ($scope.uq[0].question != "") {
+            if ($scope.uq[0]!=undefined && $scope.uq[0].question != undefined && $scope.uq[0].question!="") {
               $scope.checkSuccess = true;
               $scope.checkSuccess = true;
               $scope.checkFailed = false;
               $scope.checkFailed = false;
             } else {
             } else {
@@ -1291,7 +1291,7 @@ define(['app/app'], function(app) {
           }
           }
 
 
           $scope.choose1 = function () {
           $scope.choose1 = function () {
-            if ($scope.uq[1].question != "") {
+            if ($scope.uq[1]!=undefined && $scope.uq[1].question != undefined && $scope.uq[1].question!="") {
               $scope.checkSuccess2 = true;
               $scope.checkSuccess2 = true;
               $scope.checkFailed2 = false;
               $scope.checkFailed2 = false;
             } else {
             } else {
@@ -1308,17 +1308,17 @@ define(['app/app'], function(app) {
           $scope.checkFailed3 = false;
           $scope.checkFailed3 = false;
           $scope.checkFailed3_1 = false;
           $scope.checkFailed3_1 = false;
           $scope.inputAnswer = function () {
           $scope.inputAnswer = function () {
-            if ($scope.uq[0].answer == null) {
+            if ($scope.uq[0]==undefined || $scope.uq[0].answer == undefined || $scope.uq[0].answer=="") {
               $scope.checkSuccess1 = false;
               $scope.checkSuccess1 = false;
               $scope.checkFailed1 = true;
               $scope.checkFailed1 = true;
               $scope.checkFailed1_1 = false;
               $scope.checkFailed1_1 = false;
-              return;
+              return false;
             }
             }
             if ($scope.uq[0].answer.length > 30) {
             if ($scope.uq[0].answer.length > 30) {
               $scope.checkSuccess1 = false;
               $scope.checkSuccess1 = false;
               $scope.checkFailed1 = false;
               $scope.checkFailed1 = false;
               $scope.checkFailed1_1 = true;
               $scope.checkFailed1_1 = true;
-              return;
+              return false;
             }
             }
             $scope.checkSuccess1 = true;
             $scope.checkSuccess1 = true;
             $scope.checkFailed1 = false;
             $scope.checkFailed1 = false;
@@ -1326,17 +1326,17 @@ define(['app/app'], function(app) {
           }
           }
 
 
           $scope.inputAnswer1 = function () {
           $scope.inputAnswer1 = function () {
-            if ($scope.uq[1].answer == null) {
+            if ($scope.uq[1]==undefined || $scope.uq[1].answer == undefined || $scope.uq[1].answer=="") {
               $scope.checkSuccess3 = false;
               $scope.checkSuccess3 = false;
               $scope.checkFailed3 = true;
               $scope.checkFailed3 = true;
               $scope.checkFailed3_1 = false;
               $scope.checkFailed3_1 = false;
-              return;
+              return false;
             }
             }
             if ($scope.uq[1].answer.length > 30) {
             if ($scope.uq[1].answer.length > 30) {
               $scope.checkSuccess3 = false;
               $scope.checkSuccess3 = false;
               $scope.checkFailed3 = false;
               $scope.checkFailed3 = false;
               $scope.checkFailed3_1 = true;
               $scope.checkFailed3_1 = true;
-              return;
+              return false;
             }
             }
             $scope.checkSuccess3 = true;
             $scope.checkSuccess3 = true;
             $scope.checkFailed3 = false;
             $scope.checkFailed3 = false;
@@ -1345,35 +1345,19 @@ define(['app/app'], function(app) {
 
 
           //保存密保
           //保存密保
           $scope.ok = function () {
           $scope.ok = function () {
+            //问题1校验
+            $scope.choose();
+            $scope.inputAnswer();
+            $scope.choose1();
+            $scope.inputAnswer1();
+            if(!$scope.checkSuccess || !$scope.checkSuccess1 || !$scope.checkSuccess2 || !$scope.checkSuccess3){
+              return;
+            }
             var arr = [];
             var arr = [];
             for (var key in $scope.uq) {
             for (var key in $scope.uq) {
               $scope.uq[key].sort = Number(key) + 1;
               $scope.uq[key].sort = Number(key) + 1;
               arr[key] = $scope.uq[key];
               arr[key] = $scope.uq[key];
             }
             }
-            if(!arr[0].question){
-              $scope.checkFailed = true;
-              return;
-            }
-            if(!arr[0].answer){
-              $scope.checkFailed1 = true;
-              return;
-            }
-            if((arr[0].answer).length>30){
-              $scope.checkFailed1_1 = true;
-              return;
-            }
-            if(!arr[1].question){
-              $scope.checkFailed2 = true;
-              return;
-            }
-            if(!arr[1].answer){
-              $scope.checkFailed3 = true;
-              return;
-            }
-            if((arr[1].answer).length>30){
-              $scope.checkFailed3_1 = true;
-              return;
-            }
             User.updateUserQuestion({}, arr, function () {
             User.updateUserQuestion({}, arr, function () {
               toaster.pop('success', '成功', '密保问题设置成功。');
               toaster.pop('success', '成功', '密保问题设置成功。');
               $modalInstance.close();
               $modalInstance.close();

+ 27 - 0
src/main/webapp/resources/view/admin/ads/ads_brand.html

@@ -0,0 +1,27 @@
+<div class="row-fluid sortable">
+    <div class="box span12">
+        <div class="box-header well" data-original-title>
+            <h2><i class="icon-user"></i> <a ng-click="load('weight')">已推广品牌 </a> / <a ng-click="load('disweight')">所有品牌</a></h2>
+        </div>
+        <div class="box-content">
+            <!-- ng-tableStart -->
+            <div class="fullscreen" style="padding: 10px;overflow-y:auto;">
+                <table ng-table="brandsTableParams" class="table table-condensed table-bordered table-striped">
+                    <tr ng-repeat="brand in $data">
+                        <td data-title="'品牌名'" filter="{nameCn: 'text'}">{{brand.nameCn}}</td>
+                        <td data-title="'厂商'" filter="{nameCn: 'text'}">{{brand.nameCn}}</td>
+                        <td data-title="'权重'" >{{brand.weight}}</td>
+                        <td data-title="'操作'">
+                            <button ng-click="updateweight(brand)" class="btn btn-danger btn-sm" ng-if="!brand.weight"><i class="fa fa-check"></i> 推广</button>
+                            <button ng-click="disweight(brand)" class="btn btn-danger btn-sm" ng-if="brand.weight"><i class="fa fa-check"></i> 解除推广</button>
+                            <button ng-click="updateweight(brand)" class="btn btn-danger btn-sm" ng-if="brand.weight"><i class="fa fa-check"></i> 修改推广</button>
+                            <input type="number" style="height: 30px"  ng-model="brand.inputWeight"/>
+                        </td>
+                    </tr>
+                </table>
+            </div>
+            <!-- ng-tableEnd -->
+        </div>
+    </div><!--/span-->
+
+</div><!--/row-->

+ 70 - 0
src/main/webapp/resources/view/admin/search/search_See.html

@@ -0,0 +1,70 @@
+<style>
+    .row {
+        margin-bottom: 10px;
+    }
+</style>
+<div>
+    <div class="box-header well">
+        搜索预览
+    </div>
+    <div  class="box-content">
+        <div class="row">
+            <div class="col-xs-1">
+                <p style="margin-top: 8px; font-weight: bold;">
+                    共<span class="totalNum">{{result.total}}</span>条
+                </p>
+                <p style="margin-top: 8px; font-weight: bold;">
+                    共耗时<span class="totalNum">{{result.time}}</span>ms  ,kind共耗时 {{kindtime}} ms
+                </p>
+            </div>
+            <div class="col-xs-offset-4 col-xs-7">
+                <div class="input-group">
+                    <input type="search" style="width:80%;" class="form-control" ng-model="keyword" ng-change="onChange()" ng-search="search()" ng-focus="onFocus()" ng-blur="onBlur()" ng-keyup="onKeyup()"placeholder="型号/类目/品牌">
+                    <span class="input-group-btn">
+					<button ng-click="search()" class="btn btn-primary" type="button">搜索</button>
+				</span>
+                </div>
+                <ul class="association" ng-show="associate || associateEnter"  ng-class="{'none': !associate || !associateEnter}" ng-mouseenter="onAssociateEnter()" ng-mouseleave="onAssociateLeave()">
+                    <li ng-repeat="as in associates" ng-bind="as" ng-class="{'active': $index==selectIndex}"
+                        ng-click="onAssociateClick(as)"></li>
+                </ul>
+            </div>
+        </div>
+        <!--
+            <div class="row">
+                <div class="col-xs-offset-9 col-xs-4">
+                    <a class="btn btn-primary" ng-click="addKeyWord()"><i class="fa fa-plus"></i>添加关键词</a>
+                    <a class="btn btn-primary" ng-click="addKeyWords()"><i class="fa fa-plus"></i>批量添加关键词</a>
+                </div>
+            </div>
+            -->
+        <p ng-model="test"></p>
+        <table ng-table="logUsageTableParams"
+               class="table table-bordered table-striped table-hover" style="word-break:break-all; word-wrap:break-all;">
+            <thead>
+            <tr class="tr-default">
+                <th width="10%;" class="text-center">用户UU号</th>
+                <th width="7%;" class="text-center">用户名</th>
+                <th width="10%" class="text-center">标题</th>
+                <th width="30%" class="text-center">具体操作信息</th>
+                <th width="8%%" class="text-center">时间</th>
+                <th width="10%" class="text-center">ip</th>
+                <th width="10%" class="text-center">手机号</th>
+                <th width="15%" class="text-center">邮箱</th>
+            </tr>
+            </thead>
+            <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.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>
+            </tr>
+            </tbody>
+        </table>
+    </div>
+</div>

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

@@ -29,6 +29,17 @@ public class DesTest {
             b = des.encrypt("Select123!#%*(", "10101010");
             b = des.encrypt("Select123!#%*(", "10101010");
             System.out.println(des.toHexString(b));
             System.out.println(des.toHexString(b));
 
 
+            //旧版正式
+            b = des.encrypt("root", "10101010");
+            System.out.println(des.toHexString(b));
+
+            b = des.encrypt("jdbc:mysql://10.10.100.18:3306/mall_prod?characterEncoding=UTF-8", "10101010");
+            System.out.println(des.toHexString(b));
+            //System.out.println(des.decrypt(des.toHexString(b), "10101010"));
+
+            b = des.encrypt("select", "10101010");
+            System.out.println(des.toHexString(b));
+
 
 
 
 
         }catch (Exception e){
         }catch (Exception e){