wangdy 8 лет назад
Родитель
Сommit
92d9ce9767

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

@@ -44,246 +44,249 @@ import java.util.*;
  */
 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 = SSOHelper.getRedirectRefererLoginUrl(request);
+        /*boolean cross = SSOHelper.isCrossDomain(request);
 		if (cross) {
 			// 跨域代理界面
 			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 + " 权限!");
-		}
-	}
+        }
+    }
 
-	@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) {
 		batchCode = StringUtilB2C.decodeValue(batchCode);
 		Goods goods = goodsService.findGoodsByBatchCode(batchCode);
+		goodsService.addVisitCount(batchCode);
 		logger.log("商品批次", "根据批次号获取商品信息", "批次号:" + batchCode);
 		return goods;
 	}

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

@@ -521,4 +521,13 @@ 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)
     Double getSumReserveByEnUUAndUuidAndStatus(@Param("enuu") Long enuu, @Param("uuid") String uuid, @Param("status") Integer status);
+
+    /**
+     * 产品点击次数加一
+     * @param batchCode
+     * @return
+     */
+    @Modifying
+    @Query(value = "update Goods g set g.visitCount = g.visitCount+1 where g.uuid = :batchCode")
+    public void addVisitCount(@Param("batchCode") String batchCode);
 }

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

@@ -548,4 +548,11 @@ public interface GoodsService {
      * @return
      */
     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);
 		return ResultMap.success(null);
 	}
+
+	@Override
+	public void addVisitCount(String batchCode) {
+		goodsDao.addVisitCount(batchCode);
+	}
 }

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

@@ -130,6 +130,7 @@ public class BrandController {
 	 */
 	@RequestMapping(value = "/{uuid}")
 	private Brand findByUuid(@PathVariable("uuid") String uuid) {
+		brandService.addVisitCount(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)
 	public Brand findByUuid(@PathVariable("uuid") String uuid) {
+		brandService.addVisitCount(uuid);
 		return brandService.findByUuid(uuid);
 	}
 

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

@@ -7,6 +7,7 @@ import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.repository.JpaRepository;
 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.repository.query.Param;
 import org.springframework.stereotype.Repository;
@@ -78,4 +79,13 @@ public interface BrandDao extends JpaSpecificationExecutor<Brand>, JpaRepository
 	 */
 	@Query(value = "select b from Brand b  where b.inital in :initals and (b.nameEn like %:keyword% or b.nameCn like %:keyword%)")
 	public Page<Brand> findInInitalsPage(@Param("initals") String[] initals ,@Param("keyword") String keyword, Pageable pageable);
+
+	/**
+	 * 器件点击次数加一
+	 * @param uuid
+	 * @return
+	 */
+	@Modifying
+	@Query(value = "update Brand b set b.visitCount = b.visitCount+1 where b.uuid = :uuid")
+	public void addVisitCount(@Param("uuid") String uuid);
 }

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

@@ -178,4 +178,11 @@ public interface BrandService {
 	 * @return 品牌信息
 	 */
 	public List<BrandMostSimpleInfo> getBatchBrandMostSimpleInfs(List<Long> batchIds);
+
+	/**
+	 * 器件点击次数加一
+	 * @param uuid
+	 * @return
+	 */
+	public void addVisitCount(String uuid);
 }

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

@@ -384,4 +384,9 @@ public class BrandServiceImpl implements BrandService {
 		}
 		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) request.getSession().getAttribute("user");
 		SystemSession.setUser(user);
+		componentService.addVisitCount(uuid);
 		return componentService.findByUuid(uuid);
 	}
 

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

@@ -4,10 +4,7 @@ import java.util.List;
 
 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.stereotype.Repository;
 
@@ -122,4 +119,13 @@ public interface ComponentDao extends JpaSpecificationExecutor<Component>, JpaRe
 	 */
 	@Query("select count(1) from Component")
 	public Integer findAllCount();
+
+	/**
+	 * 器件点击次数加一
+	 * @param uuid
+	 * @return
+	 */
+	@Modifying
+	@Query(value = "update Component c set c.visitCount = c.visitCount+1 where c.uuid = :uuid")
+	public void addVisitCount(@Param("uuid") String uuid);
 }

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

@@ -210,4 +210,11 @@ public interface ComponentService {
 	 * @return 器件信息
 	 */
 	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

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