diff --git a/esua-epdc/doc/db/2019-10-25.sql b/esua-epdc/doc/db/2019-10-25.sql
new file mode 100644
index 000000000..ba1495f76
--- /dev/null
+++ b/esua-epdc/doc/db/2019-10-25.sql
@@ -0,0 +1 @@
+ALTER TABLE esd_admin.sys_menu ADD menu_code varchar(50) NULL COMMENT '菜单编码';
diff --git a/esua-epdc/doc/db/dev_newRegister/esua_epdc_admin.sql b/esua-epdc/doc/db/dev_newRegister/esua_epdc_admin.sql
new file mode 100644
index 000000000..148aa1e57
--- /dev/null
+++ b/esua-epdc/doc/db/dev_newRegister/esua_epdc_admin.sql
@@ -0,0 +1,12 @@
+-- 区分小程序码是否是网格长码
+ALTER TABLE epdc_dept_ma_code ADD COLUMN `LEADER_FLAG` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '是否是网格长码,0否 1是';
+
+alter table sys_role add column `code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '角色编码';
+
+INSERT INTO `esua_epdc_admin`.`sys_dict`(`id`, `pid`, `dict_type`, `dict_name`, `dict_value`, `remark`, `sort`, `del_flag`, `creator`, `create_date`, `updater`, `update_date`) VALUES (1187259178133622786, 1187259101235253249, 'sysRoleType', '网格长', 'gridLeader', '', 0, 0, 1067246875800000001, '2019-10-24 14:47:01', 1067246875800000001, '2019-10-24 14:47:01');
+INSERT INTO `esua_epdc_admin`.`sys_dict`(`id`, `pid`, `dict_type`, `dict_name`, `dict_value`, `remark`, `sort`, `del_flag`, `creator`, `create_date`, `updater`, `update_date`) VALUES (1187259247259947009, 1187259101235253249, 'sysRoleType', '普通用户', 'normal', '', 0, 0, 1067246875800000001, '2019-10-24 14:47:17', 1067246875800000001, '2019-10-24 14:47:17');
+INSERT INTO `esua_epdc_admin`.`sys_dict`(`id`, `pid`, `dict_type`, `dict_name`, `dict_value`, `remark`, `sort`, `del_flag`, `creator`, `create_date`, `updater`, `update_date`) VALUES (1187540245004566530, 1187259101235253249, 'sysRoleType', '其他', 'others', '', 1, 0, 1067246875800000001, '2019-10-25 09:23:53', 1067246875800000001, '2019-10-25 09:23:59');
+
+UPDATE `esua_epdc_admin`.`sys_dict` SET `pid` = 1067246875800000068, `dict_type` = 'gender', `dict_name` = '男', `dict_value` = '1', `remark` = '', `sort` = 0, `del_flag` = 0 WHERE `id` = 1067246875800000069;
+UPDATE `esua_epdc_admin`.`sys_dict` SET `pid` = 1067246875800000068, `dict_type` = 'gender', `dict_name` = '女', `dict_value` = '0', `remark` = '', `sort` = 1, `del_flag` = 0 WHERE `id` = 1067246875800000070;
+UPDATE `esua_epdc_admin`.`sys_dict` SET `pid` = 1067246875800000068, `dict_type` = 'gender', `dict_name` = '保密', `dict_value` = '2', `remark` = '', `sort` = 2, `del_flag` = 1 WHERE `id` = 1067246875800000071;
diff --git a/esua-epdc/doc/db/dev_newRegister/esua_epdc_events.sql b/esua-epdc/doc/db/dev_newRegister/esua_epdc_events.sql
new file mode 100644
index 000000000..cdb286a52
--- /dev/null
+++ b/esua-epdc/doc/db/dev_newRegister/esua_epdc_events.sql
@@ -0,0 +1,14 @@
+-- 2019-10-27 项目表增加最近一次处理时间
+ALTER TABLE epdc_item ADD LAST_HANDLE_TIME datetime NULL COMMENT '最近一次处理时间';
+
+-- 2019-10-27 项目部门关联表表增加项目处理表ID
+ALTER TABLE epdc_item_dept ADD ITEM_HANDLE_ID VARCHAR(32) NULL COMMENT '项目处理表ID';
+
+-- 2019-10-29 事件表增加手机号
+ALTER TABLE epdc_events ADD MOBILE VARCHAR(20) NULL COMMENT '手机号';
+
+-- 2019-10-29 议题表增加手机号
+ALTER TABLE epdc_issue ADD MOBILE VARCHAR(20) NULL COMMENT '手机号';
+
+-- 2019-10-29 项目表增加手机号
+ALTER TABLE epdc_item ADD MOBILE VARCHAR(20) NULL COMMENT '手机号';
\ No newline at end of file
diff --git a/esua-epdc/doc/db/dev_newRegister/esua_epdc_user.sql b/esua-epdc/doc/db/dev_newRegister/esua_epdc_user.sql
new file mode 100644
index 000000000..f1491df75
--- /dev/null
+++ b/esua-epdc/doc/db/dev_newRegister/esua_epdc_user.sql
@@ -0,0 +1,70 @@
+
+CREATE TABLE `epdc_user_grid_relation` (
+ `ID` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键',
+ `USER_ID` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户ID',
+ `DISTRICT` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '区县',
+ `DISTRICT_ID` bigint(20) NULL DEFAULT NULL COMMENT '区县ID',
+ `STREET_ID` bigint(20) NULL DEFAULT NULL COMMENT '街道ID',
+ `STREET` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '街道',
+ `COMMUNITY` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '社区',
+ `COMMUNITY_ID` bigint(20) NULL DEFAULT NULL COMMENT '社区ID',
+ `GRID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '所属网格',
+ `GRID_ID` bigint(20) NOT NULL COMMENT '网格ID',
+ `SWITCHED_TIME` datetime(0) NOT NULL COMMENT '最后切换此网格的时间',
+ `REVISION` int(11) NULL DEFAULT NULL COMMENT '乐观锁',
+ `CREATED_BY` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
+ `CREATED_TIME` datetime(0) NOT NULL COMMENT '创建时间',
+ `UPDATED_BY` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '更新人',
+ `UPDATED_TIME` datetime(0) NOT NULL COMMENT '更新时间',
+ `DEL_FLAG` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '删除标记',
+ `LEADER_FLAG` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否是网格长 0-否,1-是',
+ PRIMARY KEY (`ID`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '网格长与网格关系表' ROW_FORMAT = Compact;
+
+-- 上版本审核不通过的用户,直接删除
+DELETE FROM epdc_user WHERE STATE = '2';
+-- 上版本审核通过的用户,状态改为3(已完善信息且审核通过)
+UPDATE epdc_user SET STATE = '3' WHERE STATE = '1';
+-- 上版本待审核用户,状态改为1(已完善信息,待审核)
+UPDATE epdc_user SET STATE = '1' WHERE STATE = '0';
+
+INSERT INTO `esua_epdc_user`.`epdc_user_grid_relation` (
+ `ID`,
+ `USER_ID`,
+ `DISTRICT`,
+ `DISTRICT_ID`,
+ `STREET_ID`,
+ `STREET`,
+ `COMMUNITY`,
+ `COMMUNITY_ID`,
+ `GRID`,
+ `GRID_ID`,
+ `SWITCHED_TIME`,
+ `REVISION`,
+ `CREATED_BY`,
+ `CREATED_TIME`,
+ `UPDATED_BY`,
+ `UPDATED_TIME`,
+ `DEL_FLAG`,
+ `LEADER_FLAG`
+) SELECT
+u.ID,
+u.ID,
+u.DISTRICT,
+u.DISTRICT_ID,
+u.STREET_ID,
+u.STREET,
+u.COMMUNITY,
+u.COMMUNITY_ID,
+u.GRID,
+u.GRID_ID,
+u.CREATED_TIME,
+u.REVISION,
+u.CREATED_BY,
+u.CREATED_TIME,
+u.UPDATED_BY,
+u.UPDATED_TIME,
+'0',
+'0'
+FROM
+ epdc_user u
\ No newline at end of file
diff --git a/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/DeptMaCodeDTO.java b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/DeptMaCodeDTO.java
index b4087c925..60c74d048 100644
--- a/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/DeptMaCodeDTO.java
+++ b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/DeptMaCodeDTO.java
@@ -49,6 +49,11 @@ public class DeptMaCodeDTO implements Serializable {
*/
private String codeUrl;
+ /**
+ * 是否是网格长码,0否 1是
+ */
+ private String leaderFlag;
+
/**
* 乐观锁
*/
diff --git a/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysMenuDTO.java b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysMenuDTO.java
index 2ecacdc85..aac92fef5 100644
--- a/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysMenuDTO.java
+++ b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysMenuDTO.java
@@ -1,8 +1,8 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
- *
+ *
* https://www.renren.io
- *
+ *
* 版权所有,侵权必究!
*/
@@ -35,124 +35,148 @@ import java.util.List;
public class SysMenuDTO extends TreeNode implements Serializable {
private static final long serialVersionUID = 1L;
- @ApiModelProperty(value = "id")
- @Null(message="{id.null}", groups = AddGroup.class)
- @NotNull(message="{id.require}", groups = UpdateGroup.class)
- private Long id;
-
- @ApiModelProperty(value = "上级ID")
- @NotNull(message="{sysmenu.pid.require}", groups = DefaultGroup.class)
- private Long pid;
-
- @ApiModelProperty(value = "菜单名称")
- @NotBlank(message="{sysmenu.name.require}", groups = DefaultGroup.class)
- private String name;
-
- @ApiModelProperty(value = "菜单URL")
- private String url;
-
- @ApiModelProperty(value = "类型 0:菜单 1:按钮")
- @Range(min=0, max=1, message = "{sysmenu.type.range}", groups = DefaultGroup.class)
- private Integer type;
-
- @ApiModelProperty(value = "菜单图标")
- private String icon;
-
- @ApiModelProperty(value = "权限标识,如:sys:menu:save")
- private String permissions;
-
- @ApiModelProperty(value = "排序")
- @Min(value = 0, message = "{sort.number}", groups = DefaultGroup.class)
- private Integer sort;
-
- @ApiModelProperty(value = "创建时间")
- @JsonProperty(access = JsonProperty.Access.READ_ONLY)
- private Date createDate;
-
- @ApiModelProperty(value = "菜单资源")
- private List resourceList;
-
- @ApiModelProperty(value = "上级菜单名称")
- private String parentName;
-
- public void setName(String name) {
- this.name = name;
- }
- public String getName() {
- return name;
- }
- public void setUrl(String url) {
- this.url = url;
- }
- public String getUrl() {
- return url;
- }
- public void setType(Integer type) {
- this.type = type;
- }
- public Integer getType() {
- return type;
- }
- public void setIcon(String icon) {
- this.icon = icon;
- }
- public String getIcon() {
- return icon;
- }
- public void setSort(Integer sort) {
- this.sort = sort;
- }
- public Integer getSort() {
- return sort;
- }
- public void setCreateDate(Date createDate) {
- this.createDate = createDate;
- }
- public Date getCreateDate() {
- return createDate;
- }
-
- public String getPermissions() {
- return permissions;
- }
-
- public void setPermissions(String permissions) {
- this.permissions = permissions;
- }
-
- public List getResourceList() {
- return resourceList;
- }
-
- public void setResourceList(List resourceList) {
- this.resourceList = resourceList;
- }
-
- @Override
- public Long getId() {
- return id;
- }
-
- @Override
- public void setId(Long id) {
- this.id = id;
- }
-
- @Override
- public Long getPid() {
- return pid;
- }
-
- @Override
- public void setPid(Long pid) {
- this.pid = pid;
- }
-
- public String getParentName() {
- return parentName;
- }
-
- public void setParentName(String parentName) {
- this.parentName = parentName;
- }
+ @ApiModelProperty(value = "id")
+ @Null(message = "{id.null}", groups = AddGroup.class)
+ @NotNull(message = "{id.require}", groups = UpdateGroup.class)
+ private Long id;
+
+ @ApiModelProperty(value = "上级ID")
+ @NotNull(message = "{sysmenu.pid.require}", groups = DefaultGroup.class)
+ private Long pid;
+
+ @ApiModelProperty(value = "菜单名称")
+ @NotBlank(message = "{sysmenu.name.require}", groups = DefaultGroup.class)
+ private String name;
+
+ @ApiModelProperty(value = "菜单URL")
+ private String url;
+
+ @ApiModelProperty(value = "类型 0:菜单 1:按钮")
+ @Range(min = 0, max = 1, message = "{sysmenu.type.range}", groups = DefaultGroup.class)
+ private Integer type;
+
+ @ApiModelProperty(value = "菜单图标")
+ private String icon;
+
+ @ApiModelProperty(value = "权限标识,如:sys:menu:save")
+ private String permissions;
+
+ @ApiModelProperty(value = "排序")
+ @Min(value = 0, message = "{sort.number}", groups = DefaultGroup.class)
+ private Integer sort;
+
+ @ApiModelProperty(value = "创建时间")
+ @JsonProperty(access = JsonProperty.Access.READ_ONLY)
+ private Date createDate;
+
+ @ApiModelProperty(value = "菜单资源")
+ private List resourceList;
+
+ @ApiModelProperty(value = "上级菜单名称")
+ private String parentName;
+
+ /**
+ * 菜单编码
+ */
+ private String menuCode;
+
+ public String getMenuCode() {
+ return menuCode;
+ }
+
+ public void setMenuCode(String menuCode) {
+ this.menuCode = menuCode;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
+ public void setType(Integer type) {
+ this.type = type;
+ }
+
+ public Integer getType() {
+ return type;
+ }
+
+ public void setIcon(String icon) {
+ this.icon = icon;
+ }
+
+ public String getIcon() {
+ return icon;
+ }
+
+ public void setSort(Integer sort) {
+ this.sort = sort;
+ }
+
+ public Integer getSort() {
+ return sort;
+ }
+
+ public void setCreateDate(Date createDate) {
+ this.createDate = createDate;
+ }
+
+ public Date getCreateDate() {
+ return createDate;
+ }
+
+ public String getPermissions() {
+ return permissions;
+ }
+
+ public void setPermissions(String permissions) {
+ this.permissions = permissions;
+ }
+
+ public List getResourceList() {
+ return resourceList;
+ }
+
+ public void setResourceList(List resourceList) {
+ this.resourceList = resourceList;
+ }
+
+ @Override
+ public Long getId() {
+ return id;
+ }
+
+ @Override
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ @Override
+ public Long getPid() {
+ return pid;
+ }
+
+ @Override
+ public void setPid(Long pid) {
+ this.pid = pid;
+ }
+
+ public String getParentName() {
+ return parentName;
+ }
+
+ public void setParentName(String parentName) {
+ this.parentName = parentName;
+ }
}
diff --git a/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysRoleDTO.java b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysRoleDTO.java
index da8fc6a07..ec29b3a51 100644
--- a/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysRoleDTO.java
+++ b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysRoleDTO.java
@@ -12,8 +12,6 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import com.elink.esua.epdc.commons.tools.validator.group.AddGroup;
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@@ -31,7 +29,8 @@ import java.util.List;
*/
@Data
public class SysRoleDTO implements Serializable {
- private static final long serialVersionUID = 1L;
+
+ private static final long serialVersionUID = 9051888766753172223L;
@Null(message = "{id.null}", groups = AddGroup.class)
@NotNull(message = "{id.require}", groups = UpdateGroup.class)
@@ -43,6 +42,11 @@ public class SysRoleDTO implements Serializable {
@NotBlank(message = "{sysrole.name.require}", groups = DefaultGroup.class)
private String name;
+ /**
+ * 角色类型键值(数据字典sysRoleType)
+ */
+ private String typeKey;
+
/**
* 备注
*/
diff --git a/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/GridForLeaderRegisterDTO.java b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/GridForLeaderRegisterDTO.java
new file mode 100644
index 000000000..c1d6f5525
--- /dev/null
+++ b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/GridForLeaderRegisterDTO.java
@@ -0,0 +1,25 @@
+package com.elink.esua.epdc.dto.epdc;
+
+import com.elink.esua.epdc.dto.CompleteDeptDTO;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 网格长注册时,获取管理的所有网格
+ *
+ * @author work@yujt.net.cn
+ * @date 2019/10/22 16:09
+ */
+@Data
+public class GridForLeaderRegisterDTO extends CompleteDeptDTO implements Serializable {
+
+ private static final long serialVersionUID = -8416239971314737504L;
+
+ /**
+ * 网格创建时间,第一次查询后作为'最后切换此网格的时间'插入到esua_epdc_user.epdc_user_grid_relation
+ */
+ private Date switchedTime;
+
+}
diff --git a/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/GridLeaderRegisterDTO.java b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/GridLeaderRegisterDTO.java
new file mode 100644
index 000000000..6fd8d48ef
--- /dev/null
+++ b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/epdc/GridLeaderRegisterDTO.java
@@ -0,0 +1,23 @@
+package com.elink.esua.epdc.dto.epdc;
+
+import com.elink.esua.epdc.dto.SysUserDTO;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 网格长注册用
+ *
+ * @author work@yujt.net.cn
+ * @date 2019/10/22 16:09
+ */
+@Data
+public class GridLeaderRegisterDTO implements Serializable {
+
+ private static final long serialVersionUID = -7487636988320783324L;
+
+ private SysUserDTO sysUser;
+
+ private List leaderGridList;
+}
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/DeptMaCodeController.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/DeptMaCodeController.java
index 2d1bdb336..74b83f08b 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/DeptMaCodeController.java
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/DeptMaCodeController.java
@@ -118,5 +118,17 @@ public class DeptMaCodeController {
return deptMaCodeService.createDeptMaCode(gridId);
}
+ /**
+ * 创建网格长注册小程序码
+ *
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author work@yujt.net.cn
+ * @date 2019/10/22 09:59
+ */
+ @PostMapping("gridLeader")
+ public Result createGridLeaderMaCode() {
+ return deptMaCodeService.createGridLeaderMaCode();
+ }
+
}
\ No newline at end of file
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java
index 757432614..78dc1448c 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java
@@ -1,8 +1,8 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
- *
+ *
* https://www.renren.io
- *
+ *
* 版权所有,侵权必究!
*/
@@ -24,9 +24,8 @@ import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.commons.tools.validator.group.AddGroup;
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
-import com.elink.esua.epdc.dto.PasswordDTO;
-import com.elink.esua.epdc.dto.SysDeptDTO;
-import com.elink.esua.epdc.dto.SysUserDTO;
+import com.elink.esua.epdc.dto.*;
+import com.elink.esua.epdc.dto.epdc.GridLeaderRegisterDTO;
import com.elink.esua.epdc.excel.SysUserExcel;
import com.elink.esua.epdc.service.*;
import io.swagger.annotations.Api;
@@ -49,7 +48,7 @@ import java.util.Map;
*/
@RestController
@RequestMapping("user")
-@Api(tags="用户管理")
+@Api(tags = "用户管理")
public class SysUserController {
@Autowired
private SysUserService sysUserService;
@@ -65,13 +64,13 @@ public class SysUserController {
@GetMapping("page")
@ApiOperation("分页")
@ApiImplicitParams({
- @ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType="int") ,
- @ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataType="int") ,
- @ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType="String") ,
- @ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType="String") ,
- @ApiImplicitParam(name = "username", value = "用户名", paramType = "query", dataType="String")
+ @ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType = "int"),
+ @ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query", required = true, dataType = "int"),
+ @ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "username", value = "用户名", paramType = "query", dataType = "String")
})
- public Result> page(@ApiIgnore @RequestParam Map params){
+ public Result> page(@ApiIgnore @RequestParam Map params) {
PageData page = sysUserService.page(params);
return new Result>().ok(page);
@@ -79,7 +78,7 @@ public class SysUserController {
@GetMapping("{id}")
@ApiOperation("信息")
- public Result get(@PathVariable("id") Long id){
+ public Result get(@PathVariable("id") Long id) {
SysUserDTO data = sysUserService.get(id);
//用户角色列表
@@ -91,7 +90,7 @@ public class SysUserController {
@GetMapping("info")
@ApiOperation("登录用户信息")
- public Result info(@ApiIgnore UserDetail user){
+ public Result info(@ApiIgnore UserDetail user) {
SysUserDTO data = ConvertUtils.sourceToTarget(user, SysUserDTO.class);
return new Result().ok(data);
}
@@ -99,7 +98,7 @@ public class SysUserController {
@PostMapping
@ApiOperation("保存")
@LogOperation("Save User")
- public Result save(@RequestBody SysUserDTO dto){
+ public Result save(@RequestBody SysUserDTO dto) {
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
@@ -111,7 +110,7 @@ public class SysUserController {
@PutMapping
@ApiOperation("修改")
@LogOperation("Update User")
- public Result update(@RequestBody SysUserDTO dto){
+ public Result update(@RequestBody SysUserDTO dto) {
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
@@ -123,14 +122,14 @@ public class SysUserController {
@PutMapping("password")
@ApiOperation("修改密码")
@LogOperation("Password User")
- public Result password(@RequestBody PasswordDTO dto){
+ public Result password(@RequestBody PasswordDTO dto) {
//效验数据
ValidatorUtils.validateEntity(dto);
UserDetail user = SecurityUser.getUser();
//原密码不正确
- if(!PasswordUtils.matches(dto.getPassword(), user.getPassword())){
+ if (!PasswordUtils.matches(dto.getPassword(), user.getPassword())) {
return new Result().error(ErrorCode.PASSWORD_ERROR);
}
@@ -142,7 +141,7 @@ public class SysUserController {
@DeleteMapping
@ApiOperation("删除")
@LogOperation("Delete User")
- public Result delete(@RequestBody Long[] ids){
+ public Result delete(@RequestBody Long[] ids) {
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
@@ -154,7 +153,7 @@ public class SysUserController {
@GetMapping("export")
@ApiOperation("导出")
@LogOperation("Export User")
- @ApiImplicitParam(name = "username", value = "用户名", paramType = "query", dataType="String")
+ @ApiImplicitParam(name = "username", value = "用户名", paramType = "query", dataType = "String")
public void export(@ApiIgnore @RequestParam Map params, HttpServletResponse response) throws Exception {
List list = sysUserService.list(params);
@@ -165,7 +164,7 @@ public class SysUserController {
* 根据用户名,获取用户信息
*/
@GetMapping("getByUsername")
- public Result getByUsername(String username){
+ public Result getByUsername(String username) {
SysUserDTO user = sysUserService.getByUsername(username);
UserDetail userDetail = ConvertUtils.sourceToTarget(user, UserDetail.class);
@@ -179,7 +178,7 @@ public class SysUserController {
* 根据用户ID,获取用户信息
*/
@GetMapping("getById")
- public Result getById(Long id){
+ public Result getById(Long id) {
SysUserDTO user = sysUserService.get(id);
UserDetail userDetail = ConvertUtils.sourceToTarget(user, UserDetail.class);
@@ -192,14 +191,14 @@ public class SysUserController {
/**
* 初始化用户数据
*/
- private void initUserData(UserDetail userDetail){
- if(userDetail == null){
+ private void initUserData(UserDetail userDetail) {
+ if (userDetail == null) {
return;
}
//用户机构类型键值
SysDeptDTO deptDto = sysDeptService.get(userDetail.getDeptId());
- if(null != deptDto){
+ if (null != deptDto) {
userDetail.setTypeKey(deptDto.getTypeKey());
}
@@ -212,4 +211,32 @@ public class SysUserController {
userDetail.setResourceList(resourceList);
}
+ /**
+ * 网格长注册时,根据手机号,查询网格长管理的所有网格
+ *
+ * @param mobile
+ * @return java.util.List
+ * @author work@yujt.net.cn
+ * @date 2019/10/22 16:18
+ */
+ @GetMapping("/listGridForLeader/{mobile}")
+ public Result listGridWhileLeaderRegister(@PathVariable("mobile") String mobile) {
+ return sysUserService.listGridWhileLeaderRegister(mobile);
+ }
+
+ /**
+ *
+ * 获取部门下的所有用户ID
+ *
+ * @params [deptId]
+ * @return com.elink.esua.epdc.commons.tools.utils.Result>
+ * @author liuchuang
+ * @since 2019/10/29 17:31
+ */
+ @GetMapping("ids/{deptId}")
+ public Result> getUserIdsByDeptIds(@PathVariable("deptId") Long deptId) {
+ List data = sysUserService.listOfUserIdsByDeptId(deptId);
+ return new Result>().ok(data);
+ }
+
}
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java
index 580cc6fb9..bd7e3c979 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java
@@ -11,6 +11,7 @@ package com.elink.esua.epdc.dao;
import com.elink.esua.epdc.dto.CompleteDeptDTO;
import com.elink.esua.epdc.dto.SysDeptDTO;
import com.elink.esua.epdc.dto.SysSimpleDeptDTO;
+import com.elink.esua.epdc.dto.epdc.GridForLeaderRegisterDTO;
import com.elink.esua.epdc.entity.SysDeptEntity;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import org.apache.ibatis.annotations.Mapper;
@@ -76,10 +77,21 @@ public interface SysDeptDao extends BaseDao {
/**
* 通过街道ID获取项目可流转部门
+ *
* @Params: [deptId]
* @Return: java.util.List
* @Author: liuchuang
* @Date: 2019/9/16 16:54
*/
List selectListOfItemCirculationDept(@Param("deptId") Long deptId);
+
+ /**
+ * 通过网格id集合,获取网格长管理的所有网格
+ *
+ * @param gridIdList
+ * @return java.util.List
+ * @author work@yujt.net.cn
+ * @date 2019/10/24 15:27
+ */
+ List selectListGridForLeader(@Param("gridIdList") List gridIdList);
}
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysUserDao.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysUserDao.java
index aee32cf88..b889a1032 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysUserDao.java
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysUserDao.java
@@ -1,16 +1,16 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
- *
+ *
* https://www.renren.io
- *
+ *
* 版权所有,侵权必究!
*/
package com.elink.esua.epdc.dao;
+import com.elink.esua.epdc.dto.epdc.GridForLeaderRegisterDTO;
import com.elink.esua.epdc.entity.SysUserEntity;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
-import com.elink.esua.epdc.entity.SysUserEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -39,4 +39,24 @@ public interface SysUserDao extends BaseDao {
*/
int getCountByDeptId(Long deptId);
+ /**
+ * 网格长注册时,根据手机号,查询网格长管理的所有网格
+ *
+ * @param mobile
+ * @return java.util.List
+ * @author work@yujt.net.cn
+ * @date 2019/10/22 16:27
+ */
+ List selectListLeaderGridId(@Param("mobile") String mobile);
+
+ /**
+ *
+ * 获取部门下的所有用户ID
+ *
+ * @params [deptId]
+ * @return java.util.List
+ * @author liuchuang
+ * @since 2019/10/29 16:18
+ */
+ List selectListOfUserIdsByDeptId(@Param("deptId") Long deptId);
}
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/DeptMaCodeEntity.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/DeptMaCodeEntity.java
index ee301c719..18a963683 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/DeptMaCodeEntity.java
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/DeptMaCodeEntity.java
@@ -23,8 +23,6 @@ import com.elink.esua.epdc.commons.mybatis.entity.BaseEpdcEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import java.util.Date;
-
/**
* 网格小程序码
*
@@ -48,4 +46,9 @@ public class DeptMaCodeEntity extends BaseEpdcEntity {
*/
private String codeUrl;
+ /**
+ * 是否是网格长码,0否 1是
+ */
+ private String leaderFlag;
+
}
\ No newline at end of file
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/SysMenuEntity.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/SysMenuEntity.java
index 5c010225a..18a3a8774 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/SysMenuEntity.java
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/SysMenuEntity.java
@@ -80,4 +80,9 @@ public class SysMenuEntity extends BaseEntity {
@TableField(exist = false)
private String parentName;
+ /**
+ * 菜单编码
+ */
+ private String menuCode;
+
}
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/SysRoleEntity.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/SysRoleEntity.java
index a0166945b..20523d9ce 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/SysRoleEntity.java
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/SysRoleEntity.java
@@ -1,8 +1,8 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
- *
+ *
* https://www.renren.io
- *
+ *
* 版权所有,侵权必究!
*/
@@ -24,38 +24,43 @@ import java.util.Date;
* @since 1.0.0
*/
@Data
-@EqualsAndHashCode(callSuper=false)
+@EqualsAndHashCode(callSuper = false)
@TableName("sys_role")
public class SysRoleEntity extends BaseEntity {
- private static final long serialVersionUID = 1L;
- /**
- * 角色名称
- */
- private String name;
- /**
- * 备注
- */
- private String remark;
- /**
- * 删除标识 0:未删除 1:删除
- */
- @TableField(fill = FieldFill.INSERT)
- private Integer delFlag;
- /**
- * 部门ID
- */
- @TableField(fill = FieldFill.INSERT)
- private Long deptId;
- /**
- * 更新者
- */
- @TableField(fill = FieldFill.INSERT_UPDATE)
- private Long updater;
- /**
- * 更新时间
- */
- @TableField(fill = FieldFill.INSERT_UPDATE)
- private Date updateDate;
+ private static final long serialVersionUID = -5938313610523405964L;
+
+ /**
+ * 角色名称
+ */
+ private String name;
+ /**
+ * 角色类型键值(数据字典sysRoleType)
+ */
+ private String typeKey;
+ /**
+ * 备注
+ */
+ private String remark;
+ /**
+ * 删除标识 0:未删除 1:删除
+ */
+ @TableField(fill = FieldFill.INSERT)
+ private Integer delFlag;
+ /**
+ * 部门ID
+ */
+ @TableField(fill = FieldFill.INSERT)
+ private Long deptId;
+ /**
+ * 更新者
+ */
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Long updater;
+ /**
+ * 更新时间
+ */
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Date updateDate;
}
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/DeptMaCodeService.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/DeptMaCodeService.java
index 90ae915f4..c82db655e 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/DeptMaCodeService.java
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/DeptMaCodeService.java
@@ -112,4 +112,13 @@ public interface DeptMaCodeService extends BaseService {
* @date 2019/9/19 11:05
*/
Result createDeptMaCode(String gridId);
+
+ /**
+ * 创建网格长注册小程序码
+ *
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author work@yujt.net.cn
+ * @date 2019/10/22 09:59
+ */
+ Result createGridLeaderMaCode();
}
\ No newline at end of file
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java
index 4d0572dc1..700e5d1b9 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java
@@ -11,6 +11,7 @@ package com.elink.esua.epdc.service;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.CompleteDeptDTO;
import com.elink.esua.epdc.dto.SysSimpleDeptDTO;
+import com.elink.esua.epdc.dto.epdc.GridForLeaderRegisterDTO;
import com.elink.esua.epdc.entity.SysDeptEntity;
import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.dto.SysDeptDTO;
@@ -57,7 +58,7 @@ public interface SysDeptService extends BaseService {
* 获取所有下属网格ID集合
*
* @param pid 部门ID
- * @return com.elink.esua.epdc.commons.tools.utils.Result>
+ * @return com.elink.esua.epdc.commons.tools.utils.Result>
* @author yujintao
* @date 2019/9/5 13:45
*/
@@ -87,7 +88,7 @@ public interface SysDeptService extends BaseService {
/***
* 通过编码得到党委编码
* @param partyCode
- * @return com.elink.esua.epdc.commons.tools.utils.Result>
+ * @return com.elink.esua.epdc.commons.tools.utils.Result>
* @author qushutong
* @date 2019/9/20 19:57
*/
@@ -101,4 +102,14 @@ public interface SysDeptService extends BaseService {
* @date 2019/9/21 14:14
*/
Integer getCodeCount(SysDeptDTO dto);
+
+ /**
+ * 通过网格id集合,获取网格长管理的所有网格
+ *
+ * @param gridIdList
+ * @return java.util.List
+ * @author work@yujt.net.cn
+ * @date 2019/10/24 15:26
+ */
+ List selectListGridForLeader(List gridIdList);
}
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysUserService.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysUserService.java
index 08a39c8c9..55cf6ca13 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysUserService.java
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysUserService.java
@@ -1,8 +1,8 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
- *
+ *
* https://www.renren.io
- *
+ *
* 版权所有,侵权必究!
*/
@@ -10,6 +10,8 @@ package com.elink.esua.epdc.service;
import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.tools.page.PageData;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.dto.epdc.GridLeaderRegisterDTO;
import com.elink.esua.epdc.dto.SysUserDTO;
import com.elink.esua.epdc.entity.SysUserEntity;
@@ -40,8 +42,9 @@ public interface SysUserService extends BaseService {
/**
* 修改密码
- * @param id 用户ID
- * @param newPassword 新密码
+ *
+ * @param id 用户ID
+ * @param newPassword 新密码
*/
void updatePassword(Long id, String newPassword);
@@ -49,4 +52,25 @@ public interface SysUserService extends BaseService {
* 根据部门ID,查询用户数
*/
int getCountByDeptId(Long deptId);
+
+ /**
+ * 网格长注册时,根据手机号,查询网格长管理的所有网格
+ *
+ * @param mobile
+ * @return java.util.List
+ * @author work@yujt.net.cn
+ * @date 2019/10/22 16:19
+ */
+ Result listGridWhileLeaderRegister(String mobile);
+
+ /**
+ *
+ * 获取部门下的所有用户ID
+ *
+ * @params [deptId]
+ * @return java.util.List
+ * @author liuchuang
+ * @since 2019/10/29 16:14
+ */
+ List listOfUserIdsByDeptId(Long deptId);
}
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/DeptMaCodeServiceImpl.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/DeptMaCodeServiceImpl.java
index 1e79364f7..7af43fe8c 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/DeptMaCodeServiceImpl.java
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/DeptMaCodeServiceImpl.java
@@ -24,6 +24,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
+import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum;
+import com.elink.esua.epdc.commons.tools.exception.RenException;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
@@ -64,6 +66,26 @@ public class DeptMaCodeServiceImpl extends BaseServiceImpl page(Map params) {
+ String leaderFlag = (String) params.get("leaderFlag");
+ if (StringUtils.isNotBlank(leaderFlag) && leaderFlag.equals(YesOrNoEnum.YES.value())) {
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq("LEADER_FLAG", leaderFlag);
+
+ IPage page = baseDao.selectPage(
+ getPage(params, FieldConstant.CREATED_TIME, false),
+ wrapper
+ );
+
+ PageData pageData = getPageData(page, DeptMaCodeDTO.class);
+ List pageDataList = pageData.getList();
+ for (DeptMaCodeDTO dto : pageDataList) {
+ dto.setStreet("全部街道通用");
+ dto.setCommunity("全部社区通用");
+ dto.setGrid("全部网格通用");
+ }
+
+ return pageData;
+ }
IPage page = this.getPage(params);
List dtoList = this.baseDao.selectListDeptMaCode(params);
@@ -121,8 +143,7 @@ public class DeptMaCodeServiceImpl extends BaseServiceImpl ossResult;
File wxaCodeUnlimit;
@@ -132,7 +153,7 @@ public class DeptMaCodeServiceImpl extends BaseServiceImplinitDeptMaCode::createWxaCodeUnlimit error::deptId={}", gridId);
continue;
@@ -155,11 +176,44 @@ public class DeptMaCodeServiceImpl extends BaseServiceImpl wrapper = new QueryWrapper<>();
+ wrapper.eq("leader_flag", YesOrNoEnum.YES.value());
+ Integer selectCount = this.baseDao.selectCount(wrapper);
+ if (selectCount > NumConstant.ZERO) {
+ return new Result();
+ }
+ DeptMaCodeEntity entity = new DeptMaCodeEntity();
+ entity.setCodeUrl(this.createMaCode("gridLeader", "pages/index/index"));
+ entity.setLeaderFlag(YesOrNoEnum.YES.value());
+ this.baseDao.insert(entity);
+ return new Result();
+ }
+
+ /**
+ * 创建微信小程序码,并上传到oss
+ *
+ * @param param 小程序码的参数
+ * @param pageUrl 小程序码的跳转链接
+ * @return java.lang.String 小程序码的下载抵制
+ * @author work@yujt.net.cn
+ * @date 2019/10/22 10:14
+ */
+ private String createMaCode(String param, String pageUrl) {
File wxaCodeUnlimit;
try {
- wxaCodeUnlimit = wxMaService.getQrcodeService().createWxaCodeUnlimit("gid=" + gridId, "pages/register/register");
+ wxaCodeUnlimit = wxMaService.getQrcodeService().createWxaCodeUnlimit(param, pageUrl);
} catch (WxErrorException e) {
- return new Result().error("请求微信接口失败");
+ throw new RenException("请求微信接口失败");
}
UploadToOssDTO dto = new UploadToOssDTO();
@@ -168,13 +222,9 @@ public class DeptMaCodeServiceImpl extends BaseServiceImpl ossResult = ossFeignClient.uploadFile(dto);
if (null == ossResult || !ossResult.success() || null == ossResult.getData()) {
- return new Result().error("小程序码上传失败");
+ throw new RenException("小程序码上传失败");
}
- DeptMaCodeEntity entity = new DeptMaCodeEntity();
- entity.setCodeUrl(ossResult.getData());
- entity.setGridId(Long.parseLong(gridId));
- this.baseDao.insert(entity);
- return new Result();
+ return ossResult.getData();
}
/**
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java
index 68d888d0e..5234ad883 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java
@@ -24,6 +24,7 @@ import com.elink.esua.epdc.dao.SysDeptDao;
import com.elink.esua.epdc.dto.CompleteDeptDTO;
import com.elink.esua.epdc.dto.SysDeptDTO;
import com.elink.esua.epdc.dto.SysSimpleDeptDTO;
+import com.elink.esua.epdc.dto.epdc.GridForLeaderRegisterDTO;
import com.elink.esua.epdc.entity.SysDeptEntity;
import com.elink.esua.epdc.service.SysDeptService;
import com.elink.esua.epdc.service.SysUserService;
@@ -214,6 +215,11 @@ public class SysDeptServiceImpl extends BaseServiceImpl selectListGridForLeader(List gridIdList) {
+ return this.baseDao.selectListGridForLeader(gridIdList);
+ }
+
@Override
public List listOfItemCirculationDept(Long deptId) {
return baseDao.selectListOfItemCirculationDept(deptId);
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysRoleServiceImpl.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysRoleServiceImpl.java
index abf4e6456..0d2263c76 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysRoleServiceImpl.java
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysRoleServiceImpl.java
@@ -1,8 +1,8 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
- *
+ *
* https://www.renren.io
- *
+ *
* 版权所有,侵权必究!
*/
@@ -50,8 +50,8 @@ public class SysRoleServiceImpl extends BaseServiceImpl page(Map params) {
IPage page = baseDao.selectPage(
- getPage(params, Constant.CREATE_DATE, false),
- getWrapper(params)
+ getPage(params, Constant.CREATE_DATE, false),
+ getWrapper(params)
);
return getPageData(page, SysRoleDTO.class);
@@ -64,16 +64,18 @@ public class SysRoleServiceImpl extends BaseServiceImpl getWrapper(Map params){
- String name = (String)params.get("name");
+ private QueryWrapper getWrapper(Map params) {
+ String name = (String) params.get("name");
+ String code = (String) params.get("code");
QueryWrapper wrapper = new QueryWrapper<>();
- wrapper.eq(Constant.DEL_FLAG, DelFlagEnum.NORMAL.value());
- wrapper.like(StringUtils.isNotBlank(name), "name", name);
+ wrapper.eq(Constant.DEL_FLAG, DelFlagEnum.NORMAL.value())
+ .eq(StringUtils.isNotBlank(code), "code", code)
+ .like(StringUtils.isNotBlank(name), "name", name);
- //普通管理员,只能查询所属部门及子部门的数据
+ // 普通管理员,只能查询所属部门及子部门的数据
UserDetail user = SecurityUser.getUser();
- if(user.getSuperAdmin() == SuperAdminEnum.NO.value()) {
+ if (user.getSuperAdmin() == SuperAdminEnum.NO.value()) {
List deptIdList = sysDeptService.getSubDeptIdList(user.getDeptId());
wrapper.in(deptIdList != null, "dept_id", deptIdList);
}
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysUserServiceImpl.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysUserServiceImpl.java
index a2e41101c..4d3972143 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysUserServiceImpl.java
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysUserServiceImpl.java
@@ -8,6 +8,7 @@
package com.elink.esua.epdc.service.impl;
+import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.commons.mybatis.enums.DelFlagEnum;
@@ -16,14 +17,16 @@ import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import com.elink.esua.epdc.commons.tools.enums.SuperAdminEnum;
-import com.elink.esua.epdc.commons.tools.exception.ErrorCode;
import com.elink.esua.epdc.commons.tools.exception.RenException;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.security.password.PasswordUtils;
import com.elink.esua.epdc.commons.tools.security.user.SecurityUser;
import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
+import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dao.SysUserDao;
+import com.elink.esua.epdc.dto.epdc.GridForLeaderRegisterDTO;
+import com.elink.esua.epdc.dto.epdc.GridLeaderRegisterDTO;
import com.elink.esua.epdc.dto.SysUserDTO;
import com.elink.esua.epdc.entity.SysUserEntity;
import com.elink.esua.epdc.service.SysDeptService;
@@ -99,14 +102,8 @@ public class SysUserServiceImpl extends BaseServiceImpl wrapper = new QueryWrapper<>();
- wrapper.eq("username", dto.getUsername())
- .eq(FieldConstant.DEL_FLAG, DelFlagEnum.NORMAL.value());
- Integer selectCount = this.baseDao.selectCount(wrapper);
- if (selectCount > NumConstant.ZERO) {
- throw new RenException(ErrorCode.DB_RECORD_EXISTS);
- }
+
+ this.verifyUsernameAndMobile(dto);
SysUserEntity entity = ConvertUtils.sourceToTarget(dto, SysUserEntity.class);
@@ -125,6 +122,9 @@ public class SysUserServiceImpl extends BaseServiceImpl wrapper = new QueryWrapper<>();
+ wrapper.eq(FieldConstant.DEL_FLAG, DelFlagEnum.NORMAL.value())
+ .ne(null != dto.getId(), "id", dto.getId())
+ .and(i -> i.eq(StringUtils.isNotBlank(dto.getMobile()), "mobile", dto.getMobile())
+ .or()
+ .eq("username", dto.getUsername()));
+ Integer selectCount = this.baseDao.selectCount(wrapper);
+ if (selectCount > NumConstant.ZERO) {
+ throw new RenException("保存失败,用户名或手机号重复");
+ }
+ }
+
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(Long[] ids) {
@@ -163,4 +184,37 @@ public class SysUserServiceImpl extends BaseServiceImpl listGridWhileLeaderRegister(String mobile) {
+
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq(FieldConstant.MOBILE, mobile)
+ .eq(FieldConstant.DEL_FLAG, DelFlagEnum.NORMAL.value());
+
+ Integer selectCount = baseDao.selectCount(wrapper);
+ if (selectCount == NumConstant.ZERO) {
+ return new Result().error("匹配网格长手机号失败");
+ }
+
+ SysUserEntity sysUserEntity = baseDao.selectOne(wrapper);
+ SysUserDTO dto = ConvertUtils.sourceToTarget(sysUserEntity, SysUserDTO.class);
+
+ List gridIdList = this.baseDao.selectListLeaderGridId(mobile);
+ if (CollUtil.isEmpty(gridIdList)) {
+ return new Result().error("匹配网格长数据权限失败");
+ }
+
+ List gridForLeaderList = sysDeptService.selectListGridForLeader(gridIdList);
+
+ GridLeaderRegisterDTO result = new GridLeaderRegisterDTO();
+ result.setSysUser(dto);
+ result.setLeaderGridList(gridForLeaderList);
+ return new Result().ok(result);
+ }
+
+ @Override
+ public List listOfUserIdsByDeptId(Long deptId) {
+ return baseDao.selectListOfUserIdsByDeptId(deptId);
+ }
}
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/DeptMaCodeDao.xml b/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/DeptMaCodeDao.xml
index e46654979..2889a5e88 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/DeptMaCodeDao.xml
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/DeptMaCodeDao.xml
@@ -11,6 +11,7 @@
dg.id AS GRID_ID,
ed.CREATED_TIME,
ed.ID,
+ ed.leader_flag,
ed.CODE_URL
FROM
sys_dept dg
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml b/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml
index 5353844f2..f3ed6ebbe 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml
@@ -88,4 +88,28 @@
AND type_key = 'district_dept'
+
+
+ SELECT
+ dis.`name` district,
+ dis.id districtId,
+ str.`name` street,
+ str.id streetId,
+ com.`name` community,
+ com.id communityId,
+ gri.`name` grid,
+ gri.id gridId,
+ gri.create_date switchedTime
+ FROM
+ sys_dept gri
+ LEFT JOIN sys_dept com ON gri.pid = com.id
+ LEFT JOIN sys_dept str ON com.pid = str.id
+ LEFT JOIN sys_dept dis ON str.pid = dis.id
+ WHERE
+ gri.ID in
+ #{gridId}
+ AND gri.del_flag = '0'
+ AND dis.id IS NOT NULL
+
+
diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysUserDao.xml b/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysUserDao.xml
index e1dd9aaaf..8a3d50bff 100644
--- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysUserDao.xml
+++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysUserDao.xml
@@ -58,4 +58,34 @@
select count(*) from sys_user where dept_id = #{value} and del_flag = 0
+
+
+ SELECT
+ d.id gridId
+ FROM
+ sys_user u
+ LEFT JOIN sys_role_user ru ON u.id = ru.user_id
+ LEFT JOIN sys_role r ON ru.role_id = r.id
+ LEFT JOIN sys_role_data_scope rds ON rds.role_id = r.id
+ LEFT JOIN sys_dept d ON d.id = rds.dept_id
+ WHERE
+ d.type_key = 'grid_party'
+ AND r.type_key = 'gridLeader'
+ AND u.mobile = #{mobile}
+ AND u.del_flag = 0
+ ORDER BY
+ d.create_date DESC
+
+
+
+ SELECT
+ ID
+ FROM
+ sys_user
+ WHERE
+ del_flag = '0'
+ AND `status` = 1
+ AND dept_id = #{deptId}
+
+
diff --git a/esua-epdc/epdc-commons/epdc-commons-mybatis/src/main/java/com/elink/esua/epdc/commons/mybatis/interceptor/DataFilterInterceptor.java b/esua-epdc/epdc-commons/epdc-commons-mybatis/src/main/java/com/elink/esua/epdc/commons/mybatis/interceptor/DataFilterInterceptor.java
index e8879fca1..eca792214 100644
--- a/esua-epdc/epdc-commons/epdc-commons-mybatis/src/main/java/com/elink/esua/epdc/commons/mybatis/interceptor/DataFilterInterceptor.java
+++ b/esua-epdc/epdc-commons/epdc-commons-mybatis/src/main/java/com/elink/esua/epdc/commons/mybatis/interceptor/DataFilterInterceptor.java
@@ -73,7 +73,10 @@ public class DataFilterInterceptor extends AbstractSqlParserHandler implements I
// 拼接新SQL
String orderBy = "ORDER BY";
- if (originalSql.indexOf(orderBy) > -1) {
+ String groupBy = "GROUP BY";
+ if (originalSql.indexOf(groupBy) > -1) {
+ originalSql = originalSql.replace(groupBy, scope.getSqlFilter() + groupBy);
+ } else if (originalSql.indexOf(orderBy) > -1) {
originalSql = originalSql.replace(orderBy, scope.getSqlFilter() + orderBy);
} else {
originalSql = originalSql + scope.getSqlFilter();
diff --git a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/NumConstant.java b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/NumConstant.java
index 4c4865263..dc987077c 100644
--- a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/NumConstant.java
+++ b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/NumConstant.java
@@ -38,5 +38,6 @@ public interface NumConstant {
String TWO_STR = "2";
String THREE_STR = "3";
String FOUR_STR = "4";
+ String FIVE_STR = "5";
}
diff --git a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/ServiceConstant.java b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/ServiceConstant.java
index 2937b5573..d56c9fb99 100644
--- a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/ServiceConstant.java
+++ b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/ServiceConstant.java
@@ -71,4 +71,8 @@ public interface ServiceConstant {
* DEMO服务
*/
String EPDC_DEMO_SERVER = "epdc-demo-server";
+ /**
+ * websocket服务
+ */
+ String EPDC_WEBSOCKET_SERVER = "epdc-websocket-server";
}
diff --git a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/IdentityNoUtils.java b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/IdentityNoUtils.java
index c03eb060d..0d48190cc 100644
--- a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/IdentityNoUtils.java
+++ b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/IdentityNoUtils.java
@@ -6,9 +6,7 @@ import java.io.Serializable;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
-import java.util.Calendar;
import java.util.Date;
-import java.util.GregorianCalendar;
import java.util.Hashtable;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -48,11 +46,12 @@ public class IdentityNoUtils implements Serializable {
private final static int[] VERIFY_CODE_WEIGHT = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};
/**
- * 根据身份证号获取性别
- * 0女;1男
+ * 根据身份证号获取性别 0女;1男
*
- * @param IDCard
- * @return
+ * @param IDCard 完整身份证号码
+ * @return java.lang.String
+ * @author work@yujt.net.cn
+ * @date 2019/9/20 14:26
*/
public static String getSex(String IDCard) {
if (StringUtils.isNotBlank(IDCard)) {
@@ -76,8 +75,10 @@ public class IdentityNoUtils implements Serializable {
/**
* 根据身份证号获取年龄
*
- * @param IDCard
- * @return
+ * @param IDCard 完整身份证号码
+ * @return java.lang.Integer
+ * @author work@yujt.net.cn
+ * @date 2019/9/20 14:26
*/
public static Integer getAge(String IDCard) {
int age;
@@ -114,10 +115,12 @@ public class IdentityNoUtils implements Serializable {
}
/**
- * 获取出生日期 yyyy-MM-dd
+ * 根据身份证号获取出生日期
*
- * @param IDCard
- * @return
+ * @param IDCard 完整身份证号码
+ * @return java.lang.String
+ * @author work@yujt.net.cn
+ * @date 2019/9/20 14:26
*/
public static String getBirthday(String IDCard) {
String year = "";
@@ -190,7 +193,7 @@ public class IdentityNoUtils implements Serializable {
/**
* 验证身份证号码,验证通过返回null
*
- * @param idStr
+ * @param idStr 完整身份证号码
* @return java.lang.String
* @author work@yujt.net.cn
* @date 2019/9/20 14:26
diff --git a/esua-epdc/epdc-gateway/pom.xml b/esua-epdc/epdc-gateway/pom.xml
index 7b1adf95f..f84a048b6 100644
--- a/esua-epdc/epdc-gateway/pom.xml
+++ b/esua-epdc/epdc-gateway/pom.xml
@@ -119,6 +119,7 @@
lb://epdc-demo-server
http://127.0.0.1:9064
+ lb://epdc-websocket-server
false
47.104.224.45:8848
@@ -156,6 +157,7 @@
lb://epdc-user-server
lb://epdc-demo-server
lb://epdc-group-server
+ lb://epdc-websocket-server
true
@@ -188,6 +190,8 @@
lb://epdc-user-server
lb://epdc-demo-server
lb://epdc-group-server
+ lb://epdc-websocket-server
+
8
121.42.149.50
diff --git a/esua-epdc/epdc-gateway/src/main/java/com/elink/esua/epdc/config/CorsConfig.java b/esua-epdc/epdc-gateway/src/main/java/com/elink/esua/epdc/config/CorsConfig.java
index 4f9b8229a..5f0515c53 100644
--- a/esua-epdc/epdc-gateway/src/main/java/com/elink/esua/epdc/config/CorsConfig.java
+++ b/esua-epdc/epdc-gateway/src/main/java/com/elink/esua/epdc/config/CorsConfig.java
@@ -1,13 +1,15 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
- *
+ *
* https://www.renren.io
- *
+ *
* 版权所有,侵权必究!
*/
package com.elink.esua.epdc.config;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.web.ServerProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpHeaders;
@@ -29,8 +31,12 @@ import reactor.core.publisher.Mono;
*/
@Configuration
public class CorsConfig {
+
private static final String MAX_AGE = "18000L";
+ @Autowired
+ private ServerProperties serverProperties;
+
@Bean
public WebFilter corsFilter() {
return (ServerWebExchange ctx, WebFilterChain chain) -> {
@@ -42,12 +48,14 @@ public class CorsConfig {
ServerHttpResponse response = ctx.getResponse();
HttpMethod requestMethod = requestHeaders.getAccessControlRequestMethod();
HttpHeaders headers = response.getHeaders();
- headers.add(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, requestHeaders.getOrigin());
+ if (!request.getURI().getPath().startsWith(serverProperties.getServlet().getContextPath().concat("/ws"))) {
+ headers.add(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, requestHeaders.getOrigin());
+ headers.add(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS, "true");
+ }
headers.addAll(HttpHeaders.ACCESS_CONTROL_ALLOW_HEADERS, requestHeaders.getAccessControlRequestHeaders());
if (requestMethod != null) {
headers.add(HttpHeaders.ACCESS_CONTROL_ALLOW_METHODS, requestMethod.name());
}
- headers.add(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS, "true");
headers.add(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "*");
headers.add(HttpHeaders.ACCESS_CONTROL_MAX_AGE, MAX_AGE);
if (request.getMethod() == HttpMethod.OPTIONS) {
diff --git a/esua-epdc/epdc-gateway/src/main/resources/application.yml b/esua-epdc/epdc-gateway/src/main/resources/application.yml
index 44f0fc0aa..53946043b 100644
--- a/esua-epdc/epdc-gateway/src/main/resources/application.yml
+++ b/esua-epdc/epdc-gateway/src/main/resources/application.yml
@@ -1,5 +1,7 @@
server:
port: @server.port@
+ servlet:
+ context-path: /epdc-api
spring:
application:
@@ -20,114 +22,123 @@ spring:
uri: @gateway.routes.epdc-auth-server.uri@
order: 1
predicates:
- - Path=/auth/**
+ - Path=${server.servlet.context-path}/auth/**
filters:
- - StripPrefix=0
+ - StripPrefix=1
#Admin服务
- id: epdc-admin-server
uri: @gateway.routes.epdc-admin-server.uri@
order: 2
predicates:
- - Path=/sys/**
+ - Path=${server.servlet.context-path}/sys/**
filters:
- - StripPrefix=0
+ - StripPrefix=1
#OSS服务
- id: epdc-oss-server
uri: @gateway.routes.epdc-oss-server.uri@
order: 3
predicates:
- - Path=/oss/**
+ - Path=${server.servlet.context-path}/oss/**
filters:
- - StripPrefix=0
+ - StripPrefix=1
#消息服务
- id: epdc-message-server
uri: @gateway.routes.epdc-message-server.uri@
order: 4
predicates:
- - Path=/message/**
+ - Path=${server.servlet.context-path}/message/**
filters:
- - StripPrefix=0
+ - StripPrefix=1
#工作流服务
- id: epdc-activiti-server
uri: @gateway.routes.epdc-activiti-server.uri@
order: 5
predicates:
- - Path=/activiti/**
+ - Path=${server.servlet.context-path}/activiti/**
filters:
- - StripPrefix=0
+ - StripPrefix=1
#定时任务服务
- id: epdc-job-server
uri: @gateway.routes.epdc-job-server.uri@
order: 6
predicates:
- - Path=/job/**
+ - Path=${server.servlet.context-path}/job/**
filters:
- - StripPrefix=0
+ - StripPrefix=1
#APP流服务
- id: epdc-api-server
uri: @gateway.routes.epdc-api-server.uri@
order: 7
predicates:
- - Path=/api/**
+ - Path=${server.servlet.context-path}/api/**
filters:
- - StripPrefix=0
+ - StripPrefix=1
- CpAuth=true
#爱心互助模块
- id: epdc-heart-server
uri: @gateway.routes.epdc-heart-server.uri@
order: 8
predicates:
- - Path=/heart/**
+ - Path=${server.servlet.context-path}/heart/**
filters:
- - StripPrefix=0
+ - StripPrefix=1
#友邻社群模块
- id: epdc-group-server
uri: @gateway.routes.epdc-group-server.uri@
order: 9
predicates:
- Path=/group/**
+ - Path=${server.servlet.context-path}/group/**
filters:
- - StripPrefix=0
+ - StripPrefix=1
#新闻公告模块
- id: epdc-news-server
uri: @gateway.routes.epdc-news-server.uri@
order: 10
predicates:
- - Path=/news/**
+ - Path=${server.servlet.context-path}/news/**
filters:
- - StripPrefix=0
+ - StripPrefix=1
#党群议事模块
- id: epdc-events-server
uri: @gateway.routes.epdc-events-server.uri@
order: 11
predicates:
- - Path=/events/**
+ - Path=${server.servlet.context-path}/events/**
filters:
- - StripPrefix=0
+ - StripPrefix=1
#生活服务模块
- id: epdc-services-server
uri: @gateway.routes.epdc-services-server.uri@
order: 12
predicates:
- - Path=/services/**
+ - Path=${server.servlet.context-path}/services/**
filters:
- - StripPrefix=0
+ - StripPrefix=1
#APP用户模块
- id: epdc-user-server
uri: @gateway.routes.epdc-user-server.uri@
- order: 14
+ order: 13
predicates:
- - Path=/app-user/**
+ - Path=${server.servlet.context-path}/app-user/**
filters:
- - StripPrefix=0
+ - StripPrefix=1
#DEMO服务
- id: epdc-demo-server
uri: @gateway.routes.epdc-demo-server.uri@
+ order: 14
+ predicates:
+ - Path=${server.servlet.context-path}/demo/**
+ filters:
+ - StripPrefix=1
+ #websocket服务
+ - id: epdc-websocket-server
+ uri: @gateway.routes.epdc-websocket-server.uri@
order: 15
predicates:
- - Path=/demo/**
+ - Path=${server.servlet.context-path}/ws/**
filters:
- - StripPrefix=0
+ - StripPrefix=1
nacos:
discovery:
server-addr: @nacos.server-addr@
@@ -181,8 +192,8 @@ renren:
- /activiti/editor-app/**
- /message/sms/sendCode #发送验证码
- /heart/**
-
-
+ - /oss/file/download
+ - /ws/**
epdc:
@@ -197,4 +208,7 @@ epdc:
- /api/message/sms/registerResult # 发送用户注册审核结果
- /api/events/issue/upload # 上传图片
- /api/app-user/user/mp/regist # 公众号用户注册
- - /api/app-user/user/ma/regist # 小程序用户注册
+ - /api/app-user/user/ma/getToken # 小程序用户 登录
+ - /api/app-user/user/ma/regist # 小程序用户 注册
+ - /api/app-user/user/ma/gridLeaderRegister # 小程序用户 网格长注册
+ - /api/app-user/user/ma/v2/getToken # 小程序用户 注册或登录(版本v2)
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/ScanSwitchDTO.java b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/ScanSwitchDTO.java
new file mode 100644
index 000000000..b6b5e92c9
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/ScanSwitchDTO.java
@@ -0,0 +1,71 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.elink.esua.epdc.dto;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 扫码开关
+ *
+ * @author qu qu@elink-cn.com
+ * @since v1.0.0 2019-10-10
+ */
+@Data
+public class ScanSwitchDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * id
+ */
+ private String id;
+
+ /**
+ * 扫码开关 0关1开
+ */
+ private String scanSwitch;
+
+ /**
+ * 删除标识 0:未删除 1:删除
+ */
+ private String delFlag;
+
+ /**
+ * 创建者
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新者
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcAppUserMaInfoFormDTO.java b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcAppUserMaInfoFormDTO.java
new file mode 100644
index 000000000..47ecf25c3
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcAppUserMaInfoFormDTO.java
@@ -0,0 +1,36 @@
+package com.elink.esua.epdc.dto.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ *
+ * 更新用户微信信息Form DTO
+ *
+ * @Author:liuchuang
+ * @Date:2019/10/25 15:55
+ */
+@Data
+public class EpdcAppUserMaInfoFormDTO implements Serializable {
+ private static final long serialVersionUID = 201029992792275120L;
+
+ /**
+ * 微信code
+ */
+ @NotBlank(message = "微信code不能为空")
+ private String wxCode;
+
+ /**
+ * 用户信息
+ */
+ @NotBlank(message = "用户信息不能为空")
+ private String encryptedData;
+
+ /**
+ * 加密算法的初始向量
+ */
+ @NotBlank(message = "初始向量不能为空")
+ private String iv;
+}
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcAppUserRegisterFormDTO.java b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcAppUserRegisterFormDTO.java
new file mode 100644
index 000000000..42bd6cf74
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcAppUserRegisterFormDTO.java
@@ -0,0 +1,31 @@
+package com.elink.esua.epdc.dto.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ *
+ * 用户注册,获取Token
+ *
+ * @Author:liuchuang
+ * @Date:2019/10/24 16:25
+ */
+@Data
+public class EpdcAppUserRegisterFormDTO implements Serializable {
+ private static final long serialVersionUID = -5518237917951689101L;
+
+ /**
+ * 微信code
+ */
+ @NotBlank(message = "微信code不能为空")
+ private String wxCode;
+
+ /**
+ * 网格ID
+ */
+ @NotNull(message = "网格ID不能为空")
+ private Long gridId;
+}
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcCompleteUserInfoFormDTO.java b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcCompleteUserInfoFormDTO.java
new file mode 100644
index 000000000..ab9640135
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcCompleteUserInfoFormDTO.java
@@ -0,0 +1,54 @@
+package com.elink.esua.epdc.dto.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * 移动端完善用户信息
+ *
+ * @author work@yujt.net.cn
+ * @date 2019/10/26 10:56
+ */
+@Data
+public class EpdcCompleteUserInfoFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 7848126935041704928L;
+
+ @NotBlank(message = "党员标识不能为空")
+ private String partyFlag;
+
+ /**
+ * 身份证号码
+ */
+ private String identityNo;
+ /**
+ * 手机号
+ */
+ @NotBlank(message = "手机号不能为空")
+ private String mobile;
+ /**
+ * 短信验证码
+ */
+ @NotBlank(message = "短信验证码不能为空")
+ private String smsCode;
+ /**
+ * 真实姓名
+ */
+ @NotBlank(message = "真实姓名不能为空")
+ private String realName;
+ /**
+ * 所在道路
+ */
+ @NotBlank(message = "所在道路不能为空")
+ private String road;
+ /**
+ * 小区名
+ */
+ private String villageName;
+ /**
+ * 住处(楼栋-单元-房间)
+ */
+ private String dwellingPlace;
+}
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/EpdcAppAuthorizationDTO.java b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/EpdcAppAuthorizationDTO.java
index 368adae3b..718c39ed8 100644
--- a/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/EpdcAppAuthorizationDTO.java
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/EpdcAppAuthorizationDTO.java
@@ -36,7 +36,7 @@ public class EpdcAppAuthorizationDTO implements Serializable {
*/
private String userId;
/**
- * 用户状态[AppUserStateEnum]
+ * 用户状态[AppUserStatesEnum]
*/
private String userState;
/**
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/EpdcCompleteUserInfoDTO.java b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/EpdcCompleteUserInfoDTO.java
new file mode 100644
index 000000000..1842fb2a9
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/EpdcCompleteUserInfoDTO.java
@@ -0,0 +1,64 @@
+package com.elink.esua.epdc.dto.result;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * @author work@yujt.net.cn
+ * @date 1 1
+ */
+@Data
+public class EpdcCompleteUserInfoDTO implements Serializable {
+
+ private static final long serialVersionUID = -7780650232814344762L;
+
+ /**
+ * 是否是党员 0否 1是
+ */
+ @NotBlank(message = "党员标识不能为空")
+ private String partyFlag;
+
+ /**
+ * 身份证号码
+ */
+ private String identityNo;
+ /**
+ * 手机号
+ */
+ private String mobile;
+
+ /**
+ * 真实姓名
+ */
+ private String realName;
+
+ /**
+ * 网格Id
+ */
+ private Long gridId;
+ /**
+ * 所在道路
+ */
+ private String road;
+
+ /**
+ * 小区名
+ */
+ private String villageName;
+ /**
+ * 住处(楼栋-单元-房间)
+ */
+ private String dwellingPlace;
+
+ /**
+ * 状态(0-已注册,1-已完善信息待审核,2-信息审核不通过,3-信息审核通过)
+ */
+ private String state;
+
+ /**
+ * 审核备注
+ */
+ private String remark;
+}
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/pom.xml b/esua-epdc/epdc-module/epdc-api/epdc-api-server/pom.xml
index be5432ae7..22846cd75 100644
--- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/pom.xml
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/pom.xml
@@ -80,7 +80,6 @@
feign-httpclient
10.3.0
-
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java
index 74b53f31f..6a39a043b 100644
--- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java
@@ -4,20 +4,19 @@ import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.commons.tools.annotation.LoginUser;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
-import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegistFormDTO;
-import com.elink.esua.epdc.dto.epdc.form.EpdcUserUpdateAvatarFromDTO;
-import com.elink.esua.epdc.dto.epdc.form.EpdcUserUpdateMobileFromDTO;
+import com.elink.esua.epdc.dto.epdc.form.*;
+import com.elink.esua.epdc.dto.epdc.result.EpdcUserGridResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO;
-import com.elink.esua.epdc.dto.form.EpdcAppUserMaTokenFormDTO;
-import com.elink.esua.epdc.dto.form.EpdcAppUserTokenFormDTO;
-import com.elink.esua.epdc.dto.form.EpdcAppSaveWxFormIdFormDTO;
-import com.elink.esua.epdc.dto.form.EpdcCheckRegisterFormDTO;
+import com.elink.esua.epdc.dto.form.*;
import com.elink.esua.epdc.dto.result.EpdcAppRegisterCallbackDTO;
import com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO;
+import com.elink.esua.epdc.dto.result.EpdcCompleteUserInfoDTO;
import com.elink.esua.epdc.service.AppUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import java.util.List;
+
/**
* 用户模块
*
@@ -47,13 +46,15 @@ public class ApiAppUserController {
}
/**
- * 用户注册
+ * 小程序端,用户注册。已废弃,新的注册接口使用:
+ * {@link com.elink.esua.epdc.controller.v2.ApiAppUserV2Controller#getMaV2Token(EpdcAppUserRegisterFormDTO)}
*
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author yujintao
* @date 2019/9/9 10:41
*/
+ @Deprecated
@PostMapping("user/mp/regist")
public Result mpUserRegister(@RequestBody EpdcUserRegistFormDTO formDto) {
ValidatorUtils.validateEntity(formDto);
@@ -61,19 +62,35 @@ public class ApiAppUserController {
}
/**
- * 小程序端,用户注册
+ * 小程序端,用户注册。已废弃,新的注册接口使用:
+ * {@link com.elink.esua.epdc.controller.v2.ApiAppUserV2Controller#getMaV2Token(EpdcAppUserRegisterFormDTO)}
*
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author yujintao
* @date 2019/9/9 10:41
*/
+ @Deprecated
@PostMapping("user/ma/regist")
public Result maUserRegister(@RequestBody EpdcUserRegistFormDTO formDto) {
ValidatorUtils.validateEntity(formDto);
return appUserService.maUserRegister(formDto);
}
+ /**
+ * 网格长小程序端注册
+ *
+ * @param formDto
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author work@yujt.net.cn
+ * @date 2019/10/22 15:28
+ */
+ @PostMapping("user/ma/gridLeaderRegister")
+ public Result maGridLeaderRegister(@RequestBody EpdcGridLeaderRegisterSubmitFormDTO formDto) {
+ ValidatorUtils.validateEntity(formDto);
+ return appUserService.maGridLeaderRegister(formDto);
+ }
+
/**
* 用户查询注册结果
*
@@ -82,6 +99,7 @@ public class ApiAppUserController {
* @author work@yujt.net.cn
* @date 2019/9/26 09:14
*/
+ @Deprecated
@GetMapping("user/checkRegister")
public Result checkRegister(EpdcCheckRegisterFormDTO formDto) {
ValidatorUtils.validateEntity(formDto);
@@ -110,6 +128,7 @@ public class ApiAppUserController {
* @author yujintao
* @date 2019/9/10 20:47
*/
+ @Deprecated
@GetMapping("user/ma/getToken")
public Result getMaToken(EpdcAppUserMaTokenFormDTO formDto) {
ValidatorUtils.validateEntity(formDto);
@@ -141,4 +160,73 @@ public class ApiAppUserController {
ValidatorUtils.validateEntity(fromDTO);
return appUserService.updateMobile(userDetail, fromDTO);
}
+
+ /**
+ * 用户小程序切换网格
+ *
+ * @param userDetail
+ * @param gridId
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author work@yujt.net.cn
+ * @date 2019/10/23 10:38
+ */
+ @GetMapping("user/switchGrid/{gridId}")
+ public Result userSwitchGrid(@LoginUser TokenDto userDetail, @PathVariable("gridId") String gridId) {
+ return appUserService.userSwitchGrid(userDetail, gridId);
+ }
+
+ /**
+ * 获取用户的所有网格列表
+ *
+ * @param userDetail
+ * @return com.elink.esua.epdc.commons.tools.utils.Result>
+ * @author work@yujt.net.cn
+ * @date 2019/10/23 15:58
+ */
+ @GetMapping("user/listGrid")
+ public Result> listUserGrid(@LoginUser TokenDto userDetail) {
+ return appUserService.listUserGrid(userDetail.getUserId());
+ }
+
+ /**
+ * 更新用户微信信息
+ *
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @params [tokenDto, formDto]
+ * @author liuchuang
+ * @since 2019/10/28 9:58
+ */
+ @PostMapping("user/ma/updateWxInfo")
+ public Result updateWxInfo(@LoginUser TokenDto tokenDto, @RequestBody EpdcAppUserMaInfoFormDTO formDto) {
+ ValidatorUtils.validateEntity(formDto);
+ return appUserService.updateWxInfo(tokenDto, formDto);
+ }
+
+ /**
+ * 用户完善个人信息-保存
+ *
+ * @param tokenDto
+ * @param formDto
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author work@yujt.net.cn
+ * @date 2019/10/26 13:41
+ */
+ @PostMapping("user/completeInfo")
+ public Result completeUserInfo(@LoginUser TokenDto tokenDto, @RequestBody EpdcCompleteUserInfoFormDTO formDto) {
+ ValidatorUtils.validateEntity(formDto);
+ return appUserService.completeUserInfo(tokenDto, formDto);
+ }
+
+ /**
+ * 用于用户完善个人信息页面,获取个人信息
+ *
+ * @param tokenDto 令牌
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author work@yujt.net.cn
+ * @date 2019/10/26 15:07
+ */
+ @GetMapping("user/prepareComplete")
+ public Result prepareCompleteUserInfo(@LoginUser TokenDto tokenDto) {
+ return appUserService.prepareCompleteUserInfo(tokenDto);
+ }
}
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiScanSwitchController.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiScanSwitchController.java
new file mode 100644
index 000000000..343e73b6a
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiScanSwitchController.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.elink.esua.epdc.controller;
+
+import com.elink.esua.epdc.commons.tools.page.PageData;
+import com.elink.esua.epdc.commons.tools.utils.ExcelUtils;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.commons.tools.validator.AssertUtils;
+import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
+import com.elink.esua.epdc.commons.tools.validator.group.AddGroup;
+import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
+import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
+import com.elink.esua.epdc.dto.ScanSwitchDTO;
+import com.elink.esua.epdc.service.ScanSwitchService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import java.util.Map;
+
+
+/**
+ * 扫码开关
+ *
+ * @author qu qu@elink-cn.com
+ * @since v1.0.0 2019-10-10
+ */
+@RestController
+@RequestMapping("ma")
+public class ApiScanSwitchController {
+
+ @Autowired
+ private ScanSwitchService scanSwitchService;
+
+ @GetMapping("page")
+ public Result> page(@RequestParam Map params){
+ PageData page = scanSwitchService.page(params);
+ return new Result>().ok(page);
+ }
+
+ @GetMapping("{id}")
+ public Result get(@PathVariable("id") String id){
+ ScanSwitchDTO data = scanSwitchService.get(id);
+ return new Result().ok(data);
+ }
+
+ @PostMapping
+ public Result save(@RequestBody ScanSwitchDTO dto){
+ //效验数据
+ ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
+ scanSwitchService.save(dto);
+ return new Result();
+ }
+
+ @PutMapping
+ public Result update(@RequestBody ScanSwitchDTO dto){
+ //效验数据
+ ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
+ scanSwitchService.update(dto);
+ return new Result();
+ }
+
+ @DeleteMapping
+ public Result delete(@RequestBody String[] ids){
+ //效验数据
+ AssertUtils.isArrayEmpty(ids, "id");
+ scanSwitchService.delete(ids);
+ return new Result();
+ }
+
+
+ /***
+ * 前端接口开关
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author qushutong
+ * @date 2019/10/10 11:58
+ */
+ @GetMapping("scanSwitch")
+ public Result> get(){
+ Map data = scanSwitchService.getOne();
+ return new Result>().ok(data);
+ }
+}
\ No newline at end of file
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/v2/ApiAppUserV2Controller.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/v2/ApiAppUserV2Controller.java
new file mode 100644
index 000000000..c06725cd9
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/v2/ApiAppUserV2Controller.java
@@ -0,0 +1,42 @@
+package com.elink.esua.epdc.controller.v2;
+
+import com.elink.esua.epdc.commons.api.version.ApiVersion;
+import com.elink.esua.epdc.commons.tools.constant.Constant;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
+import com.elink.esua.epdc.dto.form.EpdcAppUserRegisterFormDTO;
+import com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO;
+import com.elink.esua.epdc.service.AppUserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 用户模块迭代接口 v2
+ *
+ * @author work@yujt.net.cn
+ * @date 2019/10/26 10:40
+ */
+@ApiVersion(2)
+@RestController("ApiAppUserV2Controller")
+@RequestMapping("app-user")
+public class ApiAppUserV2Controller {
+
+ @Autowired
+ private AppUserService appUserService;
+
+ /**
+ * 用户注册、获取Token
+ *
+ * @param formDto
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author work@yujt.net.cn
+ * @date 2019/10/26 10:48
+ */
+ @GetMapping("user/ma" + Constant.VERSION_CONTROL + "/getToken")
+ public Result getMaV2Token(EpdcAppUserRegisterFormDTO formDto) {
+ ValidatorUtils.validateEntity(formDto);
+ return appUserService.getMaV2Token(formDto);
+ }
+}
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/dao/ScanSwitchDao.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/dao/ScanSwitchDao.java
new file mode 100644
index 000000000..5cc8adbfa
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/dao/ScanSwitchDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.elink.esua.epdc.dao;
+
+import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
+import com.elink.esua.epdc.entity.ScanSwitchEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 扫码开关
+ *
+ * @author qu qu@elink-cn.com
+ * @since v1.0.0 2019-10-10
+ */
+@Mapper
+public interface ScanSwitchDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/entity/ScanSwitchEntity.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/entity/ScanSwitchEntity.java
new file mode 100644
index 000000000..bb0e65661
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/entity/ScanSwitchEntity.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.elink.esua.epdc.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.elink.esua.epdc.commons.mybatis.entity.BaseEpdcEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 扫码开关
+ *
+ * @author qu qu@elink-cn.com
+ * @since v1.0.0 2019-10-10
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("epdc_scan_switch")
+public class ScanSwitchEntity extends BaseEpdcEntity {
+
+ private static final long serialVersionUID = 1L;
+
+
+ /**
+ * 扫码开关 0关1开
+ */
+ private String scanSwitch;
+
+}
\ No newline at end of file
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java
index 019d9d706..1adefe60b 100644
--- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java
@@ -3,11 +3,13 @@ package com.elink.esua.epdc.feign;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.CompleteDeptDTO;
+import com.elink.esua.epdc.dto.epdc.GridLeaderRegisterDTO;
import com.elink.esua.epdc.feign.fallback.AdminFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
+
/**
* 管理端接口
*
@@ -28,4 +30,15 @@ public interface AdminFeignClient {
*/
@GetMapping("sys/dept/getCompleteDept/{gridId}")
Result getCompleteDept(@PathVariable("gridId") Long gridId);
+
+ /**
+ * 网格长注册时,根据手机号,查询网格长管理的所有网格
+ *
+ * @param mobile
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author work@yujt.net.cn
+ * @date 2019/10/22 16:54
+ */
+ @GetMapping("sys/user/listGridForLeader/{mobile}")
+ Result listGridWhileLeaderRegister(@PathVariable("mobile") String mobile);
}
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java
index 1bfd22d3b..151519066 100644
--- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java
@@ -3,12 +3,10 @@ package com.elink.esua.epdc.feign;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.UserDTO;
+import com.elink.esua.epdc.dto.UserGridRelationDTO;
import com.elink.esua.epdc.dto.UserWxFormIdDTO;
-import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegistFormDTO;
-import com.elink.esua.epdc.dto.epdc.form.EpdcDeleteWxFormIdFormDTO;
-import com.elink.esua.epdc.dto.epdc.form.EpdcUserSaveWxFormIdFormDTO;
-import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO;
-import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterAuditMsgResultDTO;
+import com.elink.esua.epdc.dto.epdc.form.*;
+import com.elink.esua.epdc.dto.epdc.result.*;
import com.elink.esua.epdc.feign.fallback.UserFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
@@ -17,6 +15,8 @@ import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
+import java.util.List;
+
/**
* appuser端接口
*
@@ -38,6 +38,17 @@ public interface UserFeignClient {
@GetMapping("app-user/epdc-app/user/getByOpenId/{openId}")
Result getUserInfoByOpenId(@PathVariable("openId") String openId);
+ /**
+ * 查询用户基础信息
+ *
+ * @param userId
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author work@yujt.net.cn
+ * @date 2019/10/26 15:16
+ */
+ @GetMapping("app-user/epdc-app/user/getById/{userId}")
+ Result getUserInfoById(@PathVariable("userId") String userId);
+
/**
* 获取用户信息(登录用)
*
@@ -69,7 +80,7 @@ public interface UserFeignClient {
* @date 2019/9/7 14:26
*/
@PostMapping(value = "app-user/epdc-app/user/regist", consumes = MediaType.APPLICATION_JSON_VALUE)
- Result userRegist(@RequestBody UserDTO userDto);
+ Result userRegist(UserDTO userDto);
/**
* 验证用户提交的注册信息
@@ -82,6 +93,28 @@ public interface UserFeignClient {
@GetMapping(value = "app-user/epdc-app/user/verify", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
Result verifyUserRegisterData(EpdcUserRegistFormDTO formDto);
+ /**
+ * 验证用户完善个人信息时提交的数据,返回用户当前状态
+ *
+ * @param userDto
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author work@yujt.net.cn
+ * @date 2019/10/26 11:31
+ */
+ @GetMapping(value = "app-user/epdc-app/user/verifyComplete", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
+ Result verifyUserCompleteData(UserDTO userDto);
+
+ /**
+ * 用户完善个人信息-保存
+ *
+ * @param formDto
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author work@yujt.net.cn
+ * @date 2019/10/26 13:41
+ */
+ @PostMapping(value = "app-user/epdc-app/user/completeInfo", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
+ Result completeUserInfo(EpdcAppUserCompleteInfoFormDTO formDto);
+
/**
* 移动端获取用户信息
*
@@ -149,4 +182,73 @@ public interface UserFeignClient {
*/
@GetMapping("app-user/epdc-app/wxformid/getByOpenId/{openId}")
Result getWxFormId(@PathVariable("openId") String openId);
+
+ /**
+ * 网格长注册
+ *
+ * @param registerDto
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author work@yujt.net.cn
+ * @date 2019/10/23 09:44
+ */
+ @PostMapping(value = "app-user/epdc-app/user/gridLeaderRegister", consumes = MediaType.APPLICATION_JSON_VALUE)
+ Result gridLeaderRegister(EpdcGridLeaderRegisterFormDTO registerDto);
+
+
+ /**
+ * 网格长小程序端切换网格
+ *
+ * @param switchGridDto
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author work@yujt.net.cn
+ * @date 2019/10/23 13:33
+ */
+ @GetMapping(value = "app-user/epdc-app/usergrid/userSwitchGrid", consumes = MediaType.APPLICATION_JSON_VALUE)
+ Result userSwitchGrid(EpdcLeaderSwitchGridFormDTO switchGridDto);
+
+ /**
+ * 获取网格长管理的网格列表
+ *
+ * @param userId
+ * @return com.elink.esua.epdc.commons.tools.utils.Result>
+ * @author work@yujt.net.cn
+ * @date 2019/10/23 13:34
+ */
+ @GetMapping("app-user/epdc-app/usergrid/listUserGrid/{userId}")
+ Result> listUserGrid(@PathVariable("userId") String userId);
+
+
+ /**
+ * 查询用户注册状态
+ *
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @params [fromDto]
+ * @author liuchuang
+ * @since 2019/10/25 10:50
+ */
+ @GetMapping("app-user/epdc-app/user/checkUserRegister")
+ Result getUserRegisterState(EpdcCheckUserRegisterFromDTO fromDto);
+
+ /**
+ * 用户注册或绑定网格
+ *
+ * @return com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterInfoResultDTO
+ * @params [formDto]
+ * @author liuchuang
+ * @since 2019/10/25 14:25
+ */
+ @PostMapping("app-user/epdc-app/user/registerOrBindGrid")
+ Result registerOrBindGrid(EpdcUserRegisterBindGridFormDTO formDto);
+
+ /**
+ *
+ * 更新用户微信信息
+ *
+ * @params [userDTO]
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author liuchuang
+ * @since 2019/10/25 17:07
+ */
+ @PostMapping("app-user/epdc-app/user/updateWxInfo")
+ Result updateWxInfo(UserDTO userDTO);
}
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java
index bba5a42f0..227c3b1f8 100644
--- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java
@@ -4,9 +4,11 @@ import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.ModuleUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.CompleteDeptDTO;
+import com.elink.esua.epdc.dto.epdc.GridLeaderRegisterDTO;
import com.elink.esua.epdc.feign.AdminFeignClient;
import org.springframework.stereotype.Component;
+
/**
* @author yujintao
* @email yujintao@elink-cn.com
@@ -19,4 +21,9 @@ public class AdminFeignClientFallback implements AdminFeignClient {
public Result getCompleteDept(Long gridId) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getCompleteDept", gridId);
}
+
+ @Override
+ public Result listGridWhileLeaderRegister(String mobile) {
+ return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "listGridWhileLeaderRegister", mobile);
+ }
}
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java
index 9f94134fb..b798496aa 100644
--- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java
@@ -4,15 +4,15 @@ import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.ModuleUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.UserDTO;
+import com.elink.esua.epdc.dto.UserGridRelationDTO;
import com.elink.esua.epdc.dto.UserWxFormIdDTO;
-import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegistFormDTO;
-import com.elink.esua.epdc.dto.epdc.form.EpdcDeleteWxFormIdFormDTO;
-import com.elink.esua.epdc.dto.epdc.form.EpdcUserSaveWxFormIdFormDTO;
-import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO;
-import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterAuditMsgResultDTO;
+import com.elink.esua.epdc.dto.epdc.form.*;
+import com.elink.esua.epdc.dto.epdc.result.*;
import com.elink.esua.epdc.feign.UserFeignClient;
import org.springframework.stereotype.Component;
+import java.util.List;
+
/**
* @author yujintao
* @email yujintao@elink-cn.com
@@ -26,6 +26,11 @@ public class UserFeignClientFallback implements UserFeignClient {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getUserInfoByOpenId", openId);
}
+ @Override
+ public Result getUserInfoById(String userId) {
+ return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getUserInfoById", userId);
+ }
+
@Override
public Result getUserForLoginByOpenId(String openId) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getUserForLoginByOpenId", openId);
@@ -46,6 +51,16 @@ public class UserFeignClientFallback implements UserFeignClient {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "verifyUserRegisterData", formDto);
}
+ @Override
+ public Result verifyUserCompleteData(UserDTO userDto) {
+ return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "verifyUserCompleteData", userDto);
+ }
+
+ @Override
+ public Result completeUserInfo(EpdcAppUserCompleteInfoFormDTO formDto) {
+ return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "completeUserInfo", formDto);
+ }
+
@Override
public Result getInfoById(String id) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getInfoById", id);
@@ -75,4 +90,34 @@ public class UserFeignClientFallback implements UserFeignClient {
public Result getWxFormId(String openId) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getWxFormId", openId);
}
+
+ @Override
+ public Result gridLeaderRegister(EpdcGridLeaderRegisterFormDTO registerDto) {
+ return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "gridLeaderRegister", registerDto);
+ }
+
+ @Override
+ public Result userSwitchGrid(EpdcLeaderSwitchGridFormDTO switchGridDto) {
+ return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "userSwitchGrid", switchGridDto);
+ }
+
+ @Override
+ public Result> listUserGrid(String userId) {
+ return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "listUserGrid", userId);
+ }
+
+ @Override
+ public Result getUserRegisterState(EpdcCheckUserRegisterFromDTO fromDto) {
+ return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getUserRegisterState", fromDto);
+ }
+
+ @Override
+ public Result registerOrBindGrid(EpdcUserRegisterBindGridFormDTO formDto) {
+ return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "registerOrBindGrid", formDto);
+ }
+
+ @Override
+ public Result updateWxInfo(UserDTO userDTO) {
+ return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "updateWxInfo", userDTO);
+ }
}
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/resolver/LoginUserHandlerMethodArgumentResolver.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/resolver/LoginUserHandlerMethodArgumentResolver.java
index 9c898240c..3a497815e 100644
--- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/resolver/LoginUserHandlerMethodArgumentResolver.java
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/resolver/LoginUserHandlerMethodArgumentResolver.java
@@ -12,7 +12,8 @@ import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.common.token.util.CpUserDetailRedis;
import com.elink.esua.epdc.commons.tools.annotation.LoginUser;
import com.elink.esua.epdc.commons.tools.constant.Constant;
-import com.elink.esua.epdc.commons.tools.security.user.CpUserDetail;
+import com.elink.esua.epdc.commons.tools.exception.RenException;
+import com.elink.esua.epdc.exception.ModuleErrorCode;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.MethodParameter;
@@ -45,7 +46,7 @@ public class LoginUserHandlerMethodArgumentResolver implements HandlerMethodArgu
//获取用户ID
String userId = request.getHeader(Constant.APP_USER_KEY);
if (StringUtils.isEmpty(userId)) {
- return null;
+ throw new RenException(ModuleErrorCode.TOKEN_INVALID);
}
TokenDto user = cpUserDetailRedis.get(userId);
return user;
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java
index ac10d6988..c31c1214b 100644
--- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java
@@ -2,16 +2,15 @@ package com.elink.esua.epdc.service;
import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.commons.tools.utils.Result;
-import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegistFormDTO;
-import com.elink.esua.epdc.dto.epdc.form.EpdcUserUpdateAvatarFromDTO;
-import com.elink.esua.epdc.dto.epdc.form.EpdcUserUpdateMobileFromDTO;
+import com.elink.esua.epdc.dto.epdc.form.*;
+import com.elink.esua.epdc.dto.epdc.result.EpdcUserGridResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO;
-import com.elink.esua.epdc.dto.form.EpdcAppUserMaTokenFormDTO;
-import com.elink.esua.epdc.dto.form.EpdcAppUserTokenFormDTO;
-import com.elink.esua.epdc.dto.form.EpdcAppSaveWxFormIdFormDTO;
-import com.elink.esua.epdc.dto.form.EpdcCheckRegisterFormDTO;
+import com.elink.esua.epdc.dto.form.*;
import com.elink.esua.epdc.dto.result.EpdcAppRegisterCallbackDTO;
import com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO;
+import com.elink.esua.epdc.dto.result.EpdcCompleteUserInfoDTO;
+
+import java.util.List;
/**
* @author yujintao
@@ -28,6 +27,7 @@ public interface AppUserService {
* @author yujintao
* @date 2019/9/7 09:54
*/
+ @Deprecated
Result mpUserRegister(EpdcUserRegistFormDTO formDto);
/**
@@ -92,6 +92,7 @@ public interface AppUserService {
* @author yujintao
* @date 2019/9/10 20:48
*/
+ @Deprecated
Result maUserRegister(EpdcUserRegistFormDTO formDto);
/**
@@ -113,4 +114,77 @@ public interface AppUserService {
* @date 2019/9/26 15:03
*/
Result saveUserWxFormId(EpdcAppSaveWxFormIdFormDTO formDto);
+
+ /**
+ * 网格长在移动端注册
+ *
+ * @param formDto
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author work@yujt.net.cn
+ * @date 2019/10/22 15:30
+ */
+ Result maGridLeaderRegister(EpdcGridLeaderRegisterSubmitFormDTO formDto);
+
+ /**
+ * 用户小程序切换网格
+ *
+ * @param userDetail
+ * @param gridId
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author work@yujt.net.cn
+ * @date 2019/10/23 10:40
+ */
+ Result userSwitchGrid(TokenDto userDetail, String gridId);
+
+ /**
+ * 获取用户的所有网格列表
+ *
+ * @param userId
+ * @return com.elink.esua.epdc.commons.tools.utils.Result>
+ * @author work@yujt.net.cn
+ * @date 2019/10/23 15:58
+ */
+ Result> listUserGrid(String userId);
+
+ /**
+ * 用户注册、获取Token
+ *
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @params [formDto]
+ * @author liuchuang
+ * @since 2019/10/24 16:33
+ */
+ Result getMaV2Token(EpdcAppUserRegisterFormDTO formDto);
+
+ /**
+ *
+ * 更新用户微信信息
+ *
+ * @params [userDetail, formDto]
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author liuchuang
+ * @since 2019/10/25 16:26
+ */
+ Result updateWxInfo(TokenDto userDetail, EpdcAppUserMaInfoFormDTO formDto);
+
+ /**
+ * 用户完善个人信息-保存
+ *
+ * @param tokenDto
+ * @param formDto
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author work@yujt.net.cn
+ * @date 2019/10/26 11:05
+ */
+ Result completeUserInfo(TokenDto tokenDto, EpdcCompleteUserInfoFormDTO formDto);
+
+ /**
+ * 用于用户完善个人信息页面,获取个人信息
+ *
+ * @param tokenDto
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author work@yujt.net.cn
+ * @date 2019/10/26 15:08
+ */
+ Result prepareCompleteUserInfo(TokenDto tokenDto);
}
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/ScanSwitchService.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/ScanSwitchService.java
new file mode 100644
index 000000000..57c524118
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/ScanSwitchService.java
@@ -0,0 +1,105 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.elink.esua.epdc.service;
+
+import com.elink.esua.epdc.commons.mybatis.service.BaseService;
+import com.elink.esua.epdc.commons.tools.page.PageData;
+import com.elink.esua.epdc.dto.ScanSwitchDTO;
+import com.elink.esua.epdc.entity.ScanSwitchEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 扫码开关
+ *
+ * @author qu qu@elink-cn.com
+ * @since v1.0.0 2019-10-10
+ */
+public interface ScanSwitchService extends BaseService {
+
+ /**
+ * 默认分页
+ *
+ * @param params
+ * @return PageData
+ * @author generator
+ * @date 2019-10-10
+ */
+ PageData page(Map params);
+
+ /**
+ * 默认查询
+ *
+ * @param params
+ * @return java.util.List
+ * @author generator
+ * @date 2019-10-10
+ */
+ List list(Map params);
+
+ /**
+ * 单条查询
+ *
+ * @param id
+ * @return ScanSwitchDTO
+ * @author generator
+ * @date 2019-10-10
+ */
+ ScanSwitchDTO get(String id);
+
+ /**
+ * 默认保存
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2019-10-10
+ */
+ void save(ScanSwitchDTO dto);
+
+ /**
+ * 默认更新
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2019-10-10
+ */
+ void update(ScanSwitchDTO dto);
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return void
+ * @author generator
+ * @date 2019-10-10
+ */
+ void delete(String[] ids);
+
+
+ /***
+ * 前端获取开关
+ * @param
+ * @return com.elink.esua.epdc.dto.ScanSwitchDTO
+ * @author qushutong
+ * @date 2019/10/10 12:01
+ */
+ Map getOne();
+}
\ No newline at end of file
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java
index 9fe2363f8..59defbbbf 100644
--- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java
@@ -2,31 +2,28 @@ package com.elink.esua.epdc.service.impl;
import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
+import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.common.token.util.CpUserDetailRedis;
-import com.elink.esua.epdc.common.token.util.TokenUtil;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum;
import com.elink.esua.epdc.commons.tools.exception.RenException;
import com.elink.esua.epdc.commons.tools.redis.RedisUtils;
import com.elink.esua.epdc.commons.tools.utils.*;
-import com.elink.esua.epdc.dto.CompleteDeptDTO;
-import com.elink.esua.epdc.dto.UserDTO;
-import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegistFormDTO;
-import com.elink.esua.epdc.dto.epdc.form.EpdcUserUpdateAvatarFromDTO;
-import com.elink.esua.epdc.dto.epdc.form.EpdcUserUpdateMobileFromDTO;
-import com.elink.esua.epdc.dto.epdc.form.EpdcUserSaveWxFormIdFormDTO;
+import com.elink.esua.epdc.dto.*;
+import com.elink.esua.epdc.dto.epdc.EpdcCompleteAppUserDTO;
+import com.elink.esua.epdc.dto.epdc.EpdcGridLeaderRegisterDTO;
+import com.elink.esua.epdc.dto.epdc.form.EpdcGridLeaderRegisterFormDTO;
+import com.elink.esua.epdc.dto.epdc.GridLeaderRegisterDTO;
+import com.elink.esua.epdc.dto.epdc.form.*;
+import com.elink.esua.epdc.dto.epdc.result.EpdcUserGridResultDTO;
+import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterInfoResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO;
-import com.elink.esua.epdc.dto.form.EpdcAppUserMaTokenFormDTO;
-import com.elink.esua.epdc.dto.form.EpdcAppUserTokenFormDTO;
-import com.elink.esua.epdc.dto.form.EpdcAppSaveWxFormIdFormDTO;
-import com.elink.esua.epdc.dto.form.EpdcCheckRegisterFormDTO;
+import com.elink.esua.epdc.dto.form.*;
import com.elink.esua.epdc.dto.result.EpdcAppRegisterCallbackDTO;
import com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO;
-import com.elink.esua.epdc.enums.AppUserAuditStateEnum;
-import com.elink.esua.epdc.enums.AppUserRegisterSourceEnum;
-import com.elink.esua.epdc.enums.AppUserRegisterWayEnum;
-import com.elink.esua.epdc.enums.AppUserStateEnum;
+import com.elink.esua.epdc.dto.result.EpdcCompleteUserInfoDTO;
+import com.elink.esua.epdc.enums.*;
import com.elink.esua.epdc.feign.AdminFeignClient;
import com.elink.esua.epdc.feign.UserFeignClient;
import com.elink.esua.epdc.jwt.JwtTokenProperties;
@@ -44,6 +41,7 @@ import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
+import java.util.List;
/**
@@ -73,9 +71,6 @@ public class AppUserServiceImpl implements AppUserService {
@Autowired
private UserFeignClient userFeignClient;
- @Autowired
- private TokenUtil tokenUtil;
-
@Autowired
private JwtTokenProperties jwtTokenProperties;
@@ -86,6 +81,9 @@ public class AppUserServiceImpl implements AppUserService {
private RedisUtils redisUtils;
+ private static String USER_FACE = "https://epdc.elinkchina.com.cn/esua-epdc/static/default/default_user_face.png";
+
+
@Override
public Result getMpToken(EpdcAppUserTokenFormDTO formDto) {
return this.getTokenByOpenId(this.getWxMpUser(formDto.getWxCode()).getOpenId());
@@ -111,23 +109,6 @@ public class AppUserServiceImpl implements AppUserService {
return this.userFeignClient.saveWxFormId(saveFormId);
}
- /**
- * 根据unionId登录
- *
- * @param unionId
- * @return com.elink.esua.epdc.commons.tools.utils.Result
- * @author work@yujt.net.cn
- * @date 2019/9/19 19:16
- */
- private Result getTokenByUnionId(String unionId) {
- // 查询当前微信是否已注册用户
- Result userInfoResult = userFeignClient.getUserForLoginByOpenId(unionId);
- if (!userInfoResult.success()) {
- return new Result().error(userInfoResult.getMsg());
- }
- return this.getTokenByUserDto(userInfoResult.getData());
- }
-
/**
* 根据openId登录
*
@@ -158,51 +139,21 @@ public class AppUserServiceImpl implements AppUserService {
EpdcAppAuthorizationDTO authorization = new EpdcAppAuthorizationDTO();
// 用户未注册
if (null == userDto) {
- authorization.setUserState(AppUserStateEnum.UNREGISTERED.value());
+ authorization.setUserState(AppUserStatesEnum.STATE_NOT_REGISTERED.value());
return new Result().ok(authorization);
}
+ TokenDto tokenDto = ConvertUtils.sourceToTarget(userDto, TokenDto.class);
+ tokenDto.setUserId(userDto.getId());
+
String state = userDto.getState();
- // 用户注册审核失败
- if (AppUserAuditStateEnum.AUDIT_FAILURE.value().equals(state)) {
- authorization.setUserState(AppUserStateEnum.AUDIT_FAILURE.value());
- Result result = new Result().ok(authorization);
+ authorization = this.packageEpdcAppAuthorization(tokenDto, userDto.getGrid(), userDto.getState());
+
+ Result result = new Result().ok(authorization);
+ // 已注册,未完善信息
+ if (AppUserStatesEnum.STATE_INFORMATION_NOT_PASSED.value().equals(state)) {
result.setMsg(userDto.getRemark());
- return result;
- }
- // 用户提交注册、正在等待审核
- else if (AppUserAuditStateEnum.UNDER_AUDIT.value().equals(state)) {
- authorization.setUserState(AppUserStateEnum.UNDER_AUDIT.value());
- return new Result().ok(authorization);
- }
- // 用户已注册且审核通过,正常登录系统
- else if (AppUserAuditStateEnum.AUDIT_SUCCESS.value().equals(state)) {
- String userId = userDto.getId();
- TokenDto tokenInfo = tokenUtil.getTokenInfo(userId);
- // 生成token
- String token = jwtTokenUtils.generateToken(userId);
- Long expire;
- // 用户已登录过,且用户缓存信息未超时
- if (null != tokenInfo) {
- tokenUtil.delayToken(userId);
- expire = tokenUtil.getExpire(userId);
- } else {
- expire = (long) jwtTokenProperties.getExpire();
- }
- TokenDto tokenDto = ConvertUtils.sourceToTarget(userDto, TokenDto.class);
- tokenDto.setUserId(userId);
- cpUserDetailRedis.set(tokenDto, expire);
- // 暂用,部署生产环境时删除
- redisUtils.set("epdc:sys:security:cpuser:token:" + userId, token);
-
- authorization.setUserState(AppUserStateEnum.REGISTERED.value());
- authorization.setToken(token);
- authorization.setUserId(userId);
- authorization.setExpire(expire);
- authorization.setGrid(userDto.getGrid());
- return new Result().ok(authorization);
- } else {
- return new Result().error("Login failed");
}
+ return result;
}
@Override
@@ -219,6 +170,93 @@ public class AppUserServiceImpl implements AppUserService {
return getRegisterResult(userDto);
}
+ @Override
+ public Result maGridLeaderRegister(EpdcGridLeaderRegisterSubmitFormDTO formDto) {
+
+ String mobile = formDto.getMobile();
+
+ // 校验手机号是否已被注册为小程序用户
+ EpdcUserRegistFormDTO verifyAppUser = new EpdcUserRegistFormDTO();
+ verifyAppUser.setMobile(mobile);
+ // 在获取信息时就进行校验,不消耗wxCode,用户可以重复提交
+ Result verifyUserRegisterData = userFeignClient.verifyUserRegisterData(verifyAppUser);
+ if (!verifyUserRegisterData.success()) {
+ return new Result().error(verifyUserRegisterData.getMsg());
+ }
+ // 校验手机验证码
+ this.checkSmsCode(mobile, formDto.getSmsCode());
+
+ Result adminResult = adminFeignClient.listGridWhileLeaderRegister(mobile);
+ if (!adminResult.success()) {
+ return new Result().error(adminResult.getMsg());
+ }
+ GridLeaderRegisterDTO leaderRegisterDto = adminResult.getData();
+
+ // 组装用户注册信息
+ EpdcGridLeaderRegisterDTO gridLeaderRegister = this.packageGridLeaderWhileRegister(leaderRegisterDto.getSysUser(), formDto.getWxCode());
+ List userGridList = ConvertUtils.sourceToTarget(leaderRegisterDto.getLeaderGridList(), UserGridRelationDTO.class);
+
+ EpdcGridLeaderRegisterFormDTO registerDto = new EpdcGridLeaderRegisterFormDTO();
+ registerDto.setGridLeader(gridLeaderRegister);
+ registerDto.setUserGridList(userGridList);
+
+ Result appUserResult = userFeignClient.gridLeaderRegister(registerDto);
+ if (!appUserResult.success()) {
+ return new Result().error(adminResult.getMsg());
+ }
+
+ UserDTO newAppUser = appUserResult.getData();
+
+ // 用户已注册且审核通过,正常登录系统
+ TokenDto tokenDto = ConvertUtils.sourceToTarget(newAppUser, TokenDto.class);
+ tokenDto.setUserId(newAppUser.getId());
+
+ EpdcAppAuthorizationDTO authorization = this.packageEpdcAppAuthorization(tokenDto, newAppUser.getGrid(), AppUserStatesEnum.STATE_REGISTERED.value());
+
+ return new Result().ok(authorization);
+ }
+
+ /**
+ * 组装网格长注册的用户信息
+ *
+ * @param sysUser 后台管理端管理员账号
+ * @param wxCode
+ * @return com.elink.esua.epdc.dto.UserDTO
+ * @author work@yujt.net.cn
+ * @date 2019/10/23 10:01
+ */
+ private EpdcGridLeaderRegisterDTO packageGridLeaderWhileRegister(SysUserDTO sysUser, String wxCode) {
+
+ WxMaJscode2SessionResult wxMaUser = this.getWxMaUser(wxCode);
+ Date now = new Date();
+ String mobile = sysUser.getMobile();
+
+ EpdcGridLeaderRegisterDTO gridLeaderRegister = new EpdcGridLeaderRegisterDTO();
+ gridLeaderRegister.setFaceImg(USER_FACE);
+ gridLeaderRegister.setWxUnionId(wxMaUser.getUnionid());
+ gridLeaderRegister.setWxOpenId(wxMaUser.getOpenid());
+ gridLeaderRegister.setRegisterTime(now);
+ gridLeaderRegister.setState(AppUserStatesEnum.STATE_INFORMATION_PASSED.value());
+ gridLeaderRegister.setRegisterSource(AppUserRegisterSourceEnum.MA.value());
+ gridLeaderRegister.setRegisterWay(AppUserRegisterWayEnum.WX.value());
+ gridLeaderRegister.setMobile(mobile);
+ gridLeaderRegister.setNickname("网格长-"
+ + sysUser.getRealName().substring(NumConstant.ZERO, NumConstant.ONE)
+ + (sysUser.getGender() == NumConstant.ZERO ? "女士" : "先生"));
+ gridLeaderRegister.setSex(String.valueOf(sysUser.getGender()));
+ gridLeaderRegister.setRealName(sysUser.getRealName());
+ gridLeaderRegister.setEmail(sysUser.getEmail());
+ gridLeaderRegister.setPartyFlag(YesOrNoEnum.NO.value());
+
+ PhoneDto phoneDto = PhoneUtil.getPhoneDto(mobile);
+ if (phoneDto != null) {
+ gridLeaderRegister.setMobileProvince(phoneDto.getProvinceName());
+ gridLeaderRegister.setMobileCity(phoneDto.getCityName());
+ gridLeaderRegister.setMobileCarrier(phoneDto.getCarrier());
+ }
+
+ return gridLeaderRegister;
+ }
@Override
public Result mpUserRegister(EpdcUserRegistFormDTO formDto) {
@@ -242,6 +280,7 @@ public class AppUserServiceImpl implements AppUserService {
* @author work@yujt.net.cn
* @date 2019/9/25 17:26
*/
+ @Deprecated
private Result getRegisterResult(UserDTO userDto) {
Result result = userFeignClient.userRegist(userDto);
EpdcAppRegisterCallbackDTO dto = new EpdcAppRegisterCallbackDTO();
@@ -258,6 +297,7 @@ public class AppUserServiceImpl implements AppUserService {
* @author work@yujt.net.cn
* @date 2019/9/20 14:40
*/
+ @Deprecated
private void verifyUserRegisterData(EpdcUserRegistFormDTO formDto) {
// 校验身份证号码格式
String verification = IdentityNoUtils.IdentityNoVerification(formDto.getIdentityNo());
@@ -299,6 +339,7 @@ public class AppUserServiceImpl implements AppUserService {
* @author yujintao
* @date 2019/9/10 21:09
*/
+ @Deprecated
private UserDTO packageUserDto(EpdcUserRegistFormDTO formDto, WxMpUser wxMpUser, WxMaJscode2SessionResult wxMaUser) {
String unionId = null;
String openId = null;
@@ -383,7 +424,7 @@ public class AppUserServiceImpl implements AppUserService {
user.setPartyFlag(YesOrNoEnum.NO.value());
user.setRegisterWay(AppUserRegisterWayEnum.WX.value());
user.setRegisterSource(AppUserRegisterSourceEnum.WP.value());
- user.setFaceImg("https://epdc.elinkchina.com.cn/esua-epdc/static/default/default_user_face.png");
+ user.setFaceImg(USER_FACE);
return user;
}
@@ -464,4 +505,338 @@ public class AppUserServiceImpl implements AppUserService {
}
return userFeignClient.updateMobileOrAvatar(userDto);
}
+
+ @Override
+ public Result userSwitchGrid(TokenDto userDetail, String gridId) {
+
+ String userId = userDetail.getUserId();
+
+ EpdcLeaderSwitchGridFormDTO switchGrid = new EpdcLeaderSwitchGridFormDTO();
+ switchGrid.setAppUserId(userId);
+ switchGrid.setGridId(gridId);
+ // 更新用户-网格关系表,更新将要切换的网格的 SWITCHED_TIME 字段
+ Result appUserResult = userFeignClient.userSwitchGrid(switchGrid);
+ if (!appUserResult.success()) {
+ return new Result().error(appUserResult.getMsg());
+ }
+ UserGridRelationDTO userGridRelation = appUserResult.getData();
+
+ userDetail.setGridId(Long.parseLong(gridId));
+ EpdcAppAuthorizationDTO authorization = this.packageEpdcAppAuthorization(userDetail, userGridRelation.getGrid(), AppUserStatesEnum.STATE_REGISTERED.value());
+
+ return new Result().ok(authorization);
+ }
+
+ @Override
+ public Result> listUserGrid(String userId) {
+ return userFeignClient.listUserGrid(userId);
+ }
+
+ /**
+ * 组装成功登录的数据
+ *
+ * @param tokenDto 缓存的用户数据
+ * @param grid 网格名称
+ * @param userState AppUserStatesEnum
+ * @return com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO
+ * @author work@yujt.net.cn
+ * @date 2019/10/23 13:57
+ */
+ private EpdcAppAuthorizationDTO packageEpdcAppAuthorization(TokenDto tokenDto, String grid, String userState) {
+ String userId = tokenDto.getUserId();
+ // 生成token
+ String token = jwtTokenUtils.generateToken(userId);
+ int expire = jwtTokenProperties.getExpire();
+
+ cpUserDetailRedis.set(tokenDto, expire);
+
+ EpdcAppAuthorizationDTO authorization = new EpdcAppAuthorizationDTO();
+ authorization.setUserState(userState);
+ authorization.setToken(token);
+ authorization.setUserId(userId);
+ authorization.setExpire((long) expire);
+ authorization.setGrid(grid);
+
+ // 暂用,部署生产环境时删除
+ redisUtils.set("epdc:sys:security:cpuser:token:" + userId, token);
+
+ return authorization;
+ }
+
+
+ @Override
+ public Result getMaV2Token(EpdcAppUserRegisterFormDTO formDto) {
+ WxMaJscode2SessionResult wxMaResult = this.getWxMaUser(formDto.getWxCode());
+ String openId = wxMaResult.getOpenid();
+ String unionId = wxMaResult.getUnionid();
+ // 查询当前微信注册状态
+ EpdcCheckUserRegisterFromDTO checkFromDto = new EpdcCheckUserRegisterFromDTO();
+ checkFromDto.setOpenId(openId);
+ checkFromDto.setGridId(formDto.getGridId());
+ Result userResult = userFeignClient.getUserRegisterState(checkFromDto);
+ if (!userResult.success()) {
+ return new Result().error(userResult.getMsg());
+ }
+
+ // IP地址
+ HttpServletRequest request = HttpContextUtils.getHttpServletRequest();
+
+ return this.dealWithUserRegisterState(userResult.getData(), openId, unionId, IpUtils.getIpAddr(request));
+ }
+
+ /**
+ * 针对不同用户注册状态进行处理
+ *
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @params [checkUserResult, unionId]
+ * @author liuchuang
+ * @since 2019/10/25 12:49
+ */
+ private Result dealWithUserRegisterState(EpdcUserRegisterInfoResultDTO userResult, String openId, String unionId, String ipAddress) {
+ EpdcUserRegisterBindGridFormDTO registerBindGridFormDto = new EpdcUserRegisterBindGridFormDTO();
+ // 用户注册状态 0-未注册未绑定网格,1-已注册未绑定当前网格,2-已注册已绑定当前网格
+ Integer registerState = userResult.getRegisterState();
+ UserDTO registeredUser = userResult.getUserDTO();
+ Long gridId = userResult.getGridId();
+ // 未注册
+ if (NumConstant.ZERO == registerState) {
+ // 组装用户注册信息
+ registerBindGridFormDto.setRegisterState(NumConstant.ZERO);
+ registeredUser = this.packageUserInfo(openId, unionId, ipAddress);
+ registerBindGridFormDto.setUserDTO(registeredUser);
+ }
+ // 已注册未绑定当前网格
+ else if (NumConstant.ONE == registerState) {
+ registerBindGridFormDto.setRegisterState(NumConstant.ONE);
+ registerBindGridFormDto.setUserDTO(registeredUser);
+ }
+ // 用户注册或绑定网格
+ if (NumConstant.TWO != registerState) {
+ // 组装用户关联网格信息
+ registerBindGridFormDto.setGridRelationDTO(this.packageUserGridRelationInfo(gridId));
+ // 用户并绑定网格
+ Result registerBindGridResultDto = userFeignClient.registerOrBindGrid(registerBindGridFormDto);
+ if (!registerBindGridResultDto.success()) {
+ return new Result().error(registerBindGridResultDto.getMsg());
+ }
+ userResult = registerBindGridResultDto.getData();
+ registeredUser = userResult.getUserDTO();
+ }
+
+ // 已注册已绑定当前网格
+ TokenDto tokenDto = ConvertUtils.sourceToTarget(registeredUser, TokenDto.class);
+ tokenDto.setUserId(registeredUser.getId());
+ tokenDto.setGridId(gridId);
+ EpdcAppAuthorizationDTO authorization = this.packageEpdcAppAuthorization(tokenDto, userResult.getGrid(), registeredUser.getState());
+
+ return new Result().ok(authorization);
+ }
+
+ /**
+ * 组装用户注册信息
+ *
+ * @return com.elink.esua.epdc.dto.UserDTO
+ * @params [openId, unionId, completeDept]
+ * @author liuchuang
+ * @since 2019/10/24 18:16
+ */
+ private UserDTO packageUserInfo(String openId, String unionId, String ipAddress) {
+ UserDTO userDto = new UserDTO();
+ userDto.setWxOpenId(openId);
+ userDto.setWxUnionId(unionId);
+ userDto.setNickname("用户" + RandomUtil.getNewRandomCode(4));
+ userDto.setFaceImg(USER_FACE);
+ userDto.setState(AppUserStatesEnum.STATE_REGISTERED.value());
+ userDto.setPartyFlag(YesOrNoEnum.NO.value());
+ userDto.setLastLoginIp(ipAddress);
+
+ Date now = new Date();
+ userDto.setRegisterTime(now);
+ userDto.setLastLoginTime(now);
+ userDto.setRegisterWay(AppUserRegisterWayEnum.WX.value());
+ userDto.setRegisterSource(AppUserRegisterSourceEnum.MA.value());
+
+ return userDto;
+ }
+
+ @Override
+ public Result completeUserInfo(TokenDto tokenDto, EpdcCompleteUserInfoFormDTO infoDto) {
+
+ UserDTO userDto = ConvertUtils.sourceToTarget(infoDto, UserDTO.class);
+ userDto.setId(tokenDto.getUserId());
+
+ // 党员提交,验证身份证号
+ if (YesOrNoEnum.YES.value().equals(userDto.getPartyFlag())) {
+ String identityNo = userDto.getIdentityNo();
+ if (StringUtils.isBlank(identityNo)) {
+ return new Result().error("身份证号不能为空");
+ } else {
+ String verification = IdentityNoUtils.IdentityNoVerification(identityNo);
+ if (StringUtils.isNotBlank(verification)) {
+ return new Result().error(verification);
+ }
+ }
+ }
+ // 验证手机号
+ this.checkSmsCode(userDto.getMobile(), infoDto.getSmsCode());
+ // 验证用户提交的信息
+ Result verifyResult = userFeignClient.verifyUserCompleteData(userDto);
+ if (!verifyResult.success()) {
+ return new Result().error(verifyResult.getMsg());
+ }
+ String userState = verifyResult.getData();
+
+ UserGridRelationDTO userGrid = this.packageUserGridRelationInfo(tokenDto.getGridId());
+ EpdcCompleteAppUserDTO completeAppUserDto = ConvertUtils.sourceToTarget(userDto, EpdcCompleteAppUserDTO.class);
+ completeAppUserDto = this.packageUserCompleteInfo(completeAppUserDto, userState);
+ // 组装对象,准备保存用户信息
+ EpdcAppUserCompleteInfoFormDTO dto = new EpdcAppUserCompleteInfoFormDTO();
+ dto.setCompleteAppUser(completeAppUserDto);
+ dto.setUserGridRelation(userGrid);
+
+ Result completeResult = userFeignClient.completeUserInfo(dto);
+ if (!completeResult.success()) {
+ return new Result().error(completeResult.getMsg());
+ }
+ UserDTO user = completeResult.getData();
+ tokenDto.setRealName(user.getRealName());
+ tokenDto.setNickname(user.getNickname());
+ tokenDto.setMobile(user.getMobile());
+ tokenDto.setPartyFlag(user.getPartyFlag());
+ EpdcAppAuthorizationDTO authorizationDto = this.packageEpdcAppAuthorization(tokenDto, userGrid.getGrid(), userDto.getState());
+
+ return new Result().ok(authorizationDto);
+ }
+
+ @Override
+ public Result prepareCompleteUserInfo(TokenDto tokenDto) {
+
+ Result result = userFeignClient.getUserInfoById(tokenDto.getUserId());
+ if (result.success() && null != result.getData()) {
+ EpdcCompleteUserInfoDTO dto = ConvertUtils.sourceToTarget(result.getData(), EpdcCompleteUserInfoDTO.class);
+ dto.setGridId(tokenDto.getGridId());
+ return new Result().ok(dto);
+ }
+ return new Result().error("获取用户信息失败");
+ }
+
+ /**
+ * 组装个人完善信息对象
+ *
+ * @param dto 已知数据
+ * @param userState 用户当前状态,用户状态不为0时,表明用户操作为二次修改
+ * @return com.elink.esua.epdc.dto.epdc.EpdcCompleteAppUserDTO
+ * @author work@yujt.net.cn
+ * @date 2019/10/29 17:54
+ */
+ private EpdcCompleteAppUserDTO packageUserCompleteInfo(EpdcCompleteAppUserDTO dto, String userState) {
+
+ String road = dto.getRoad();
+ String villageName = dto.getVillageName();
+ String dwellingPlace = dto.getDwellingPlace();
+ String identityNo = dto.getIdentityNo();
+
+ if (YesOrNoEnum.YES.value().equals(dto.getPartyFlag())) {
+ dto.setState(AppUserStatesEnum.STATE_INFORMATION_PASSED.value());
+ dto.setSex(IdentityNoUtils.getSex(identityNo));
+ dto.setNickname(
+ road.concat("-").concat(dto.getRealName().substring(NumConstant.ZERO, NumConstant.ONE))
+ .concat(NumConstant.ZERO_STR.equals(dto.getSex()) ? "女士" : "先生"));
+ dto.setBirthday(DateUtils.parse(IdentityNoUtils.getBirthday(identityNo), DateUtils.DATE_PATTERN));
+ } else {
+ dto.setState(AppUserStatesEnum.STATE_COMPLETED_INFORMATION_PENDING_REVIEW.value());
+ }
+ // 用户不是第一次完善信息,保持现在的用户状态不变
+ if (!AppUserStatesEnum.STATE_REGISTERED.value().equals(userState)) {
+ dto.setState(userState);
+ }
+
+ String address = road
+ .concat(StringUtils.isNotBlank(villageName) ? villageName : "")
+ .concat(StringUtils.isNotBlank(dwellingPlace) ? dwellingPlace : "");
+ dto.setAddress(address);
+
+ PhoneDto phoneDto = PhoneUtil.getPhoneDto(dto.getMobile());
+ if (phoneDto != null) {
+ dto.setMobileCarrier(phoneDto.getCarrier());
+ dto.setMobileCity(phoneDto.getCityName());
+ dto.setMobileProvince(phoneDto.getProvinceName());
+ }
+
+ return dto;
+ }
+
+ /**
+ * 组装用户关联网格信息
+ *
+ * @return com.elink.esua.epdc.dto.UserGridRelationDTO
+ * @params [gridId]
+ * @author liuchuang
+ * @since 2019/10/25 13:53
+ */
+ private UserGridRelationDTO packageUserGridRelationInfo(Long gridId) {
+ // 获取网格机构详情
+ Result adminDeptResult = adminFeignClient.getCompleteDept(gridId);
+ if (!adminDeptResult.success() || null == adminDeptResult.getData()) {
+ throw new RenException("查询网格信息失败");
+ }
+ CompleteDeptDTO completeDept = adminDeptResult.getData();
+ UserGridRelationDTO gridRelation = ConvertUtils.sourceToTarget(completeDept, UserGridRelationDTO.class);
+ gridRelation.setSwitchedTime(new Date());
+ gridRelation.setLeaderFlag(YesOrNoEnum.NO.value());
+
+ return gridRelation;
+ }
+
+ @Override
+ public Result updateWxInfo(TokenDto userDetail, EpdcAppUserMaInfoFormDTO formDto) {
+ if (null == userDetail || StringUtils.isEmpty(userDetail.getUserId())) {
+ return new Result().error("获取用户信息失败");
+ }
+ String sessionKey = this.getUserSessionKey(formDto.getWxCode());
+ WxMaUserInfo wxMaUserInfo = wxMaService.getUserService().getUserInfo(sessionKey, formDto.getEncryptedData(), formDto.getIv());
+ UserDTO userDTO = new UserDTO();
+ userDTO.setId(userDetail.getUserId());
+ userDTO.setNickname(wxMaUserInfo.getNickName());
+ userDTO.setFaceImg(wxMaUserInfo.getAvatarUrl());
+ userDTO.setSex(wxMaUserInfo.getGender());
+ Result updateWxInfoResult = userFeignClient.updateWxInfo(userDTO);
+ if (!updateWxInfoResult.success()) {
+ return new Result().error("更新用户信息失败");
+ }
+
+ // 更新用户缓存信息
+ TokenDto tokenDto = ConvertUtils.sourceToTarget(userDTO, TokenDto.class);
+ tokenDto.setUserId(userDetail.getUserId());
+ tokenDto.setGridId(userDetail.getGridId());
+ tokenDto.setMobile(userDetail.getMobile());
+ tokenDto.setPartyFlag(userDetail.getPartyFlag());
+ tokenDto.setRealName(userDetail.getRealName());
+ long expire = cpUserDetailRedis.getExpire(userDetail.getUserId());
+ cpUserDetailRedis.logout(userDetail.getUserId());
+ cpUserDetailRedis.set(tokenDto, expire);
+
+ return new Result();
+ }
+
+ /**
+ * 根据微信code获取session_key
+ *
+ * @return java.lang.String
+ * @params [code]
+ * @author liuchuang
+ * @since 2019/10/25 16:31
+ */
+ private String getUserSessionKey(String code) {
+ try {
+ WxMaJscode2SessionResult wxMaJscode2SessionResult = wxMaService.jsCode2SessionInfo(code);
+ if (wxMaJscode2SessionResult != null) {
+ return wxMaJscode2SessionResult.getSessionKey();
+ }
+ } catch (WxErrorException e) {
+ e.printStackTrace();
+ throw new RenException(e.getError().getErrorMsg());
+ }
+ return null;
+ }
}
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/IssueServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/IssueServiceImpl.java
index 66fedfe53..146c72c36 100644
--- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/IssueServiceImpl.java
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/IssueServiceImpl.java
@@ -74,6 +74,7 @@ public class IssueServiceImpl implements IssueService {
formDto.setNickName(userDetail.getNickname());
formDto.setUserFace(userDetail.getFaceImg());
formDto.setIsPartyMember(userDetail.getPartyFlag());
+ formDto.setMobile(userDetail.getMobile());
return issueFeignClient.submitEvent(formDto);
}
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/ScanSwitchServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/ScanSwitchServiceImpl.java
new file mode 100644
index 000000000..0083f3744
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/ScanSwitchServiceImpl.java
@@ -0,0 +1,113 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.elink.esua.epdc.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
+import com.elink.esua.epdc.commons.tools.page.PageData;
+import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
+import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
+import com.elink.esua.epdc.dao.ScanSwitchDao;
+import com.elink.esua.epdc.dto.ScanSwitchDTO;
+import com.elink.esua.epdc.entity.ScanSwitchEntity;
+import com.elink.esua.epdc.service.ScanSwitchService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 扫码开关
+ *
+ * @author qu qu@elink-cn.com
+ * @since v1.0.0 2019-10-10
+ */
+@Service
+public class ScanSwitchServiceImpl extends BaseServiceImpl implements ScanSwitchService {
+
+ @Autowired
+
+ @Override
+ public PageData page(Map params) {
+ IPage page = baseDao.selectPage(
+ getPage(params, FieldConstant.CREATED_TIME, false),
+ getWrapper(params)
+ );
+ return getPageData(page, ScanSwitchDTO.class);
+ }
+
+ @Override
+ public List list(Map params) {
+ List entityList = baseDao.selectList(getWrapper(params));
+
+ return ConvertUtils.sourceToTarget(entityList, ScanSwitchDTO.class);
+ }
+
+ private QueryWrapper getWrapper(Map params){
+ String id = (String)params.get(FieldConstant.ID_HUMP);
+
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
+
+ return wrapper;
+ }
+
+ @Override
+ public ScanSwitchDTO get(String id) {
+ ScanSwitchEntity entity = baseDao.selectById(id);
+ return ConvertUtils.sourceToTarget(entity, ScanSwitchDTO.class);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void save(ScanSwitchDTO dto) {
+ ScanSwitchEntity entity = ConvertUtils.sourceToTarget(dto, ScanSwitchEntity.class);
+ insert(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(ScanSwitchDTO dto) {
+ ScanSwitchEntity entity = ConvertUtils.sourceToTarget(dto, ScanSwitchEntity.class);
+ updateById(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void delete(String[] ids) {
+ // 逻辑删除(@TableLogic 注解)
+ baseDao.deleteBatchIds(Arrays.asList(ids));
+ }
+
+ @Override
+ public Map getOne() {
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.orderByDesc("updated_time");
+ ScanSwitchEntity scanSwitchEntity = baseDao.selectOne(wrapper);
+ Map map=new HashMap<>();
+ map.put("switch",scanSwitchEntity.getScanSwitch());
+ return map;
+ }
+
+}
\ No newline at end of file
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/mapper/ScanSwitchDao.xml b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/mapper/ScanSwitchDao.xml
new file mode 100644
index 000000000..e16e6f975
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/mapper/ScanSwitchDao.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/pom.xml b/esua-epdc/epdc-module/epdc-events/epdc-events-client/pom.xml
index 1edcaa275..0fee0b718 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/pom.xml
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/pom.xml
@@ -28,6 +28,11 @@
epdc-news-client
1.0.0
+
+ com.esua.epdc
+ epdc-websocket-client
+ 1.0.0
+
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/MenuNoticeDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/MenuNoticeDTO.java
new file mode 100644
index 000000000..12afd25c8
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/MenuNoticeDTO.java
@@ -0,0 +1,32 @@
+package com.elink.esua.epdc.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ *
+ * 菜单通知DTO
+ *
+ * @Author:liuchuang
+ * @Date:2019/10/29 17:03
+ */
+@Data
+public class MenuNoticeDTO implements Serializable {
+ private static final long serialVersionUID = -9183650682608160248L;
+
+ /**
+ * 菜单编码
+ */
+ private String menuCode;
+
+ /**
+ * 通知部门
+ */
+ private Long deptId;
+
+ /**
+ * 消息数量
+ */
+ private Integer num;
+}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/EpdcEventsDetailDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/EpdcEventsDetailDTO.java
index e196c4d6e..050d8e539 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/EpdcEventsDetailDTO.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/EpdcEventsDetailDTO.java
@@ -3,6 +3,7 @@ package com.elink.esua.epdc.dto.events;
import lombok.Data;
import java.io.Serializable;
+import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@@ -22,6 +23,10 @@ public class EpdcEventsDetailDTO implements Serializable {
* 用户昵称
*/
private String nickName;
+ /**
+ * 手机号
+ */
+ private String mobile;
/**
* 事件内容
*/
@@ -38,4 +43,16 @@ public class EpdcEventsDetailDTO implements Serializable {
* 事件地址
*/
private String address;
+ /**
+ * 纬度
+ */
+ private Double issueLatitude;
+ /**
+ * 经度
+ */
+ private Double issueLongitude;
+ /**
+ * 所属网格详细信息
+ */
+ private String ownGrid;
}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/EpdcRejectEventDetailDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/EpdcRejectEventDetailDTO.java
index 90956bb3d..edc82e604 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/EpdcRejectEventDetailDTO.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/EpdcRejectEventDetailDTO.java
@@ -3,6 +3,7 @@ package com.elink.esua.epdc.dto.events;
import lombok.Data;
import java.io.Serializable;
+import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@@ -30,6 +31,10 @@ public class EpdcRejectEventDetailDTO implements Serializable {
* 提交时间
*/
private Date createdTime;
+ /**
+ * 手机号
+ */
+ private String mobile;
/**
* 事件地址
*/
@@ -46,4 +51,16 @@ public class EpdcRejectEventDetailDTO implements Serializable {
* 事件图片
*/
private List images;
+ /**
+ * 纬度
+ */
+ private Double issueLatitude;
+ /**
+ * 经度
+ */
+ private Double issueLongitude;
+ /**
+ * 所属网格详细信息
+ */
+ private String ownGrid;
}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/IssueContentDetailDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/IssueContentDetailDTO.java
index 2cd99c51d..dfb3804c9 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/IssueContentDetailDTO.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/IssueContentDetailDTO.java
@@ -4,6 +4,7 @@ import com.elink.esua.epdc.dto.events.EpdcEventsCommentsDTO;
import lombok.Data;
import java.io.Serializable;
+import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@@ -23,6 +24,10 @@ public class IssueContentDetailDTO implements Serializable {
* 发布时间
*/
private Date distributeTime;
+ /**
+ * 手机号
+ */
+ private String mobile;
/**
* 议题内容
*/
@@ -47,4 +52,24 @@ public class IssueContentDetailDTO implements Serializable {
* 工作反馈或处理进度
*/
private List feedbackDTOList;
+ /**
+ * 事件地址
+ */
+ private String address;
+ /**
+ * 纬度
+ */
+ private Double issueLatitude;
+ /**
+ * 经度
+ */
+ private Double issueLongitude;
+ /**
+ * 所属网格详细信息
+ */
+ private String ownGrid;
+ /**
+ * 所属类别
+ */
+ private String categoryName;
}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/IssueDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/IssueDTO.java
index fad6289e5..839f141b3 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/IssueDTO.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/IssueDTO.java
@@ -21,7 +21,6 @@ import java.io.Serializable;
import java.util.Date;
import lombok.Data;
-import java.math.BigDecimal;
/**
* 议题表 议题表
@@ -59,6 +58,11 @@ public class IssueDTO implements Serializable {
*/
private String userFace;
+ /**
+ * 手机号
+ */
+ private String mobile;
+
/**
* 议题内容
*/
@@ -117,12 +121,12 @@ public class IssueDTO implements Serializable {
/**
* 议题位置纬度
*/
- private BigDecimal issueLatitude;
+ private Double issueLatitude;
/**
* 议题位置经度
*/
- private BigDecimal issueLongitude;
+ private Double issueLongitude;
/**
* 议题状态 0-审核通过,2-已关闭,4-已转项目
@@ -159,11 +163,6 @@ public class IssueDTO implements Serializable {
*/
private Date updatedTime;
- /**
- * 手机号
- */
- private String mobile;
-
/**
* 社群ID
*/
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/IssueJobFeedbackDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/IssueJobFeedbackDTO.java
index efba350f8..ab1ec7846 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/IssueJobFeedbackDTO.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/IssueJobFeedbackDTO.java
@@ -25,4 +25,9 @@ public class IssueJobFeedbackDTO implements Serializable {
* 意见
*/
private String advice;
+
+ /**
+ * 处理部门
+ */
+ private String handlerDept;
}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/IssueWaitHandleDetailDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/IssueWaitHandleDetailDTO.java
index cfbf08d7e..36e24bc8f 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/IssueWaitHandleDetailDTO.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/IssueWaitHandleDetailDTO.java
@@ -3,6 +3,7 @@ package com.elink.esua.epdc.dto.issue;
import lombok.Data;
import java.io.Serializable;
+import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@@ -27,6 +28,10 @@ public class IssueWaitHandleDetailDTO implements Serializable {
* 发布时间
*/
private Date distributeTime;
+ /**
+ * 手机号
+ */
+ private String mobile;
/**
* 议题内容
*/
@@ -39,4 +44,24 @@ public class IssueWaitHandleDetailDTO implements Serializable {
* 工作反馈
*/
List jobFeedbackDTOS;
+ /**
+ * 事件地址
+ */
+ private String address;
+ /**
+ * 纬度
+ */
+ private Double issueLatitude;
+ /**
+ * 经度
+ */
+ private Double issueLongitude;
+ /**
+ * 所属网格详细信息
+ */
+ private String ownGrid;
+ /**
+ * 类别
+ */
+ private String categoryName;
}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/form/IssuesAndEventsOfMineFormDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/form/IssuesAndEventsOfMineFormDTO.java
index 71f0784a4..817bac971 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/form/IssuesAndEventsOfMineFormDTO.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/form/IssuesAndEventsOfMineFormDTO.java
@@ -22,6 +22,5 @@ public class IssuesAndEventsOfMineFormDTO implements Serializable {
/**
* 网格ID
*/
- @NotNull(message = "用户网格ID不能为空")
private Long gridId;
}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/ItemDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/ItemDTO.java
index 8d3d0e5a0..01dd12909 100755
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/ItemDTO.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/ItemDTO.java
@@ -19,6 +19,7 @@ package com.elink.esua.epdc.dto.item;
import java.io.Serializable;
import java.util.Date;
+
import lombok.Data;
import java.math.BigDecimal;
@@ -37,142 +38,142 @@ public class ItemDTO implements Serializable {
/**
* ID
*/
- private String id;
+ private String id;
/**
* 事件ID
*/
- private String eventId;
+ private String eventId;
/**
* 议题ID
*/
- private String issueId;
+ private String issueId;
/**
* 用户ID
*/
- private String userId;
+ private String userId;
/**
* 用户昵称
*/
- private String nickName;
+ private String nickName;
/**
* 用户头像
*/
- private String userFace;
+ private String userFace;
+ /**
+ * 手机号
+ */
+ private String mobile;
/**
* 议题内容
*/
- private String issueContent;
+ private String issueContent;
/**
* 区
*/
- private String area;
+ private String area;
/**
* 区ID
*/
- private Long areaId;
+ private Long areaId;
/**
* 街道
*/
- private String street;
+ private String street;
/**
* 街道ID
*/
- private Long streetId;
+ private Long streetId;
/**
* 社区
*/
- private String community;
+ private String community;
/**
* 社区ID
*/
- private Long communityId;
+ private Long communityId;
/**
* 网格
*/
- private String grid;
+ private String grid;
/**
* 网格ID
*/
- private Long gridId;
+ private Long gridId;
/**
* 议题位置地址
*/
- private String issueAddress;
+ private String issueAddress;
/**
* 议题分类ID
*/
- private String issueCategoryId;
+ private String issueCategoryId;
/**
* 议题位置纬度
*/
- private BigDecimal issusLatitude;
+ private Double issusLatitude;
/**
* 议题位置经度
*/
- private BigDecimal issueLongitude;
+ private Double issueLongitude;
/**
* 评价打分
*/
- private Integer issueScore;
+ private Integer issueScore;
/**
* 项目状态 0-待网格长处理,5-待社区处理,10-待街道党建办处理,15-待街道处理,20-待区直部门党建办处理,25-待区直部门处理,30-处理,35-关闭,40-结束议题
*/
- private Integer itemState;
+ private Integer itemState;
/**
* 删除标识 0:未删除,1:已删除
*/
- private String delFlag;
+ private String delFlag;
/**
* 乐观锁
*/
- private Integer revision;
+ private Integer revision;
/**
* 创建人
*/
- private String createdBy;
+ private String createdBy;
/**
* 创建时间
*/
- private Date createdTime;
+ private Date createdTime;
/**
* 更新人
*/
- private String updatedBy;
+ private String updatedBy;
/**
* 更新时间
*/
- private Date updatedTime;
+ private Date updatedTime;
- /**
- * 手机号
- */
- private String mobile;
/**
* 社群ID
@@ -184,4 +185,9 @@ public class ItemDTO implements Serializable {
*/
private String groupName;
+ /**
+ * 最后一次处理时间
+ */
+ private Date lastHandleTime;
+
}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/ItemDeptDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/ItemDeptDTO.java
index 085978bb3..dc92629b3 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/ItemDeptDTO.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/ItemDeptDTO.java
@@ -48,6 +48,11 @@ public class ItemDeptDTO implements Serializable {
*/
private Long deptId;
+ /**
+ * 部门名称
+ */
+ private String deptName;
+
/**
* 操作人部门ID
*/
@@ -83,4 +88,9 @@ public class ItemDeptDTO implements Serializable {
*/
private String delFlag;
+ /**
+ * 项目处理表ID
+ */
+ private String itemHandleId;
+
}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/form/ItemFormDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/form/ItemFormDTO.java
index 67d16e396..fb6ff2020 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/form/ItemFormDTO.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/form/ItemFormDTO.java
@@ -52,4 +52,9 @@ public class ItemFormDTO implements Serializable {
* 用户ID
*/
private String userId;
+
+ /**
+ * 排序方式 0-创建时间倒叙,1-最后一次处理时间倒叙
+ */
+ private String orderType;
}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/form/ItemOfMineFormDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/form/ItemOfMineFormDTO.java
index b928a3072..fab0ff268 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/form/ItemOfMineFormDTO.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/form/ItemOfMineFormDTO.java
@@ -19,7 +19,6 @@ public class ItemOfMineFormDTO implements Serializable {
/**
* 用户所属网格ID
*/
- @NotNull(message = "用户网格ID不能为空")
private Long deptId;
/**
* 用户ID
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ItemContentForPCEndResultDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ItemContentForPCEndResultDTO.java
index d024fc2fa..424003916 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ItemContentForPCEndResultDTO.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ItemContentForPCEndResultDTO.java
@@ -3,6 +3,7 @@ package com.elink.esua.epdc.dto.item.result;
import lombok.Data;
import java.io.Serializable;
+import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@@ -23,6 +24,10 @@ public class ItemContentForPCEndResultDTO implements Serializable {
* 发布人
*/
private String nickName;
+ /**
+ * 手机号
+ */
+ private String mobile;
/**
* 发布时间
*/
@@ -63,4 +68,20 @@ public class ItemContentForPCEndResultDTO implements Serializable {
* 部门满意度评价
*/
private List deptEvaluateResultDTOS;
+ /**
+ * 地址
+ */
+ private String issueAddress;
+ /**
+ * 纬度
+ */
+ private Double issueLatitude;
+ /**
+ * 经度
+ */
+ private Double issueLongitude;
+ /**
+ * 所属类别
+ */
+ private String categoryName;
}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ItemDetailForPCEndResultDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ItemDetailForPCEndResultDTO.java
index b7f440492..05d475f7c 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ItemDetailForPCEndResultDTO.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ItemDetailForPCEndResultDTO.java
@@ -4,6 +4,7 @@ import com.elink.esua.epdc.dto.item.ItemEvaluateDeptDTO;
import lombok.Data;
import java.io.Serializable;
+import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@@ -28,6 +29,10 @@ public class ItemDetailForPCEndResultDTO implements Serializable {
* 发布时间
*/
private Date distributeTime;
+ /**
+ * 手机号
+ */
+ private String mobile;
/**
* 项目内容
*/
@@ -56,4 +61,30 @@ public class ItemDetailForPCEndResultDTO implements Serializable {
* 满意度评价部门
*/
private List evaluateDeptDTOS;
+
+ /**
+ * 纬度
+ */
+ private Double issueLatitude;
+ /**
+ * 经度
+ */
+ private Double issueLongitude;
+ /**
+ * 所属类别
+ */
+ private String categoryName;
+
+ /**
+ * 支持数
+ */
+ private Integer approveNum;
+ /**
+ * 反对数
+ */
+ private Integer opposeNum;
+ /**
+ * 评论数
+ */
+ private Integer commentNum;
}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ItemHandleProgressResultDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ItemHandleProgressResultDTO.java
index 7c08ba731..55bfc6162 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ItemHandleProgressResultDTO.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ItemHandleProgressResultDTO.java
@@ -1,8 +1,10 @@
package com.elink.esua.epdc.dto.item.result;
+import com.elink.esua.epdc.dto.item.ItemDeptDTO;
import lombok.Data;
import java.io.Serializable;
+import java.util.List;
/**
* 项目处理进展列表DTO
@@ -29,4 +31,9 @@ public class ItemHandleProgressResultDTO implements Serializable {
* 操作人部门
*/
private String handlerDept;
+
+ /**
+ * 吹哨部门
+ */
+ private List itemDeptDTOS;
}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/enums/ItemHandleCategoryEnum.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/enums/ItemHandleCategoryEnum.java
index f70c075dc..4a455c0fc 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/enums/ItemHandleCategoryEnum.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/enums/ItemHandleCategoryEnum.java
@@ -12,8 +12,8 @@ import java.util.List;
*/
public enum ItemHandleCategoryEnum {
- HANDLE_I_HANDLE(0, "处理"),
- HANDLE_CIRCULATION_ASSISTANCE(1, "流转协助"),
+ HANDLE_I_HANDLE(0, "回应"),
+ HANDLE_CIRCULATION_ASSISTANCE(1, "吹哨"),
HANDLE_CLOSE(5, "关闭"),
HANDLE_CLOSING_CASE(10, "结案");
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/async/NewsTask.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/async/NewsTask.java
index 8a43096a0..82fe374ec 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/async/NewsTask.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/async/NewsTask.java
@@ -1,11 +1,19 @@
package com.elink.esua.epdc.modules.async;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.dto.EventMenuNoticeDto;
+import com.elink.esua.epdc.dto.MenuNoticeDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcInformationFormDTO;
+import com.elink.esua.epdc.modules.feign.AdminFeignClient;
import com.elink.esua.epdc.modules.feign.NewsFeignClient;
+import com.elink.esua.epdc.modules.feign.WebsocketFeignClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
+import java.util.Collections;
+import java.util.List;
+
/**
* 新闻通知消息模块 线程任务
*
@@ -18,6 +26,12 @@ public class NewsTask {
@Autowired
private NewsFeignClient newsFeignClient;
+ @Autowired
+ private WebsocketFeignClient websocketFeignClient;
+
+ @Autowired
+ private AdminFeignClient adminFeignClient;
+
/**
* 给用户发送消息
*
@@ -30,4 +44,39 @@ public class NewsTask {
public void insertUserInformation(EpdcInformationFormDTO informationDto) {
newsFeignClient.saveInformation(informationDto);
}
+
+ /**
+ *
+ * 党群议事-菜单消息
+ *
+ * @params [dto]
+ * @return void
+ * @author liuchuang
+ * @since 2019/10/29 15:26
+ */
+ @Async
+ public void eventMenuNotice(MenuNoticeDTO menuNoticeDTO, Long userId) {
+ List userIds = null;
+ if (null != userId) {
+ userIds = Collections.singletonList(userId);
+ } else {
+ // 获取部门下所有用户ID
+ Result> listResult = adminFeignClient.getUserIdsByDeptIds(menuNoticeDTO.getDeptId());
+ if (listResult.success()) {
+ userIds = listResult.getData();
+ }
+ }
+
+ if (null != userIds) {
+ EventMenuNoticeDto eventMenuNoticeDto = new EventMenuNoticeDto();
+ eventMenuNoticeDto.setMenuCode(menuNoticeDTO.getMenuCode());
+ eventMenuNoticeDto.setNum(menuNoticeDTO.getNum());
+ for (Long user:
+ userIds) {
+ eventMenuNoticeDto.setUserId(user.toString());
+ // 给用户发送菜单消息
+ websocketFeignClient.eventMenuNotice(eventMenuNoticeDto);
+ }
+ }
+ }
}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/controller/EpdcEventsController.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/controller/EpdcEventsController.java
index eb1681cd1..602383c9a 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/controller/EpdcEventsController.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/controller/EpdcEventsController.java
@@ -145,4 +145,19 @@ public class EpdcEventsController {
return new Result().ok(data);
}
+ /**
+ *
+ * 初始化党群议事菜单消息
+ *
+ * @params []
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author liuchuang
+ * @since 2019/10/30 13:43
+ */
+ @GetMapping("initMenuNotice")
+ public Result initMenuNotice() {
+ epdcEventsService.initMenuNotice();
+ return new Result();
+ }
+
}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/dao/EpdcEventsDao.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/dao/EpdcEventsDao.java
index 054d166c5..baeed4a1b 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/dao/EpdcEventsDao.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/dao/EpdcEventsDao.java
@@ -113,4 +113,15 @@ public interface EpdcEventsDao extends BaseDao {
* @Date: 2019/9/17 17:44
*/
EventAppDetailResultDTO selectOneOfEventDetail(String eventId);
+
+ /**
+ *
+ * 根据网格ID 状态获取事件数量
+ *
+ * @params [deptId, state]
+ * @return int
+ * @author liuchuang
+ * @since 2019/10/30 12:36
+ */
+ int selectCountOfDeptNotice(Long deptId, int state);
}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/entity/EpdcEventsEntity.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/entity/EpdcEventsEntity.java
index b887847e9..94dd4c87d 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/entity/EpdcEventsEntity.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/entity/EpdcEventsEntity.java
@@ -58,6 +58,10 @@ public class EpdcEventsEntity extends BaseEpdcEntity {
* 党员标识 0:否,1:是
*/
private String isPartyMember;
+ /**
+ * 手机号
+ */
+ private String mobile;
/**
* 议题内容
*/
@@ -105,11 +109,11 @@ public class EpdcEventsEntity extends BaseEpdcEntity {
/**
* 议题位置纬度
*/
- private double issueLatitude;
+ private Double issueLatitude;
/**
* 议题位置经度
*/
- private double issueLongitude;
+ private Double issueLongitude;
/**
* 事件状态 0-待审核,2-驳回,4-审核通过
*/
@@ -135,11 +139,6 @@ public class EpdcEventsEntity extends BaseEpdcEntity {
*/
private Integer browseNum;
- /**
- * 手机号
- */
- private String mobile;
-
/**
* 社群ID
*/
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/EpdcEventsService.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/EpdcEventsService.java
index f1b28c38a..58fd5bb72 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/EpdcEventsService.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/EpdcEventsService.java
@@ -156,4 +156,26 @@ public interface EpdcEventsService extends BaseService {
* @Date: 2019/9/17 17:36
*/
Result getEventDetail(String eventId);
+
+ /**
+ *
+ * 菜单消息-议题待回应
+ *
+ * @params [deptId]
+ * @return void
+ * @author liuchuang
+ * @since 2019/10/30 17:23
+ */
+ void sendMenuNoticeOfEventRespond(Long deptId, Long userId);
+
+ /**
+ *
+ * 初始化党群议事菜单消息
+ *
+ * @params []
+ * @return void
+ * @author liuchuang
+ * @since 2019/10/30 13:43
+ */
+ void initMenuNotice();
}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/impl/EpdcEventsServiceImpl.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/impl/EpdcEventsServiceImpl.java
index 9d4d87f9b..37f2600a6 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/impl/EpdcEventsServiceImpl.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/impl/EpdcEventsServiceImpl.java
@@ -20,8 +20,8 @@ package com.elink.esua.epdc.modules.events.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
-import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
+import com.elink.esua.epdc.commons.tools.constant.OrganizationTypeConstant;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.security.user.SecurityUser;
import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
@@ -30,35 +30,35 @@ import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.constant.EventIssueItemState;
import com.elink.esua.epdc.constant.EventsNoticeConstant;
import com.elink.esua.epdc.constant.ImageConstant;
+import com.elink.esua.epdc.constants.MenuCodeConstant;
+import com.elink.esua.epdc.dto.MenuNoticeDTO;
+import com.elink.esua.epdc.dto.SysDeptDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcInformationFormDTO;
import com.elink.esua.epdc.dto.events.*;
import com.elink.esua.epdc.dto.events.form.EpdcEventSubmitFormDTO;
import com.elink.esua.epdc.dto.events.form.EpdcEventsReviewFormDTO;
import com.elink.esua.epdc.dto.events.result.EventAppDetailResultDTO;
-import com.elink.esua.epdc.dto.log.DeptRespondLogDTO;
-import com.elink.esua.epdc.enums.DeptRespondTypeEnum;
import com.elink.esua.epdc.modules.async.DeptRespondTask;
import com.elink.esua.epdc.modules.async.NewsTask;
import com.elink.esua.epdc.modules.events.dao.EpdcEventsDao;
import com.elink.esua.epdc.modules.events.entity.EpdcEventsEntity;
import com.elink.esua.epdc.modules.events.service.EpdcEventsService;
import com.elink.esua.epdc.modules.events.service.ImgService;
+import com.elink.esua.epdc.modules.feign.AdminFeignClient;
import com.elink.esua.epdc.modules.issue.entity.IssueEntity;
import com.elink.esua.epdc.modules.issue.entity.IssueHandleEntity;
import com.elink.esua.epdc.modules.issue.service.IssueHandleService;
import com.elink.esua.epdc.modules.issue.service.IssueService;
-import com.elink.esua.epdc.modules.log.entity.DeptRespondLogEntity;
-import com.elink.esua.epdc.modules.log.service.DeptRespondLogService;
+import com.elink.esua.epdc.modules.item.service.ItemService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
-import java.util.Date;
import java.util.List;
import java.util.Map;
+import java.util.*;
/**
* 事件表 事件表
@@ -84,6 +84,12 @@ public class EpdcEventsServiceImpl extends BaseServiceImpl listOfPendingReviewEvents(Map params) {
IPage page = getPage(params);
@@ -129,6 +135,9 @@ public class EpdcEventsServiceImpl extends BaseServiceImpl().ok(data);
}
+ @Override
+ public void initMenuNotice() {
+ Long deptId = SecurityUser.getDeptId();
+ Long userId = SecurityUser.getUserId();
+ // 获取部门信息
+ Result dtoResult = adminFeignClient.getSysDeptInfo(deptId);
+ if (dtoResult.success() && null != dtoResult.getData()) {
+ // 网格用户
+ if (OrganizationTypeConstant.ORG_TYPE_GRID_PARTY.equals(dtoResult.getData().getTypeKey())) {
+ // 议题-待回应
+ this.sendMenuNoticeOfEventRespond(deptId, userId);
+ // 议题-待处理
+ issueService.sendIssueHandleMenuNotice(deptId, userId);
+ // 项目-待处理项目-网格用户
+ itemService.sendItemHandleMenuNotice(deptId, userId);
+ } else if (OrganizationTypeConstant.ORG_TYPE_DISTRICT_PARTY.equals(dtoResult.getData().getTypeKey())
+ || OrganizationTypeConstant.ORG_TYPE_DISTRICT_DEPT.equals(dtoResult.getData().getTypeKey())
+ || OrganizationTypeConstant.ORG_TYPE_STREET_PARTY.equals(dtoResult.getData().getTypeKey())
+ || OrganizationTypeConstant.ORG_TYPE_STREET_DEPT.equals(dtoResult.getData().getTypeKey())
+ || OrganizationTypeConstant.ORG_TYPE_COMMUNITY_PARTY.equals(dtoResult.getData().getTypeKey())){
+ // 项目-待处理项目-吹哨部门用户
+ itemService.sendWhistlingDeptItemHandleMenuNotice(Collections.singletonList(deptId), userId);
+ }
+ }
+ }
+
/**
* 初始化议题
*
@@ -252,6 +293,7 @@ public class EpdcEventsServiceImpl extends BaseServiceImpl> listOfItemCirculationDept(@PathVariable("deptId") Long deptId);
+
+ /**
+ *
+ * 获取部门下的所有用户ID
+ *
+ * @params [deptIds]
+ * @return com.elink.esua.epdc.commons.tools.utils.Result>
+ * @author liuchuang
+ * @since 2019/10/29 16:22
+ */
+ @GetMapping("sys/user/ids/{deptId}")
+ Result> getUserIdsByDeptIds(@PathVariable("deptId") Long deptId);
+
+ /**
+ *
+ * 获取部门信息
+ *
+ * @params [id]
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author liuchuang
+ * @since 2019/10/30 14:11
+ */
+ @GetMapping("sys/dept/{id}")
+ Result getSysDeptInfo(@PathVariable("id") Long id);
}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/feign/WebsocketFeignClient.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/feign/WebsocketFeignClient.java
new file mode 100644
index 000000000..a469b66e4
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/feign/WebsocketFeignClient.java
@@ -0,0 +1,30 @@
+package com.elink.esua.epdc.modules.feign;
+
+import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
+import com.elink.esua.epdc.dto.EventMenuNoticeDto;
+import com.elink.esua.epdc.modules.feign.fallback.WebsocketFeignClientFallback;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+
+/**
+ *
+ * websocket模块调用
+ *
+ * @Author:liuchuang
+ * @Date:2019/10/29 15:02
+ */
+@FeignClient(name = ServiceConstant.EPDC_WEBSOCKET_SERVER, fallback = WebsocketFeignClientFallback.class)
+public interface WebsocketFeignClient {
+
+ /**
+ *
+ * 党群议事模块-消息通知
+ *
+ * @params [message]
+ * @return java.lang.String
+ * @author liuchuang
+ * @since 2019/10/29 15:17
+ */
+ @GetMapping("ws/eventMenu/notice")
+ String eventMenuNotice(EventMenuNoticeDto dto);
+}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/feign/fallback/AdminFeignClientFallback.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/feign/fallback/AdminFeignClientFallback.java
index 5cf20f510..c18e3da90 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/feign/fallback/AdminFeignClientFallback.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/feign/fallback/AdminFeignClientFallback.java
@@ -7,6 +7,7 @@ import com.elink.esua.epdc.dto.CompleteDeptDTO;
import com.elink.esua.epdc.dto.SysDeptDTO;
import com.elink.esua.epdc.modules.feign.AdminFeignClient;
import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.PathVariable;
import java.util.List;
@@ -27,4 +28,14 @@ public class AdminFeignClientFallback implements AdminFeignClient {
public Result> listOfItemCirculationDept(Long deptId) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "listOfItemCirculationDept", deptId);
}
+
+ @Override
+ public Result> getUserIdsByDeptIds(Long deptId) {
+ return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getUserIdsByDeptIds", deptId);
+ }
+
+ @Override
+ public Result getSysDeptInfo(@PathVariable("id") Long id) {
+ return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getSysDeptInfo", id);
+ }
}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/feign/fallback/WebsocketFeignClientFallback.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/feign/fallback/WebsocketFeignClientFallback.java
new file mode 100644
index 000000000..b1ef241b3
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/feign/fallback/WebsocketFeignClientFallback.java
@@ -0,0 +1,20 @@
+package com.elink.esua.epdc.modules.feign.fallback;
+
+import com.alibaba.fastjson.JSON;
+import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
+import com.elink.esua.epdc.dto.EventMenuNoticeDto;
+import com.elink.esua.epdc.modules.feign.WebsocketFeignClient;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Author:liuchuang
+ * @Date:2019/10/29 15:02
+ */
+@Component
+public class WebsocketFeignClientFallback implements WebsocketFeignClient {
+
+ @Override
+ public String eventMenuNotice(EventMenuNoticeDto dto) {
+ return "系统内部异常:{name="+ServiceConstant.EPDC_WEBSOCKET_SERVER+",method=eventMenuNotice,formDto="+ JSON.toJSONString(dto)+"}";
+ }
+}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/dao/IssueDao.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/dao/IssueDao.java
index be01bf519..8ea7d5b0b 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/dao/IssueDao.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/dao/IssueDao.java
@@ -130,4 +130,15 @@ public interface IssueDao extends BaseDao {
*/
List selectListOfIssuesAndEventsOfMine(IssuesAndEventsOfMineFormDTO formDTO);
+ /**
+ *
+ * 根据网格ID 状态获取议题
+ *
+ * @params [deptId, state]
+ * @return int
+ * @author liuchuang
+ * @since 2019/10/30 12:42
+ */
+ int selectCountOfDeptNotice(Long deptId, int state);
+
}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/entity/IssueEntity.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/entity/IssueEntity.java
index 76e4d3430..2ac9471a7 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/entity/IssueEntity.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/entity/IssueEntity.java
@@ -64,6 +64,11 @@ public class IssueEntity extends BaseEpdcEntity {
*/
private String isPartyMember;
+ /**
+ * 手机号
+ */
+ private String mobile;
+
/**
* 议题内容
*/
@@ -127,23 +132,18 @@ public class IssueEntity extends BaseEpdcEntity {
/**
* 议题位置纬度
*/
- private double issueLatitude;
+ private Double issueLatitude;
/**
* 议题位置经度
*/
- private double issueLongitude;
+ private Double issueLongitude;
/**
* 议题状态 0-审核通过,2-已关闭,4-已转项目
*/
private Integer issueState;
- /**
- * 手机号
- */
- private String mobile;
-
/**
* 社群ID
*/
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/service/IssueService.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/service/IssueService.java
index f6c3de858..ef70d6f12 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/service/IssueService.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/service/IssueService.java
@@ -201,4 +201,15 @@ public interface IssueService extends BaseService {
* @Date: 2019/9/17 17:36
*/
Result getEventDetail(String eventId);
+
+ /**
+ *
+ * 发送菜单消息-议题待处理
+ *
+ * @params [deptId]
+ * @return void
+ * @author liuchuang
+ * @since 2019/10/29 18:13
+ */
+ void sendIssueHandleMenuNotice(Long deptId, Long userId);
}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/service/impl/IssueServiceImpl.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/service/impl/IssueServiceImpl.java
index 3bc9fe0d4..38aa80822 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/service/impl/IssueServiceImpl.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/service/impl/IssueServiceImpl.java
@@ -31,6 +31,8 @@ import com.elink.esua.epdc.commons.tools.utils.DateUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.constant.EventIssueItemState;
import com.elink.esua.epdc.constant.EventsNoticeConstant;
+import com.elink.esua.epdc.constants.MenuCodeConstant;
+import com.elink.esua.epdc.dto.MenuNoticeDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcInformationFormDTO;
import com.elink.esua.epdc.dto.events.EpdcEventsCommentsDTO;
import com.elink.esua.epdc.dto.events.result.EventAppDetailResultDTO;
@@ -210,12 +212,17 @@ public class IssueServiceImpl extends BaseServiceImpl