dcs 1 jaar geleden
bovenliggende
commit
62638bc997
19 gewijzigde bestanden met toevoegingen van 401 en 333 verwijderingen
  1. 25 0
      virgo.api/src/main/java/com/bosshand/virgo/api/controller/ProjectController.java
  2. 2 1
      virgo.api/src/main/java/com/bosshand/virgo/api/controller/ProjectItemTargetRoomController.java
  3. 17 0
      virgo.api/src/main/java/com/bosshand/virgo/api/dao/ProjectBindDao.java
  4. 1 0
      virgo.api/src/main/java/com/bosshand/virgo/api/dao/ProjectDao.java
  5. 48 0
      virgo.api/src/main/java/com/bosshand/virgo/api/model/ProjectBind.java
  6. 28 0
      virgo.api/src/main/java/com/bosshand/virgo/api/service/ProjectBindService.java
  7. 3 0
      virgo.api/src/main/java/com/bosshand/virgo/api/service/ProjectService.java
  8. 26 0
      virgo.api/src/main/resources/mapper/ProjectBindMapper.xml
  9. 7 0
      virgo.api/src/main/resources/mapper/ProjectMapper.xml
  10. 0 20
      virgo.core/src/main/java/com/bosshand/virgo/core/dao/MgrOrganizationProjectDao.java
  11. 0 45
      virgo.core/src/main/java/com/bosshand/virgo/core/model/MgrOrganizationProject.java
  12. 28 0
      virgo.core/src/main/java/com/bosshand/virgo/core/model/MgrUserRole.java
  13. 0 34
      virgo.core/src/main/resources/mapper/MgrOrganizationProjectMapper.xml
  14. 5 3
      virgo.core/src/main/resources/mapper/MgrUserRoleMapper.xml
  15. 0 47
      virgo.manager/src/main/java/com/bosshand/virgo/controller/AdminController.java
  16. 8 36
      virgo.manager/src/main/java/com/bosshand/virgo/controller/OrganizationController.java
  17. 63 0
      virgo.manager/src/main/java/com/bosshand/virgo/controller/UserController.java
  18. 14 63
      virgo.manager/src/main/java/com/bosshand/virgo/service/OrganizationService.java
  19. 126 84
      virgo.manager/src/main/java/com/bosshand/virgo/service/UserService.java

+ 25 - 0
virgo.api/src/main/java/com/bosshand/virgo/api/controller/ProjectController.java

@@ -1,6 +1,8 @@
 package com.bosshand.virgo.api.controller;
 
 import com.bosshand.virgo.api.model.Project;
+import com.bosshand.virgo.api.model.ProjectBind;
+import com.bosshand.virgo.api.service.ProjectBindService;
 import com.bosshand.virgo.api.service.ProjectItemTargetRoomService;
 import com.bosshand.virgo.api.service.ProjectService;
 import com.bosshand.virgo.core.response.Response;
@@ -9,6 +11,7 @@ import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -21,9 +24,31 @@ public class ProjectController {
     @Autowired
     ProjectService projectService;
 
+    @Autowired
+    ProjectBindService projectBindService;
+
     @Autowired
     ProjectItemTargetRoomService projectItemTargetRoomService;
 
+    @ApiOperation("获取绑定项目")
+    @RequestMapping(value = "/bindProject/{organizationId}/{userId}", method = RequestMethod.GET)
+    public Response getBindProject(@PathVariable long organizationId, @PathVariable long userId) {
+        List<ProjectBind> list = projectBindService.get(organizationId, userId);
+        List<Long> ids = new ArrayList<>();
+        list.forEach(ls -> ids.add(ls.getProjectId()));
+        if (ids.size() > 0) {
+            return Response.ok(projectService.getIds(ids));
+        }
+        return Response.ok();
+    }
+
+    @ApiOperation("绑定项目")
+    @RequestMapping(value = "/bindProject", method = RequestMethod.POST)
+    public Response bindProject(@RequestBody ProjectBind projectBind) {
+        projectBindService.insert(projectBind);
+        return Response.ok();
+    }
+
     @ApiOperation("获取")
     @RequestMapping(value = "/{currPage}/{pageSize}", method = RequestMethod.POST)
     public Response list(@RequestBody Project project, @PathVariable int currPage, @PathVariable int pageSize) {

+ 2 - 1
virgo.api/src/main/java/com/bosshand/virgo/api/controller/ProjectItemTargetRoomController.java

@@ -27,8 +27,9 @@ public class ProjectItemTargetRoomController {
     public Response list(@RequestBody ProjectItemTargetRoom projectItemTargetRoom, @PathVariable int currPage, @PathVariable int pageSize) {
         int totalCount = projectItemTargetRoomService.getTotalCount(projectItemTargetRoom);
         List<ProjectItemTargetRoom> dataList = projectItemTargetRoomService.getLimit(projectItemTargetRoom, currPage, pageSize);
+        List<Tag> tags = new ArrayList<>();
         for (ProjectItemTargetRoom room : dataList) {
-            List<Tag> tags = new ArrayList<>();
+            tags.clear();
             if (room.getTagIds() != null) {
                 for (String tagId : room.getTagIds().split(",")) {
                     tags.add(projectItemTargetRoomService.getTag(Long.parseLong(tagId)));

+ 17 - 0
virgo.api/src/main/java/com/bosshand/virgo/api/dao/ProjectBindDao.java

@@ -0,0 +1,17 @@
+package com.bosshand.virgo.api.dao;
+
+import com.bosshand.virgo.api.model.ProjectBind;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface ProjectBindDao {
+
+    List<ProjectBind> get(long organizationId, long userId);
+
+    int insert(ProjectBind projectBind);
+
+    int delete(long projectId);
+
+}

+ 1 - 0
virgo.api/src/main/java/com/bosshand/virgo/api/dao/ProjectDao.java

@@ -26,4 +26,5 @@ public interface ProjectDao {
 
     List<Project> getLimit(@Param("p") Project p, @Param("currIndex") int currIndex, @Param("pageSize") int pageSize);
 
+    List<Project> getIds(List<Long> ids);
 }

+ 48 - 0
virgo.api/src/main/java/com/bosshand/virgo/api/model/ProjectBind.java

@@ -0,0 +1,48 @@
+package com.bosshand.virgo.api.model;
+
+/**
+ * 用户项目绑定
+ */
+public class ProjectBind {
+
+    private int id;
+
+    private long organizationId;
+
+    private long projectId;
+
+    private long userId;
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public long getOrganizationId() {
+        return organizationId;
+    }
+
+    public void setOrganizationId(long organizationId) {
+        this.organizationId = organizationId;
+    }
+
+    public long getProjectId() {
+        return projectId;
+    }
+
+    public void setProjectId(long projectId) {
+        this.projectId = projectId;
+    }
+
+    public long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(long userId) {
+        this.userId = userId;
+    }
+
+}

+ 28 - 0
virgo.api/src/main/java/com/bosshand/virgo/api/service/ProjectBindService.java

@@ -0,0 +1,28 @@
+package com.bosshand.virgo.api.service;
+
+import com.bosshand.virgo.api.dao.ProjectBindDao;
+import com.bosshand.virgo.api.model.ProjectBind;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class ProjectBindService {
+
+    @Autowired
+    ProjectBindDao projectBindDao;
+
+    public List<ProjectBind> get(long organizationId, long userId) {
+        return projectBindDao.get(organizationId, userId);
+    }
+
+    public int insert(ProjectBind projectBind) {
+        return projectBindDao.insert(projectBind);
+    }
+
+    public int delete(long projectId) {
+        return projectBindDao.delete(projectId);
+    }
+
+}

+ 3 - 0
virgo.api/src/main/java/com/bosshand/virgo/api/service/ProjectService.java

@@ -57,4 +57,7 @@ public class ProjectService {
 		return projectDao.getProjectByOrganizationId(organizationId);
 	}
 
+	public List<Project> getIds(List<Long> ids) {
+		return projectDao.getIds(ids);
+	}
 }

+ 26 - 0
virgo.api/src/main/resources/mapper/ProjectBindMapper.xml

@@ -0,0 +1,26 @@
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.bosshand.virgo.api.dao.ProjectBindDao">
+
+    <resultMap type="com.bosshand.virgo.api.model.ProjectBind" id="ProjectBindResult" >
+        <id column="id" property="id"/>
+        <result column="organizationId" property="organizationId"/>
+        <result column="projectId" property="projectId"/>
+        <result column="userId" property="userId"/>
+    </resultMap>
+
+    <select id="get" resultMap="ProjectBindResult">
+        select * from project_bind where organizationId = #{organizationId} and userId = #{userId}
+    </select>
+
+    <insert id="insert">
+        insert into project_bind (organizationId, projectId, userId) value (#{organizationId}, #{projectId}, #{userId})
+    </insert>
+
+    <delete id="delete">
+        delete from project_bind where projectId = #{projectId}
+    </delete>
+
+</mapper>

+ 7 - 0
virgo.api/src/main/resources/mapper/ProjectMapper.xml

@@ -47,6 +47,13 @@
 		SELECT * FROM project WHERE id=#{id}
 	</select>
 
+	<select id="getIds" resultMap="result">
+		SELECT * FROM project WHERE id in
+		<foreach collection="list" open="(" separator="," close=")" item="id">
+			#{id}
+		</foreach>
+	</select>
+
 	<select id="get" resultMap="projectResult">
 		<include refid="ProjectQuery"/>
 		where p.deleteState = 0 and p.id=#{id}

+ 0 - 20
virgo.core/src/main/java/com/bosshand/virgo/core/dao/MgrOrganizationProjectDao.java

@@ -1,20 +0,0 @@
-package com.bosshand.virgo.core.dao;
-
-import java.util.List;
-
-import org.apache.ibatis.annotations.Mapper;
-
-import com.bosshand.virgo.core.model.MgrOrganizationProject;
-
-@Mapper
-public interface MgrOrganizationProjectDao {
-	
-	List<MgrOrganizationProject> getProjectId(long projectId);
-	
-	int insertBatch(List<MgrOrganizationProject> list);
-	
-	int delete(long projectId);
-
-	int organizationProjectState(long organizationId, long projectId, int state);
-
-}

+ 0 - 45
virgo.core/src/main/java/com/bosshand/virgo/core/model/MgrOrganizationProject.java

@@ -1,45 +0,0 @@
-package com.bosshand.virgo.core.model;
-
-public class MgrOrganizationProject {
-	
-	private int id;
-
-	private long projectId;
-
-	private long organizationId;
-	
-	private int state;
-
-	public int getId() {
-		return id;
-	}
-
-	public void setId(int id) {
-		this.id = id;
-	}
-
-	public long getProjectId() {
-		return projectId;
-	}
-
-	public void setProjectId(long projectId) {
-		this.projectId = projectId;
-	}
-
-	public long getOrganizationId() {
-		return organizationId;
-	}
-
-	public void setOrganizationId(long organizationId) {
-		this.organizationId = organizationId;
-	}
-
-	public int getState() {
-		return state;
-	}
-
-	public void setState(int state) {
-		this.state = state;
-	}
-
-}

+ 28 - 0
virgo.core/src/main/java/com/bosshand/virgo/core/model/MgrUserRole.java

@@ -4,16 +4,36 @@ public class MgrUserRole implements BaseModel {
 	
 	private int id;
 
+	/**
+	 * 用户id
+	 */
 	private long userId;
 
+	/**
+	 * 组织id
+	 */
 	private long organizationId;
 
+	/**
+	 * 菜单
+	 */
 	private String menus;
 
+	/**
+	 * 资源
+	 */
 	private String resources;
 
+	/**
+	 * 部门角色
+	 */
 	private String roles;
 
+	/**
+	 * 身份 1:客户,2:经纪人
+	 */
+	private String identity;
+
 	private boolean admin;
 
 	public int getId() {
@@ -64,6 +84,14 @@ public class MgrUserRole implements BaseModel {
 		this.roles = roles;
 	}
 
+	public String getIdentity() {
+		return identity;
+	}
+
+	public void setIdentity(String identity) {
+		this.identity = identity;
+	}
+
 	public boolean isAdmin() {
 		return admin;
 	}

+ 0 - 34
virgo.core/src/main/resources/mapper/MgrOrganizationProjectMapper.xml

@@ -1,34 +0,0 @@
-<!DOCTYPE mapper
-    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- 
-<mapper namespace="com.bosshand.virgo.core.dao.MgrOrganizationProjectDao">
-
-<resultMap type="com.bosshand.virgo.core.model.MgrOrganizationProject" id="MgrOrganizationProjectResult" >
-	<id column="id" property="id"/>
-	<result column="projectId" property="projectId"/>	
-	<result column="organizationId" property="organizationId"/>
-	<result column="state" property="state"/>		
-</resultMap>
-
-<select id="getProjectId" resultMap="MgrOrganizationProjectResult">
-	select * from mgr_organization_project where projectId = #{projectId}
-</select>
-
-<insert id="insertBatch">
-    insert into mgr_organization_project (projectId, organizationId) 
-    values 
-    <foreach collection="list" item="item" index="index" separator=",">
-        (#{item.projectId},#{item.organizationId})
-    </foreach>
-</insert>
-
-<delete id="delete">
-	delete from mgr_organization_project where projectId = #{projectId}
-</delete>
-
-<update id="organizationProjectState">
-	update mgr_organization_project set state = #{state} where projectId = #{projectId} and organizationId = #{organizationId}
-</update>
-
-</mapper>

+ 5 - 3
virgo.core/src/main/resources/mapper/MgrUserRoleMapper.xml

@@ -11,7 +11,8 @@
 	<result column="menus" property="menus"/>	
 	<result column="resources" property="resources"/>	
 	<result column="roles" property="roles"/>
-	<result column="admin" property="admin"/>			
+	<result column="identity" property="identity"/>
+	<result column="admin" property="admin"/>
 </resultMap>
 
 <select id="getUserRoles" resultMap="MgrUserRoleResult">
@@ -31,8 +32,8 @@
 </select>
 		
 <insert id="insert" parameterType="com.bosshand.virgo.core.model.MgrUserRole" useGeneratedKeys="true" keyProperty="id">
-	INSERT into mgr_user_role(userId, organizationId, menus, resources, roles, admin)
-	values(#{userId}, #{organizationId}, #{menus}, #{resources}, #{roles},#{admin})
+	INSERT into mgr_user_role(userId, organizationId, menus, resources, roles, identity, admin)
+	values(#{userId}, #{organizationId}, #{menus}, #{resources}, #{roles} ,#{identity} ,#{admin})
 </insert>	
 
 <update id="update" parameterType="com.bosshand.virgo.core.model.MgrUserRole">
@@ -43,6 +44,7 @@
 			<if test="menus!=null">menus=#{menus},</if>
 			<if test="resources!=null">resources=#{resources},</if>
 			<if test="roles!=null">roles=#{roles},</if>
+			<if test="identity!=null">identity=#{identity},</if>
 			<if test="admin!=null">admin=#{admin},</if>
 		</trim>		
 	WHERE id=#{id}

+ 0 - 47
virgo.manager/src/main/java/com/bosshand/virgo/controller/AdminController.java

@@ -1,47 +0,0 @@
-package com.bosshand.virgo.controller;
-
-import com.bosshand.virgo.core.model.MgrUser;
-import com.bosshand.virgo.core.model.MgrUserRole;
-import com.bosshand.virgo.core.response.Response;
-import com.bosshand.virgo.service.UserService;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-@RestController
-@RequestMapping("admin")
-public class AdminController {
-
-	@Autowired
-	UserService userService;
-
-	@ApiOperation(value="用户新增", notes="用户新增")
-	@RequestMapping(value = "/insertUser/{organizationId}/{roles}", method = RequestMethod.POST)
-	public Response insertUser(@RequestBody MgrUser user, @PathVariable long organizationId, @PathVariable String roles) {
-		MgrUser mgrUser = userService.insertUser(user);
-		userService.insertUserRole(mgrUser.getId(),organizationId, roles);
-		return Response.ok();
-	}
-
-	@ApiOperation(value="更新用户权限菜单", notes="更新用户权限菜单")
-	@RequestMapping(value = "/userRole", method = RequestMethod.PUT)
-	public Response updateResources(@RequestBody MgrUserRole userRole) {
-		userService.updateResources(userRole);
-		return Response.ok();
-	}
-
-	@ApiOperation(value="禁止用户", notes="禁止用户")
-	@RequestMapping(value = "/banUser/{id}/{status}", method = RequestMethod.GET)
-	public Response banUser(@PathVariable long id, @PathVariable int status) {
-		userService.banUser(id, status);
-		return Response.ok("成功");
-	}
-	
-	@ApiOperation(value="删除用户", notes="删除用户")
-	@RequestMapping(value = "/deleteUser/{id}", method = RequestMethod.GET)
-	public Response deleteUser(@PathVariable long id) {
-		userService.deleteUser(id);
-		return Response.ok("成功");
-	}
-
-}

+ 8 - 36
virgo.manager/src/main/java/com/bosshand/virgo/controller/OrganizationController.java

@@ -1,23 +1,16 @@
 package com.bosshand.virgo.controller;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-
 import com.alibaba.fastjson.JSONObject;
 import com.bosshand.virgo.core.model.MgrOrganization;
 import com.bosshand.virgo.core.response.Response;
 import com.bosshand.virgo.service.OrganizationService;
-
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 @RestController
 @RequestMapping("base")
@@ -39,7 +32,7 @@ public class OrganizationController {
 
 	@ApiOperation(value="组织详情", notes="组织详情")
 	@RequestMapping(value = "/organization/{id}", method = RequestMethod.GET)
-	public Response getOrganization(@PathVariable int id) {
+	public Response getOrganization(@PathVariable long id) {
 		MgrOrganization mgrOrganization = organizationService.get(id);
 		return Response.ok(mgrOrganization);
 	}
@@ -82,26 +75,5 @@ public class OrganizationController {
 		MgrOrganization mgrOrganization = organizationService.getByOrganizationCode(organizationCode);
 		return Response.ok(mgrOrganization);
 	}
-	
-	@ApiOperation(value = "项目绑定组织", notes = "项目绑定组织")
-	@RequestMapping(value = "/organizationProject", method = RequestMethod.POST)
-	public Response bindingOrganizationProject(@RequestParam(value = "projectId", required = true) long projectId,
-			@RequestParam(value = "organizationIds", required = true) String organizationIds) {
-		organizationService.bindingOrganizationProject(projectId, organizationIds);
-		return Response.ok();
-	}
-	
-	@ApiOperation(value="根据projectId获取绑定组织", notes="根据projectId获取绑定组织")
-	@RequestMapping(value = "/organizationProject/{projectId}", method = RequestMethod.GET)
-	public Response getByOrganizationProject(@PathVariable long projectId) {
-		return Response.ok(organizationService.getByOrganizationProject(projectId));
-	}
-	
-	@ApiOperation(value="修改组织在当前项目下的状态", notes="修改组织在当前项目下的状态")
-	@RequestMapping(value = "/organizationProject/{organizationId}/{projectId}/{state}", method = RequestMethod.PUT)
-	public Response organizationProjectState(@PathVariable long organizationId, @PathVariable long projectId, @PathVariable int state) {
-		organizationService.organizationProjectState(organizationId, projectId, state);
-		return Response.ok();
-	}
-	
+
 }

+ 63 - 0
virgo.manager/src/main/java/com/bosshand/virgo/controller/UserController.java

@@ -0,0 +1,63 @@
+package com.bosshand.virgo.controller;
+
+import com.bosshand.virgo.core.model.MgrUser;
+import com.bosshand.virgo.core.model.MgrUserRole;
+import com.bosshand.virgo.core.response.Response;
+import com.bosshand.virgo.service.UserService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("user")
+public class UserController {
+
+	@Autowired
+	UserService userService;
+
+	@ApiOperation(value = "客户列表", notes = "客户列表")
+	@RequestMapping(value = "/list/{organizationId}/{identity}", method = RequestMethod.POST)
+	public Response getUserList(@PathVariable long organizationId, @PathVariable int identity) {
+		return Response.ok(userService.getUserList(organizationId, String.valueOf(identity)));
+	}
+
+	@ApiOperation(value = "新增客户", notes = "新增客户")
+	@RequestMapping(value = "/addClient/{organizationId}/{identity}/{phone}", method = RequestMethod.POST)
+	public Response insertUser(@PathVariable long organizationId, @PathVariable int identity, @PathVariable String phone) {
+		MgrUser user = userService.getByPhone(phone);
+		if (user == null) {
+			return Response.fail(20001, "客户未注册!");
+		}
+		userService.addClient(user.getId(), organizationId, String.valueOf(identity));
+		return Response.ok(user);
+	}
+
+	@ApiOperation(value = "删除客户", notes = "删除客户")
+	@RequestMapping(value = "/delClient/{organizationId}/{userId}", method = RequestMethod.DELETE)
+	public Response deleteUser(@PathVariable long organizationId, @PathVariable long userId) {
+		userService.deleteUser(organizationId, userId);
+		return Response.ok();
+	}
+
+	@ApiOperation(value="更新部门角色", notes="更新部门角色")
+	@RequestMapping(value = "/updateUserRole", method = RequestMethod.POST)
+	public Response updateUserRole(@RequestBody MgrUserRole userRole) {
+		userService.updateUserRole(userRole);
+		return Response.ok();
+	}
+
+	@ApiOperation(value="更新用户权限菜单", notes="更新用户权限菜单")
+	@RequestMapping(value = "/userRole", method = RequestMethod.PUT)
+	public Response updateResources(@RequestBody MgrUserRole userRole) {
+		userService.updateResources(userRole);
+		return Response.ok();
+	}
+
+	@ApiOperation(value="禁止用户", notes="禁止用户")
+	@RequestMapping(value = "/banUser/{id}/{status}", method = RequestMethod.GET)
+	public Response banUser(@PathVariable long id, @PathVariable int status) {
+		userService.banUser(id, status);
+		return Response.ok("成功");
+	}
+
+}

+ 14 - 63
virgo.manager/src/main/java/com/bosshand/virgo/service/OrganizationService.java

@@ -2,13 +2,9 @@ package com.bosshand.virgo.service;
 
 import com.alibaba.fastjson.JSONObject;
 import com.bosshand.virgo.core.dao.MgrOrganizationDao;
-import com.bosshand.virgo.core.dao.MgrOrganizationProjectDao;
-import com.bosshand.virgo.core.dao.MgrUserRoleDao;
 import com.bosshand.virgo.core.model.MgrOrganization;
-import com.bosshand.virgo.core.model.MgrOrganizationProject;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -18,48 +14,19 @@ import java.util.Map;
 @Service
 public class OrganizationService {
 
-	@Autowired
-	private MgrUserRoleDao mgrUserRoleDao;
-
 	@Autowired
 	private MgrOrganizationDao mgrOrganizationDao;
 
-	@Autowired
-	private MgrOrganizationProjectDao mgrOrganizationProjectDao;
+	public int update(MgrOrganization mgrOrganization) {
+		return mgrOrganizationDao.update(mgrOrganization);
+	}
 
-	@Transactional
-	public int bindingOrganizationProject(long projectId, String organizationIds) {
-		String[] split = organizationIds.split(",");
-		mgrOrganizationProjectDao.delete(projectId);
-		List<MgrOrganizationProject> list = new ArrayList<>();
-		for (int i = 0; i < split.length; i++) {
-			MgrOrganizationProject op = new MgrOrganizationProject();
-			op.setOrganizationId(Long.parseLong(split[i]));
-			op.setProjectId(projectId);
-			list.add(op);
-		}
-		return mgrOrganizationProjectDao.insertBatch(list);
+	public int updateStatus(MgrOrganization mgrOrganization) {
+		return mgrOrganizationDao.updateStatus(mgrOrganization);
 	}
 
-	public List<MgrOrganization> getByOrganizationProject(long projectId) {
-		List<MgrOrganizationProject> list = mgrOrganizationProjectDao.getProjectId(projectId);
-		List<Long> ids = new ArrayList<>();
-		list.forEach(ls -> ids.add(ls.getOrganizationId()));
-		if (ids.size() == 0) {
-			return new ArrayList<>();
-		}
-		List<MgrOrganization> os = mgrOrganizationDao.organizationByIds(ids);
-		for (MgrOrganizationProject op : list) {
-			for (MgrOrganization mo : os) {
-				if (op.getOrganizationId() == mo.getId()) {
-					mo.setState(op.getState());
-				}
-				// TODO
-				// 需要之后统计
-				mo.setProjectUserCount(0);
-			}
-		}
-		return os;
+	public int setOrganizedDataCenter(MgrOrganization mgrOrganization) {
+		return mgrOrganizationDao.setOrganizedDataCenter(mgrOrganization);
 	}
 
 	public MgrOrganization get(long id) {
@@ -74,16 +41,13 @@ public class OrganizationService {
 		return mgrOrganizationDao.getByOrganizationName(name);
 	}
 
-	public int update(MgrOrganization mgrOrganization) {
-		return mgrOrganizationDao.update(mgrOrganization);
-	}
-
-	public int updateStatus(MgrOrganization mgrOrganization) {
-		return mgrOrganizationDao.updateStatus(mgrOrganization);
-	}
-
-	public int setOrganizedDataCenter(MgrOrganization mgrOrganization) {
-		return mgrOrganizationDao.setOrganizedDataCenter(mgrOrganization);
+	public List<MgrOrganization> organizationByIds(String organizationIds) {
+		List<Long> ids = new ArrayList<>();
+		String[] split = organizationIds.split(",");
+		for (int i = 0; i < split.length; i++) {
+			ids.add(Long.valueOf(split[i]));
+		}
+		return mgrOrganizationDao.organizationByIds(ids);
 	}
 
 	public List<MgrOrganization> getList(JSONObject parameter) {
@@ -118,17 +82,4 @@ public class OrganizationService {
 		return mgrOrganizationDao.getTotalCount(data);
 	}
 
-	public List<MgrOrganization> organizationByIds(String organizationIds) {
-		List<Long> ids = new ArrayList<>();
-		String[] split = organizationIds.split(",");
-		for (int i = 0; i < split.length; i++) {
-			ids.add(Long.valueOf(split[i]));
-		}
-		return mgrOrganizationDao.organizationByIds(ids);
-	}
-
-	public int organizationProjectState(long organizationId, long projectId, int state) {
-		return mgrOrganizationProjectDao.organizationProjectState(organizationId, projectId, state);
-	}
-
 }

+ 126 - 84
virgo.manager/src/main/java/com/bosshand/virgo/service/UserService.java

@@ -11,94 +11,136 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 @Service
 public class UserService {
 
-	@Autowired
-	private MgrUserDao mgrUserDao;
-
-	@Autowired
-	private MgrUserRoleDao mgrUserRoleDao;
-
-	@Autowired
-	private MgrOrganizationDao mgrOrganizationDao;
-
-	@Autowired
-	private AttendanceDao attendanceDao;
-
-	public MgrUser getById(long id) {
-		MgrUser user = mgrUserDao.getById(id);
-		user.setMgrOrganization(mgrOrganizationDao.get(user.getLastOrganizationId()));
-		return user;
-	}
-
-	public MgrUser getByPhone(String phone) {
-		return mgrUserDao.getByPhone(phone);
-	}
-
-	public int update(MgrUser user) {
-		return mgrUserDao.update(user);
-	}
-
-	public int banUser(long id, int status) {
-		return mgrUserDao.banUser(id, status);
-	}
-
-	public MgrUser insertUser(MgrUser user) {
-		MgrUser userByPhone = mgrUserDao.getUserByPhone(user.getPhone());
-		if (userByPhone != null) {
-			return userByPhone;
-		}
-		mgrUserDao.insert(user);
-		return user;
-	}
-
-	public int deleteUser(long id) {
-		return mgrUserDao.delete(id);
-	}
-
-	public int checkFace(long id) {
-		return mgrUserDao.checkFace(id);
-	}
-
-	public List<MgrUser> getUserByOrganizationId(long organizationId) {
-		List<MgrUserRole> list = mgrUserRoleDao.getOrganizationId(organizationId);
-		List<Long> ids = new ArrayList<>();
-		list.forEach(ls -> ids.add(ls.getUserId()));
-		return mgrUserDao.getIds(ids);
-	}
-
-	public void insertUserRole(long userId, long organizationId, String roles) {
-		MgrUserRole mur = mgrUserRoleDao.getUser(userId, organizationId);
-		if (mur != null) {
-			StringBuffer sb = new StringBuffer(mur.getRoles() == null ? "-1" : mur.getRoles());
-			sb.append("," + roles);
-			mur.setRoles(sb.toString());
-			mgrUserRoleDao.update(mur);
-		} else {
-			MgrUserRole userRole = new MgrUserRole();
-			userRole.setUserId(userId);
-			userRole.setOrganizationId(organizationId);
-			userRole.setRoles(roles);
-			mgrUserRoleDao.insert(userRole);
-		}
-	}
-
-	public void updateResources(MgrUserRole userRole) {
-		mgrUserRoleDao.updateResources(userRole);
-	}
-
-	public int saveAttendance(Attendance attendance) {
-		return attendanceDao.insert(attendance);
-	}
-	
-	public List<Attendance> getAttendance(Attendance attendance) {
-		if (attendance.getEndDate() != null) {
-			attendance.setEndDate(attendance.getEndDate() + " 23:59:59");
-		}
-		return attendanceDao.getByUser(attendance);
-	}
+    @Autowired
+    private MgrUserDao mgrUserDao;
+
+    @Autowired
+    private MgrUserRoleDao mgrUserRoleDao;
+
+    @Autowired
+    private MgrOrganizationDao mgrOrganizationDao;
+
+    @Autowired
+    private AttendanceDao attendanceDao;
+
+    public MgrUser getById(long id) {
+        MgrUser user = mgrUserDao.getById(id);
+        user.setMgrOrganization(mgrOrganizationDao.get(user.getLastOrganizationId()));
+        return user;
+    }
+
+    public MgrUser getByPhone(String phone) {
+        return mgrUserDao.getByPhone(phone);
+    }
+
+    public int update(MgrUser user) {
+        return mgrUserDao.update(user);
+    }
+
+    public void updateResources(MgrUserRole userRole) {
+        mgrUserRoleDao.updateResources(userRole);
+    }
+
+    public int banUser(long id, int status) {
+        return mgrUserDao.banUser(id, status);
+    }
+
+    public int checkFace(long id) {
+        return mgrUserDao.checkFace(id);
+    }
+
+    public void deleteUser(long organizationId, long userId) {
+        MgrUserRole mgrUserRole = mgrUserRoleDao.getUser(userId, organizationId);
+        if (mgrUserRole != null) {
+            mgrUserRoleDao.delete(mgrUserRole.getId());
+        }
+    }
+
+    public List<MgrUser> getUserList(long organizationId, String identity) {
+        List<MgrUserRole> list = mgrUserRoleDao.getOrganizationId(organizationId);
+        List<Long> ids = new ArrayList<>();
+        for (MgrUserRole mur : list) {
+            if (mur.getIdentity() != null) {
+                if (Arrays.asList(mur.getIdentity().split(",")).contains(identity)) {
+                    ids.add(mur.getUserId());
+                }
+            }
+        }
+        if (ids.size() > 0) {
+            return mgrUserDao.getIds(ids);
+        }
+        return new ArrayList<>();
+    }
+
+    public List<MgrUser> getUserByOrganizationId(long organizationId) {
+        List<MgrUserRole> list = mgrUserRoleDao.getOrganizationId(organizationId);
+        List<Long> ids = new ArrayList<>();
+        for (MgrUserRole mur : list) {
+            ids.add(mur.getUserId());
+        }
+        if (ids.size() > 0) {
+            return mgrUserDao.getIds(ids);
+        }
+        return new ArrayList<>();
+    }
+
+    public void addClient(long userId, long organizationId, String identity) {
+        MgrUserRole mur = mgrUserRoleDao.getUser(userId, organizationId);
+        if (mur != null) {
+            if (mur.getIdentity() == null) {
+                mur.setIdentity(identity);
+            } else {
+                List<String> list = new ArrayList<>(Arrays.asList(mur.getIdentity().split(",")));
+                if (list.contains(identity)) {
+                    return;
+                }
+                list.add(identity);
+                mur.setIdentity(String.join(",", list));
+            }
+            mgrUserRoleDao.update(mur);
+        } else {
+            MgrUserRole userRole = new MgrUserRole();
+            userRole.setUserId(userId);
+            userRole.setOrganizationId(organizationId);
+            userRole.setIdentity(identity);
+            mgrUserRoleDao.insert(userRole);
+        }
+    }
+
+    public void updateUserRole(MgrUserRole userRole) {
+        MgrUserRole mur = mgrUserRoleDao.getUser(userRole.getUserId(), userRole.getOrganizationId());
+        if (mur.getRoles() == null) {
+            mur.setRoles(userRole.getRoles());
+        } else {
+            List<String> list = new ArrayList<>(Arrays.asList(mur.getIdentity().split(",")));
+            String[] split = userRole.getRoles().split(",");
+            for (String s : split) {
+                if (!list.contains(s)) {
+                    list.add(s);
+                }
+            }
+            mur.setRoles(String.join(",", list));
+            mgrUserRoleDao.update(mur);
+        }
+    }
+
+    public int saveAttendance(Attendance attendance) {
+        return attendanceDao.insert(attendance);
+    }
+
+    public List<Attendance> getAttendance(Attendance attendance) {
+        if (attendance.getEndDate() != null) {
+            attendance.setEndDate(attendance.getEndDate() + " 23:59:59");
+        }
+        return attendanceDao.getByUser(attendance);
+    }
+
+
 
 }