193 changed files with 7922 additions and 237 deletions
@ -0,0 +1,22 @@ |
|||
package com.epmet.dto.form; |
|||
|
|||
import com.epmet.commons.tools.dto.form.PageFormDTO; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @Description 人员名单 |
|||
* @Author yzm |
|||
* @Date 2023/3/29 13:42 |
|||
*/ |
|||
@Data |
|||
public class PartyActivitySignUpRecordFormDTO extends PageFormDTO implements Serializable { |
|||
/** |
|||
* 联建活动ID |
|||
*/ |
|||
@NotBlank(message = "activityId不能为空", groups = AddUserInternalGroup.class) |
|||
private String activityId; |
|||
} |
|||
|
@ -0,0 +1,25 @@ |
|||
package com.epmet.dto.form; |
|||
|
|||
import com.epmet.commons.tools.validator.group.QueryGroup; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
|
|||
/** |
|||
* @Description |
|||
* @Author yzm |
|||
* @Date 2023/3/29 15:27 |
|||
*/ |
|||
@Data |
|||
public class SignUpParyActFormDTO { |
|||
/** |
|||
* |
|||
*/ |
|||
@NotBlank(message = "userId不能为空", groups = QueryGroup.class) |
|||
private String userId; |
|||
@NotBlank(message = "activityId不能为空", groups = QueryGroup.class) |
|||
private String activityId; |
|||
@NotBlank(message = "gridId不能为空", groups = QueryGroup.class) |
|||
private String gridId; |
|||
} |
|||
|
@ -0,0 +1,46 @@ |
|||
package com.epmet.dto.result; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import lombok.Data; |
|||
|
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @Description 居民端钉钉,查看联建活动详情 |
|||
* @Author yzm |
|||
* @Date 2023/3/29 15:59 |
|||
*/ |
|||
@Data |
|||
public class PartyActivityResDTO { |
|||
private String activityId; |
|||
private String agencyName; |
|||
private String agencyId; |
|||
private List<String> unitNameList; |
|||
private List<String> serviceMatterNameList; |
|||
private String title; |
|||
private String target; |
|||
private String content; |
|||
private Integer peopleCount; |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
|||
private Date activityTime; |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
|||
private Date activityEndTime; |
|||
private String coverUrl; |
|||
private String address; |
|||
private String result; |
|||
/** |
|||
* 报名记录id |
|||
*/ |
|||
private String signUpId; |
|||
/** |
|||
* 已报名总人数 |
|||
*/ |
|||
private Integer signUpCount; |
|||
/** |
|||
* 是否报名:true:已报名;false:未报名 |
|||
*/ |
|||
private Boolean signUpFlag; |
|||
|
|||
} |
|||
|
@ -0,0 +1,61 @@ |
|||
package com.epmet.dto.result; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
|
|||
/** |
|||
* 联建活动报名记录表(烟台需求) |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2023-03-29 |
|||
*/ |
|||
@Data |
|||
public class PartyActivitySignUpRecordResDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
private String id; |
|||
|
|||
/** |
|||
* 客户id |
|||
*/ |
|||
private String customerId; |
|||
|
|||
/** |
|||
* 联建活动ID |
|||
*/ |
|||
private String activityId; |
|||
|
|||
/** |
|||
* 居民端用户id |
|||
*/ |
|||
private String userId; |
|||
|
|||
/** |
|||
* 姓名 |
|||
*/ |
|||
private String userName; |
|||
private String mobile; |
|||
/** |
|||
* 报名时间 |
|||
*/ |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
|||
private Date signUpTime; |
|||
|
|||
/** |
|||
* 用户报名时所在的网格 |
|||
*/ |
|||
private String gridId; |
|||
/** |
|||
* 网格名称:XXX社区-xxx网格 |
|||
*/ |
|||
private String gridName; |
|||
|
|||
} |
@ -0,0 +1,24 @@ |
|||
package com.epmet.dao; |
|||
|
|||
import com.epmet.commons.mybatis.dao.BaseDao; |
|||
import com.epmet.dto.result.PartyActivitySignUpRecordResDTO; |
|||
import com.epmet.entity.IcPartyActivitySignUpRecordEntity; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 联建活动报名记录表(烟台需求) |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2023-03-29 |
|||
*/ |
|||
@Mapper |
|||
public interface IcPartyActivitySignUpRecordDao extends BaseDao<IcPartyActivitySignUpRecordEntity> { |
|||
/** |
|||
* 人员名单 |
|||
* @param activityId |
|||
* @return |
|||
*/ |
|||
List<PartyActivitySignUpRecordResDTO> querySignUpRecord(String activityId); |
|||
} |
@ -0,0 +1,54 @@ |
|||
package com.epmet.entity; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
|
|||
import com.epmet.commons.mybatis.entity.BaseEpmetEntity; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* 联建活动报名记录表(烟台需求) |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2023-03-29 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper=false) |
|||
@TableName("ic_party_activity_sign_up_record") |
|||
public class IcPartyActivitySignUpRecordEntity extends BaseEpmetEntity { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 客户id |
|||
*/ |
|||
private String customerId; |
|||
|
|||
/** |
|||
* 联建活动ID |
|||
*/ |
|||
private String activityId; |
|||
|
|||
/** |
|||
* 居民端用户id |
|||
*/ |
|||
private String userId; |
|||
|
|||
/** |
|||
* 姓名 |
|||
*/ |
|||
private String userName; |
|||
private String mobile; |
|||
/** |
|||
* 报名时间 |
|||
*/ |
|||
private Date signUpTime; |
|||
|
|||
/** |
|||
* 用户报名时所在的网格 |
|||
*/ |
|||
private String gridId; |
|||
private String gridName; |
|||
} |
@ -0,0 +1,40 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
|
|||
<mapper namespace="com.epmet.dao.IcPartyActivitySignUpRecordDao"> |
|||
|
|||
<resultMap type="com.epmet.entity.IcPartyActivitySignUpRecordEntity" id="icPartyActivitySignUpRecordMap"> |
|||
<result property="id" column="ID"/> |
|||
<result property="customerId" column="CUSTOMER_ID"/> |
|||
<result property="activityId" column="ACTIVITY_ID"/> |
|||
<result property="userId" column="USER_ID"/> |
|||
<result property="userName" column="USER_NAME"/> |
|||
<result property="signUpTime" column="SIGN_UP_TIME"/> |
|||
<result property="gridId" column="GRID_ID"/> |
|||
<result property="delFlag" column="DEL_FLAG"/> |
|||
<result property="revision" column="REVISION"/> |
|||
<result property="createdBy" column="CREATED_BY"/> |
|||
<result property="createdTime" column="CREATED_TIME"/> |
|||
<result property="updatedBy" column="UPDATED_BY"/> |
|||
<result property="updatedTime" column="UPDATED_TIME"/> |
|||
</resultMap> |
|||
|
|||
<select id="querySignUpRecord" parameterType="java.lang.String" resultType="com.epmet.dto.result.PartyActivitySignUpRecordResDTO"> |
|||
SELECT |
|||
m.ID, |
|||
m.CUSTOMER_ID, |
|||
m.ACTIVITY_ID, |
|||
m.USER_ID, |
|||
m.USER_NAME, |
|||
m.MOBILE, |
|||
m.GRID_ID, |
|||
m.GRID_NAME, |
|||
m.SIGN_UP_TIME |
|||
FROM |
|||
ic_party_activity_sign_up_record m |
|||
WHERE |
|||
m.ACTIVITY_ID = #{activityId} |
|||
ORDER BY |
|||
m.SIGN_UP_TIME DESC |
|||
</select> |
|||
</mapper> |
Binary file not shown.
@ -0,0 +1,112 @@ |
|||
package com.epmet.dto; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
|
|||
/** |
|||
* 烟台第三方应用管理 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2023-02-03 |
|||
*/ |
|||
@Data |
|||
public class ThirdAppManageDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* id |
|||
*/ |
|||
private String id; |
|||
|
|||
/** |
|||
* 客户ID |
|||
*/ |
|||
private String customerId; |
|||
|
|||
/** |
|||
* 应用名称 |
|||
*/ |
|||
@NotBlank(message = "应用名称不能为空") |
|||
private String name; |
|||
|
|||
/** |
|||
* 应用链接 |
|||
*/ |
|||
@NotBlank(message = "应用链接不能为空") |
|||
private String link; |
|||
|
|||
/** |
|||
* 账号 |
|||
*/ |
|||
@NotBlank(message = "测试账号不能为空") |
|||
private String account; |
|||
|
|||
/** |
|||
* 密码 |
|||
*/ |
|||
@NotBlank(message = "测试密码不能为空") |
|||
private String password; |
|||
|
|||
/** |
|||
* 应用介绍 |
|||
*/ |
|||
private String remark; |
|||
|
|||
/** |
|||
* 第三方公司名 |
|||
*/ |
|||
private String companyName; |
|||
|
|||
/** |
|||
* 联系人 |
|||
*/ |
|||
@NotBlank(message = "联系人不能为空") |
|||
private String contacts; |
|||
|
|||
/** |
|||
* 联系电话 |
|||
*/ |
|||
@NotBlank(message = "联系电话不能为空") |
|||
private String mobile; |
|||
|
|||
/** |
|||
* 状态【0:未审核;1:审核不通过;2:审核通过;3:已发布】 |
|||
*/ |
|||
private String status; |
|||
|
|||
/** |
|||
* 乐观锁 |
|||
*/ |
|||
private Integer revision; |
|||
|
|||
/** |
|||
* 删除标识 0:未删除 1:删除 |
|||
*/ |
|||
private Integer delFlag; |
|||
|
|||
/** |
|||
* 创建者 |
|||
*/ |
|||
private String createdBy; |
|||
|
|||
/** |
|||
* 创建时间 |
|||
*/ |
|||
private Date createdTime; |
|||
|
|||
/** |
|||
* 更新者 |
|||
*/ |
|||
private String updatedBy; |
|||
|
|||
/** |
|||
* 更新时间 |
|||
*/ |
|||
private Date updatedTime; |
|||
|
|||
} |
@ -0,0 +1,50 @@ |
|||
package com.epmet.dto.form; |
|||
|
|||
import com.epmet.commons.tools.dto.form.PageFormDTO; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
|
|||
/** |
|||
* 烟台第三方应用管理 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2023-02-03 |
|||
*/ |
|||
@Data |
|||
public class ThirdAppManageFormDTO extends PageFormDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* id |
|||
*/ |
|||
private String id; |
|||
|
|||
|
|||
/** |
|||
* 应用名称 |
|||
*/ |
|||
private String name; |
|||
|
|||
/** |
|||
* 第三方公司名 |
|||
*/ |
|||
private String companyName; |
|||
|
|||
/** |
|||
* 联系人 |
|||
*/ |
|||
private String contacts; |
|||
|
|||
/** |
|||
* 联系电话 |
|||
*/ |
|||
private String mobile; |
|||
|
|||
/** |
|||
* 状态【0:未审核;1:审核不通过;2:审核通过;3:已发布】 |
|||
*/ |
|||
private String status; |
|||
} |
@ -0,0 +1,83 @@ |
|||
package com.epmet.controller; |
|||
|
|||
import com.epmet.commons.tools.aop.NoRepeatSubmit; |
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.commons.tools.validator.ValidatorUtils; |
|||
import com.epmet.commons.tools.validator.group.AddGroup; |
|||
import com.epmet.commons.tools.validator.group.DefaultGroup; |
|||
import com.epmet.commons.tools.validator.group.UpdateGroup; |
|||
import com.epmet.dto.ThirdAppManageDTO; |
|||
import com.epmet.dto.form.ThirdAppManageFormDTO; |
|||
import com.epmet.service.ThirdAppManageService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
|
|||
/** |
|||
* 烟台第三方应用管理 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2023-02-03 |
|||
*/ |
|||
@RestController |
|||
@RequestMapping("thirdAppManage") |
|||
public class ThirdAppManageController { |
|||
|
|||
@Autowired |
|||
private ThirdAppManageService thirdAppManageService; |
|||
|
|||
@PostMapping("page") |
|||
public Result<PageData<ThirdAppManageDTO>> page(@RequestBody ThirdAppManageFormDTO formDTO){ |
|||
PageData<ThirdAppManageDTO> page = thirdAppManageService.page(formDTO); |
|||
return new Result<PageData<ThirdAppManageDTO>>().ok(page); |
|||
} |
|||
|
|||
@PostMapping("detail/{id}") |
|||
public Result<ThirdAppManageDTO> get(@PathVariable("id") String id){ |
|||
ThirdAppManageDTO data = thirdAppManageService.get(id); |
|||
return new Result<ThirdAppManageDTO>().ok(data); |
|||
} |
|||
|
|||
@NoRepeatSubmit |
|||
@PostMapping("save") |
|||
public Result save(@RequestBody ThirdAppManageDTO dto){ |
|||
//效验数据
|
|||
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); |
|||
thirdAppManageService.save(dto); |
|||
return new Result(); |
|||
} |
|||
|
|||
/** |
|||
* 审核 |
|||
* |
|||
* @Param dto |
|||
* @Return {@link Result} |
|||
* @Author zhaoqifeng |
|||
* @Date 2023/2/3 14:18 |
|||
*/ |
|||
@NoRepeatSubmit |
|||
@PostMapping("audit") |
|||
public Result audit(@RequestBody ThirdAppManageDTO dto){ |
|||
//效验数据
|
|||
thirdAppManageService.audit(dto); |
|||
return new Result(); |
|||
} |
|||
|
|||
/** |
|||
* 发布 |
|||
* |
|||
* @Param dto |
|||
* @Return {@link Result} |
|||
* @Author zhaoqifeng |
|||
* @Date 2023/2/3 14:18 |
|||
*/ |
|||
@NoRepeatSubmit |
|||
@PostMapping("release") |
|||
public Result release(@RequestBody ThirdAppManageDTO dto){ |
|||
//效验数据
|
|||
thirdAppManageService.release(dto); |
|||
return new Result(); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,16 @@ |
|||
package com.epmet.dao; |
|||
|
|||
import com.epmet.commons.mybatis.dao.BaseDao; |
|||
import com.epmet.entity.ThirdAppManageEntity; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
|
|||
/** |
|||
* 烟台第三方应用管理 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2023-02-03 |
|||
*/ |
|||
@Mapper |
|||
public interface ThirdAppManageDao extends BaseDao<ThirdAppManageEntity> { |
|||
|
|||
} |
@ -0,0 +1,71 @@ |
|||
package com.epmet.entity; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import com.epmet.commons.mybatis.entity.BaseEpmetEntity; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
/** |
|||
* 烟台第三方应用管理 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2023-02-03 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper=false) |
|||
@TableName("third_app_manage") |
|||
public class ThirdAppManageEntity extends BaseEpmetEntity { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 客户ID |
|||
*/ |
|||
private String customerId; |
|||
|
|||
/** |
|||
* 应用名称 |
|||
*/ |
|||
private String name; |
|||
|
|||
/** |
|||
* 应用链接 |
|||
*/ |
|||
private String link; |
|||
|
|||
/** |
|||
* 账号 |
|||
*/ |
|||
private String account; |
|||
|
|||
/** |
|||
* 密码 |
|||
*/ |
|||
private String password; |
|||
|
|||
/** |
|||
* 应用介绍 |
|||
*/ |
|||
private String remark; |
|||
|
|||
/** |
|||
* 第三方公司名 |
|||
*/ |
|||
private String companyName; |
|||
|
|||
/** |
|||
* 联系人 |
|||
*/ |
|||
private String contacts; |
|||
|
|||
/** |
|||
* 联系电话 |
|||
*/ |
|||
private String mobile; |
|||
|
|||
/** |
|||
* 状态【0:未审核;1:审核不通过;2:审核通过;3:已发布】 |
|||
*/ |
|||
private String status; |
|||
|
|||
} |
@ -0,0 +1,66 @@ |
|||
package com.epmet.service; |
|||
|
|||
import com.epmet.commons.mybatis.service.BaseService; |
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.dto.ThirdAppManageDTO; |
|||
import com.epmet.dto.form.ThirdAppManageFormDTO; |
|||
import com.epmet.entity.ThirdAppManageEntity; |
|||
|
|||
/** |
|||
* 烟台第三方应用管理 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2023-02-03 |
|||
*/ |
|||
public interface ThirdAppManageService extends BaseService<ThirdAppManageEntity> { |
|||
|
|||
/** |
|||
* 默认分页 |
|||
* |
|||
* @param formDTO |
|||
* @return PageData<ThirdAppManageDTO> |
|||
* @author generator |
|||
* @date 2023-02-03 |
|||
*/ |
|||
PageData<ThirdAppManageDTO> page(ThirdAppManageFormDTO formDTO); |
|||
|
|||
/** |
|||
* 单条查询 |
|||
* |
|||
* @param id |
|||
* @return ThirdAppManageDTO |
|||
* @author generator |
|||
* @date 2023-02-03 |
|||
*/ |
|||
ThirdAppManageDTO get(String id); |
|||
|
|||
/** |
|||
* 默认保存 |
|||
* |
|||
* @param dto |
|||
* @return void |
|||
* @author generator |
|||
* @date 2023-02-03 |
|||
*/ |
|||
void save(ThirdAppManageDTO dto); |
|||
|
|||
/** |
|||
* 审核 |
|||
* |
|||
* @Param dto |
|||
* @Return |
|||
* @Author zhaoqifeng |
|||
* @Date 2023/2/3 14:19 |
|||
*/ |
|||
void audit(ThirdAppManageDTO dto); |
|||
|
|||
/** |
|||
* 发布 |
|||
* |
|||
* @Param dto |
|||
* @Return |
|||
* @Author zhaoqifeng |
|||
* @Date 2023/2/3 14:19 |
|||
*/ |
|||
void release(ThirdAppManageDTO dto); |
|||
} |
@ -0,0 +1,112 @@ |
|||
package com.epmet.service.impl; |
|||
|
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; |
|||
import com.epmet.commons.tools.constant.NumConstant; |
|||
import com.epmet.commons.tools.exception.EpmetErrorCode; |
|||
import com.epmet.commons.tools.exception.EpmetException; |
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.commons.tools.utils.ConvertUtils; |
|||
import com.epmet.dao.ThirdAppManageDao; |
|||
import com.epmet.dto.ThirdAppManageDTO; |
|||
import com.epmet.dto.form.ThirdAppManageFormDTO; |
|||
import com.epmet.entity.ThirdAppManageEntity; |
|||
import com.epmet.service.ThirdAppManageService; |
|||
import com.github.pagehelper.PageInfo; |
|||
import com.github.pagehelper.page.PageMethod; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 烟台第三方应用管理 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2023-02-03 |
|||
*/ |
|||
@Service |
|||
public class ThirdAppManageServiceImpl extends BaseServiceImpl<ThirdAppManageDao, ThirdAppManageEntity> implements ThirdAppManageService { |
|||
|
|||
@Override |
|||
public PageData<ThirdAppManageDTO> page(ThirdAppManageFormDTO formDTO) { |
|||
PageMethod.startPage(formDTO.getPageNo(), formDTO.getPageSize()); |
|||
LambdaQueryWrapper<ThirdAppManageEntity> wrapper = new LambdaQueryWrapper<>(); |
|||
wrapper.like(StringUtils.isNotBlank(formDTO.getName()), ThirdAppManageEntity::getName, formDTO.getName()); |
|||
wrapper.like(StringUtils.isNotBlank(formDTO.getCompanyName()), ThirdAppManageEntity::getCompanyName, formDTO.getCompanyName()); |
|||
wrapper.like(StringUtils.isNotBlank(formDTO.getContacts()), ThirdAppManageEntity::getContacts, formDTO.getContacts()); |
|||
wrapper.like(StringUtils.isNotBlank(formDTO.getMobile()), ThirdAppManageEntity::getMobile, formDTO.getMobile()); |
|||
wrapper.eq(StringUtils.isNotBlank(formDTO.getStatus()), ThirdAppManageEntity::getStatus, formDTO.getStatus()); |
|||
wrapper.orderByDesc(ThirdAppManageEntity::getCreatedTime); |
|||
List<ThirdAppManageEntity> list = baseDao.selectList(wrapper); |
|||
PageInfo<ThirdAppManageEntity> pageInfo = new PageInfo<>(list); |
|||
return new PageData<>(ConvertUtils.sourceToTarget(list, ThirdAppManageDTO.class), pageInfo.getTotal()); |
|||
} |
|||
|
|||
@Override |
|||
public ThirdAppManageDTO get(String id) { |
|||
ThirdAppManageEntity entity = baseDao.selectById(id); |
|||
return ConvertUtils.sourceToTarget(entity, ThirdAppManageDTO.class); |
|||
} |
|||
|
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public void save(ThirdAppManageDTO dto) { |
|||
ThirdAppManageEntity entity = ConvertUtils.sourceToTarget(dto, ThirdAppManageEntity.class); |
|||
insert(entity); |
|||
} |
|||
|
|||
/** |
|||
* 审核 |
|||
* |
|||
* @param dto |
|||
* @Param dto |
|||
* @Return |
|||
* @Author zhaoqifeng |
|||
* @Date 2023/2/3 14:19 |
|||
*/ |
|||
@Override |
|||
public void audit(ThirdAppManageDTO dto) { |
|||
ThirdAppManageEntity info = baseDao.selectById(dto.getId()); |
|||
if (!NumConstant.ZERO_STR.equals(info.getStatus())) { |
|||
String errorMsg = "应用已审核"; |
|||
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg); |
|||
} |
|||
|
|||
ThirdAppManageEntity entity = new ThirdAppManageEntity(); |
|||
entity.setId(dto.getId()); |
|||
entity.setStatus(dto.getStatus()); |
|||
baseDao.updateById(entity); |
|||
} |
|||
|
|||
/** |
|||
* 发布 |
|||
* |
|||
* @param dto |
|||
* @Param dto |
|||
* @Return |
|||
* @Author zhaoqifeng |
|||
* @Date 2023/2/3 14:19 |
|||
*/ |
|||
@Override |
|||
public void release(ThirdAppManageDTO dto) { |
|||
ThirdAppManageEntity info = baseDao.selectById(dto.getId()); |
|||
if (NumConstant.ZERO_STR.equals(info.getStatus())) { |
|||
String errorMsg = "应用未审核,请先审核"; |
|||
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg); |
|||
} else if (NumConstant.ONE_STR.equals(info.getStatus())) { |
|||
String errorMsg = "应用审核不通过,不能发布"; |
|||
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg); |
|||
} else if (NumConstant.THREE_STR.equals(info.getStatus())) { |
|||
String errorMsg = "应用已发布"; |
|||
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg); |
|||
} |
|||
|
|||
ThirdAppManageEntity entity = new ThirdAppManageEntity(); |
|||
entity.setId(dto.getId()); |
|||
entity.setStatus(NumConstant.THREE_STR); |
|||
baseDao.updateById(entity); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,20 @@ |
|||
CREATE TABLE `third_app_manage` ( |
|||
`ID` varchar(64) NOT NULL COMMENT 'id', |
|||
`CUSTOMER_ID` varchar(64) DEFAULT NULL COMMENT '客户ID', |
|||
`NAME` varchar(64) NOT NULL COMMENT '应用名称', |
|||
`LINK` varchar(128) NOT NULL COMMENT '应用链接', |
|||
`ACCOUNT` varchar(64) NOT NULL COMMENT '账号', |
|||
`PASSWORD` varchar(64) NOT NULL COMMENT '密码', |
|||
`REMARK` text COMMENT '应用介绍', |
|||
`COMPANY_NAME` varchar(64) DEFAULT '0' COMMENT '第三方公司名', |
|||
`CONTACTS` varchar(64) NOT NULL COMMENT '联系人', |
|||
`MOBILE` varchar(32) NOT NULL COMMENT '联系电话', |
|||
`STATUS` varchar(1) DEFAULT '0' COMMENT '状态【0:未审核;1:审核不通过;2:审核通过;3:已发布】', |
|||
`REVISION` int(11) DEFAULT NULL COMMENT '乐观锁', |
|||
`DEL_FLAG` tinyint(1) unsigned DEFAULT NULL COMMENT '删除标识 0:未删除 1:删除', |
|||
`CREATED_BY` varchar(32) DEFAULT NULL COMMENT '创建者', |
|||
`CREATED_TIME` datetime DEFAULT NULL COMMENT '创建时间', |
|||
`UPDATED_BY` varchar(32) DEFAULT NULL COMMENT '更新者', |
|||
`UPDATED_TIME` datetime DEFAULT NULL COMMENT '更新时间', |
|||
PRIMARY KEY (`ID`) USING BTREE |
|||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='烟台第三方应用管理'; |
@ -0,0 +1,27 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
|
|||
<mapper namespace="com.epmet.dao.ThirdAppManageDao"> |
|||
|
|||
<resultMap type="com.epmet.entity.ThirdAppManageEntity" id="thirdAppManageMap"> |
|||
<result property="id" column="ID"/> |
|||
<result property="customerId" column="CUSTOMER_ID"/> |
|||
<result property="name" column="NAME"/> |
|||
<result property="link" column="LINK"/> |
|||
<result property="account" column="ACCOUNT"/> |
|||
<result property="password" column="PASSWORD"/> |
|||
<result property="remark" column="REMARK"/> |
|||
<result property="companyName" column="COMPANY_NAME"/> |
|||
<result property="contacts" column="CONTACTS"/> |
|||
<result property="mobile" column="MOBILE"/> |
|||
<result property="status" column="STATUS"/> |
|||
<result property="revision" column="REVISION"/> |
|||
<result property="delFlag" column="DEL_FLAG"/> |
|||
<result property="createdBy" column="CREATED_BY"/> |
|||
<result property="createdTime" column="CREATED_TIME"/> |
|||
<result property="updatedBy" column="UPDATED_BY"/> |
|||
<result property="updatedTime" column="UPDATED_TIME"/> |
|||
</resultMap> |
|||
|
|||
|
|||
</mapper> |
@ -0,0 +1,32 @@ |
|||
package com.epmet.dto.form; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* @ClassName AgencyCountCensus$ |
|||
* @Description |
|||
* @Date 2023/4/6 16:46 |
|||
* @Author lichao |
|||
**/ |
|||
@Data |
|||
public class CommunityCountCensusFormDTO implements Serializable { |
|||
|
|||
|
|||
|
|||
private static final long serialVersionUID = 4360690752084258055L; |
|||
|
|||
@NotBlank(message = "组织Id不能为空") |
|||
private String agencyId; |
|||
|
|||
private Date timeStart; |
|||
|
|||
private Date timeEnd; |
|||
|
|||
private Integer pageNum; |
|||
|
|||
private Integer pageSize; |
|||
} |
@ -0,0 +1,48 @@ |
|||
package com.epmet.dto.form; |
|||
|
|||
import com.epmet.commons.tools.dto.form.PageFormDTO; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @Description |
|||
* @Author yzm |
|||
* @Date 2023/3/2 17:35 |
|||
*/ |
|||
@Data |
|||
public class GroupRentHouseFormDTO extends PageFormDTO implements Serializable { |
|||
private static final long serialVersionUID = -953729855530434972L; |
|||
/** |
|||
* 组织ID |
|||
*/ |
|||
private String orgId; |
|||
private String orgType; |
|||
|
|||
/** |
|||
* 房主姓名 |
|||
*/ |
|||
private String ownerName; |
|||
/** |
|||
* 房主电话 |
|||
*/ |
|||
private String ownerPhone; |
|||
|
|||
/** |
|||
* 房屋用途 |
|||
*/ |
|||
private String purpose; |
|||
|
|||
/** |
|||
* 备注 |
|||
*/ |
|||
private String remark; |
|||
|
|||
|
|||
/** |
|||
* tokenDto获取 |
|||
*/ |
|||
private String customerId; |
|||
private String staffId; |
|||
} |
|||
|
@ -0,0 +1,30 @@ |
|||
package com.epmet.dto.form; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* @Description 根据小区,楼宇,单元名称校验是否存在 |
|||
* @Author wgf |
|||
* @Date 2022/8/24 9:03 |
|||
*/ |
|||
@Data |
|||
public class HouseCountPictureFormDTO implements Serializable { |
|||
private static final long serialVersionUID = 2636608477324780974L; |
|||
|
|||
private String orgIdPath; |
|||
|
|||
private Date timeStart; |
|||
|
|||
private Date timeEnd; |
|||
|
|||
private String purpose; |
|||
|
|||
private Integer rentFlag; |
|||
|
|||
private Integer pageSize; |
|||
|
|||
private Integer pageNo; |
|||
} |
@ -0,0 +1,41 @@ |
|||
package com.epmet.dto.form.yt; |
|||
|
|||
import com.epmet.commons.tools.dto.form.PageFormDTO; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import lombok.Data; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* @Description 下级社区账号登录次数排名入参 |
|||
* @Author yzm |
|||
* @Date 2023/4/6 14:18 |
|||
*/ |
|||
@Data |
|||
public class CommunityLoginFormDTO extends PageFormDTO { |
|||
/** |
|||
* 所选择的组织id |
|||
*/ |
|||
private String orgId; |
|||
|
|||
/** |
|||
* 组织类型 |
|||
*/ |
|||
private String level; |
|||
|
|||
/** |
|||
* 开始日期:yyyy-MM-dd |
|||
*/ |
|||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
|||
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss") |
|||
private Date startDate; |
|||
|
|||
/** |
|||
* 截止日期:yyyy-MM-dd |
|||
*/ |
|||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
|||
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss") |
|||
private Date endDate; |
|||
} |
|||
|
@ -0,0 +1,42 @@ |
|||
package com.epmet.dto.form.yt; |
|||
|
|||
import com.epmet.commons.tools.dto.form.PageFormDTO; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import lombok.Data; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* @Description 下级社区账号登录次数排名入参 |
|||
* @Author yzm |
|||
* @Date 2023/4/6 14:18 |
|||
*/ |
|||
@Data |
|||
public class CountActivityFormDTO extends PageFormDTO { |
|||
/** |
|||
* 所选择的组织id |
|||
*/ |
|||
private String orgId; |
|||
|
|||
/** |
|||
* 是否活跃 1 活跃 0 不活跃 |
|||
*/ |
|||
private String isActivity; |
|||
|
|||
|
|||
/** |
|||
* 开始日期:yyyy-MM-dd |
|||
*/ |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|||
private Date startDate; |
|||
|
|||
/** |
|||
* 截止日期:yyyy-MM-dd |
|||
*/ |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|||
private Date endDate; |
|||
} |
|||
|
@ -0,0 +1,15 @@ |
|||
package com.epmet.dto.form.yt; |
|||
|
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @Description 九小场所分析 |
|||
* @Author yzm |
|||
* @Date 2023/4/7 16:47 |
|||
*/ |
|||
@Data |
|||
public class EnterpriseCountPlaceTypeFormDTO { |
|||
private String orgId; |
|||
private String orgType; |
|||
} |
|||
|
@ -0,0 +1,41 @@ |
|||
package com.epmet.dto.form.yt; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import lombok.Data; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* @Description 账号登录情况,查询市级账号/区县级账号/镇街级账号/社区级账号登录次数,入参dto |
|||
* @Author yzm |
|||
* @Date 2023/4/6 10:09 |
|||
*/ |
|||
@Data |
|||
public class LoginLogCountByLevelFormDTO { |
|||
/** |
|||
* 所选择的组织id |
|||
*/ |
|||
private String orgId; |
|||
|
|||
/** |
|||
* 组织类型 |
|||
*/ |
|||
private String level; |
|||
|
|||
/** |
|||
* 开始日期:yyyy-MM-dd |
|||
*/ |
|||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
|||
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss") |
|||
private Date startDate; |
|||
|
|||
/** |
|||
* 截止日期:yyyy-MM-dd |
|||
*/ |
|||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") |
|||
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss") |
|||
private Date endDate; |
|||
|
|||
} |
|||
|
@ -0,0 +1,20 @@ |
|||
package com.epmet.dto.result; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @ClassName AgencyCountCensus$ |
|||
* @Description |
|||
* @Date 2023/4/6 16:46 |
|||
* @Author lichao |
|||
**/ |
|||
@Data |
|||
public class AgencyCountCensusResultDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 4360690752084258055L; |
|||
|
|||
private String level; |
|||
private Integer count; |
|||
} |
@ -0,0 +1,23 @@ |
|||
package com.epmet.dto.result; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @ClassName AgencyCountCensus$ |
|||
* @Description |
|||
* @Date 2023/4/6 16:46 |
|||
* @Author lichao |
|||
**/ |
|||
@Data |
|||
public class CommunityCountCensusResultDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 4360690752084258055L; |
|||
|
|||
private String agencyId; |
|||
|
|||
private String agencyName; |
|||
|
|||
private Integer count; |
|||
} |
@ -0,0 +1,33 @@ |
|||
package com.epmet.dto.result; |
|||
|
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* @Description: |
|||
* @Author: lichao |
|||
* @Date: 2023/4/7 16:43 |
|||
*/ |
|||
@Data |
|||
public class CommunityListByAgencyIdResultDTO implements Serializable { |
|||
private static final long serialVersionUID = -1677303397440121269L; |
|||
|
|||
private String id; |
|||
|
|||
private String pids; |
|||
|
|||
private String name; |
|||
|
|||
private String streeName; |
|||
|
|||
// private String streeId;
|
|||
|
|||
private String districtName; |
|||
|
|||
// private String districtId;
|
|||
|
|||
private Date createTime; |
|||
} |
@ -0,0 +1,77 @@ |
|||
package com.epmet.dto.result; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @Description 群租房列表 |
|||
* @Author yzm |
|||
* @Date 2023/3/3 9:27 |
|||
*/ |
|||
@Data |
|||
public class GroupRentHouseResultDTO implements Serializable { |
|||
private static final long serialVersionUID = 3671964765109154117L; |
|||
private String houseId; |
|||
|
|||
/** |
|||
* 所属组织 |
|||
*/ |
|||
private String agencyName; |
|||
private String agencyId; |
|||
/** |
|||
* 所属网格 |
|||
*/ |
|||
private String gridName; |
|||
private String gridId; |
|||
|
|||
/** |
|||
* 所属小区 |
|||
*/ |
|||
private String neighborHoodName; |
|||
/** |
|||
* 所属楼栋 |
|||
*/ |
|||
private String buildingName; |
|||
|
|||
private String houseName; |
|||
/** |
|||
* 房屋类型 |
|||
*/ |
|||
private String houseType; |
|||
private String houseTypeKey; |
|||
/** |
|||
* 房屋用途 |
|||
*/ |
|||
private String purpose; |
|||
private String purposeKey; |
|||
|
|||
/** |
|||
* 房屋状态:房屋状态:1:出租 0:自住 2:闲置 3:未售出 |
|||
*/ |
|||
private String rentFlag; |
|||
|
|||
/** |
|||
* 房主姓名 |
|||
*/ |
|||
private String ownerName; |
|||
/** |
|||
* 房主电话 |
|||
*/ |
|||
private String ownerPhone; |
|||
/** |
|||
* 房主身份证 |
|||
*/ |
|||
private String ownerIdCard; |
|||
|
|||
/** |
|||
* 备注 |
|||
*/ |
|||
private String remark; |
|||
|
|||
/** |
|||
* 排序 |
|||
*/ |
|||
private Double sort; |
|||
} |
|||
|
@ -0,0 +1,23 @@ |
|||
package com.epmet.dto.result; |
|||
|
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
import java.io.Serializable; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @Description: |
|||
* @Author: lichao |
|||
* @Date: 2023/4/11 15:05 |
|||
*/ |
|||
@NoArgsConstructor |
|||
@Data |
|||
public class HouseCountPictureListResultDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 2063032844842070847L; |
|||
|
|||
private String type; |
|||
|
|||
private Integer count; |
|||
} |
@ -0,0 +1,24 @@ |
|||
package com.epmet.dto.result; |
|||
|
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
import java.io.Serializable; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @Description: |
|||
* @Author: lichao |
|||
* @Date: 2023/4/11 15:05 |
|||
*/ |
|||
@NoArgsConstructor |
|||
@Data |
|||
public class HouseCountPictureResultDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 2063032844842070847L; |
|||
|
|||
private Integer total; |
|||
|
|||
private List<HouseCountPictureListResultDTO> list; |
|||
|
|||
} |
@ -0,0 +1,37 @@ |
|||
package com.epmet.dto.result; |
|||
|
|||
|
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @Description: |
|||
* @Author: lichao |
|||
* @Date: 2023/4/11 14:41 |
|||
*/ |
|||
@NoArgsConstructor |
|||
@Data |
|||
public class HousePictureListResultDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 2063032844842070847L; |
|||
|
|||
private String houseId; |
|||
|
|||
private String districtName; |
|||
|
|||
private String streetName; |
|||
|
|||
private String communityName; |
|||
|
|||
private String gridName; |
|||
|
|||
private String houseName; |
|||
|
|||
private String purposeName; |
|||
|
|||
private String rentFlagName; |
|||
|
|||
private String orgIdPath; |
|||
} |
@ -0,0 +1,44 @@ |
|||
package com.epmet.dto.result.yt; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
|
|||
/** |
|||
* @author: qushutong |
|||
* @Date: 2023/4/6 13:33 |
|||
* @Description: 账户活跃情况 |
|||
*/ |
|||
@Data |
|||
public class AccountActivityInfo implements Serializable { |
|||
private static final long serialVersionUID = -918630886413844674L; |
|||
|
|||
/** |
|||
* 组织名称 |
|||
*/ |
|||
private String agencyName = ""; |
|||
|
|||
/** |
|||
* 登陆次数 |
|||
*/ |
|||
private String loginCount = ""; |
|||
|
|||
/** |
|||
* 活跃账号数 |
|||
*/ |
|||
private String accountActivityCount = ""; |
|||
|
|||
|
|||
/** |
|||
* 总账号数 |
|||
*/ |
|||
private String accountCount = ""; |
|||
|
|||
/** |
|||
* 组织id |
|||
*/ |
|||
private String agencyId = ""; |
|||
|
|||
|
|||
} |
@ -0,0 +1,30 @@ |
|||
package com.epmet.dto.result.yt; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
|
|||
/** |
|||
* @author: qushutong |
|||
* @Date: 2023/4/6 13:33 |
|||
* @Description: 账户活跃总数 |
|||
*/ |
|||
@Data |
|||
public class ActivityTatalInfo implements Serializable { |
|||
private static final long serialVersionUID = -918630886413844674L; |
|||
|
|||
|
|||
/** |
|||
* 不活跃账号总数 |
|||
*/ |
|||
private String inactivityCount = ""; |
|||
|
|||
/** |
|||
* 活跃账号总数 |
|||
*/ |
|||
private String activityCount = ""; |
|||
|
|||
|
|||
|
|||
} |
@ -0,0 +1,37 @@ |
|||
package com.epmet.dto.result.yt; |
|||
|
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @Description 下级社区账号登录次数排名 |
|||
* @Author yzm |
|||
* @Date 2023/4/6 14:15 |
|||
*/ |
|||
@Data |
|||
public class CommunityLoginResultDTO { |
|||
/** |
|||
* 组织id |
|||
*/ |
|||
private String agencyId; |
|||
/** |
|||
* 组织名称 |
|||
*/ |
|||
private String agencyName; |
|||
/** |
|||
* 组织级别(社区级:community, 乡(镇、街道)级:street, 区县级: district, 市级: city 省级:province) |
|||
*/ |
|||
private String agencyLevel; |
|||
/** |
|||
* 所属街道名称; |
|||
*/ |
|||
private String streetName; |
|||
/** |
|||
* 所属区县名称; |
|||
*/ |
|||
private String districtName; |
|||
/** |
|||
* 登录次数 |
|||
*/ |
|||
private Integer count; |
|||
} |
|||
|
@ -0,0 +1,24 @@ |
|||
package com.epmet.dto.result.yt; |
|||
|
|||
import com.epmet.commons.tools.constant.NumConstant; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @Description 九小场所分析 |
|||
* @Author yzm |
|||
* @Date 2023/4/7 16:48 |
|||
*/ |
|||
@Data |
|||
public class EnterpriseCountPlaceTypeDetailDTO { |
|||
private String placeType; |
|||
private String placeTypeName; |
|||
private Integer total; |
|||
|
|||
|
|||
public EnterpriseCountPlaceTypeDetailDTO() { |
|||
this.total = NumConstant.ZERO; |
|||
} |
|||
|
|||
|
|||
} |
|||
|
@ -0,0 +1,17 @@ |
|||
package com.epmet.dto.result.yt; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @Description 九小场所分析 |
|||
* @Author yzm |
|||
* @Date 2023/4/7 16:47 |
|||
*/ |
|||
@Data |
|||
public class EnterpriseCountPlaceTypeResDTO { |
|||
private Integer total; |
|||
private List<EnterpriseCountPlaceTypeDetailDTO> list; |
|||
} |
|||
|
@ -0,0 +1,29 @@ |
|||
package com.epmet.dto.result.yt; |
|||
|
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @Description 账号登录情况,查询市级账号/区县级账号/镇街级账号/社区级账号登录次数,返参dto |
|||
* @Author yzm |
|||
* @Date 2023/4/6 10:13 |
|||
*/ |
|||
@Data |
|||
public class LoginLogCountByLevelResultDTO { |
|||
/** |
|||
* 市级账号登录总次数;-1时不展示 |
|||
*/ |
|||
private Integer cityCount; |
|||
/** |
|||
* 区县级账号登录总次数;-1时不展示 |
|||
*/ |
|||
private Integer districtCount; |
|||
/** |
|||
* 镇街级账号登录总次数;-1时不展示 |
|||
*/ |
|||
private Integer streetCount; |
|||
/** |
|||
* 社区级账号登录总次数;-1时不展示 |
|||
*/ |
|||
private Integer communityCount; |
|||
} |
|||
|
@ -0,0 +1,154 @@ |
|||
package com.epmet.controller; |
|||
|
|||
import com.alibaba.nacos.client.naming.utils.CollectionUtils; |
|||
import com.epmet.commons.tools.annotation.LoginUser; |
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.commons.tools.security.dto.TokenDto; |
|||
import com.epmet.commons.tools.utils.ConvertUtils; |
|||
import com.epmet.commons.tools.utils.ExcelUtils; |
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.dto.form.yt.CommunityLoginFormDTO; |
|||
import com.epmet.dto.form.yt.CountActivityFormDTO; |
|||
import com.epmet.dto.form.yt.LoginLogCountByLevelFormDTO; |
|||
import com.epmet.dto.result.yt.ActivityTatalInfo; |
|||
import com.epmet.dto.result.yt.CommunityLoginResultDTO; |
|||
import com.epmet.dto.result.yt.LoginLogCountByLevelResultDTO; |
|||
import com.epmet.excel.yt.AccountActivityExcel; |
|||
import com.epmet.excel.yt.AccountInactivityExcel; |
|||
import com.epmet.service.StaffLoginLogService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.PostMapping; |
|||
import org.springframework.web.bind.annotation.RequestBody; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
import com.epmet.dto.result.yt.AccountActivityInfo; |
|||
|
|||
import javax.servlet.http.HttpServletResponse; |
|||
import java.util.List; |
|||
|
|||
|
|||
/** |
|||
* 工作人员登录日志表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2023-04-04 |
|||
*/ |
|||
@RestController |
|||
@RequestMapping("staffLoginLog") |
|||
public class StaffLoginLogController { |
|||
|
|||
@Autowired |
|||
private StaffLoginLogService staffLoginLogService; |
|||
|
|||
|
|||
/** |
|||
* 返回市级账号登录总次数、区县级账号登录总次数、镇街级账号登录总次数、社区级账号登录总次数 |
|||
* |
|||
* @param formDTO |
|||
* @return |
|||
*/ |
|||
@PostMapping("count-level") |
|||
public Result<LoginLogCountByLevelResultDTO> countLevel(@RequestBody LoginLogCountByLevelFormDTO formDTO) { |
|||
return new Result<LoginLogCountByLevelResultDTO>().ok(staffLoginLogService.countLevel(formDTO.getOrgId(), formDTO.getLevel(), formDTO.getStartDate(), formDTO.getEndDate())); |
|||
} |
|||
|
|||
/** |
|||
* 下级社区账号登录次数排名 |
|||
* |
|||
* @return |
|||
*/ |
|||
@PostMapping("community-count") |
|||
public Result<PageData<CommunityLoginResultDTO>> communityCount(@RequestBody CommunityLoginFormDTO formDTO) { |
|||
return new Result<PageData<CommunityLoginResultDTO>>().ok(staffLoginLogService.pageCommunityCount(formDTO)); |
|||
} |
|||
|
|||
/** |
|||
* 柱状图:下级组织账号登录次数汇总 |
|||
* |
|||
* @param formDTO |
|||
* @return |
|||
*/ |
|||
@PostMapping("sub-count") |
|||
public Result<PageData<CommunityLoginResultDTO>> querySubCount(@RequestBody LoginLogCountByLevelFormDTO formDTO) { |
|||
return new Result<PageData<CommunityLoginResultDTO>>().ok(staffLoginLogService.querySubCount(formDTO.getOrgId(), formDTO.getLevel(), formDTO.getStartDate(), formDTO.getEndDate())); |
|||
} |
|||
|
|||
/** |
|||
* 查看区县 |
|||
* |
|||
* @param formDTO |
|||
* @return |
|||
*/ |
|||
@PostMapping("district-count") |
|||
public Result<PageData<CommunityLoginResultDTO>> districtCount(@RequestBody CommunityLoginFormDTO formDTO) { |
|||
return new Result<PageData<CommunityLoginResultDTO>>().ok(staffLoginLogService.pageDistrictCount(formDTO.getOrgId(), |
|||
formDTO.getLevel(), formDTO.getStartDate(), |
|||
formDTO.getEndDate(), formDTO.getIsPage(), |
|||
formDTO.getPageNo(), formDTO.getPageSize())); |
|||
} |
|||
|
|||
/** |
|||
* 查看街镇 |
|||
* |
|||
* @param formDTO |
|||
* @return |
|||
*/ |
|||
@PostMapping("street-count") |
|||
public Result<PageData<CommunityLoginResultDTO>> streetCount(@RequestBody CommunityLoginFormDTO formDTO) { |
|||
return new Result<PageData<CommunityLoginResultDTO>>().ok(staffLoginLogService.streetCount(formDTO.getOrgId(), |
|||
formDTO.getStartDate(), |
|||
formDTO.getEndDate(), formDTO.getIsPage(), |
|||
formDTO.getPageNo(), formDTO.getPageSize())); |
|||
} |
|||
|
|||
/*** |
|||
* 获取当前agencyid下 下级组织活跃情况 |
|||
* @param formDTO |
|||
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.yt.AccountActivityInfo> |
|||
* @author qushutong |
|||
* @date 2023/4/6 13:41 |
|||
*/ |
|||
@PostMapping("getAccountActivityInfo") |
|||
public Result<PageData<AccountActivityInfo>> getAccountActivityInfo(@RequestBody CountActivityFormDTO formDTO) { |
|||
return new Result<PageData<AccountActivityInfo>>().ok(staffLoginLogService.getAccountActivityInfo(formDTO)); |
|||
} |
|||
|
|||
/*** |
|||
* 获取活跃度总数 |
|||
* @param formDTO |
|||
* @return com.epmet.commons.tools.utils.Result<com.epmet.commons.tools.page.PageData < com.epmet.dto.result.yt.AccountActivityInfo>> |
|||
* @author qushutong |
|||
* @date 2023/4/6 17:35 |
|||
*/ |
|||
@PostMapping("getActivityTotal") |
|||
public Result<ActivityTatalInfo> getActivityTotal(@RequestBody CountActivityFormDTO formDTO) { |
|||
return new Result<ActivityTatalInfo>().ok(staffLoginLogService.getActivityTotal(formDTO)); |
|||
} |
|||
|
|||
|
|||
/*** |
|||
* 导出活跃 |
|||
* @param response |
|||
* @param tokenDto |
|||
* @param formDTO |
|||
* @return void |
|||
* @author qushutong |
|||
* @date 2023/4/6 18:04 |
|||
*/ |
|||
@PostMapping("accountActivityInfo-export") |
|||
public void analysisExport(HttpServletResponse response, @LoginUser TokenDto tokenDto, @RequestBody CountActivityFormDTO formDTO) throws Exception { |
|||
formDTO.setIsPage(false); |
|||
PageData<AccountActivityInfo> res = staffLoginLogService.getAccountActivityInfo(formDTO); |
|||
if (!CollectionUtils.isEmpty(res.getList())) { |
|||
if("1".equals(formDTO.getIsActivity())){ |
|||
// List<AccountActivityExcel> accountActivityExcels = ConvertUtils.sourceToTarget(res.getList(), AccountActivityExcel.class);
|
|||
ExcelUtils.exportExcelToTarget(response, null, res.getList(), AccountActivityExcel.class); |
|||
}else { |
|||
// List<AccountInactivityExcel> accountActivityExcels = ConvertUtils.sourceToTarget(res.getList(), AccountInactivityExcel.class);
|
|||
ExcelUtils.exportExcelToTarget(response, null, res.getList(), AccountInactivityExcel.class); |
|||
} |
|||
|
|||
} |
|||
} |
|||
|
|||
} |
@ -0,0 +1,75 @@ |
|||
package com.epmet.dao; |
|||
|
|||
import com.epmet.commons.mybatis.dao.BaseDao; |
|||
import com.epmet.dto.form.yt.CountActivityFormDTO; |
|||
import com.epmet.dto.result.yt.ActivityTatalInfo; |
|||
import com.epmet.dto.result.yt.CommunityLoginResultDTO; |
|||
import com.epmet.dto.result.yt.AccountActivityInfo; |
|||
import com.epmet.entity.StaffLoginLogEntity; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 工作人员登录日志表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2023-04-04 |
|||
*/ |
|||
@Mapper |
|||
public interface StaffLoginLogDao extends BaseDao<StaffLoginLogEntity> { |
|||
|
|||
/** |
|||
* 各社区登录总次数 |
|||
* |
|||
* @param orgId |
|||
* @param startDate |
|||
* @param endDate |
|||
* @return |
|||
*/ |
|||
List<CommunityLoginResultDTO> pageCommunityCount(@Param("orgId") String orgId, |
|||
@Param("startDate") Date startDate, |
|||
@Param("endDate") Date endDate); |
|||
|
|||
/** |
|||
* 柱状图:下级组织账号登录次数汇总 |
|||
* |
|||
* @param orgId |
|||
* @param startDate |
|||
* @param endDate |
|||
* @return |
|||
*/ |
|||
List<CommunityLoginResultDTO> querySubCount(@Param("orgId") String orgId, |
|||
@Param("startDate") Date startDate, |
|||
@Param("endDate") Date endDate); |
|||
|
|||
/** |
|||
* 各区县登录总次数 |
|||
* |
|||
* @param orgId |
|||
* @param startDate |
|||
* @param endDate |
|||
* @return |
|||
*/ |
|||
List<CommunityLoginResultDTO> pageDistrictCount(@Param("orgId") String orgId, |
|||
@Param("startDate") Date startDate, |
|||
@Param("endDate") Date endDate); |
|||
|
|||
List<CommunityLoginResultDTO> pageStreetCount(@Param("orgId") String orgId, |
|||
@Param("startDate") Date startDate, |
|||
@Param("endDate") Date endDate); |
|||
|
|||
/*** |
|||
* 获取登陆情况 |
|||
* @param formDTO |
|||
* @return com.epmet.dto.result.yt.AccountActivityInfo |
|||
* @author qushutong |
|||
* @date 2023/4/6 13:47 |
|||
*/ |
|||
List<AccountActivityInfo> selectListActivityInfo(CountActivityFormDTO formDTO); |
|||
|
|||
|
|||
ActivityTatalInfo selectOneActivityTotal(CountActivityFormDTO formDTO); |
|||
} |
@ -0,0 +1,73 @@ |
|||
package com.epmet.entity; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
|
|||
import com.epmet.commons.mybatis.entity.BaseEpmetEntity; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* 工作人员登录日志表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2023-04-04 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper=false) |
|||
@TableName("staff_login_log") |
|||
public class StaffLoginLogEntity extends BaseEpmetEntity { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 客户ID |
|||
*/ |
|||
private String customerId; |
|||
|
|||
/** |
|||
* 工作端用户id |
|||
*/ |
|||
private String staffId; |
|||
|
|||
/** |
|||
* 工作人员姓名 |
|||
*/ |
|||
private String staffName; |
|||
|
|||
/** |
|||
* 工作人员手机号 |
|||
*/ |
|||
private String mobile; |
|||
|
|||
/** |
|||
* 工作人员所属组织id;组织名称在customer_agency |
|||
*/ |
|||
private String agencyId; |
|||
|
|||
/** |
|||
* 组织级别(社区级:community, |
|||
乡(镇、街道)级:street, |
|||
区县级: district, |
|||
市级: city |
|||
省级:province) |
|||
*/ |
|||
private String agencyLevel; |
|||
|
|||
/** |
|||
* agency_id的直属上级;如果是根组织的用户登录,pid=0或者pid='' |
|||
*/ |
|||
private String pid; |
|||
|
|||
/** |
|||
* AGENCY_ID全路径,包含agency_id自身 |
|||
*/ |
|||
private String orgIdPath; |
|||
|
|||
/** |
|||
* 登录时间 |
|||
*/ |
|||
private Date loginTime; |
|||
|
|||
} |
@ -0,0 +1,50 @@ |
|||
package com.epmet.excel; |
|||
|
|||
import com.alibaba.excel.annotation.ExcelIgnore; |
|||
import com.alibaba.excel.annotation.ExcelProperty; |
|||
import com.alibaba.excel.annotation.write.style.ColumnWidth; |
|||
import lombok.Data; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* 企事业单位导出excel |
|||
*/ |
|||
@Data |
|||
public class HousePictureListExcelDTO { |
|||
|
|||
|
|||
@ExcelIgnore |
|||
private String houseId; |
|||
|
|||
@ExcelProperty(value = "区县") |
|||
@ColumnWidth(25) |
|||
private String districtName; |
|||
|
|||
@ExcelProperty(value = "镇街") |
|||
@ColumnWidth(25) |
|||
private String streetName; |
|||
|
|||
@ExcelProperty(value = "社区") |
|||
@ColumnWidth(25) |
|||
private String communityName; |
|||
|
|||
@ExcelProperty(value = "网格") |
|||
@ColumnWidth(25) |
|||
private String gridName; |
|||
|
|||
@ExcelProperty(value = "房屋名称") |
|||
@ColumnWidth(25) |
|||
private String houseName; |
|||
|
|||
@ExcelProperty(value = "房屋用途") |
|||
@ColumnWidth(25) |
|||
private String purposeName; |
|||
|
|||
@ExcelProperty(value = "房屋状态") |
|||
@ColumnWidth(25) |
|||
private String rentFlagName; |
|||
@ExcelIgnore |
|||
private String orgIdPath; |
|||
|
|||
} |
@ -0,0 +1,45 @@ |
|||
package com.epmet.excel.yt; |
|||
|
|||
import cn.afterturn.easypoi.excel.annotation.Excel; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
|
|||
/** |
|||
* @author: qushutong |
|||
* @Date: 2023/4/6 13:33 |
|||
* @Description: 账户活跃情况 |
|||
*/ |
|||
@Data |
|||
public class AccountActivityExcel implements Serializable { |
|||
private static final long serialVersionUID = -918630886413844674L; |
|||
|
|||
/** |
|||
* 组织名称 |
|||
*/ |
|||
@Excel(name = "组织名称") |
|||
private String agencyName = ""; |
|||
|
|||
/** |
|||
* 登陆次数 |
|||
*/ |
|||
@Excel(name = "登陆次数") |
|||
private String loginCount = ""; |
|||
|
|||
/** |
|||
* 活跃账号数 |
|||
*/ |
|||
@Excel(name = "活跃账号数") |
|||
private String accountActivityCount = ""; |
|||
|
|||
|
|||
/** |
|||
* 总账号数 |
|||
*/ |
|||
@Excel(name = "总账号数") |
|||
private String accountCount = ""; |
|||
|
|||
|
|||
|
|||
} |
@ -0,0 +1,28 @@ |
|||
package com.epmet.excel.yt; |
|||
|
|||
import cn.afterturn.easypoi.excel.annotation.Excel; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
|
|||
/** |
|||
* @author: qushutong |
|||
* @Date: 2023/4/6 13:33 |
|||
* @Description: 账户不活跃情况 |
|||
*/ |
|||
@Data |
|||
public class AccountInactivityExcel implements Serializable { |
|||
private static final long serialVersionUID = -918630886413844674L; |
|||
|
|||
/** |
|||
* 组织名称 |
|||
*/ |
|||
@Excel(name = "组织名称") |
|||
private String agencyName = ""; |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
} |
@ -0,0 +1,110 @@ |
|||
package com.epmet.mq.listener; |
|||
|
|||
import com.alibaba.fastjson.JSON; |
|||
import com.epmet.commons.rocketmq.constants.MQUserPropertys; |
|||
import com.epmet.commons.rocketmq.messages.LoginMQMsg; |
|||
import com.epmet.commons.tools.distributedlock.DistributedLock; |
|||
import com.epmet.commons.tools.exception.ExceptionUtils; |
|||
import com.epmet.commons.tools.exception.RenException; |
|||
import com.epmet.commons.tools.redis.RedisKeys; |
|||
import com.epmet.commons.tools.redis.RedisUtils; |
|||
import com.epmet.commons.tools.utils.SpringContextUtils; |
|||
import com.epmet.service.StaffLoginLogService; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext; |
|||
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus; |
|||
import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently; |
|||
import org.apache.rocketmq.common.message.MessageExt; |
|||
import org.redisson.api.RLock; |
|||
import org.slf4j.Logger; |
|||
import org.slf4j.LoggerFactory; |
|||
|
|||
import java.util.List; |
|||
import java.util.concurrent.TimeUnit; |
|||
|
|||
/** |
|||
* @author wxz |
|||
* @Description 登录操作日志监听器 |
|||
|
|||
* @return |
|||
* @date 2021.06.07 16:12 |
|||
*/ |
|||
public class StaffLoginLogListener implements MessageListenerConcurrently { |
|||
|
|||
private Logger logger = LoggerFactory.getLogger(getClass()); |
|||
|
|||
private RedisUtils redisUtils; |
|||
|
|||
@Override |
|||
public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) { |
|||
|
|||
if (redisUtils == null) { |
|||
redisUtils = SpringContextUtils.getBean(RedisUtils.class); |
|||
} |
|||
|
|||
try { |
|||
msgs.forEach(msg -> consumeMessage(msg)); |
|||
} catch (Exception e) { |
|||
logger.error(ExceptionUtils.getErrorStackTrace(e)); |
|||
return ConsumeConcurrentlyStatus.RECONSUME_LATER; |
|||
} |
|||
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS; |
|||
} |
|||
|
|||
private void consumeMessage(MessageExt messageExt) { |
|||
String tags = messageExt.getTags(); |
|||
// msg示例:
|
|||
// {
|
|||
// "userId": "5198ef9e3644c4f49457d2b551a1432e",
|
|||
// "appId": "数字社区登录",
|
|||
// "loginTime": "2023-04-04 14:05:37",
|
|||
// "ip": "219.146.91.110",
|
|||
// "fromApp": "gov",
|
|||
// "fromClient": "web"
|
|||
// }
|
|||
String msg = new String(messageExt.getBody()); |
|||
String pendingMsgLabel = messageExt.getUserProperty(MQUserPropertys.BLOCKED_MSG_LABEL); |
|||
logger.info("工作人员登录操作日志监听器-收到消息内容:{}", msg); |
|||
LoginMQMsg msgObj = JSON.parseObject(msg, LoginMQMsg.class); |
|||
|
|||
DistributedLock distributedLock = null; |
|||
RLock lock = null; |
|||
try { |
|||
distributedLock = SpringContextUtils.getBean(DistributedLock.class); |
|||
lock = distributedLock.getLock(String.format("lock:staff_login_log:%s:%s", tags, msgObj.getUserId()), |
|||
30L, 30L, TimeUnit.SECONDS); |
|||
SpringContextUtils.getBean(StaffLoginLogService.class).saveLog(msgObj.getUserId(),msgObj.getLoginTime()); |
|||
} catch (RenException e) { |
|||
// 如果是我们手动抛出的异常,说明在业务可控范围内。目前不需要MQ重试
|
|||
logger.error("【RocketMQ】工作人员登录添加操作日志失败:".concat(ExceptionUtils.getErrorStackTrace(e))); |
|||
} catch (Exception e) { |
|||
// 不是我们自己抛出的异常,可以让MQ重试
|
|||
logger.error("【RocketMQ】工作人员登录添加操作日志失败:".concat(ExceptionUtils.getErrorStackTrace(e))); |
|||
throw e; |
|||
} finally { |
|||
distributedLock.unLock(lock); |
|||
} |
|||
|
|||
if (StringUtils.isNotBlank(pendingMsgLabel)) { |
|||
try { |
|||
removePendingMqMsgCache(pendingMsgLabel); |
|||
} catch (Exception e) { |
|||
logger.error("【工作人员登录操作事件监听器】-删除mq阻塞消息缓存失败:{}", ExceptionUtils.getErrorStackTrace(e)); |
|||
} |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* @description |
|||
* |
|||
* @param pendingMsgLabel |
|||
* @return |
|||
* @author wxz |
|||
* @date 2021.10.14 16:32:32 |
|||
*/ |
|||
private void removePendingMqMsgCache(String pendingMsgLabel) { |
|||
String key = RedisKeys.blockedMqMsgKey(pendingMsgLabel); |
|||
redisUtils.delete(key); |
|||
//logger.info("【登录操作事件监听器】删除pendingMsgLabel成功:{}", pendingMsgLabel);
|
|||
} |
|||
} |
@ -0,0 +1,97 @@ |
|||
package com.epmet.service; |
|||
|
|||
import com.epmet.commons.mybatis.service.BaseService; |
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.dto.form.yt.CommunityLoginFormDTO; |
|||
import com.epmet.dto.form.yt.CountActivityFormDTO; |
|||
import com.epmet.dto.result.yt.ActivityTatalInfo; |
|||
import com.epmet.dto.result.yt.CommunityLoginResultDTO; |
|||
import com.epmet.dto.result.yt.LoginLogCountByLevelResultDTO; |
|||
import com.epmet.dto.result.yt.AccountActivityInfo; |
|||
import com.epmet.entity.StaffLoginLogEntity; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* 工作人员登录日志表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2023-04-04 |
|||
*/ |
|||
public interface StaffLoginLogService extends BaseService<StaffLoginLogEntity> { |
|||
/** |
|||
* 登录,插入记录 |
|||
* |
|||
* @param staffId |
|||
* @param loginTime |
|||
*/ |
|||
void saveLog(String staffId, Date loginTime); |
|||
|
|||
/** |
|||
* 返回市级账号登录总次数、区县级账号登录总次数、镇街级账号登录总次数、社区级账号登录总次数 |
|||
* |
|||
* @param orgId 为空时,默认当前登录用户所属组织id |
|||
* @param level |
|||
* @param startDate yyyy-MM-dd |
|||
* @param endDate yyyy-MM-dd |
|||
* @return |
|||
*/ |
|||
LoginLogCountByLevelResultDTO countLevel(String orgId, String level, Date startDate, Date endDate); |
|||
|
|||
/** |
|||
* 下级社区账号登录次数排名 |
|||
* |
|||
* @param formDTO |
|||
* @return |
|||
*/ |
|||
PageData<CommunityLoginResultDTO> pageCommunityCount(CommunityLoginFormDTO formDTO); |
|||
|
|||
/** |
|||
* 柱状图:下级组织账号登录次数汇总 |
|||
* |
|||
* @param orgId |
|||
* @param level |
|||
* @param startDate |
|||
* @param endDate |
|||
* @return |
|||
*/ |
|||
PageData<CommunityLoginResultDTO> querySubCount(String orgId, String level, Date startDate, Date endDate); |
|||
|
|||
/** |
|||
* 查看区县 |
|||
* |
|||
* @param orgId |
|||
* @param level |
|||
* @param startDate |
|||
* @param endDate |
|||
* @param isPage |
|||
* @param pageNo |
|||
* @param pageSize |
|||
* @return |
|||
*/ |
|||
PageData<CommunityLoginResultDTO> pageDistrictCount(String orgId, String level, Date startDate, Date endDate, Boolean isPage, Integer pageNo, Integer pageSize); |
|||
|
|||
/** |
|||
* 查看街镇 |
|||
* |
|||
* @param orgId |
|||
* @param startDate |
|||
* @param endDate |
|||
* @param isPage |
|||
* @param pageNo |
|||
* @param pageSize |
|||
* @return |
|||
*/ |
|||
PageData<CommunityLoginResultDTO> streetCount(String orgId, Date startDate, Date endDate, Boolean isPage, Integer pageNo, Integer pageSize); |
|||
|
|||
/*** |
|||
* 获取登陆情况 |
|||
* @param formDTO |
|||
* @return com.epmet.dto.result.yt.AccountActivityInfo |
|||
* @author qushutong |
|||
* @date 2023/4/6 13:47 |
|||
*/ |
|||
PageData<AccountActivityInfo> getAccountActivityInfo(CountActivityFormDTO formDTO); |
|||
|
|||
ActivityTatalInfo getActivityTotal(CountActivityFormDTO formDTO); |
|||
} |
@ -0,0 +1,310 @@ |
|||
package com.epmet.service.impl; |
|||
|
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; |
|||
import com.epmet.commons.tools.constant.Constant; |
|||
import com.epmet.commons.tools.constant.NumConstant; |
|||
import com.epmet.commons.tools.constant.StrConstant; |
|||
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; |
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.commons.tools.redis.common.CustomerStaffRedis; |
|||
import com.epmet.commons.tools.utils.EpmetRequestHolder; |
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.commons.tools.utils.SpringContextUtils; |
|||
import com.epmet.dao.StaffLoginLogDao; |
|||
import com.epmet.dto.CustomerAgencyDTO; |
|||
import com.epmet.dto.CustomerStaffDTO; |
|||
import com.epmet.dto.form.yt.CommunityLoginFormDTO; |
|||
import com.epmet.dto.form.yt.CountActivityFormDTO; |
|||
import com.epmet.dto.result.yt.ActivityTatalInfo; |
|||
import com.epmet.dto.result.yt.CommunityLoginResultDTO; |
|||
import com.epmet.dto.result.yt.LoginLogCountByLevelResultDTO; |
|||
import com.epmet.dto.result.yt.AccountActivityInfo; |
|||
import com.epmet.entity.StaffLoginLogEntity; |
|||
import com.epmet.feign.EpmetUserOpenFeignClient; |
|||
import com.epmet.service.CustomerAgencyService; |
|||
import com.epmet.service.StaffLoginLogService; |
|||
import com.github.pagehelper.PageHelper; |
|||
import com.github.pagehelper.PageInfo; |
|||
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 org.springframework.util.CollectionUtils; |
|||
|
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 工作人员登录日志表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2023-04-04 |
|||
*/ |
|||
@Service |
|||
public class StaffLoginLogServiceImpl extends BaseServiceImpl<StaffLoginLogDao, StaffLoginLogEntity> implements StaffLoginLogService { |
|||
@Autowired |
|||
private EpmetUserOpenFeignClient userOpenFeignClient; |
|||
|
|||
|
|||
/** |
|||
* 登录,插入记录 |
|||
* |
|||
* @param staffId |
|||
* @param loginTime |
|||
*/ |
|||
@Transactional(rollbackFor = Exception.class) |
|||
@Override |
|||
public void saveLog(String staffId, Date loginTime) { |
|||
CustomerStaffDTO form = new CustomerStaffDTO(); |
|||
form.setUserId(staffId); |
|||
Result<CustomerStaffDTO> result = userOpenFeignClient.getCustomerStaffInfoByUserId(form); |
|||
if (!result.success() || null == result.getData()) { |
|||
return; |
|||
} |
|||
CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(result.getData().getCustomerId(), staffId); |
|||
|
|||
StaffLoginLogEntity logEntity = new StaffLoginLogEntity(); |
|||
logEntity.setCustomerId(result.getData().getCustomerId()); |
|||
logEntity.setStaffId(staffId); |
|||
logEntity.setStaffName(staffInfoCacheResult.getRealName()); |
|||
logEntity.setMobile(staffInfoCacheResult.getMobile()); |
|||
logEntity.setAgencyId(staffInfoCacheResult.getAgencyId()); |
|||
CustomerAgencyDTO customerAgencyDTO = SpringContextUtils.getBean(CustomerAgencyService.class).get(staffInfoCacheResult.getAgencyId()); |
|||
logEntity.setAgencyLevel(customerAgencyDTO.getLevel()); |
|||
logEntity.setPid(customerAgencyDTO.getPid()); |
|||
if (StringUtils.isBlank(customerAgencyDTO.getPid()) || NumConstant.ZERO_STR.equals(customerAgencyDTO.getPid())) { |
|||
logEntity.setOrgIdPath(customerAgencyDTO.getId()); |
|||
} else { |
|||
logEntity.setOrgIdPath(customerAgencyDTO.getPids().concat(StrConstant.COLON).concat(customerAgencyDTO.getId())); |
|||
} |
|||
logEntity.setLoginTime(loginTime); |
|||
baseDao.insert(logEntity); |
|||
} |
|||
|
|||
|
|||
/** |
|||
* 返回市级账号登录总次数、区县级账号登录总次数、镇街级账号登录总次数、社区级账号登录总次数 |
|||
* |
|||
* @param orgId 为空时,默认当前登录用户所属组织id |
|||
* @param level :组织级别(社区级:community, 乡(镇、街道)级:street,区县级: district,市级: city;省级:province) |
|||
* @param startDate yyyy-MM-dd |
|||
* @param endDate yyyy-MM-dd |
|||
* @return |
|||
*/ |
|||
@Override |
|||
public LoginLogCountByLevelResultDTO countLevel(String orgId, String level, Date startDate, Date endDate) { |
|||
if (StringUtils.isBlank(orgId)) { |
|||
CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(EpmetRequestHolder.getLoginUserCustomerId(), EpmetRequestHolder.getLoginUserId()); |
|||
orgId = staffInfoCacheResult.getAgencyId(); |
|||
level = staffInfoCacheResult.getLevel(); |
|||
} |
|||
String orgIdPath = SpringContextUtils.getBean(CustomerAgencyService.class).getOrgIdPath(orgId); |
|||
LoginLogCountByLevelResultDTO resultDTO = new LoginLogCountByLevelResultDTO(); |
|||
if (Constant.CITY.equals(level)) { |
|||
//市级账号登录
|
|||
LambdaQueryWrapper<StaffLoginLogEntity> cityWrapper = new LambdaQueryWrapper<>(); |
|||
cityWrapper.eq(StaffLoginLogEntity::getAgencyId, orgId) |
|||
.between(null != startDate && null != endDate, StaffLoginLogEntity::getLoginTime, startDate, endDate); |
|||
resultDTO.setCityCount(baseDao.selectCount(cityWrapper)); |
|||
|
|||
// 市下面区县账号
|
|||
LambdaQueryWrapper<StaffLoginLogEntity> districtWrapper = new LambdaQueryWrapper<>(); |
|||
districtWrapper.eq(StaffLoginLogEntity::getPid, orgId) |
|||
.eq(StaffLoginLogEntity::getAgencyLevel, Constant.DISTRICT) |
|||
.between(null != startDate && null != endDate, StaffLoginLogEntity::getLoginTime, startDate, endDate); |
|||
resultDTO.setDistrictCount(baseDao.selectCount(districtWrapper)); |
|||
|
|||
// 市级下面所有街道
|
|||
LambdaQueryWrapper<StaffLoginLogEntity> streetWrapper = new LambdaQueryWrapper<>(); |
|||
streetWrapper.like(StaffLoginLogEntity::getOrgIdPath, orgIdPath) |
|||
.eq(StaffLoginLogEntity::getAgencyLevel, Constant.STREET) |
|||
.between(null != startDate && null != endDate, StaffLoginLogEntity::getLoginTime, startDate, endDate); |
|||
resultDTO.setStreetCount(baseDao.selectCount(streetWrapper)); |
|||
|
|||
// 市级下面所有社区
|
|||
LambdaQueryWrapper<StaffLoginLogEntity> communityWrapper = new LambdaQueryWrapper<>(); |
|||
communityWrapper.like(StaffLoginLogEntity::getOrgIdPath, orgIdPath) |
|||
.eq(StaffLoginLogEntity::getAgencyLevel, Constant.COMMUNITY) |
|||
.between(null != startDate && null != endDate, StaffLoginLogEntity::getLoginTime, startDate, endDate); |
|||
resultDTO.setCommunityCount(baseDao.selectCount(communityWrapper)); |
|||
|
|||
} else if (Constant.DISTRICT.equals(level)) { |
|||
resultDTO.setCityCount(NumConstant.ONE_NEG); |
|||
|
|||
//只展示本区县的登录情况
|
|||
LambdaQueryWrapper<StaffLoginLogEntity> districtWrapper = new LambdaQueryWrapper<>(); |
|||
districtWrapper.eq(StaffLoginLogEntity::getAgencyId, orgId) |
|||
.between(null != startDate && null != endDate, StaffLoginLogEntity::getLoginTime, startDate, endDate); |
|||
resultDTO.setDistrictCount(baseDao.selectCount(districtWrapper)); |
|||
|
|||
// 区县下所有的街道
|
|||
LambdaQueryWrapper<StaffLoginLogEntity> streetWrapper = new LambdaQueryWrapper<>(); |
|||
streetWrapper.like(StaffLoginLogEntity::getOrgIdPath, orgIdPath) |
|||
.eq(StaffLoginLogEntity::getAgencyLevel, Constant.STREET) |
|||
.between(null != startDate && null != endDate, StaffLoginLogEntity::getLoginTime, startDate, endDate); |
|||
resultDTO.setStreetCount(baseDao.selectCount(streetWrapper)); |
|||
|
|||
// 去线下所有社区
|
|||
LambdaQueryWrapper<StaffLoginLogEntity> communityWrapper = new LambdaQueryWrapper<>(); |
|||
communityWrapper.like(StaffLoginLogEntity::getOrgIdPath, orgIdPath) |
|||
.eq(StaffLoginLogEntity::getAgencyLevel, Constant.COMMUNITY) |
|||
.between(null != startDate && null != endDate, StaffLoginLogEntity::getLoginTime, startDate, endDate); |
|||
resultDTO.setCommunityCount(baseDao.selectCount(communityWrapper)); |
|||
|
|||
} else if (Constant.STREET.equals(level)) { |
|||
resultDTO.setCityCount(NumConstant.ONE_NEG); |
|||
resultDTO.setDistrictCount(NumConstant.ONE_NEG); |
|||
|
|||
// 只展示本街道的登录情况
|
|||
LambdaQueryWrapper<StaffLoginLogEntity> streetWrapper = new LambdaQueryWrapper<>(); |
|||
streetWrapper.eq(StaffLoginLogEntity::getAgencyId, orgId) |
|||
.between(null != startDate && null != endDate, StaffLoginLogEntity::getLoginTime, startDate, endDate); |
|||
resultDTO.setStreetCount(baseDao.selectCount(streetWrapper)); |
|||
|
|||
|
|||
// 街道下所有社区
|
|||
LambdaQueryWrapper<StaffLoginLogEntity> communityWrapper = new LambdaQueryWrapper<>(); |
|||
communityWrapper.like(StaffLoginLogEntity::getOrgIdPath, orgIdPath) |
|||
.eq(StaffLoginLogEntity::getAgencyLevel, Constant.COMMUNITY) |
|||
.between(null != startDate && null != endDate, StaffLoginLogEntity::getLoginTime, startDate, endDate); |
|||
resultDTO.setCommunityCount(baseDao.selectCount(communityWrapper)); |
|||
|
|||
} else if (Constant.COMMUNITY.equals(level)) { |
|||
resultDTO.setCityCount(NumConstant.ONE_NEG); |
|||
resultDTO.setDistrictCount(NumConstant.ONE_NEG); |
|||
resultDTO.setStreetCount(NumConstant.ONE_NEG); |
|||
|
|||
// 只展示本社区的登录情况
|
|||
LambdaQueryWrapper<StaffLoginLogEntity> communityWrapper = new LambdaQueryWrapper<>(); |
|||
communityWrapper.eq(StaffLoginLogEntity::getAgencyId, orgId) |
|||
.between(null != startDate && null != endDate, StaffLoginLogEntity::getLoginTime, startDate, endDate); |
|||
resultDTO.setCommunityCount(baseDao.selectCount(communityWrapper)); |
|||
} |
|||
return resultDTO; |
|||
} |
|||
|
|||
@Override |
|||
public PageData<AccountActivityInfo> getAccountActivityInfo(CountActivityFormDTO formDTO) { |
|||
if (formDTO.getIsPage()) { |
|||
PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); |
|||
List<AccountActivityInfo> accountActivityInfos = baseDao.selectListActivityInfo(formDTO); |
|||
int total = CollectionUtils.isEmpty(accountActivityInfos) ? NumConstant.ZERO : accountActivityInfos.size(); |
|||
return new PageData<>(accountActivityInfos, total); |
|||
} |
|||
List<AccountActivityInfo> accountActivityInfos = baseDao.selectListActivityInfo(formDTO); |
|||
int total = CollectionUtils.isEmpty(accountActivityInfos) ? NumConstant.ZERO : accountActivityInfos.size(); |
|||
return new PageData<>(accountActivityInfos, total); |
|||
} |
|||
|
|||
@Override |
|||
public ActivityTatalInfo getActivityTotal(CountActivityFormDTO formDTO) { |
|||
return baseDao.selectOneActivityTotal(formDTO); |
|||
} |
|||
|
|||
/** |
|||
* 下级社区账号登录次数排名 |
|||
* |
|||
* @param formDTO |
|||
* @return |
|||
*/ |
|||
@Override |
|||
public PageData<CommunityLoginResultDTO> pageCommunityCount(CommunityLoginFormDTO formDTO) { |
|||
if (StringUtils.isBlank(formDTO.getOrgId())) { |
|||
CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(EpmetRequestHolder.getLoginUserCustomerId(), EpmetRequestHolder.getLoginUserId()); |
|||
formDTO.setOrgId(staffInfoCacheResult.getAgencyId()); |
|||
// formDTO.setLevel(staffInfoCacheResult.getLevel());
|
|||
} |
|||
if (formDTO.getIsPage()) { |
|||
PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); |
|||
List<CommunityLoginResultDTO> list = baseDao.pageCommunityCount(formDTO.getOrgId(), formDTO.getStartDate(), formDTO.getEndDate()); |
|||
PageInfo<CommunityLoginResultDTO> pageInfo = new PageInfo<>(list); |
|||
return new PageData<>(list, pageInfo.getTotal(), formDTO.getPageSize()); |
|||
} |
|||
// 不分页
|
|||
List<CommunityLoginResultDTO> list = baseDao.pageCommunityCount(formDTO.getOrgId(), formDTO.getStartDate(), formDTO.getEndDate()); |
|||
int total = CollectionUtils.isEmpty(list) ? NumConstant.ZERO : list.size(); |
|||
return new PageData<>(list, total, total); |
|||
} |
|||
|
|||
|
|||
/** |
|||
* 柱状图:下级组织账号登录次数汇总 |
|||
* |
|||
* @param orgId |
|||
* @param level |
|||
* @param startDate |
|||
* @param endDate |
|||
* @return |
|||
*/ |
|||
@Override |
|||
public PageData<CommunityLoginResultDTO> querySubCount(String orgId, String level, Date startDate, Date endDate) { |
|||
if (StringUtils.isBlank(orgId)) { |
|||
CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(EpmetRequestHolder.getLoginUserCustomerId(), EpmetRequestHolder.getLoginUserId()); |
|||
orgId = staffInfoCacheResult.getAgencyId(); |
|||
} |
|||
List<CommunityLoginResultDTO> list = baseDao.querySubCount(orgId, startDate, endDate); |
|||
int total = CollectionUtils.isEmpty(list) ? NumConstant.ZERO : list.size(); |
|||
return new PageData<CommunityLoginResultDTO>(list, total, total); |
|||
} |
|||
|
|||
|
|||
/** |
|||
* 查看区县 |
|||
* |
|||
* @param orgId |
|||
* @param level |
|||
* @param startDate |
|||
* @param endDate |
|||
* @param isPage |
|||
* @param pageNo |
|||
* @param pageSize |
|||
* @return 返回agencyId,agencyName,count |
|||
*/ |
|||
@Override |
|||
public PageData<CommunityLoginResultDTO> pageDistrictCount(String orgId, String level, Date startDate, Date endDate, Boolean isPage, Integer pageNo, Integer pageSize) { |
|||
if (StringUtils.isBlank(orgId)) { |
|||
CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(EpmetRequestHolder.getLoginUserCustomerId(), EpmetRequestHolder.getLoginUserId()); |
|||
orgId = staffInfoCacheResult.getAgencyId(); |
|||
} |
|||
if (isPage) { |
|||
PageHelper.startPage(pageNo, pageSize); |
|||
List<CommunityLoginResultDTO> list = baseDao.pageDistrictCount(orgId, startDate, endDate); |
|||
PageInfo<CommunityLoginResultDTO> pageInfo = new PageInfo<>(list); |
|||
return new PageData<>(list, pageInfo.getTotal(), pageSize); |
|||
} |
|||
// 不分页
|
|||
List<CommunityLoginResultDTO> list = baseDao.pageDistrictCount(orgId, startDate, endDate); |
|||
int total = CollectionUtils.isEmpty(list) ? NumConstant.ZERO : list.size(); |
|||
return new PageData<>(list, total, total); |
|||
} |
|||
|
|||
/** |
|||
* 查看街镇 |
|||
* |
|||
* @param orgId |
|||
* @param startDate |
|||
* @param endDate |
|||
* @param isPage |
|||
* @param pageNo |
|||
* @param pageSize |
|||
* @return |
|||
*/ |
|||
@Override |
|||
public PageData<CommunityLoginResultDTO> streetCount(String orgId, Date startDate, Date endDate, Boolean isPage, Integer pageNo, Integer pageSize) { |
|||
if (StringUtils.isBlank(orgId)) { |
|||
CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(EpmetRequestHolder.getLoginUserCustomerId(), EpmetRequestHolder.getLoginUserId()); |
|||
orgId = staffInfoCacheResult.getAgencyId(); |
|||
} |
|||
if (isPage) { |
|||
PageHelper.startPage(pageNo, pageSize); |
|||
List<CommunityLoginResultDTO> list = baseDao.pageStreetCount(orgId, startDate, endDate); |
|||
PageInfo<CommunityLoginResultDTO> pageInfo = new PageInfo<>(list); |
|||
return new PageData<>(list, pageInfo.getTotal(), pageSize); |
|||
} |
|||
// 不分页
|
|||
List<CommunityLoginResultDTO> list = baseDao.pageStreetCount(orgId, startDate, endDate); |
|||
int total = CollectionUtils.isEmpty(list) ? NumConstant.ZERO : list.size(); |
|||
return new PageData<>(list, total, total); |
|||
} |
|||
} |
@ -0,0 +1,2 @@ |
|||
ALTER TABLE `epmet_gov_org`.`customer_agency` |
|||
ADD COLUMN `REMARK` varchar(512) NULL COMMENT '备注说明' AFTER `REVISION`; |
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue