瀏覽代碼

Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

java110 4 年之前
父節點
當前提交
5914606814

+ 1 - 1
java110-bean/src/main/java/com/java110/dto/org/OrgTreeDto.java

@@ -29,7 +29,7 @@ public class OrgTreeDto implements Serializable {
     }
 
     private String id;
-    private String icon;
+    private String icon ="/img/org.png";
     private String text;
     private String parentId;
     private List<OrgTreeDto> children;

+ 28 - 38
java110-db/src/main/resources/mapper/user/UserServiceDaoImplMapper.xml

@@ -456,36 +456,27 @@
     <!-- 查询员工总量 -->
     <select id="getStaffCount" parameterType="Map" resultType="Map">
         select count(1) count
-        from
-        u_user a
-        ,u_org uo
-        ,u_org_staff_rel uosr
-        ,u_org puo
-        where a.level_cd = '01'
-        and a.user_id = uosr.staff_id
+        u_user u
+        <if test="orgId !=null and orgId != ''">
+            left join u_org_staff_rel uosr on u.user_id = uosr.staff_id and uosr.status_cd = '0'
+            left join u_org uo on uosr.org_id = uo.org_id and uo.status_cd = '0'
+        </if>
+        where u.level_cd = '01'
         <if test="storeId !=null and storeId != ''">
             and uosr.store_id = #{storeId}
         </if>
-        and uosr.org_id = uo.org_id
-        and uo.parent_org_id = puo.org_id
-        <if test="parentOrgId !=null and parentOrgId != ''">
-            and uo.parent_org_id = #{parentOrgId}
-        </if>
-        <if test="departmentOrgId !=null and departmentOrgId != ''">
-            and uosr.org_id = #{departmentOrgId}
+        <if test="orgId !=null and orgId != ''">
+            and uosr.org_id = #{orgId}
         </if>
-        and a.status_cd = '0'
-        and uo.status_cd = '0'
-        and uosr.status_cd = '0'
-        and puo.status_cd = '0'
+        and u.status_cd = '0'
         <if test="tel !=null and tel != ''">
-            and a.tel= #{tel}
+            and u.tel= #{tel}
         </if>
         <if test="name !=null and name != ''">
-            and a.name like concat('%',#{name},'%')
+            and u.name like concat('%',#{name},'%')
         </if>
         <if test="staffName !=null and staffName != ''">
-            and a.name like concat('%',#{staffName},'%')
+            and u.name like concat('%',#{staffName},'%')
         </if>
         <if test="staffId != null and staffId !=''">
             and uosr.staff_id = #{staffId}
@@ -496,37 +487,36 @@
         <if test="bId != null and bId !=''">
             and u.b_id = #{bId}
         </if>
+        <if test="userIds != null and userIds != null">
+            and u.user_id in
+            <foreach collection="userIds" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
     </select>
 
     <!-- 查询员工总量 -->
     <select id="getStaffs" parameterType="Map" resultType="Map">
         select uo.org_id orgId,uo.org_name,uo.org_name orgName,u.user_id, u.user_id userId,u.name,u.name
         userName,u.email,u.address,u.location_cd,u.location_cd locationCd,
-        u.age,u.sex,u.tel,u.level_cd levelCd,u.b_id,puo.org_id parentOrgId,puo.org_name
-        parentOrgName,puo.belong_community_id belongCommunityId,
-        uosr.store_id storeId,uosr.rel_cd relCd
+        u.age,u.sex,u.tel,u.level_cd levelCd,u.b_id
+        <if test="storeId !=null and storeId != ''">
+        ,uosr.store_id storeId,uosr.rel_cd relCd
+        </if>
         from
         u_user u
-        ,u_org uo
-        ,u_org_staff_rel uosr
-        ,u_org puo
+        <if test="orgId !=null and orgId != ''">
+        left join u_org_staff_rel uosr on u.user_id = uosr.staff_id and uosr.status_cd = '0'
+        left join u_org uo on uosr.org_id = uo.org_id and uo.status_cd = '0'
+        </if>
         where u.level_cd = '01'
-        and u.user_id = uosr.staff_id
         <if test="storeId !=null and storeId != ''">
             and uosr.store_id = #{storeId}
         </if>
-        and uosr.org_id = uo.org_id
-        and uo.parent_org_id = puo.org_id
-        <if test="parentOrgId !=null and parentOrgId != ''">
-            and uo.parent_org_id = #{parentOrgId}
-        </if>
-        <if test="departmentOrgId !=null and departmentOrgId != ''">
-            and uosr.org_id = #{departmentOrgId}
+        <if test="orgId !=null and orgId != ''">
+            and uosr.org_id = #{orgId}
         </if>
         and u.status_cd = '0'
-        and uo.status_cd = '0'
-        and uosr.status_cd = '0'
-        and puo.status_cd = '0'
         <if test="tel !=null and tel != ''">
             and u.tel= #{tel}
         </if>

+ 0 - 58
service-api/src/main/java/com/java110/api/listener/org/SaveOrgListener.java

@@ -1,58 +0,0 @@
-package com.java110.api.listener.org;
-
-import com.alibaba.fastjson.JSONObject;
-import com.java110.api.bmo.org.IOrgBMO;
-import com.java110.api.listener.AbstractServiceApiPlusListener;
-import com.java110.core.annotation.Java110Listener;
-import com.java110.core.context.DataFlowContext;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
-import com.java110.utils.constant.ServiceCodeOrgConstant;
-import com.java110.utils.util.Assert;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpMethod;
-
-/**
- * 保存小区侦听
- * add by wuxw 2019-06-30
- */
-@Java110Listener("saveOrgListener")
-public class SaveOrgListener extends AbstractServiceApiPlusListener {
-
-    @Autowired
-    private IOrgBMO orgBMOImpl;
-
-    @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
-        //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
-
-        Assert.hasKeyAndValue(reqJson, "orgName", "必填,请填写组织名称");
-        Assert.hasKeyAndValue(reqJson, "orgLevel", "必填,请填写报修人名称");
-        Assert.hasKeyAndValue(reqJson, "parentOrgId", "必填,请选择上级ID");
-        //Assert.hasKeyAndValue(reqJson, "belongCommunityId", "必填,请选择隶属小区");
-        //Assert.hasKeyAndValue(reqJson, "description", "必填,请填写描述");
-        Assert.hasKeyAndValue(reqJson, "storeId", "必填,请填写商户ID");
-
-    }
-
-    @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-
-        orgBMOImpl.addOrg(reqJson, context);
-    }
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeOrgConstant.ADD_ORG;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.POST;
-    }
-
-    @Override
-    public int getOrder() {
-        return DEFAULT_ORDER;
-    }
-
-}

+ 0 - 68
service-api/src/main/java/com/java110/api/listener/org/UpdateOrgListener.java

@@ -1,68 +0,0 @@
-package com.java110.api.listener.org;
-
-import com.alibaba.fastjson.JSONObject;
-import com.java110.api.bmo.org.IOrgBMO;
-import com.java110.api.listener.AbstractServiceApiPlusListener;
-import com.java110.core.annotation.Java110Listener;
-import com.java110.core.context.DataFlowContext;
-import com.java110.intf.user.IOrgInnerServiceSMO;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
-import com.java110.utils.constant.ServiceCodeOrgConstant;
-import com.java110.utils.util.Assert;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpMethod;
-
-/**
- * 保存组织管理侦听
- * add by wuxw 2019-06-30
- */
-@Java110Listener("updateOrgListener")
-public class UpdateOrgListener extends AbstractServiceApiPlusListener {
-
-    @Autowired
-    private IOrgInnerServiceSMO orgInnerServiceSMOImpl;
-    @Autowired
-    private IOrgBMO orgBMOImpl;
-
-    @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
-
-        Assert.hasKeyAndValue(reqJson, "orgId", "组织ID不能为空");
-        Assert.hasKeyAndValue(reqJson, "orgName", "必填,请填写组织名称");
-        Assert.hasKeyAndValue(reqJson, "orgLevel", "必填,请填写报修人名称");
-        Assert.hasKeyAndValue(reqJson, "parentOrgId", "必填,请选择上级ID");
-        //Assert.hasKeyAndValue(reqJson, "description", "必填,请填写描述");
-        Assert.hasKeyAndValue(reqJson, "storeId", "必填,请填写商户ID");
-
-
-    }
-
-    @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-
-        orgBMOImpl.updateOrg(reqJson, context);
-    }
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeOrgConstant.UPDATE_ORG;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.POST;
-    }
-
-    @Override
-    public int getOrder() {
-        return DEFAULT_ORDER;
-    }
-
-    public IOrgInnerServiceSMO getOrgInnerServiceSMOImpl() {
-        return orgInnerServiceSMOImpl;
-    }
-
-    public void setOrgInnerServiceSMOImpl(IOrgInnerServiceSMO orgInnerServiceSMOImpl) {
-        this.orgInnerServiceSMOImpl = orgInnerServiceSMOImpl;
-    }
-}

+ 0 - 144
service-api/src/main/java/com/java110/api/listener/user/QueryStaffServiceListener.java

@@ -1,144 +0,0 @@
-package com.java110.api.listener.user;
-
-import com.alibaba.fastjson.JSONObject;
-import com.java110.api.listener.AbstractServiceApiListener;
-import com.java110.intf.user.IUserInnerServiceSMO;
-import com.java110.dto.user.UserDto;
-import com.java110.utils.constant.CommonConstant;
-import com.java110.utils.constant.ServiceCodeConstant;
-import com.java110.utils.exception.ListenerExecuteException;
-import com.java110.utils.util.Assert;
-import com.java110.utils.util.BeanConvertUtil;
-import com.java110.utils.util.PinYinUtil;
-import com.java110.utils.util.StringUtil;
-import com.java110.core.annotation.Java110Listener;
-import com.java110.core.context.DataFlowContext;
-import com.java110.entity.center.AppService;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
-import com.java110.vo.api.staff.ApiStaffDataVo;
-import com.java110.vo.api.staff.ApiStaffVo;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.*;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * 查询员工信息
- * Created by Administrator on 2019/4/2.
- */
-@Java110Listener("queryStaffServiceListener")
-public class QueryStaffServiceListener extends AbstractServiceApiListener {
-
-    @Autowired
-    private IUserInnerServiceSMO userInnerServiceSMOImpl;
-
-    @Override
-    public int getOrder() {
-        return 0;
-    }
-
-
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeConstant.SERVICE_CODE_QUERY_STAFF_INFOS;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.GET;
-    }
-
-    @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
-        Assert.hasKeyAndValue(reqJson,"page","请求报文中未包含page节点");
-        Assert.hasKeyAndValue(reqJson,"row","请求报文中未包含rows节点");
-        if (!reqJson.containsKey("storeId")) {
-            String storeId = event.getDataFlowContext().getRequestCurrentHeaders().get("store-id");
-            reqJson.put("storeId", storeId);
-        }
-        Assert.hasKeyAndValue(reqJson,"storeId","请求报文中未包含storeId节点");
-    }
-
-    @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-
-        UserDto userDto = BeanConvertUtil.covertBean(reqJson, UserDto.class);
-
-        int count = userInnerServiceSMOImpl.getStaffCount(userDto);
-
-        List<ApiStaffDataVo> staffs = null;
-
-        if (count > 0) {
-            staffs = BeanConvertUtil.covertBeanList(userInnerServiceSMOImpl.getStaffs(userDto), ApiStaffDataVo.class);
-            refreshInitials(staffs);
-        } else {
-            staffs = new ArrayList<>();
-        }
-
-        ApiStaffVo apiStaffVo = new ApiStaffVo();
-
-        apiStaffVo.setTotal(count);
-        apiStaffVo.setRecords((int) Math.ceil((double) count / (double) reqJson.getInteger("row")));
-        apiStaffVo.setStaffs(staffs);
-
-        ResponseEntity<String> responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiStaffVo), HttpStatus.OK);
-
-        context.setResponseEntity(responseEntity);
-    }
-
-    /**
-     * 刷入首字母
-     * @param staffs
-     */
-    private void refreshInitials(List<ApiStaffDataVo> staffs) {
-
-        for(ApiStaffDataVo staffDataVo : staffs){
-            if(StringUtil.isEmpty(staffDataVo.getName())){
-                continue;
-            }
-            staffDataVo.setInitials(PinYinUtil.getFirstSpell(staffDataVo.getName()).toUpperCase().charAt(0)+"");
-        }
-    }
-
-    /**
-     * 查询用户信息
-     * @param tmpObj
-     */
-    private void queryUserInfoByUserId( DataFlowContext dataFlowContext,JSONObject tmpObj,AppService appService){
-
-        String userId = tmpObj.getString("userId");
-
-        if(StringUtil.isEmpty(userId)){
-            return ;
-        }
-
-        ResponseEntity responseEntity= null;
-
-        String requestUrl = appService.getUrl();
-        HttpHeaders header = new HttpHeaders();
-        header.add(CommonConstant.HTTP_SERVICE.toLowerCase(),ServiceCodeConstant.SERVICE_CODE_QUERY_USER_USERINFO);
-
-        //先查询商户服务查询员工userId
-        requestUrl = requestUrl + "?userId="+userId;
-        dataFlowContext.getRequestHeaders().put("REQUEST_URL",requestUrl);
-        HttpEntity<String> httpEntity = new HttpEntity<String>("", header);
-        doRequest(dataFlowContext,appService,httpEntity);
-        responseEntity = dataFlowContext.getResponseEntity();
-
-        if(responseEntity.getStatusCode() != HttpStatus.OK){
-            throw new ListenerExecuteException(1999,"查询用户信息异常 "+responseEntity.getBody());
-        }
-        tmpObj.putAll(JSONObject.parseObject(responseEntity.getBody().toString()));
-    }
-
-
-    public IUserInnerServiceSMO getUserInnerServiceSMOImpl() {
-        return userInnerServiceSMOImpl;
-    }
-
-    public void setUserInnerServiceSMOImpl(IUserInnerServiceSMO userInnerServiceSMOImpl) {
-        this.userInnerServiceSMOImpl = userInnerServiceSMOImpl;
-    }
-}

+ 3 - 0
service-user/src/main/java/com/java110/user/cmd/org/ListOrgTreeCmd.java

@@ -68,6 +68,9 @@ public class ListOrgTreeCmd extends Cmd {
         List<OrgTreeDto> childs = new ArrayList<>();
         OrgTreeDto child = null;
         for (OrgDto orgDto : orgDtos) {
+            if(parentOrgDto.getId().equals(orgDto.getOrgId())){ // 他自己跳过
+                continue;
+            }
             if (orgDto.getParentOrgId().equals(parentOrgDto.getId())) {
                 child = new OrgTreeDto(orgDto.getOrgId(), orgDto.getOrgName(), orgDto.getParentOrgId());
                 childs.add(child);

+ 90 - 0
service-user/src/main/java/com/java110/user/cmd/org/ListOrgsCmd.java

@@ -0,0 +1,90 @@
+package com.java110.user.cmd.org;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.dto.basePrivilege.BasePrivilegeDto;
+import com.java110.dto.org.OrgDto;
+import com.java110.dto.org.OrgStaffRelDto;
+import com.java110.intf.community.IMenuInnerServiceSMO;
+import com.java110.intf.user.IOrgInnerServiceSMO;
+import com.java110.intf.user.IOrgStaffRelInnerServiceSMO;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.vo.api.org.ApiOrgDataVo;
+import com.java110.vo.api.org.ApiOrgVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@Java110Cmd(serviceCode = "org.listOrgs")
+public class ListOrgsCmd extends Cmd {
+
+
+    @Autowired
+    private IOrgInnerServiceSMO orgInnerServiceSMOImpl;
+
+    @Autowired
+    private IMenuInnerServiceSMO menuInnerServiceSMOImpl;
+
+    @Autowired
+    private IOrgStaffRelInnerServiceSMO iOrgStaffRelInnerServiceSMO;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        super.validatePageInfo(reqJson);
+        String storeId = context.getReqHeaders().get("store-id");
+        reqJson.put("storeId", storeId);
+        Assert.hasKeyAndValue(reqJson, "storeId", "必填,请填写商户ID");
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        OrgDto orgDto = BeanConvertUtil.covertBean(reqJson, OrgDto.class);
+        //2级别组织信息
+        if (reqJson.containsKey("orgLevel") && reqJson.getString("orgLevel").equals("2")) {
+            //默认只查看当前归属组织架构
+            BasePrivilegeDto basePrivilegeDto = new BasePrivilegeDto();
+            basePrivilegeDto.setResource("/viewAllOrganization");
+            basePrivilegeDto.setUserId(reqJson.getString("userId"));
+            List<Map> privileges = menuInnerServiceSMOImpl.checkUserHasResource(basePrivilegeDto);
+            if (privileges.size() == 0) {
+                //查询员工所属二级组织架构
+                OrgStaffRelDto orgStaffRelDto = new OrgStaffRelDto();
+                orgStaffRelDto.setStaffId(reqJson.getString("userId"));
+                List<OrgStaffRelDto> orgStaffRelDtos = iOrgStaffRelInnerServiceSMO.queryOrgInfoByStaffIds(orgStaffRelDto);
+                if (orgStaffRelDtos.size() > 0) {
+                    orgDto.setOrgId(orgStaffRelDtos.get(0).getCompanyId());//当前人虽归属的二级组织信息
+                }
+
+            }
+        }
+
+        int count = orgInnerServiceSMOImpl.queryOrgsCount(orgDto);
+
+        List<ApiOrgDataVo> orgs = null;
+
+        if (count > 0) {
+            orgs = BeanConvertUtil.covertBeanList(orgInnerServiceSMOImpl.queryOrgs(orgDto), ApiOrgDataVo.class);
+        } else {
+            orgs = new ArrayList<>();
+        }
+
+        ApiOrgVo apiOrgVo = new ApiOrgVo();
+
+        apiOrgVo.setTotal(count);
+        apiOrgVo.setRecords((int) Math.ceil((double) count / (double) reqJson.getInteger("row")));
+        apiOrgVo.setOrgs(orgs);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiOrgVo), HttpStatus.OK);
+
+        context.setResponseEntity(responseEntity);
+    }
+}

+ 27 - 6
service-user/src/main/java/com/java110/user/cmd/org/SaveOrgCmd.java

@@ -22,6 +22,7 @@ import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
 import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.org.OrgDto;
 import com.java110.intf.user.IOrgV1InnerServiceSMO;
 import com.java110.po.org.OrgPo;
 import com.java110.utils.exception.CmdException;
@@ -32,6 +33,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.List;
+
 /**
  * 类表述:保存
  * 服务编码:org.saveOrg
@@ -54,11 +57,20 @@ public class SaveOrgCmd extends Cmd {
 
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
-        Assert.hasKeyAndValue(reqJson, "orgId", "请求报文中未包含orgId");
-Assert.hasKeyAndValue(reqJson, "storeId", "请求报文中未包含storeId");
-Assert.hasKeyAndValue(reqJson, "orgName", "请求报文中未包含orgName");
-Assert.hasKeyAndValue(reqJson, "orgLevel", "请求报文中未包含orgLevel");
-Assert.hasKeyAndValue(reqJson, "parentOrgId", "请求报文中未包含parentOrgId");
+        Assert.hasKeyAndValue(reqJson, "orgName", "必填,请填写组织名称");
+        Assert.hasKeyAndValue(reqJson, "parentOrgId", "必填,请选择上级ID");
+        //Assert.hasKeyAndValue(reqJson, "belongCommunityId", "必填,请选择隶属小区");
+        //Assert.hasKeyAndValue(reqJson, "description", "必填,请填写描述");
+
+        OrgDto orgDto = new OrgDto();
+        orgDto.setOrgId(reqJson.getString("parentOrgId"));
+        List<OrgDto> orgDtos = orgV1InnerServiceSMOImpl.queryOrgs(orgDto);
+
+        Assert.listOnlyOne(orgDtos,"上级组织不存在");
+
+        int orgLevel = Integer.parseInt(orgDtos.get(0).getOrgLevel());
+        orgLevel +=1;
+        reqJson.put("orgLevel",orgLevel);
 
     }
 
@@ -66,8 +78,17 @@ Assert.hasKeyAndValue(reqJson, "parentOrgId", "请求报文中未包含parentOrg
     @Java110Transactional
     public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
 
-       OrgPo orgPo = BeanConvertUtil.covertBean(reqJson, OrgPo.class);
+        String storeId = cmdDataFlowContext.getReqHeaders().get("store-id");
+
+        JSONObject businessOrg = new JSONObject();
+        businessOrg.putAll(reqJson);
+        businessOrg.put("allowOperation", "T");
+        businessOrg.put("belongCommunityId", "");
+
+        OrgPo orgPo = BeanConvertUtil.covertBean(businessOrg, OrgPo.class);
         orgPo.setOrgId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
+        orgPo.setStoreId(storeId);
+
         int flag = orgV1InnerServiceSMOImpl.saveOrg(orgPo);
 
         if (flag < 1) {

+ 24 - 3
service-user/src/main/java/com/java110/user/cmd/org/UpdateOrgCmd.java

@@ -21,6 +21,7 @@ import com.java110.core.annotation.Java110Transactional;
 import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
+import com.java110.dto.org.OrgDto;
 import com.java110.intf.user.IOrgV1InnerServiceSMO;
 import com.java110.po.org.OrgPo;
 import com.java110.utils.exception.CmdException;
@@ -31,6 +32,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.List;
+
 
 /**
  * 类表述:更新
@@ -53,8 +56,14 @@ public class UpdateOrgCmd extends Cmd {
 
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
-        Assert.hasKeyAndValue(reqJson, "orgId", "orgId不能为空");
-Assert.hasKeyAndValue(reqJson, "storeId", "storeId不能为空");
+        Assert.hasKeyAndValue(reqJson, "orgId", "组织ID不能为空");
+        Assert.hasKeyAndValue(reqJson, "orgName", "必填,请填写组织名称");
+        Assert.hasKeyAndValue(reqJson, "orgLevel", "必填,请填写报修人名称");
+        Assert.hasKeyAndValue(reqJson, "parentOrgId", "必填,请选择上级ID");
+        //Assert.hasKeyAndValue(reqJson, "description", "必填,请填写描述");
+        String storeId = cmdDataFlowContext.getReqHeaders().get("store-id");
+        reqJson.put("storeId", storeId);
+        Assert.hasKeyAndValue(reqJson, "storeId", "必填,请填写商户ID");
 
     }
 
@@ -62,7 +71,19 @@ Assert.hasKeyAndValue(reqJson, "storeId", "storeId不能为空");
     @Java110Transactional
     public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
 
-       OrgPo orgPo = BeanConvertUtil.covertBean(reqJson, OrgPo.class);
+        OrgDto orgDto = new OrgDto();
+        orgDto.setOrgId(reqJson.getString("orgId"));
+        orgDto.setStoreId(reqJson.getString("storeId"));
+        List<OrgDto> orgDtos = orgV1InnerServiceSMOImpl.queryOrgs(orgDto);
+
+        Assert.listOnlyOne(orgDtos, "未查询到组织信息 或查询到多条数据");
+
+        JSONObject businessOrg = new JSONObject();
+        businessOrg.putAll(reqJson);
+        businessOrg.put("allowOperation", orgDtos.get(0).getAllowOperation());
+        businessOrg.put("belongCommunityId", orgDtos.get(0).getBelongCommunityId());
+        OrgPo orgPo = BeanConvertUtil.covertBean(businessOrg, OrgPo.class);
+
         int flag = orgV1InnerServiceSMOImpl.updateOrg(orgPo);
 
         if (flag < 1) {

+ 80 - 0
service-user/src/main/java/com/java110/user/cmd/user/QueryStaffInfosCmd.java

@@ -0,0 +1,80 @@
+package com.java110.user.cmd.user;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.dto.user.UserDto;
+import com.java110.intf.user.IUserInnerServiceSMO;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.PinYinUtil;
+import com.java110.utils.util.StringUtil;
+import com.java110.vo.api.staff.ApiStaffDataVo;
+import com.java110.vo.api.staff.ApiStaffVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Java110Cmd(serviceCode = "query.staff.infos")
+public class QueryStaffInfosCmd extends Cmd {
+
+    @Autowired
+    private IUserInnerServiceSMO userInnerServiceSMOImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        Assert.hasKeyAndValue(reqJson,"page","请求报文中未包含page节点");
+        Assert.hasKeyAndValue(reqJson,"row","请求报文中未包含rows节点");
+        if (!reqJson.containsKey("storeId")) {
+            String storeId = context.getReqHeaders().get("store-id");
+            reqJson.put("storeId", storeId);
+        }
+        Assert.hasKeyAndValue(reqJson,"storeId","请求报文中未包含storeId节点");
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        UserDto userDto = BeanConvertUtil.covertBean(reqJson, UserDto.class);
+
+        int count = userInnerServiceSMOImpl.getStaffCount(userDto);
+
+        List<ApiStaffDataVo> staffs = null;
+
+        if (count > 0) {
+            staffs = BeanConvertUtil.covertBeanList(userInnerServiceSMOImpl.getStaffs(userDto), ApiStaffDataVo.class);
+            refreshInitials(staffs);
+        } else {
+            staffs = new ArrayList<>();
+        }
+
+        ApiStaffVo apiStaffVo = new ApiStaffVo();
+
+        apiStaffVo.setTotal(count);
+        apiStaffVo.setRecords((int) Math.ceil((double) count / (double) reqJson.getInteger("row")));
+        apiStaffVo.setStaffs(staffs);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiStaffVo), HttpStatus.OK);
+
+        context.setResponseEntity(responseEntity);
+    }
+
+    /**
+     * 刷入首字母
+     * @param staffs
+     */
+    private void refreshInitials(List<ApiStaffDataVo> staffs) {
+
+        for(ApiStaffDataVo staffDataVo : staffs){
+            if(StringUtil.isEmpty(staffDataVo.getName())){
+                continue;
+            }
+            staffDataVo.setInitials(PinYinUtil.getFirstSpell(staffDataVo.getName()).toUpperCase().charAt(0)+"");
+        }
+    }
+}