Browse Source

【pc端 -新增用户指标展示管理】【接口添加】魏凯 2020-11-24

feature/dangjian
weikai 5 years ago
parent
commit
6eeb5b8e5b
  1. 12
      esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/UserAnalysisNoteDTO.java
  2. 0
      esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/note/form/111.text
  3. 53
      esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/note/result/UserAnalysisNoteResultDTO.java
  4. 33
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/UserAnalysisNoteController.java
  5. 38
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/UserAnalysisNoteDao.java
  6. 12
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/UserAnalysisNoteEntity.java
  7. 8
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/excel/UserAnalysisNoteExcel.java
  8. 2
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/redis/UserAnalysisNoteRedis.java
  9. 35
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/UserAnalysisNoteService.java
  10. 102
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/UserAnalysisNoteServiceImpl.java
  11. 81
      esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/UserAnalysisNoteDao.xml

12
esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/UserAnalysisNoteDTO.java

@ -26,7 +26,7 @@ import lombok.Data;
* 用户可以查看指标表
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2020-11-23
* @since v1.0.0 2020-11-24
*/
@Data
public class UserAnalysisNoteDTO implements Serializable {
@ -43,11 +43,21 @@ public class UserAnalysisNoteDTO implements Serializable {
*/
private String userId;
/**
* 用户名称
*/
private String userName;
/**
* 部门ID
*/
private String deptId;
/**
* 部门名称
*/
private String deptName;
/**
* 用户手机号
*/

0
esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/note/form/111.text

53
esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/note/result/UserAnalysisNoteResultDTO.java

@ -0,0 +1,53 @@
package com.elink.esua.epdc.dto.note.result;
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
/**
* TODO
* 指标管理列表返回类
* @author wk
* @version 1.0
* @date 2020-11-24 10:29
*/
@Data
public class UserAnalysisNoteResultDTO implements Serializable {
private static final long serialVersionUID = -1L;
private String userId;
@ApiModelProperty(value = "用户名", required = true)
@NotBlank(message = "{sysuser.username.require}", groups = DefaultGroup.class)
private String username;
@ApiModelProperty(value = "手机号", required = true)
@NotBlank(message = "{sysuser.mobile.require}", groups = DefaultGroup.class)
private String mobile;
@ApiModelProperty(value = "部门ID", required = true)
@NotNull(message = "{sysuser.deptId.require}", groups = DefaultGroup.class)
private String deptId;
@ApiModelProperty(value = "状态 0:停用 1:正常", required = true)
@Range(min = 0, max = 1, message = "{sysuser.status.range}", groups = DefaultGroup.class)
private Integer status;
@ApiModelProperty(value = "创建时间")
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
private Date createDate;
@ApiModelProperty(value = "部门名称")
private String deptName;
@ApiModelProperty(value = "短信状态")
private String noteType;
@ApiModelProperty(value = "部门状态")
private String deptState;
}

33
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/UserAnalysisNoteController.java

@ -17,6 +17,7 @@
package com.elink.esua.epdc.controller;
import com.elink.esua.epdc.commons.tools.constant.Constant;
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;
@ -25,11 +26,16 @@ 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.SysUserDTO;
import com.elink.esua.epdc.dto.UserAnalysisNoteDTO;
import com.elink.esua.epdc.excel.UserAnalysisNoteExcel;
import com.elink.esua.epdc.service.UserAnalysisNoteService;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
@ -40,10 +46,10 @@ import java.util.Map;
* 用户可以查看指标表
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2020-11-23
* @since v1.0.0 2020-11-24
*/
@RestController
@RequestMapping("useranalysisnote")
@RequestMapping("analysis")
public class UserAnalysisNoteController {
@Autowired
@ -91,4 +97,27 @@ public class UserAnalysisNoteController {
ExcelUtils.exportExcelToTarget(response, null, list, UserAnalysisNoteExcel.class);
}
@GetMapping("userpage")
@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")
})
public Result<PageData<SysUserDTO>> userpage(@ApiIgnore @RequestParam Map<String, Object> params) {
PageData<SysUserDTO> page = userAnalysisNoteService.userpage(params);
return new Result<PageData<SysUserDTO>>().ok(page);
}
@PostMapping("add")
public Result saveList(@RequestBody Map<String, Object> params){
//效验数据
userAnalysisNoteService.saveList(params);
return new Result();
}
}

38
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/UserAnalysisNoteDao.java

@ -18,16 +18,52 @@
package com.elink.esua.epdc.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.dto.UserAnalysisNoteDTO;
import com.elink.esua.epdc.entity.SysUserEntity;
import com.elink.esua.epdc.entity.UserAnalysisNoteEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* 用户可以查看指标表
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2020-11-23
* @since v1.0.0 2020-11-24
*/
@Mapper
public interface UserAnalysisNoteDao extends BaseDao<UserAnalysisNoteEntity> {
/*
*
* 用户指标表 -查询
* @param params
* @author wk
* @date 2020-11-24 15:08
* @return java.util.List<com.elink.esua.epdc.dto.UserAnalysisNoteDTO>
*/
List<UserAnalysisNoteDTO> getList (Map<String, Object> params);
/*
*
* 用户表 -查询 去掉网格用户
* @param params
* @author wk
* @date 2020-11-24 15:09
* @return java.util.List<com.elink.esua.epdc.entity.SysUserEntity>
*/
List<SysUserEntity> getUserList(Map<String, Object> params);
/*
*
* 去重
* @param userId
* @author wk
* @date 2020-11-24 16:23
* @return java.lang.Integer
*/
Integer selectCountByuserId(@Param("userId")String userId);
}

12
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/UserAnalysisNoteEntity.java

@ -29,7 +29,7 @@ import java.util.Date;
* 用户可以查看指标表
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2020-11-23
* @since v1.0.0 2020-11-24
*/
@Data
@EqualsAndHashCode(callSuper=false)
@ -43,11 +43,21 @@ public class UserAnalysisNoteEntity extends BaseEpdcEntity {
*/
private String userId;
/**
* 用户名称
*/
private String userName;
/**
* 部门ID
*/
private String deptId;
/**
* 部门名称
*/
private String deptName;
/**
* 用户手机号
*/

8
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/excel/UserAnalysisNoteExcel.java

@ -26,7 +26,7 @@ import java.util.Date;
* 用户可以查看指标表
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2020-11-23
* @since v1.0.0 2020-11-24
*/
@Data
public class UserAnalysisNoteExcel {
@ -37,9 +37,15 @@ public class UserAnalysisNoteExcel {
@Excel(name = "用户ID")
private String userId;
@Excel(name = "用户名称")
private String userName;
@Excel(name = "部门ID")
private String deptId;
@Excel(name = "部门名称")
private String deptName;
@Excel(name = "用户手机号")
private String mobile;

2
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/redis/UserAnalysisNoteRedis.java

@ -25,7 +25,7 @@ import org.springframework.stereotype.Component;
* 用户可以查看指标表
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2020-11-23
* @since v1.0.0 2020-11-24
*/
@Component
public class UserAnalysisNoteRedis {

35
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/UserAnalysisNoteService.java

@ -19,6 +19,7 @@ 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.SysUserDTO;
import com.elink.esua.epdc.dto.UserAnalysisNoteDTO;
import com.elink.esua.epdc.entity.UserAnalysisNoteEntity;
@ -29,7 +30,7 @@ import java.util.Map;
* 用户可以查看指标表
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2020-11-23
* @since v1.0.0 2020-11-24
*/
public interface UserAnalysisNoteService extends BaseService<UserAnalysisNoteEntity> {
@ -39,7 +40,7 @@ public interface UserAnalysisNoteService extends BaseService<UserAnalysisNoteEnt
* @param params
* @return PageData<UserAnalysisNoteDTO>
* @author generator
* @date 2020-11-23
* @date 2020-11-24
*/
PageData<UserAnalysisNoteDTO> page(Map<String, Object> params);
@ -49,7 +50,7 @@ public interface UserAnalysisNoteService extends BaseService<UserAnalysisNoteEnt
* @param params
* @return java.util.List<UserAnalysisNoteDTO>
* @author generator
* @date 2020-11-23
* @date 2020-11-24
*/
List<UserAnalysisNoteDTO> list(Map<String, Object> params);
@ -59,7 +60,7 @@ public interface UserAnalysisNoteService extends BaseService<UserAnalysisNoteEnt
* @param id
* @return UserAnalysisNoteDTO
* @author generator
* @date 2020-11-23
* @date 2020-11-24
*/
UserAnalysisNoteDTO get(String id);
@ -69,7 +70,7 @@ public interface UserAnalysisNoteService extends BaseService<UserAnalysisNoteEnt
* @param dto
* @return void
* @author generator
* @date 2020-11-23
* @date 2020-11-24
*/
void save(UserAnalysisNoteDTO dto);
@ -79,7 +80,7 @@ public interface UserAnalysisNoteService extends BaseService<UserAnalysisNoteEnt
* @param dto
* @return void
* @author generator
* @date 2020-11-23
* @date 2020-11-24
*/
void update(UserAnalysisNoteDTO dto);
@ -89,7 +90,27 @@ public interface UserAnalysisNoteService extends BaseService<UserAnalysisNoteEnt
* @param ids
* @return void
* @author generator
* @date 2020-11-23
* @date 2020-11-24
*/
void delete(String[] ids);
/*
*
* 查询 除网格外的用户
* @param params
* @author wk
* @date 2020-11-24 15:09
* @return com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.SysUserDTO>
*/
PageData<SysUserDTO> userpage(Map<String, Object> params);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2020-11-24
*/
void saveList(Map<String, Object> params);
}

102
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/UserAnalysisNoteServiceImpl.java

@ -20,19 +20,28 @@ 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.constant.Constant;
import com.elink.esua.epdc.commons.tools.enums.SuperAdminEnum;
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;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.dao.UserAnalysisNoteDao;
import com.elink.esua.epdc.dto.ParentAndAllDeptDTO;
import com.elink.esua.epdc.dto.SysUserDTO;
import com.elink.esua.epdc.dto.UserAnalysisNoteDTO;
import com.elink.esua.epdc.entity.SysUserEntity;
import com.elink.esua.epdc.entity.UserAnalysisNoteEntity;
import com.elink.esua.epdc.redis.UserAnalysisNoteRedis;
import com.elink.esua.epdc.service.SysDeptService;
import com.elink.esua.epdc.service.UserAnalysisNoteService;
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.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@ -41,21 +50,30 @@ import java.util.Map;
* 用户可以查看指标表
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2020-11-23
* @since v1.0.0 2020-11-24
*/
@Service
public class UserAnalysisNoteServiceImpl extends BaseServiceImpl<UserAnalysisNoteDao, UserAnalysisNoteEntity> implements UserAnalysisNoteService {
@Autowired
private UserAnalysisNoteRedis userAnalysisNoteRedis;
private SysDeptService sysDeptService;
@Override
public PageData<UserAnalysisNoteDTO> page(Map<String, Object> params) {
IPage<UserAnalysisNoteEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, UserAnalysisNoteDTO.class);
//转换成like
paramsToLike(params, "username");
paramsToLike(params, "mobile");
//分页
IPage<UserAnalysisNoteEntity> page = getPage(params);
//普通管理员,只能查询所属部门及子部门的数据
UserDetail user = SecurityUser.getUser();
if (user.getSuperAdmin() == SuperAdminEnum.NO.value()) {
params.put("deptIdList", sysDeptService.getSubDeptIdList(user.getDeptId()));
}
//查询
List<UserAnalysisNoteDTO> list = baseDao.getList(params);
return getPageData(list, page.getTotal(), UserAnalysisNoteDTO.class);
}
@Override
@ -83,6 +101,10 @@ public class UserAnalysisNoteServiceImpl extends BaseServiceImpl<UserAnalysisNot
@Override
@Transactional(rollbackFor = Exception.class)
public void save(UserAnalysisNoteDTO dto) {
//查询冗余字段
ParentAndAllDeptDTO allDeptDTO = sysDeptService.getParentAndAllDept(dto.getDeptId());
dto.setAllDeptIds(allDeptDTO.getAllDeptIds());
dto.setAllDeptNames(allDeptDTO.getAllDeptNames());
UserAnalysisNoteEntity entity = ConvertUtils.sourceToTarget(dto, UserAnalysisNoteEntity.class);
insert(entity);
}
@ -101,4 +123,70 @@ public class UserAnalysisNoteServiceImpl extends BaseServiceImpl<UserAnalysisNot
baseDao.deleteBatchIds(Arrays.asList(ids));
}
@Override
public PageData<SysUserDTO> userpage(Map<String, Object> params) {
//转换成like
paramsToLike(params, "username");
paramsToLike(params, "realname");
paramsToLike(params, "mobile");
paramsToLike(params, "email");
//分页
IPage<UserAnalysisNoteEntity> page = getPage(params);
//普通管理员,只能查询所属部门及子部门的数据
UserDetail user = SecurityUser.getUser();
if (user.getSuperAdmin() == SuperAdminEnum.NO.value()) {
params.put("deptIdList", sysDeptService.getSubDeptIdList(user.getDeptId()));
}
//查询
List<SysUserEntity> list = baseDao.getUserList(params);
return getPageData(list, page.getTotal(), SysUserDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void saveList(Map<String, Object> params) {
List<UserAnalysisNoteEntity> entityList = new ArrayList<>();
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
if(params.size() > 0){
list = (List<Map<String, Object>>)params.get("aformDataParams");
}
// 用于校验重复数据
List<String> userIdList = new ArrayList<String>();
for(int i = 0 ; i < list.size() ; i++){
// 过滤重复数据
if(userIdList.contains(list.get(i).get("id") == null ? "" : list.get(i).get("id").toString())){
continue;
}
userIdList.add(list.get(i).get("id") == null ? "" : list.get(i).get("id").toString());
UserAnalysisNoteEntity a = new UserAnalysisNoteEntity();
a.setDeptId(list.get(i).get("deptId") == null ? "" : list.get(i).get("deptId").toString());
a.setDeptName(list.get(i).get("deptName") == null ? "" : list.get(i).get("deptName").toString());
a.setUserId(list.get(i).get("id") == null ? "" : list.get(i).get("id").toString());
a.setUserName(list.get(i).get("username") == null ? "" : list.get(i).get("username").toString());
a.setDeptType(list.get(i).get("remark") == null ? "" : list.get(i).get("remark").toString());
a.setMobile(list.get(i).get("mobile") == null ? "" : list.get(i).get("mobile").toString());
ParentAndAllDeptDTO allDeptDTO = sysDeptService.getParentAndAllDept(list.get(i).get("deptId").toString());
a.setAllDeptIds(allDeptDTO.getAllDeptIds());
a.setAllDeptNames(allDeptDTO.getAllDeptNames());
// 校验用户是否已存在
if (getCodeCount(a.getUserId()) > 0) {
continue;
}
entityList.add(a);
}
// insert(entity);
insertBatch(entityList);
}
/**
* 检测用户是否已经存在
* @param userId
* @return
*/
public Integer getCodeCount(String userId) {
return baseDao.selectCountByuserId(userId);
}
}

81
esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/UserAnalysisNoteDao.xml

@ -6,7 +6,9 @@
<resultMap type="com.elink.esua.epdc.entity.UserAnalysisNoteEntity" id="userAnalysisNoteMap">
<result property="id" column="ID"/>
<result property="userId" column="USER_ID"/>
<result property="userName" column="USER_NAME"/>
<result property="deptId" column="DEPT_ID"/>
<result property="deptName" column="DEPT_NAME"/>
<result property="mobile" column="MOBILE"/>
<result property="deptType" column="DEPT_TYPE"/>
<result property="delFlag" column="DEL_FLAG"/>
@ -19,5 +21,84 @@
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<select id="getList" resultType="com.elink.esua.epdc.dto.UserAnalysisNoteDTO">
SELECT
*
FROM
epdc_user_analysis_note
WHERE
DEL_FLAG = 0
<if test="username != null and username.trim() != ''">
and USER_NAME like #{username}
</if>
<if test="mobile != null and mobile.trim() != ''">
and MOBILE like #{mobile}
</if>
<if test="deptIdList != null">
and DEPT_ID in
<foreach item="id" collection="deptIdList" open="(" separator="," close=")">
#{id}
</foreach>
</if>
ORDER BY
CREATED_TIME
</select>
<select id="getUserList" resultType="com.elink.esua.epdc.entity.SysUserEntity">
SELECT
t1.id,
t1.username,
t1.real_name,
t1.email,
t1.mobile,
t1.`status`,
t1.create_date,
t1.dept_id,
t2.NAME deptName,
CASE
WHEN t2.type_key = 'district_party' THEN
'0'
WHEN t2.type_key = 'district_dept' THEN
'0'
ELSE
'1'
END remark
FROM
sys_user t1
LEFT join sys_dept t2 on t2.id = t1.dept_id and t2.del_flag = 0
WHERE
t1.del_flag = 0
AND t1.super_admin = 0
and t2.type_key in ('district_party','district_dept','street_party','street_dept','community_party')
<if test="username != null and username.trim() != ''">
and t1.username like #{username}
</if>
<if test="realname != null and realname.trim() != ''">
and t1.real_name like #{realname}
</if>
<if test="mobile != null and mobile.trim() != ''">
and t1.mobile like #{mobile}
</if>
<if test="email != null and email.trim() != ''">
and t1.email like #{email}
</if>
<if test="deptIdList != null">
and t1.dept_id in
<foreach item="id" collection="deptIdList" open="(" separator="," close=")">
#{id}
</foreach>
</if>
ORDER BY t1.create_date desc
</select>
<select id="selectCountByuserId" resultType="int">
select
count(*) num
from epdc_user_analysis_note
where DEL_FLAG = '0'
and USER_ID = #{userId}
</select>
</mapper>
Loading…
Cancel
Save