diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/UserRoleMaps.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/UserRoleMaps.java index 9298194..a79ead4 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/UserRoleMaps.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/UserRoleMaps.java @@ -2,58 +2,58 @@ package com.lyms.platform.permission.model; import java.util.Date; -public class UserRoleMaps {private Integer id;private Integer userId;private Integer roleId;private Integer yn;private Date expirTime; - -public Integer getId() { +public class UserRoleMaps { + private Integer id; + private Integer userId; + private Integer roleId; + private Integer yn; + private Date expirTime; + + public Integer getId() { return id; } - public void setId(Integer id) { this.id = id; } -public Integer getUserId() { + public Integer getUserId() { return userId; } - public void setUserId(Integer userId) { this.userId = userId; } -public Integer getRoleId() { + public Integer getRoleId() { return roleId; } - public void setRoleId(Integer roleId) { this.roleId = roleId; } -public Integer getYn() { + public Integer getYn() { return yn; } - public void setYn(Integer yn) { this.yn = yn; } -public Date getExpirtime() { + public Date getExpirtime() { return expirTime; } - public void setExpirtime(Date expirTime) { this.expirTime = expirTime; diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/Users.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/Users.java index 59b05b2..f0c874e 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/Users.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/Users.java @@ -29,6 +29,16 @@ public class Users { private Organization organization; private String foreignId; + private String roleStr; + + public String getRoleStr() { + return roleStr; + } + + public void setRoleStr(String roleStr) { + this.roleStr = roleStr; + } + public String getForeignId() { return foreignId; } diff --git a/platform-biz-service/src/main/resources/mainOrm/Roles.xml b/platform-biz-service/src/main/resources/mainOrm/Roles.xml index b15cbcf..8d13ae9 100644 --- a/platform-biz-service/src/main/resources/mainOrm/Roles.xml +++ b/platform-biz-service/src/main/resources/mainOrm/Roles.xml @@ -2,148 +2,144 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + SELECT LAST_INSERT_ID() insert into roles (type,name,publish_id,publish_name,yn,enable,modified,created,remarks,shortCode) values (#{type},#{name},#{publishId},#{publishName},#{yn},#{enable},#{modified},#{created},#{remarks},#{shortCode}) - - -update roles -type = #{type,jdbcType=INTEGER}, - - -name = #{name,jdbcType=VARCHAR}, - - -publish_id = #{publishId,jdbcType=INTEGER}, - - - permissiontype = #{permissiontype,jdbcType=INTEGER}, - - -publish_name = #{publishName,jdbcType=VARCHAR}, - - -yn = #{yn,jdbcType=INTEGER}, - - -enable = #{enable,jdbcType=INTEGER}, - - -modified = #{modified,jdbcType=TIMESTAMP}, - - -created = #{created,jdbcType=TIMESTAMP}, - - -remarks = #{remarks,jdbcType=VARCHAR}, - - -shortCode = #{shortCode,jdbcType=VARCHAR}, - - -where id = #{id,jdbcType=INTEGER} - - - - + + update roles + + + type = #{type,jdbcType=INTEGER}, + + + name = #{name,jdbcType=VARCHAR}, + + + publish_id = #{publishId,jdbcType=INTEGER}, + + + permissiontype = #{permissiontype,jdbcType=INTEGER}, + + + publish_name = #{publishName,jdbcType=VARCHAR}, + + + yn = #{yn,jdbcType=INTEGER}, + + + enable = #{enable,jdbcType=INTEGER}, + + + modified = #{modified,jdbcType=TIMESTAMP}, + + + created = #{created,jdbcType=TIMESTAMP}, + + + remarks = #{remarks,jdbcType=VARCHAR}, + + + shortCode = #{shortCode,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=INTEGER} + + + + delete from roles where id = #{id,jdbcType=INTEGER} - - select id,type,name,publish_id,publish_name,yn,enable,modified,created,remarks,shortCode from roles where id = #{id,jdbcType=INTEGER} - - -order by ${sort} - -limit #{offset, jdbcType=INTEGER} , #{limit, jdbcType=INTEGER} - - - - - - - - - 1 = 1 - -and id = #{id,jdbcType=INTEGER} - - -and type = #{type,jdbcType=INTEGER} - - -and name = #{name,jdbcType=VARCHAR} - - -and publish_id = #{publishId,jdbcType=INTEGER} - - -and publish_name = #{publishName,jdbcType=VARCHAR} - - -and yn = #{yn,jdbcType=INTEGER} - - -and enable = #{enable,jdbcType=INTEGER} - - -and modified = #{modified,jdbcType=TIMESTAMP} - - -and created = #{created,jdbcType=TIMESTAMP} - - -and remarks = #{remarks,jdbcType=VARCHAR} - - -and shortCode = #{shortCode,jdbcType=VARCHAR} - - - and name like CONCAT(#{keyword}, '%') - - - - - - - - - - - - + + + order by ${sort} + + limit #{offset, jdbcType=INTEGER} , #{limit, jdbcType=INTEGER} + + + + + + + + 1 = 1 + + and id = #{id,jdbcType=INTEGER} + + + and type = #{type,jdbcType=INTEGER} + + + and name = #{name,jdbcType=VARCHAR} + + + and publish_id = #{publishId,jdbcType=INTEGER} + + + and publish_name = #{publishName,jdbcType=VARCHAR} + + + and yn = #{yn,jdbcType=INTEGER} + + + and enable = #{enable,jdbcType=INTEGER} + + + and modified = #{modified,jdbcType=TIMESTAMP} + + + and created = #{created,jdbcType=TIMESTAMP} + + + and remarks = #{remarks,jdbcType=VARCHAR} + + + and shortCode = #{shortCode,jdbcType=VARCHAR} + + + and name like CONCAT(#{keyword}, '%') + + + + + + + + + \ No newline at end of file diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/LoginUtil.java b/platform-common/src/main/java/com/lyms/platform/common/utils/LoginUtil.java index 1e4edb6..b89450f 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/LoginUtil.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/LoginUtil.java @@ -35,6 +35,61 @@ public class LoginUtil { return null; } + public static Integer aouHospitalUser(String account, String pwd, String typeId, String token) { + HttpClient client = new HttpClient(); + PostMethod post = new MessageUtil.UTF8PostMethod("http://passport.healthbaby.com.cn/v1/checkUser.action"); + NameValuePair[] data = { + new NameValuePair("account", account), + new NameValuePair("pwd", pwd), + new NameValuePair("typeId", typeId) + }; + post.setRequestBody(data); + post.setRequestHeader("Authorization", token); + try { + client.executeMethod(post); + int statusCode = post.getStatusCode(); + String result = new String(post.getResponseBodyAsString()); + + post.releaseConnection(); + if(200 == statusCode) { + LoginContext loginState = JsonUtil.str2Obj(result, LoginContext.class); + if(0 == loginState.getErrorcode()) { + return loginState.getId(); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + public static String loginHospitalUser(String phone, String pwd, String typeId, String token) { + HttpClient client = new HttpClient(); + PostMethod post = new MessageUtil.UTF8PostMethod("http://passport.healthbaby.com.cn/v1/userLogin.action"); + NameValuePair[] data = { + new NameValuePair("phone", phone), + new NameValuePair("typeId", typeId), + new NameValuePair("password", pwd) + }; + post.setRequestBody(data); + post.setRequestHeader("Authorization", token); + try { + client.executeMethod(post); + int statusCode = post.getStatusCode(); + String result = new String(post.getResponseBodyAsString()); + + post.releaseConnection(); + if(200 == statusCode) { + LoginContext loginState = JsonUtil.str2Obj(result, LoginContext.class); + if(0 == loginState.getErrorcode()) { + return loginState.getToken(); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } public static String login(String phone, String varCode, String typeId, String token) { HttpClient client = new HttpClient(); diff --git a/platform-data-api/src/main/java/com/lyms/platform/data/controller/TaskController.java b/platform-data-api/src/main/java/com/lyms/platform/data/controller/TaskController.java index 41e8806..a1dbc22 100644 --- a/platform-data-api/src/main/java/com/lyms/platform/data/controller/TaskController.java +++ b/platform-data-api/src/main/java/com/lyms/platform/data/controller/TaskController.java @@ -59,7 +59,7 @@ public class TaskController extends BaseController { } else if ("fullUpdateUsers".equals(sid)) { dataImportTaskService.fullUpdateUsers(); writeString(response, "success"); - } else if ("codeinit".equals(sid)) { + } else if ("codeinit111".equals(sid)) { try { List list = FileUtils.readLines(new File("d:/streets.csv")); Map codeMap = new HashMap<>(); diff --git a/platform-data-api/src/main/java/com/lyms/platform/data/service/impl/DataImportTaskServiceImpl.java b/platform-data-api/src/main/java/com/lyms/platform/data/service/impl/DataImportTaskServiceImpl.java index 6c50f93..fa47789 100644 --- a/platform-data-api/src/main/java/com/lyms/platform/data/service/impl/DataImportTaskServiceImpl.java +++ b/platform-data-api/src/main/java/com/lyms/platform/data/service/impl/DataImportTaskServiceImpl.java @@ -1,27 +1,25 @@ package com.lyms.platform.data.service.impl; import com.lyms.platform.biz.service.BasicConfigService; +import com.lyms.platform.common.enums.PermissionTypeEnums; import com.lyms.platform.common.enums.YnEnums; import com.lyms.platform.common.utils.JsonUtil; import com.lyms.platform.common.utils.LogUtil; +import com.lyms.platform.common.utils.LoginUtil; import com.lyms.platform.data.service.DataImportTaskService; import com.lyms.platform.permission.model.*; -import com.lyms.platform.permission.service.DepartmentsService; -import com.lyms.platform.permission.service.OrganizationService; -import com.lyms.platform.permission.service.UsersService; +import com.lyms.platform.permission.service.*; import com.lyms.platform.pojo.BasicConfig; import com.lymsh.mommybaby.earlydata.dao.PlatMapper; import com.lymsh.mommybaby.earlydata.model.PlatDataContent; import org.apache.commons.lang.StringUtils; import org.joda.time.DateTime; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.math.BigDecimal; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * Created by Administrator on 2016/4/30 0030. @@ -42,8 +40,20 @@ public class DataImportTaskServiceImpl implements DataImportTaskService { private BasicConfigService basicConfigService; @Autowired + private RolesService rolesService; + + @Autowired + private UserRoleMapsService userRoleMapsService; + + @Autowired private PlatMapper platMapper; + + @Value("#{configProperties['login.token']}") + private String token; + @Value("#{configProperties['login.typeId']}") + private String typeId; + public Integer getInteger(Object obj) { if (obj == null) { return null; @@ -70,7 +80,7 @@ public class DataImportTaskServiceImpl implements DataImportTaskService { @Override public void fullUpdateUsers() { - updateUsersByHospital(null,null,null); + updateUsersByHospital(null, null, null); } @Override @@ -78,18 +88,24 @@ public class DataImportTaskServiceImpl implements DataImportTaskService { try { List list = platMapper.selectAllUserByHospitalId(hospitalForeignId, startTime); if (list != null && list.size() > 0) { + Map rolesMap = new HashMap<>(); + List rolesList = rolesService.queryRoles(new RolesQuery()); + for (Roles roles : rolesList) { + rolesMap.put(roles.getName(), roles); + } + Map organizationMap = new HashMap<>(); Organization organization = new Organization(); Departments departments = new Departments(); Users users = new Users(); - for (Map map:list) { + for (Map map : list) { try { // organization if (StringUtils.isBlank(organization.getForeignId()) || !map.get("H_ID").equals(organization.getForeignId())) { if (!organizationMap.containsKey(map.get("H_ID").toString())) { organization = new Organization(); organization.setForeignId(map.get("H_ID").toString()); - organizationMap.put(organization.getForeignId(),organization); + organizationMap.put(organization.getForeignId(), organization); } organization.setYn(YnEnums.YES.getId()); organization.setName(map.get("H_NAME").toString()); @@ -140,10 +156,10 @@ public class DataImportTaskServiceImpl implements DataImportTaskService { users.setEnable(2); } users.setKsId(departments.getId()); - + users.setRoleStr(map.get("UR_ROLEIDS") == null ? null : map.get("UR_ROLEIDS").toString()); + users.setPwd(map.get("U_USERPWD") == null ? null : map.get("U_USERPWD").toString()); //TODO 手机号,权限 对应中间表 // users.setPhone(""); -// String roles = map.get("UR_ROLEIDS")==null?null:map.get("UR_ROLEIDS").toString(); } @@ -153,15 +169,19 @@ public class DataImportTaskServiceImpl implements DataImportTaskService { } // save + UserRoleMapsQuery userRoleMapsQuery = new UserRoleMapsQuery(); + userRoleMapsQuery.setYn(YnEnums.YES.getId()); + UserRoleMaps userRoleMaps = new UserRoleMaps(); + userRoleMaps.setYn(YnEnums.YES.getId()); OrganizationQuery organizationQuery = new OrganizationQuery(); DepartmentsQuery departmentsQuery = new DepartmentsQuery(); UsersQuery usersQuery = new UsersQuery(); - for (Organization o:organizationMap.values()) { + for (Organization o : organizationMap.values()) { try { organizationQuery.setForeignId(o.getForeignId()); List organizationList = organizationService.queryOrganization(organizationQuery); if (organizationList != null && organizationList.size() > 0) { - for (Organization odb:organizationList) { + for (Organization odb : organizationList) { o.setId(odb.getId()); organizationService.updateOrganization(o); } @@ -169,12 +189,12 @@ public class DataImportTaskServiceImpl implements DataImportTaskService { o.setCreated(o.getModified()); organizationService.addOrganization(o); } - for (Departments d:o.getDepartmentsMap().values()) { + for (Departments d : o.getDepartmentsMap().values()) { d.setOrgId(o.getId()); departmentsQuery.setForeignId(d.getForeignId()); List departmentsList = departmentsService.queryDepartments(departmentsQuery); if (departmentsList != null && departmentsList.size() > 0) { - for (Departments dd:departmentsList) { + for (Departments dd : departmentsList) { d.setId(dd.getId()); departmentsService.updateDepartments(d); } @@ -182,14 +202,15 @@ public class DataImportTaskServiceImpl implements DataImportTaskService { d.setCreated(d.getModified()); departmentsService.addDepartments(d); } - for (Users u:d.getUsersMap().values()) { + for (Users u : d.getUsersMap().values()) { u.setOrgId(o.getId()); u.setDeptId(d.getId()); u.setKsId(d.getId()); + u.setLogincenterId(LoginUtil.aouHospitalUser(u.getAccount(), u.getPwd(), typeId, token)); usersQuery.setForeignId(u.getForeignId()); List usersList = usersService.queryUsers(usersQuery); if (usersList != null && usersList.size() > 0) { - for (Users du:usersList) { + for (Users du : usersList) { u.setId(du.getId()); usersService.updateUsers(u); } @@ -197,6 +218,42 @@ public class DataImportTaskServiceImpl implements DataImportTaskService { u.setCreated(u.getModified()); usersService.addUsers(u); } + if (StringUtils.isNotBlank(u.getRoleStr())) { + String[] array = u.getRoleStr().split(","); + for (String a : array) { + Integer roleId = null; + if (rolesMap.containsKey(a)) { + roleId = rolesMap.get(a).getId(); + } else { + Roles roles = new Roles(); + roles.setYn(YnEnums.YES.getId()); + roles.setEnable(YnEnums.YES.getId()); + roles.setCreated(new Date()); + roles.setModified(roles.getCreated()); + roles.setName(a); + roles.setPublishId(0); + roles.setPublishName("system"); + roles.setType(2); + if (a.contains("管理员") || a.contains("管理") || a.contains("院长") || a.contains("客服") || a.contains("财务")) { + roles.setPermissiontype(PermissionTypeEnums.ALL_HOSPITAL.getId()); + } else if (a.contains("主任") || a.contains("护士长")) { + roles.setPermissiontype(PermissionTypeEnums.ALL_DEPARTMENT.getId()); + } else { + roles.setPermissiontype(PermissionTypeEnums.ONLY_SELF.getId()); + } + rolesService.addRoles(roles); + rolesMap.put(roles.getName(), roles); + roleId = roles.getId(); + } + userRoleMapsQuery.setRoleId(roleId); + userRoleMapsQuery.setUserId(u.getId()); + if (userRoleMapsService.queryUserRoleMapsCount(userRoleMapsQuery) == 0) { + userRoleMaps.setRoleId(userRoleMapsQuery.getRoleId()); + userRoleMaps.setUserId(u.getId()); + userRoleMapsService.addUserRoleMaps(userRoleMaps); + } + } + } } } @@ -205,7 +262,7 @@ public class DataImportTaskServiceImpl implements DataImportTaskService { } } } else { - LogUtil.taskInfo("hospitalId:"+hospitalForeignId+" has no data!"); + LogUtil.taskInfo("hospitalId:" + hospitalForeignId + " has no data!"); } } catch (Exception e) { e.printStackTrace(); @@ -218,7 +275,7 @@ public class DataImportTaskServiceImpl implements DataImportTaskService { public void updateBasicConfig() { try { List list = platMapper.selectPlatDataContent(); - for (PlatDataContent data:list) { + for (PlatDataContent data : list) { try { if (StringUtils.isBlank(data.getDcId())) { continue; diff --git a/platform-data-api/src/main/resources/database.properties b/platform-data-api/src/main/resources/database.properties index f994492..fb63155 100644 --- a/platform-data-api/src/main/resources/database.properties +++ b/platform-data-api/src/main/resources/database.properties @@ -55,4 +55,7 @@ earlydata.password=LYMS_QHDCESHI5 earlydata.maxpoolsize=5 earlydata.initialpoolsize=2 -earlydata.minpoolsize=2 \ No newline at end of file +earlydata.minpoolsize=2 + +login.typeId=2 +login.token=265a841b-9bb5-434a-8c2b-e78df86fc45d \ No newline at end of file