From db9d95db6f25f95cbc614525adef7dbdeae6478c Mon Sep 17 00:00:00 2001
From: tangxiaobao <303826152@qq.com>
Date: 星期二, 27 七月 2021 16:58:03 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/test' into txb

---
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java                              |    2 +-
 springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java                                |   16 ++++++++++++++--
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java                          |    2 +-
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/listen/PartyBuildingMemberExcelListen.java |    4 ++++
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java    |   10 +++++++++-
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityApi.java                                              |    6 +++++-
 6 files changed, 34 insertions(+), 6 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityApi.java
index e2ba422..547f2d3 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityApi.java
@@ -96,7 +96,11 @@
     @GetMapping("detailactivity")
     @ApiImplicitParam(name ="id",value = "社区活动主键",required = true)
     public R detailActivity(@RequestParam("id") Long id){
-        Long userId = this.getUserId();
+        Long userId = null;
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if(loginUserInfo != null){
+            userId = loginUserInfo.getUserId();
+        }
         return communityService.detailActivity(id,userId);
     }
 
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
index 7b1368e..9da8bd8 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -117,7 +117,7 @@
      * @return 详情
      */
     @PostMapping("detailactivity")
-    R detailActivity(@RequestParam("id") Long id, @RequestParam("userId") Long userId);
+    R detailActivity(@RequestParam("id") Long id, @RequestParam(value = "userId",required = false) Long userId);
 
     /**
      * 分页活动报名名单
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/listen/PartyBuildingMemberExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/listen/PartyBuildingMemberExcelListen.java
index 48f3ece..17e36db 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/listen/PartyBuildingMemberExcelListen.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/listen/PartyBuildingMemberExcelListen.java
@@ -34,6 +34,10 @@
     private List<PartyBuildingMemberExcelVO> list = new ArrayList<>();
     @Override
     public void invoke(PartyBuildingMemberExcelVO partyBuildingMemberExcelVO, AnalysisContext analysisContext) {
+        Boolean isRepeat = list.stream().anyMatch(v -> v.getIdCard().equals(partyBuildingMemberExcelVO.getIdCard()));
+        if(isRepeat){
+            throw new PartyBuildingMemberException("导入失败,存在多个相同身份证号:" + partyBuildingMemberExcelVO.getIdCard());
+        }
         list.add(partyBuildingMemberExcelVO);
         // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM
         if(list.size() >= BATCH_COUNT){
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java
index f1c8329..f8a2e61 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java
@@ -258,7 +258,7 @@
      * @return 详情
      */
     @PostMapping("detailactivity")
-    public R detailActivity(@RequestParam("id") Long id, @RequestParam("userId") Long userId) {
+    public R detailActivity(@RequestParam("id") Long id, @RequestParam(value = "userId",required = false) Long userId) {
         ComActActivityVO comActActivityVO = comActActivityService.inforActivity(id, userId);
         if (ObjectUtils.isEmpty(comActActivityVO)) {
             return R.fail("活动不存在");
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java
index ce0a352..348df80 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java
@@ -2,6 +2,7 @@
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -189,7 +190,14 @@
     public ComActActivityVO inforActivity(Long id, Long userId) {
         ComActActivityVO comActActivityVO=comActActivityDAO.inforActivity(id);
         if (!ObjectUtils.isEmpty(comActActivityVO)) {
-            ComActActSignDO comActActSignDO = comActActSignDAO.selectOne(new QueryWrapper<ComActActSignDO>().lambda().eq(ComActActSignDO::getActivityId, id).eq(ComActActSignDO::getUserId, userId));
+
+            LambdaQueryWrapper<ComActActSignDO> actSignQuery = new LambdaQueryWrapper<>();
+            actSignQuery.eq(ComActActSignDO::getActivityId, id);
+            if(userId != null){
+                actSignQuery.eq(ComActActSignDO::getUserId, userId);
+            }
+
+            ComActActSignDO comActActSignDO = comActActSignDAO.selectOne(actSignQuery);
             if (!ObjectUtils.isEmpty(comActActSignDO)) {
                 comActActivityVO.setIsSign(1);
                 comActActivityVO.setIsVolunteer(comActActSignDO.getIsVolunteer());
diff --git a/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java
index d642cfd..558ff74 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java
@@ -86,6 +86,7 @@
 //        boolean detailworkguide = !requestURI.contains("workguide/detailworkguide");
 //        boolean pagedynamic = !requestURI.contains("partybuilding/pagedynamic");
 //        boolean infodynamic = !requestURI.contains("partybuilding/infodynamic");
+
         SafeboxRequestWrapper safeboxRequestWrapper = new SafeboxRequestWrapper(request);
         if (login||doc||css||js||ui||swagger||ico||docs||error||refreshToken||useragreement||wxPay
                 ||wxCgi||isShop||listadvertisement||noToken||bigscreen) {
@@ -198,8 +199,19 @@
                     safeboxRequestWrapper.addHeader(TokenConstant.TOKEN_USERINFO,hexStr );
                 }
             } else {
-                ResultUtil.responseJson(response, R.fail(HttpStatus.UNAUTHORIZED, "token校验失败"));
-                return;
+                //小程序无需登录也可访问地址列表
+                List<String> noLoginUrl = new ArrayList<>();
+                noLoginUrl.add("/api/applets/community/detaildynamic");
+                noLoginUrl.add("/api/applets/community/detailactivity");
+                if(noLoginUrl.contains(requestURI)){
+                    List<SimpleGrantedAuthority> authorities = new ArrayList<>();
+                    authorities.add(new SimpleGrantedAuthority(SecurityConstants.ROLE_APPLETS));
+                    UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(null, null, authorities);
+                    SecurityContextHolder.getContext().setAuthentication(authentication);
+                }else {
+                    ResultUtil.responseJson(response, R.fail(HttpStatus.UNAUTHORIZED, "token校验失败"));
+                    return;
+                }
             }
         }
         filterChain.doFilter(safeboxRequestWrapper,response);

--
Gitblit v1.7.1