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

优化 小区入驻审核功能

wuxw лет назад: 6
Родитель
Сommit
352d2703b9
14 измененных файлов с 406 добавлено и 15 удалено
  1. 122 0
      Api/src/main/java/com/java110/api/listener/community/AuditEnterCommunityListener.java
  2. 158 0
      CommunityService/src/main/java/com/java110/community/listener/communityMember/AuditCommunityMemberStateListener.java
  3. 2 1
      CommunityService/src/main/java/com/java110/community/listener/MemberJoinedCommunityListener.java
  4. 2 1
      CommunityService/src/main/java/com/java110/community/listener/MemberQuitCommunityListener.java
  5. 1 1
      WebService/src/main/java/com/java110/web/components/community/AuditEnterCommunityManageComponent.java
  6. 19 0
      WebService/src/main/java/com/java110/web/smo/community/IAuditEnterCommunitySMO.java
  7. 3 3
      WebService/src/main/java/com/java110/web/smo/community/impl/AuditCommunitySMOImpl.java
  8. 65 0
      WebService/src/main/java/com/java110/web/smo/community/impl/AuditEnterCommunitySMOImpl.java
  9. 3 3
      WebService/src/main/resources/components/communityPackage/audit-enter-community-manage/auditEnterCommunityManage.js
  10. 9 0
      java110-bean/src/main/java/com/java110/vo/api/community/ApiCommunityDataVo.java
  11. 5 0
      java110-common/src/main/java/com/java110/common/constant/BusinessTypeConstant.java
  12. 2 0
      java110-common/src/main/java/com/java110/common/constant/PrivilegeCodeConstant.java
  13. 1 0
      java110-common/src/main/java/com/java110/common/constant/ServiceCodeConstant.java
  14. 14 6
      java110-db/src/main/resources/mapper/community/CommunityServiceDaoImplMapper.xml

+ 122 - 0
Api/src/main/java/com/java110/api/listener/community/AuditEnterCommunityListener.java

@@ -0,0 +1,122 @@
+package com.java110.api.listener.community;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.api.listener.AbstractServiceApiListener;
+import com.java110.common.constant.BusinessTypeConstant;
+import com.java110.common.constant.CommonConstant;
+import com.java110.common.constant.ServiceCodeConstant;
+import com.java110.common.util.Assert;
+import com.java110.common.util.BeanConvertUtil;
+import com.java110.core.annotation.Java110Listener;
+import com.java110.core.context.DataFlowContext;
+import com.java110.core.smo.community.ICommunityInnerServiceSMO;
+import com.java110.dto.CommunityMemberDto;
+import com.java110.dto.community.CommunityDto;
+import com.java110.entity.center.AppService;
+import com.java110.event.service.api.ServiceDataFlowEvent;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 保存小区侦听
+ * add by wuxw 2019-06-30
+ */
+@Java110Listener("auditEnterCommunity")
+public class AuditEnterCommunityListener extends AbstractServiceApiListener {
+
+    @Autowired
+    private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
+
+    @Override
+    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
+
+        Assert.hasKeyAndValue(reqJson, "communityMemberId", "小区成员ID不能为空");
+        Assert.hasKeyAndValue(reqJson, "state", "必填,请填写小区审核状态");
+        Assert.hasKeyAndValue(reqJson, "remark", "必填,请填写小区审核原因");
+
+    }
+
+    @Override
+    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
+
+        HttpHeaders header = new HttpHeaders();
+        context.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
+        JSONArray businesses = new JSONArray();
+
+        AppService service = event.getAppService();
+
+        //修改小区成员
+        businesses.add(updateCommunityMember(reqJson, context));
+
+        JSONObject paramInObj = super.restToCenterProtocol(businesses, context.getRequestCurrentHeaders());
+
+        //将 rest header 信息传递到下层服务中去
+        super.freshHttpHeader(header, context.getRequestCurrentHeaders());
+
+        ResponseEntity<String> responseEntity = this.callService(context, service.getServiceCode(), paramInObj);
+
+        context.setResponseEntity(responseEntity);
+    }
+
+    @Override
+    public String getServiceCode() {
+        return ServiceCodeConstant.SERVICE_CODE_AUDIT_ENTER_COMMUNITY;
+    }
+
+    @Override
+    public HttpMethod getHttpMethod() {
+        return HttpMethod.POST;
+    }
+
+    @Override
+    public int getOrder() {
+        return DEFAULT_ORDER;
+    }
+
+
+    /**
+     * 添加小区信息
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @param dataFlowContext 数据上下文
+     * @return 订单服务能够接受的报文
+     */
+    private JSONObject updateCommunityMember(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+
+        CommunityMemberDto communityMemberDto = new CommunityMemberDto();
+        communityMemberDto.setCommunityMemberId(paramInJson.getString("communityMemberId"));
+        List<CommunityMemberDto> communityMemberDtos = communityInnerServiceSMOImpl.getCommunityMembers(communityMemberDto);
+        Assert.listOnlyOne(communityMemberDtos, "未查询到该小区成员信息【" + communityMemberDto.getCommunityMemberId() + "】");
+        communityMemberDto = communityMemberDtos.get(0);
+
+        Map oldCommunityInfo = BeanConvertUtil.beanCovertMap(communityMemberDto);
+        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_AUDIT_COMMUNITY_MEMBER_STATE);
+        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
+        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+        JSONObject businessCommunity = new JSONObject();
+        businessCommunity.putAll(oldCommunityInfo);
+        businessCommunity.put("auditStatusCd", paramInJson.getString("state"));
+
+        //审核未通过原因未记录,后期存储在工作流框架中
+
+        //计算 应收金额
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessCommunityMember", businessCommunity);
+        return business;
+    }
+
+
+    public ICommunityInnerServiceSMO getCommunityInnerServiceSMOImpl() {
+        return communityInnerServiceSMOImpl;
+    }
+
+    public void setCommunityInnerServiceSMOImpl(ICommunityInnerServiceSMO communityInnerServiceSMOImpl) {
+        this.communityInnerServiceSMOImpl = communityInnerServiceSMOImpl;
+    }
+}

+ 158 - 0
CommunityService/src/main/java/com/java110/community/listener/communityMember/AuditCommunityMemberStateListener.java

@@ -0,0 +1,158 @@
+package com.java110.community.listener.communityMember;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.common.constant.BusinessTypeConstant;
+import com.java110.common.constant.ResponseConstant;
+import com.java110.common.constant.StatusConstant;
+import com.java110.common.exception.ListenerExecuteException;
+import com.java110.common.util.Assert;
+import com.java110.community.dao.ICommunityServiceDao;
+import com.java110.community.listener.AbstractCommunityBusinessServiceDataFlowListener;
+import com.java110.core.annotation.Java110Listener;
+import com.java110.core.context.DataFlowContext;
+import com.java110.entity.center.Business;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 小区成员退出 侦听
+ * <p>
+ * 处理节点
+ * 1、businessCommunityMember:{} 小区基本信息节点
+ * 协议地址 :https://github.com/java110/MicroCommunity/wiki/%E5%88%A0%E9%99%A4%E5%95%86%E6%88%B7%E4%BF%A1%E6%81%AF-%E5%8D%8F%E8%AE%AE
+ * Created by wuxw on 2018/5/18.
+ */
+@Java110Listener("auditCommunityMemberStateListener")
+@Transactional
+public class AuditCommunityMemberStateListener extends AbstractCommunityBusinessServiceDataFlowListener {
+
+    private final static Logger logger = LoggerFactory.getLogger(AuditCommunityMemberStateListener.class);
+    @Autowired
+    ICommunityServiceDao communityServiceDaoImpl;
+
+    @Override
+    public int getOrder() {
+        return 6;
+    }
+
+    @Override
+    public String getBusinessTypeCd() {
+        return BusinessTypeConstant.BUSINESS_TYPE_AUDIT_COMMUNITY_MEMBER_STATE;
+    }
+
+    /**
+     * 根据删除信息 查出Instance表中数据 保存至business表 (状态写DEL) 方便撤单时直接更新回去
+     *
+     * @param dataFlowContext 数据对象
+     * @param business        当前业务对象
+     */
+    @Override
+    protected void doSaveBusiness(DataFlowContext dataFlowContext, Business business) {
+        JSONObject data = business.getDatas();
+
+        Assert.notEmpty(data, "没有datas 节点,或没有子节点需要处理");
+
+        //处理 businessCommunity 节点 按理这里不应该处理,程序上支持,以防真有这种业务
+        if (data.containsKey("businessCommunityMember")) {
+            JSONObject memberCommunity = data.getJSONObject("businessCommunityMember");
+            doBusinessCommunityMember(business, memberCommunity);
+            dataFlowContext.addParamOut("communityMemberId", memberCommunity.getString("communityMemberId"));
+        }
+
+    }
+
+    /**
+     * 删除 instance数据
+     *
+     * @param dataFlowContext 数据对象
+     * @param business        当前业务对象
+     */
+    @Override
+    protected void doBusinessToInstance(DataFlowContext dataFlowContext, Business business) {
+        String bId = business.getbId();
+        //Assert.hasLength(bId,"请求报文中没有包含 bId");
+
+        //小区信息
+        Map info = new HashMap();
+        info.put("bId", business.getbId());
+        info.put("operate", StatusConstant.OPERATE_ADD);
+
+
+        //小区信息
+        Map businessCommunityMember = communityServiceDaoImpl.getBusinessCommunityMember(info);
+        if (businessCommunityMember != null && !businessCommunityMember.isEmpty()) {
+            flushBusinessCommunityMember(businessCommunityMember, StatusConstant.STATUS_CD_VALID);
+            communityServiceDaoImpl.updateCommunityMemberInstance(businessCommunityMember);
+            dataFlowContext.addParamOut("communityMemberId", businessCommunityMember.get("member_community_id"));
+        }
+    }
+
+    /**
+     * 撤单
+     * 从business表中查询到DEL的数据 将instance中的数据更新回来
+     *
+     * @param dataFlowContext 数据对象
+     * @param business        当前业务对象
+     */
+    @Override
+    protected void doRecover(DataFlowContext dataFlowContext, Business business) {
+        String bId = business.getbId();
+        //Assert.hasLength(bId,"请求报文中没有包含 bId");
+        Map info = new HashMap();
+        info.put("bId", bId);
+        info.put("statusCd", StatusConstant.STATUS_CD_VALID);
+
+        Map delInfo = new HashMap();
+        delInfo.put("bId", business.getbId());
+        delInfo.put("operate", StatusConstant.OPERATE_DEL);
+        //小区信息
+        Map memberCommunity = communityServiceDaoImpl.getCommunityMember(info);
+        if (memberCommunity != null && !memberCommunity.isEmpty()) {
+
+            //小区信息
+            Map businessCommunityMember = communityServiceDaoImpl.getBusinessCommunityMember(delInfo);
+            //除非程序出错了,这里不会为空
+            if (businessCommunityMember == null || businessCommunityMember.isEmpty()) {
+                throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_INNER_ERROR, "撤单失败(member community),程序内部异常,请检查! " + delInfo);
+            }
+
+            flushBusinessCommunityMember(businessCommunityMember, StatusConstant.STATUS_CD_VALID);
+            communityServiceDaoImpl.updateCommunityMemberInstance(businessCommunityMember);
+            dataFlowContext.addParamOut("communityMemberId", memberCommunity.get("member_community_id"));
+        }
+    }
+
+
+    /**
+     * 处理 businessCommunity 节点
+     *
+     * @param business          总的数据节点
+     * @param businessCommunity 小区节点
+     */
+    private void doBusinessCommunityMember(Business business, JSONObject businessCommunity) {
+
+        Assert.jsonObjectHaveKey(businessCommunity, "communityMemberId", "doBusinessCommunityMember 节点下没有包含 communityMemberId 节点");
+
+        //自动插入DEL
+        autoSaveDelBusinessCommunityMember(business, businessCommunity);
+
+        businessCommunity.put("bId",business.getbId());
+        businessCommunity.put("operate", StatusConstant.OPERATE_ADD);
+        //保存小区信息
+        communityServiceDaoImpl.saveBusinessCommunityMember(businessCommunity);
+    }
+
+
+    public ICommunityServiceDao getCommunityServiceDaoImpl() {
+        return communityServiceDaoImpl;
+    }
+
+    public void setCommunityServiceDaoImpl(ICommunityServiceDao communityServiceDaoImpl) {
+        this.communityServiceDaoImpl = communityServiceDaoImpl;
+    }
+}

+ 2 - 1
CommunityService/src/main/java/com/java110/community/listener/MemberJoinedCommunityListener.java

@@ -1,4 +1,4 @@
-package com.java110.community.listener;
+package com.java110.community.listener.communityMember;
 
 import com.alibaba.fastjson.JSONObject;
 import com.java110.common.constant.BusinessTypeConstant;
@@ -7,6 +7,7 @@ import com.java110.common.constant.StatusConstant;
 import com.java110.common.exception.ListenerExecuteException;
 import com.java110.common.util.Assert;
 import com.java110.community.dao.ICommunityServiceDao;
+import com.java110.community.listener.AbstractCommunityBusinessServiceDataFlowListener;
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
 import com.java110.core.factory.GenerateCodeFactory;

+ 2 - 1
CommunityService/src/main/java/com/java110/community/listener/MemberQuitCommunityListener.java

@@ -1,4 +1,4 @@
-package com.java110.community.listener;
+package com.java110.community.listener.communityMember;
 
 import com.alibaba.fastjson.JSONObject;
 import com.java110.common.constant.BusinessTypeConstant;
@@ -7,6 +7,7 @@ import com.java110.common.constant.StatusConstant;
 import com.java110.common.exception.ListenerExecuteException;
 import com.java110.common.util.Assert;
 import com.java110.community.dao.ICommunityServiceDao;
+import com.java110.community.listener.AbstractCommunityBusinessServiceDataFlowListener;
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
 import com.java110.entity.center.Business;

+ 1 - 1
WebService/src/main/java/com/java110/web/components/community/AuditEnterCommunityManageComponent.java

@@ -37,7 +37,7 @@ public class AuditEnterCommunityManageComponent {
     public ResponseEntity<String> list(IPageData pd) {
 
         JSONObject reqParam = JSONObject.parseObject(pd.getReqData());
-        reqParam.put("state", StateConstant.NO_AUDIT);
+        reqParam.put("auditStatusCd", StateConstant.NO_AUDIT);
 
         IPageData newPd = PageData.newInstance().builder(pd.getUserId(), pd.getToken(),
                 reqParam.toJSONString(), pd.getComponentCode(), pd.getComponentMethod(), "", pd.getSessionId());

+ 19 - 0
WebService/src/main/java/com/java110/web/smo/community/IAuditEnterCommunitySMO.java

@@ -0,0 +1,19 @@
+package com.java110.web.smo.community;
+
+import com.java110.core.context.IPageData;
+import org.springframework.http.ResponseEntity;
+
+/**
+ * 审核入驻小区接口
+ *
+ * add by wuxw 2019-06-30
+ */
+public interface IAuditEnterCommunitySMO {
+
+    /**
+     * 审核小区
+     * @param pd 页面数据封装
+     * @return ResponseEntity 对象
+     */
+    ResponseEntity<String> auditEnterCommunity(IPageData pd);
+}

+ 3 - 3
WebService/src/main/java/com/java110/web/smo/community/impl/AuditCommunitySMOImpl.java

@@ -29,12 +29,12 @@ public class AuditCommunitySMOImpl extends AbstractComponentSMO implements IAudi
 
         //super.validatePageInfo(pd);
 
-        Assert.hasKeyAndValue(paramIn, "communityId", "小区ID不能为空");
+        Assert.hasKeyAndValue(paramIn, "communityMemberId", "小区ID不能为空");
         Assert.hasKeyAndValue(paramIn, "state", "必填,请填写小区审核状态");
         Assert.hasKeyAndValue(paramIn, "remark", "必填,请填写小区审核原因");
 
 
-        super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.AUDIT_COMMUNITY);
+        super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.AUDIT_ENTER_COMMUNITY);
 
     }
 
@@ -45,7 +45,7 @@ public class AuditCommunitySMOImpl extends AbstractComponentSMO implements IAudi
         super.validateStoreStaffRelationship(pd, restTemplate);
 
         responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
-                ServiceConstant.SERVICE_API_URL + "/api/community.auditCommunity",
+                ServiceConstant.SERVICE_API_URL + "/api/community.auditEnterCommunity",
                 HttpMethod.POST);
         return responseEntity;
     }

+ 65 - 0
WebService/src/main/java/com/java110/web/smo/community/impl/AuditEnterCommunitySMOImpl.java

@@ -0,0 +1,65 @@
+package com.java110.web.smo.community.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.common.constant.PrivilegeCodeConstant;
+import com.java110.common.constant.ServiceConstant;
+import com.java110.common.util.Assert;
+import com.java110.core.context.IPageData;
+import com.java110.web.core.AbstractComponentSMO;
+import com.java110.web.smo.community.IAuditCommunitySMO;
+import com.java110.web.smo.community.IAuditEnterCommunitySMO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+/**
+ * 审核小区服务实现类
+ * add by wuxw 2019-06-30
+ */
+@Service("auditEnterCommunitySMOImpl")
+public class AuditEnterCommunitySMOImpl extends AbstractComponentSMO implements IAuditEnterCommunitySMO {
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    @Override
+    protected void validate(IPageData pd, JSONObject paramIn) {
+
+        //super.validatePageInfo(pd);
+
+        Assert.hasKeyAndValue(paramIn, "communityMemberId", "小区ID不能为空");
+        Assert.hasKeyAndValue(paramIn, "state", "必填,请填写小区审核状态");
+        Assert.hasKeyAndValue(paramIn, "remark", "必填,请填写小区审核原因");
+
+
+        super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.AUDIT_COMMUNITY);
+
+    }
+
+    @Override
+    protected ResponseEntity<String> doBusinessProcess(IPageData pd, JSONObject paramIn) {
+        ResponseEntity<String> responseEntity = null;
+        //super.validateStoreStaffCommunityRelationship(pd, restTemplate);
+        super.validateStoreStaffRelationship(pd, restTemplate);
+
+        responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
+                ServiceConstant.SERVICE_API_URL + "/api/community.auditEnterCommunity",
+                HttpMethod.POST);
+        return responseEntity;
+    }
+
+    @Override
+    public ResponseEntity<String> auditEnterCommunity(IPageData pd) {
+        return super.businessProcess(pd);
+    }
+
+    public RestTemplate getRestTemplate() {
+        return restTemplate;
+    }
+
+    public void setRestTemplate(RestTemplate restTemplate) {
+        this.restTemplate = restTemplate;
+    }
+}

+ 3 - 3
WebService/src/main/resources/components/communityPackage/audit-enter-community-manage/auditEnterCommunityManage.js

@@ -10,7 +10,7 @@
                 communitys:[],
                 total:0,
                 records:1,
-                currentCommunityId:''
+                currentCommunityMemberId:''
             }
         },
         _initMethod:function(){
@@ -55,11 +55,11 @@
                            );
             },
             _openEnterAuditCommunityModal:function(_community){
-                vc.component.auditEnterCommunityManageInfo.currentCommunityId = _community.communityId;
+                vc.component.auditEnterCommunityManageInfo.currentCommunityMemberId = _community.communityMemberId;
                 vc.emit('audit','openAuditModal',{});
             },
             _auditEnterCommunityState:function(_auditInfo){
-                _auditInfo.communityId = vc.component.auditEnterCommunityManageInfo.currentCommunityId;
+                _auditInfo.communityMemberId = vc.component.auditEnterCommunityManageInfo.currentCommunityMemberId;
                 vc.http.post(
                     'auditEnterCommunityManage',
                     'audit',

+ 9 - 0
java110-bean/src/main/java/com/java110/vo/api/community/ApiCommunityDataVo.java

@@ -5,6 +5,7 @@ import java.util.Date;
 
 public class ApiCommunityDataVo  implements Serializable {
 
+    private String communityMemberId;
     private String communityId;
     private String name;
     private String address;
@@ -131,4 +132,12 @@ public class ApiCommunityDataVo  implements Serializable {
     public void setTel(String tel) {
         this.tel = tel;
     }
+
+    public String getCommunityMemberId() {
+        return communityMemberId;
+    }
+
+    public void setCommunityMemberId(String communityMemberId) {
+        this.communityMemberId = communityMemberId;
+    }
 }

+ 5 - 0
java110-common/src/main/java/com/java110/common/constant/BusinessTypeConstant.java

@@ -220,6 +220,11 @@ public class BusinessTypeConstant {
      */
     public static final String BUSINESS_TYPE_MEMBER_QUIT_COMMUNITY = "500100040002";
 
+    /**
+     * 审核 小区成员
+     */
+    public static final String BUSINESS_TYPE_AUDIT_COMMUNITY_MEMBER_STATE = "500100040003";
+
     /**
      * 删除商户信息
      */

+ 2 - 0
java110-common/src/main/java/com/java110/common/constant/PrivilegeCodeConstant.java

@@ -92,5 +92,7 @@ public final class PrivilegeCodeConstant {
     //审核权限编码
     public static final String AUDIT_COMMUNITY = "502019091773700003";
 
+    public static final String AUDIT_ENTER_COMMUNITY = "502019091978690002";
+
 
 }

+ 1 - 0
java110-common/src/main/java/com/java110/common/constant/ServiceCodeConstant.java

@@ -517,6 +517,7 @@ public class ServiceCodeConstant {
     public static final String SERVICE_CODE_DELETE_COMMUNITY = "community.deleteCommunity";
 
     public static final String SERVICE_CODE_AUDIT_COMMUNITY = "community.auditCommunity";
+    public static final String SERVICE_CODE_AUDIT_ENTER_COMMUNITY = "community.auditEnterCommunity";
 
 
     /**

+ 14 - 6
java110-db/src/main/resources/mapper/community/CommunityServiceDaoImplMapper.xml

@@ -277,7 +277,7 @@
 
     <!-- 查询小区成员  add by wuxw 2018-07-03 -->
     <select id="getCommunityMember" parameterType="Map" resultType="Map">
-        select ms.community_member_id ,ms.b_id,ms.community_id,ms.member_id,ms.member_type_cd,ms.status_cd,ms.audit_status_cd,
+        select ms.community_member_id , ms.b_id,ms.community_id,ms.member_id,ms.member_type_cd,ms.status_cd,ms.audit_status_cd,
         ms.community_member_id communityMemberId ,ms.b_id bId,ms.community_id communityId,ms.member_id memberId,ms.member_type_cd memberTypeCd,ms.status_cd statusCd,
         ms.audit_status_cd auditStatusCd,
         (CASE
@@ -293,7 +293,8 @@
         </if>
         from s_community_member ms
         <if test="needCommunityInfo == true">
-            ,s_community sc
+            ,s_community sc,
+            s_community_member msc
         </if>
         where 1=1
         <if test="needCommunityInfo == true">
@@ -311,7 +312,11 @@
         <if test="communityMemberId != null and communityMemberId !=''">
             and ms.community_member_id = #{communityMemberId}
         </if>
-        <if test="memberId != null and memberId != ''">
+        <if test="memberId != null and memberId != '' and needCommunityInfo == true">
+            AND ms.`community_id` = msc.`community_id`
+            and msc.member_id = #{memberId}
+        </if>
+        <if test="memberId != null and memberId != '' and needCommunityInfo == false">
             and ms.member_id = #{memberId}
         </if>
         <if test="memberTypeCd != null and memberTypeCd != ''">
@@ -353,7 +358,8 @@
         select count(1) count
         from s_community_member ms
         <if test="needCommunityInfo == true">
-            ,s_community sc
+            ,s_community sc,
+            s_community_member msc
         </if>
         where 1=1
         <if test="needCommunityInfo == true">
@@ -371,9 +377,11 @@
         <if test="communityMemberId != null and communityMemberId !=''">
             and ms.community_member_id = #{communityMemberId}
         </if>
-        <if test="memberId != null and memberId != ''">
-            and ms.member_id = #{memberId}
+        <if test="memberId != null and memberId != '' and needCommunityInfo == true">
+            AND ms.`community_id` = msc.`community_id`
+            and msc.member_id = #{memberId}
         </if>
+        <if test="memberId != null andull
         <if test="memberTypeCd != null and memberTypeCd != ''">
             and ms.member_type_cd = #{memberTypeCd}
         </if>