13 changed files with 709 additions and 0 deletions
			
			
		| @ -0,0 +1,52 @@ | |||||
|  | package com.epmet.dto; | ||||
|  | 
 | ||||
|  | import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; | ||||
|  | import lombok.Data; | ||||
|  | import org.hibernate.validator.constraints.Length; | ||||
|  | 
 | ||||
|  | import javax.validation.Valid; | ||||
|  | import javax.validation.constraints.NotBlank; | ||||
|  | import javax.validation.constraints.NotEmpty; | ||||
|  | import java.io.Serializable; | ||||
|  | import java.util.List; | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | /** | ||||
|  |  * 组织发布消息(烟台) | ||||
|  |  * | ||||
|  |  * @author generator generator@elink-cn.com | ||||
|  |  * @since v1.0.0 2023-05-04 | ||||
|  |  */ | ||||
|  | @Data | ||||
|  | public class OrganizationMessageFormDTO implements Serializable { | ||||
|  | 
 | ||||
|  |     private static final long serialVersionUID = 1L; | ||||
|  | 
 | ||||
|  |     public interface AddShowGroup extends CustomerClientShowGroup { | ||||
|  |     } | ||||
|  |     /** | ||||
|  |      * 发布渠道:0:专属app | ||||
|  |      */ | ||||
|  |     @NotBlank(message = "发布渠道不能为空", groups = {AddShowGroup.class}) | ||||
|  |     private String publishDitch; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 消息内容;最多输入500 | ||||
|  |      */ | ||||
|  |     @NotBlank(message = "内容不能为空", groups = {AddShowGroup.class}) | ||||
|  |     @Length(max = 500, message = "内容输入500字", groups = {AddShowGroup.class}) | ||||
|  |     private String content; | ||||
|  | 
 | ||||
|  |     @Valid | ||||
|  |     @NotEmpty(message = "发布范围不能为空", groups = {AddShowGroup.class}) | ||||
|  |     private List<OrganizationMessagePublishRangeDTO> rangeList; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 客户Id | ||||
|  |      */ | ||||
|  |     private String customerId; | ||||
|  |     /** | ||||
|  |      * 发布人staffId | ||||
|  |      */ | ||||
|  |     private String publishStaffId; | ||||
|  | } | ||||
| @ -0,0 +1,63 @@ | |||||
|  | package com.epmet.dto; | ||||
|  | 
 | ||||
|  | import lombok.Data; | ||||
|  | 
 | ||||
|  | import javax.validation.constraints.NotBlank; | ||||
|  | import java.io.Serializable; | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | /** | ||||
|  |  * 消息发布范围(烟台) | ||||
|  |  * | ||||
|  |  * @author generator generator@elink-cn.com | ||||
|  |  * @since v1.0.0 2023-05-04 | ||||
|  |  */ | ||||
|  | @Data | ||||
|  | public class OrganizationMessagePublishRangeDTO implements Serializable { | ||||
|  | 
 | ||||
|  |     private static final long serialVersionUID = 1L; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 主键 | ||||
|  |      */ | ||||
|  | 	private String id; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 客户Id | ||||
|  |      */ | ||||
|  | 	private String customerId; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 消息id:organization_message.id | ||||
|  |      */ | ||||
|  | 	private String messageId; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 组织或者网格id | ||||
|  |      */ | ||||
|  |     @NotBlank(message = "orgId不能为空",groups = {OrganizationMessageFormDTO.AddShowGroup.class}) | ||||
|  | 	private String orgId; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 组织:agency;网格:grid | ||||
|  |      */ | ||||
|  |     @NotBlank(message = "orgType不能为空",groups = {OrganizationMessageFormDTO.AddShowGroup.class}) | ||||
|  | 	private String orgType; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * org_id的父级 | ||||
|  |      */ | ||||
|  | 	private String pid; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * org_id的全路径,包含org_id | ||||
|  |      */ | ||||
|  | 	private String orgIdPath; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 组织名称或者网格名称;如果是网格名称,存储的是XXX社区-XX网格 | ||||
|  |      */ | ||||
|  | 	private String orgName; | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | } | ||||
| @ -0,0 +1,30 @@ | |||||
|  | package com.epmet.dto.form; | ||||
|  | 
 | ||||
|  | import com.epmet.commons.tools.dto.form.PageFormDTO; | ||||
|  | import lombok.Data; | ||||
|  | 
 | ||||
|  | /** | ||||
|  |  * @Description 烟台消息管理,列表查询入参 | ||||
|  |  * @Author yzm | ||||
|  |  * @Date 2023/5/4 16:05 | ||||
|  |  */ | ||||
|  | @Data | ||||
|  | public class OrganizationMessagePageFormDTO extends PageFormDTO { | ||||
|  |     /** | ||||
|  |      * 发布渠道:0:专属app | ||||
|  |      */ | ||||
|  |     private String publishDitch; | ||||
|  |     /** | ||||
|  |      * 发布范围,组织id或者网格id | ||||
|  |      */ | ||||
|  |     private String orgId; | ||||
|  |     /** | ||||
|  |      * yyyy-MM-dd | ||||
|  |      */ | ||||
|  |     private String startDate; | ||||
|  |     /** | ||||
|  |      * yyyy-MM-dd | ||||
|  |      */ | ||||
|  |     private String endDate; | ||||
|  | } | ||||
|  | 
 | ||||
| @ -0,0 +1,65 @@ | |||||
|  | package com.epmet.dto.result; | ||||
|  | 
 | ||||
|  | import com.fasterxml.jackson.annotation.JsonFormat; | ||||
|  | import lombok.Data; | ||||
|  | 
 | ||||
|  | import java.util.Date; | ||||
|  | 
 | ||||
|  | /** | ||||
|  |  * @Description 烟台消息管理,列表查询 | ||||
|  |  * @Author yzm | ||||
|  |  * @Date 2023/5/4 16:06 | ||||
|  |  */ | ||||
|  | @Data | ||||
|  | public class OrganizationMessageResultDTO { | ||||
|  |     /** | ||||
|  |      * 消息id | ||||
|  |      */ | ||||
|  |     private String messageId; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 发布渠道:0:专属app | ||||
|  |      */ | ||||
|  |     private String publishDitch; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 消息内容;最多输入500 | ||||
|  |      */ | ||||
|  |     private String content; | ||||
|  |     /** | ||||
|  |      * 发布范围 | ||||
|  |      */ | ||||
|  |     private String publishRangeName; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 发布时间 | ||||
|  |      */ | ||||
|  |     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") | ||||
|  |     private Date publishTime; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 发布人staffId | ||||
|  |      */ | ||||
|  |     private String publishStaffId; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 发布人姓名 | ||||
|  |      */ | ||||
|  |     private String publishStaffName; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 发布人所属组织id | ||||
|  |      */ | ||||
|  |     private String publishOrgId; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * org_id_path | ||||
|  |      */ | ||||
|  |     private String publishOrgIdPath; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 发布人所属组织名称 | ||||
|  |      */ | ||||
|  |     private String publishOrgName; | ||||
|  | } | ||||
|  | 
 | ||||
| @ -0,0 +1,73 @@ | |||||
|  | package com.epmet.controller; | ||||
|  | 
 | ||||
|  | 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.Result; | ||||
|  | import com.epmet.commons.tools.validator.ValidatorUtils; | ||||
|  | import com.epmet.dto.OrganizationMessageFormDTO; | ||||
|  | import com.epmet.dto.form.OrganizationMessagePageFormDTO; | ||||
|  | import com.epmet.dto.result.OrganizationMessageResultDTO; | ||||
|  | import com.epmet.service.OrganizationMessageService; | ||||
|  | import org.apache.commons.lang3.StringUtils; | ||||
|  | import org.springframework.beans.factory.annotation.Autowired; | ||||
|  | import org.springframework.web.bind.annotation.*; | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | /** | ||||
|  |  * 组织发布消息(烟台) | ||||
|  |  * | ||||
|  |  * @author generator generator@elink-cn.com | ||||
|  |  * @since v1.0.0 2023-05-04 | ||||
|  |  */ | ||||
|  | @RestController | ||||
|  | @RequestMapping("organization/message") | ||||
|  | public class OrganizationMessageController { | ||||
|  | 
 | ||||
|  |     @Autowired | ||||
|  |     private OrganizationMessageService organizationMessageService; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 列表查询 | ||||
|  |      * | ||||
|  |      * @param formDTO | ||||
|  |      * @return | ||||
|  |      */ | ||||
|  |     @PostMapping("list") | ||||
|  |     public Result<PageData<OrganizationMessageResultDTO>> pageList(@RequestBody OrganizationMessagePageFormDTO formDTO) { | ||||
|  |         return new Result<PageData<OrganizationMessageResultDTO>>().ok(organizationMessageService.pageList(formDTO.getPageNo(), formDTO.getPageSize(), | ||||
|  |                 formDTO.getPublishDitch(), | ||||
|  |                 formDTO.getOrgId(), | ||||
|  |                 formDTO.getStartDate(), | ||||
|  |                 formDTO.getEndDate())); | ||||
|  |     } | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 查询消息详情 | ||||
|  |      * | ||||
|  |      * @param messageId | ||||
|  |      * @return | ||||
|  |      */ | ||||
|  |     @PostMapping("detail/{messageId}") | ||||
|  |     public Result<OrganizationMessageResultDTO> getDetail(@PathVariable("messageId") String messageId) { | ||||
|  |         if (StringUtils.isBlank(messageId)) { | ||||
|  |             return new Result<>(); | ||||
|  |         } | ||||
|  |         return new Result<OrganizationMessageResultDTO>().ok(organizationMessageService.getDetail(messageId)); | ||||
|  |     } | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 发布消息 | ||||
|  |      * | ||||
|  |      * @param formDTO | ||||
|  |      * @return 返回消息id | ||||
|  |      */ | ||||
|  |     @PostMapping("publish") | ||||
|  |     public Result publish(@LoginUser TokenDto tokenDto, @RequestBody OrganizationMessageFormDTO formDTO) { | ||||
|  |         formDTO.setCustomerId(tokenDto.getCustomerId()); | ||||
|  |         formDTO.setPublishStaffId(tokenDto.getUserId()); | ||||
|  |         ValidatorUtils.validateEntity(formDTO, OrganizationMessageFormDTO.AddShowGroup.class); | ||||
|  |         return new Result().ok(organizationMessageService.publish(formDTO)); | ||||
|  |     } | ||||
|  | 
 | ||||
|  | } | ||||
| @ -0,0 +1,36 @@ | |||||
|  | package com.epmet.dao; | ||||
|  | 
 | ||||
|  | import com.epmet.commons.mybatis.dao.BaseDao; | ||||
|  | import com.epmet.dto.result.OrganizationMessageResultDTO; | ||||
|  | import com.epmet.entity.OrganizationMessageEntity; | ||||
|  | import org.apache.ibatis.annotations.Mapper; | ||||
|  | import org.apache.ibatis.annotations.Param; | ||||
|  | 
 | ||||
|  | import java.util.List; | ||||
|  | 
 | ||||
|  | /** | ||||
|  |  * 组织发布消息(烟台) | ||||
|  |  * | ||||
|  |  * @author generator generator@elink-cn.com | ||||
|  |  * @since v1.0.0 2023-05-04 | ||||
|  |  */ | ||||
|  | @Mapper | ||||
|  | public interface OrganizationMessageDao extends BaseDao<OrganizationMessageEntity> { | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * | ||||
|  |      * @param staffOrgIdPath 工作人员所属组织的orgIdPath | ||||
|  |      * @param publishDitch 发布渠道;0:专属app | ||||
|  |      * @param orgId 发布范围,组织id或者网格id | ||||
|  |      * @param startDate yyyy-MM-dd | ||||
|  |      * @param endDate yyyy-MM-dd | ||||
|  |      * @return | ||||
|  |      */ | ||||
|  |     List<OrganizationMessageResultDTO> pageList(@Param("customerId")String customerId, | ||||
|  |                                                 @Param("staffOrgIdPath") String staffOrgIdPath, | ||||
|  |                                                 @Param("publishDitch")String publishDitch, | ||||
|  |                                                 @Param("orgId")String orgId, | ||||
|  |                                                 @Param("startDate")String startDate, | ||||
|  |                                                 @Param("endDate")String endDate, | ||||
|  |                                                 @Param("messageId")String messageId); | ||||
|  | } | ||||
| @ -0,0 +1,16 @@ | |||||
|  | package com.epmet.dao; | ||||
|  | 
 | ||||
|  | import com.epmet.commons.mybatis.dao.BaseDao; | ||||
|  | import com.epmet.entity.OrganizationMessagePublishRangeEntity; | ||||
|  | import org.apache.ibatis.annotations.Mapper; | ||||
|  | 
 | ||||
|  | /** | ||||
|  |  * 消息发布范围(烟台) | ||||
|  |  * | ||||
|  |  * @author generator generator@elink-cn.com | ||||
|  |  * @since v1.0.0 2023-05-04 | ||||
|  |  */ | ||||
|  | @Mapper | ||||
|  | public interface OrganizationMessagePublishRangeDao extends BaseDao<OrganizationMessagePublishRangeEntity> { | ||||
|  | 	 | ||||
|  | } | ||||
| @ -0,0 +1,69 @@ | |||||
|  | 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-05-04 | ||||
|  |  */ | ||||
|  | @Data | ||||
|  | @EqualsAndHashCode(callSuper=false) | ||||
|  | @TableName("organization_message") | ||||
|  | public class OrganizationMessageEntity extends BaseEpmetEntity { | ||||
|  | 
 | ||||
|  | 	private static final long serialVersionUID = 1L; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 客户Id | ||||
|  |      */ | ||||
|  | 	private String customerId; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 发布渠道:0:专属app | ||||
|  |      */ | ||||
|  | 	private String publishDitch; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 消息内容;最多输入500 | ||||
|  |      */ | ||||
|  | 	private String content; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 发布人staffId | ||||
|  |      */ | ||||
|  | 	private String publishStaffId; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 发布人姓名 | ||||
|  |      */ | ||||
|  | 	private String publishStaffName; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 发布人所属组织id | ||||
|  |      */ | ||||
|  | 	private String publishOrgId; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * org_id_path | ||||
|  |      */ | ||||
|  | 	private String publishOrgIdPath; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 发布人所属组织名称 | ||||
|  |      */ | ||||
|  | 	private String publishOrgName; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 发布时间 | ||||
|  |      */ | ||||
|  | 	private Date publishTime; | ||||
|  | 
 | ||||
|  | } | ||||
| @ -0,0 +1,56 @@ | |||||
|  | 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-05-04 | ||||
|  |  */ | ||||
|  | @Data | ||||
|  | @EqualsAndHashCode(callSuper=false) | ||||
|  | @TableName("organization_message_publish_range") | ||||
|  | public class OrganizationMessagePublishRangeEntity extends BaseEpmetEntity { | ||||
|  | 
 | ||||
|  | 	private static final long serialVersionUID = 1L; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 客户Id | ||||
|  |      */ | ||||
|  | 	private String customerId; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 消息id:organization_message.id | ||||
|  |      */ | ||||
|  | 	private String messageId; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 组织或者网格id | ||||
|  |      */ | ||||
|  | 	private String orgId; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 组织:agency;网格:grid | ||||
|  |      */ | ||||
|  | 	private String orgType; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * org_id的父级 | ||||
|  |      */ | ||||
|  | 	private String pid; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * org_id的全路径,包含org_id | ||||
|  |      */ | ||||
|  | 	private String orgIdPath; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 组织名称或者网格名称;如果是网格名称,存储的是XXX社区-XX网格 | ||||
|  |      */ | ||||
|  | 	private String orgName; | ||||
|  | 
 | ||||
|  | } | ||||
| @ -0,0 +1,42 @@ | |||||
|  | package com.epmet.service; | ||||
|  | 
 | ||||
|  | import com.epmet.commons.mybatis.service.BaseService; | ||||
|  | import com.epmet.commons.tools.page.PageData; | ||||
|  | import com.epmet.dto.OrganizationMessageFormDTO; | ||||
|  | import com.epmet.dto.result.OrganizationMessageResultDTO; | ||||
|  | import com.epmet.entity.OrganizationMessageEntity; | ||||
|  | 
 | ||||
|  | /** | ||||
|  |  * 组织发布消息(烟台) | ||||
|  |  * | ||||
|  |  * @author generator generator@elink-cn.com | ||||
|  |  * @since v1.0.0 2023-05-04 | ||||
|  |  */ | ||||
|  | public interface OrganizationMessageService extends BaseService<OrganizationMessageEntity> { | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 分页列表 | ||||
|  |      * @param pageNo | ||||
|  |      * @param pageSize | ||||
|  |      * @param publishDitch 发布渠道;0:专属app | ||||
|  |      * @param orgId 发布范围,组织id或者网格id | ||||
|  |      * @param startDate yyyy-MM-dd | ||||
|  |      * @param endDate yyyy-MM-dd | ||||
|  |      * @return | ||||
|  |      */ | ||||
|  |     PageData<OrganizationMessageResultDTO> pageList(Integer pageNo, Integer pageSize, String publishDitch, String orgId, String startDate, String endDate); | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 查询详情 | ||||
|  |      * @param messageId | ||||
|  |      * @return | ||||
|  |      */ | ||||
|  |     OrganizationMessageResultDTO getDetail(String messageId); | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 发布消息 | ||||
|  |      * @param formDTO | ||||
|  |      * @return 返回消息id | ||||
|  |      */ | ||||
|  |     String publish(OrganizationMessageFormDTO formDTO); | ||||
|  | } | ||||
| @ -0,0 +1,122 @@ | |||||
|  | package com.epmet.service.impl; | ||||
|  | 
 | ||||
|  | import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; | ||||
|  | import com.epmet.commons.tools.constant.NumConstant; | ||||
|  | import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; | ||||
|  | import com.epmet.commons.tools.enums.OrgTypeEnum; | ||||
|  | import com.epmet.commons.tools.page.PageData; | ||||
|  | import com.epmet.commons.tools.redis.common.CustomerOrgRedis; | ||||
|  | import com.epmet.commons.tools.redis.common.CustomerStaffRedis; | ||||
|  | import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; | ||||
|  | import com.epmet.commons.tools.redis.common.bean.GridInfoCache; | ||||
|  | import com.epmet.commons.tools.utils.ConvertUtils; | ||||
|  | import com.epmet.commons.tools.utils.EpmetRequestHolder; | ||||
|  | import com.epmet.commons.tools.utils.PidUtils; | ||||
|  | import com.epmet.dao.OrganizationMessageDao; | ||||
|  | import com.epmet.dao.OrganizationMessagePublishRangeDao; | ||||
|  | import com.epmet.dto.OrganizationMessageFormDTO; | ||||
|  | import com.epmet.dto.OrganizationMessagePublishRangeDTO; | ||||
|  | import com.epmet.dto.result.OrganizationMessageResultDTO; | ||||
|  | import com.epmet.entity.OrganizationMessageEntity; | ||||
|  | import com.epmet.entity.OrganizationMessagePublishRangeEntity; | ||||
|  | import com.epmet.service.OrganizationMessageService; | ||||
|  | import com.github.pagehelper.PageHelper; | ||||
|  | import com.github.pagehelper.PageInfo; | ||||
|  | import org.apache.commons.collections4.CollectionUtils; | ||||
|  | import org.springframework.beans.factory.annotation.Autowired; | ||||
|  | import org.springframework.stereotype.Service; | ||||
|  | import org.springframework.transaction.annotation.Transactional; | ||||
|  | 
 | ||||
|  | import java.util.Date; | ||||
|  | import java.util.List; | ||||
|  | 
 | ||||
|  | /** | ||||
|  |  * 组织发布消息(烟台) | ||||
|  |  * | ||||
|  |  * @author generator generator@elink-cn.com | ||||
|  |  * @since v1.0.0 2023-05-04 | ||||
|  |  */ | ||||
|  | @Service | ||||
|  | public class OrganizationMessageServiceImpl extends BaseServiceImpl<OrganizationMessageDao, OrganizationMessageEntity> implements OrganizationMessageService { | ||||
|  |     @Autowired | ||||
|  |     private OrganizationMessagePublishRangeDao organizationMessagePublishRangeDao; | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 分页列表 | ||||
|  |      * | ||||
|  |      * @param pageNo | ||||
|  |      * @param pageSize | ||||
|  |      * @param publishDitch 发布渠道;0:专属app | ||||
|  |      * @param orgId 发布范围,组织id或者网格id | ||||
|  |      * @param startDate yyyy-MM-dd | ||||
|  |      * @param endDate yyyy-MM-dd | ||||
|  |      * @return | ||||
|  |      */ | ||||
|  |     @Override | ||||
|  |     public PageData<OrganizationMessageResultDTO> pageList(Integer pageNo, Integer pageSize, String publishDitch, String orgId, String startDate, String endDate) { | ||||
|  |         CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(EpmetRequestHolder.getLoginUserCustomerId(), EpmetRequestHolder.getLoginUserId()); | ||||
|  |         String staffOrgIdPath = PidUtils.convertPid2OrgIdPath(staffInfoCacheResult.getAgencyId(), staffInfoCacheResult.getAgencyPIds()); | ||||
|  |         PageHelper.startPage(pageNo, pageSize); | ||||
|  |         List<OrganizationMessageResultDTO> list = baseDao.pageList(EpmetRequestHolder.getLoginUserCustomerId(),staffOrgIdPath, publishDitch, orgId, startDate, endDate,null); | ||||
|  |         PageInfo<OrganizationMessageResultDTO> pageInfo = new PageInfo<>(list); | ||||
|  |         return new PageData<>(list, pageInfo.getTotal()); | ||||
|  |     } | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 查询详情 | ||||
|  |      * | ||||
|  |      * @param messageId | ||||
|  |      * @return | ||||
|  |      */ | ||||
|  |     @Override | ||||
|  |     public OrganizationMessageResultDTO getDetail(String messageId) { | ||||
|  |         List<OrganizationMessageResultDTO> list = baseDao.pageList(EpmetRequestHolder.getLoginUserCustomerId(),null, null, null, null, null,messageId); | ||||
|  |         if(CollectionUtils.isNotEmpty(list)){ | ||||
|  |             return list.get(NumConstant.ZERO); | ||||
|  |         } | ||||
|  |         return null; | ||||
|  |     } | ||||
|  | 
 | ||||
|  |     /** | ||||
|  |      * 发布消息 | ||||
|  |      * | ||||
|  |      * @param formDTO | ||||
|  |      * @return 返回消息id | ||||
|  |      */ | ||||
|  |     @Transactional(rollbackFor = Exception.class) | ||||
|  |     @Override | ||||
|  |     public String publish(OrganizationMessageFormDTO formDTO) { | ||||
|  |         OrganizationMessageEntity messageEntity = ConvertUtils.sourceToTarget(formDTO, OrganizationMessageEntity.class); | ||||
|  |         CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getPublishStaffId()); | ||||
|  |         messageEntity.setPublishStaffName(staffInfoCacheResult.getRealName()); | ||||
|  |         messageEntity.setPublishOrgId(staffInfoCacheResult.getAgencyId()); | ||||
|  |         messageEntity.setPublishOrgIdPath(PidUtils.convertPid2OrgIdPath(staffInfoCacheResult.getAgencyId(), staffInfoCacheResult.getAgencyPIds())); | ||||
|  |         messageEntity.setPublishOrgName(staffInfoCacheResult.getAgencyName()); | ||||
|  |         messageEntity.setPublishTime(new Date()); | ||||
|  |         baseDao.insert(messageEntity); | ||||
|  |         for (OrganizationMessagePublishRangeDTO dto : formDTO.getRangeList()) { | ||||
|  |             OrganizationMessagePublishRangeEntity rangeEntity = new OrganizationMessagePublishRangeEntity(); | ||||
|  |             rangeEntity.setCustomerId(messageEntity.getCustomerId()); | ||||
|  |             rangeEntity.setMessageId(messageEntity.getId()); | ||||
|  |             rangeEntity.setOrgId(dto.getOrgId()); | ||||
|  |             rangeEntity.setOrgType(dto.getOrgType()); | ||||
|  |             if (OrgTypeEnum.GRID.getCode().equals(dto.getOrgType())) { | ||||
|  |                 GridInfoCache gridInfoCache = CustomerOrgRedis.getGridInfo(dto.getOrgId()); | ||||
|  |                 rangeEntity.setPid(gridInfoCache.getPid()); | ||||
|  |                 rangeEntity.setOrgIdPath(PidUtils.convertPid2OrgIdPath(dto.getOrgId(), gridInfoCache.getPids())); | ||||
|  |                 rangeEntity.setOrgName(gridInfoCache.getGridNamePath()); | ||||
|  |             } else if (OrgTypeEnum.AGENCY.getCode().equals(dto.getOrgType())) { | ||||
|  |                 AgencyInfoCache agencyInfoCache = CustomerOrgRedis.getAgencyInfo(dto.getOrgId()); | ||||
|  |                 rangeEntity.setPid(agencyInfoCache.getPid()); | ||||
|  |                 rangeEntity.setOrgIdPath(PidUtils.convertPid2OrgIdPath(dto.getOrgId(), agencyInfoCache.getPids())); | ||||
|  |                 rangeEntity.setOrgName(agencyInfoCache.getOrganizationName()); | ||||
|  |             } | ||||
|  |             organizationMessagePublishRangeDao.insert(rangeEntity); | ||||
|  |         } | ||||
|  |         String messageId = messageEntity.getId(); | ||||
|  |         // todo 发送消息 发布范围下有哪些网格,网格下所有的注册居民,每人发送一条消息
 | ||||
|  |         return messageId; | ||||
|  |     } | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | } | ||||
| @ -0,0 +1,61 @@ | |||||
|  | <?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.OrganizationMessageDao"> | ||||
|  | 
 | ||||
|  |     <resultMap type="com.epmet.entity.OrganizationMessageEntity" id="organizationMessageMap"> | ||||
|  |         <result property="id" column="ID"/> | ||||
|  |         <result property="customerId" column="CUSTOMER_ID"/> | ||||
|  |         <result property="publishDitch" column="PUBLISH_DITCH"/> | ||||
|  |         <result property="content" column="CONTENT"/> | ||||
|  |         <result property="publishStaffId" column="PUBLISH_STAFF_ID"/> | ||||
|  |         <result property="publishStaffName" column="PUBLISH_STAFF_NAME"/> | ||||
|  |         <result property="publishOrgId" column="PUBLISH_ORG_ID"/> | ||||
|  |         <result property="publishOrgIdPath" column="PUBLISH_ORG_ID_PATH"/> | ||||
|  |         <result property="publishOrgName" column="PUBLISH_ORG_NAME"/> | ||||
|  |         <result property="publishTime" column="PUBLISH_TIME"/> | ||||
|  |         <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="pageList" parameterType="map" resultType="com.epmet.dto.result.OrganizationMessageResultDTO"> | ||||
|  |         select | ||||
|  |             distinct om.ID as messageId, | ||||
|  |             om.PUBLISH_DITCH as publishDitch, | ||||
|  |             om.CONTENT as content, | ||||
|  |             om.PUBLISH_TIME as publishTime, | ||||
|  |             om.PUBLISH_STAFF_ID as publishStaffId, | ||||
|  |             om.PUBLISH_ORG_ID as publishStaffName, | ||||
|  |             om.PUBLISH_ORG_ID_PATH as publishOrgIdPath, | ||||
|  |             OM.PUBLISH_ORG_NAME as publishOrgName, | ||||
|  |             GROUP_CONCAT(r.ORG_NAME) as publishRangeName | ||||
|  |         from organization_message om | ||||
|  |         left join organization_message_publish_range r | ||||
|  |             on(om.id=r.MESSAGE_ID and r.del_flag='0') | ||||
|  |         where om.DEL_FLAG='0' | ||||
|  |           and om.CUSTOMER_ID =#{customerId} | ||||
|  |         <if test='staffOrgIdPath != null and staffOrgIdPath != "" '> | ||||
|  |             and om.PUBLISH_ORG_ID_PATH like concat(#{staffOrgIdPath},'%') | ||||
|  |         </if> | ||||
|  |         <if test='publishDitch != null and publishDitch != "" '> | ||||
|  |            and om.PUBLISH_DITCH =#{publishDitch} | ||||
|  |         </if> | ||||
|  |         <if test='orgId != null and orgId != "" '> | ||||
|  |            and r.ORG_ID =#{orgId} | ||||
|  |         </if> | ||||
|  |         <if test='startDate != null and startDate != "" '> | ||||
|  |             AND DATE_FORMAT(om.PUBLISH_TIME,'%Y-%m-%d') >= #{startDate} | ||||
|  |         </if> | ||||
|  |         <if test='endDate != null and endDate != "" '> | ||||
|  |             AND DATE_FORMAT(om.PUBLISH_TIME,'%Y-%m-%d') <![CDATA[ <= ]]> #{endDate} | ||||
|  |         </if> | ||||
|  |         <if test='messageId != null and messageId != "" '> | ||||
|  |             and om.id =#{messageId} | ||||
|  |         </if> | ||||
|  |         order by om.PUBLISH_TIME desc | ||||
|  |     </select> | ||||
|  | </mapper> | ||||
| @ -0,0 +1,24 @@ | |||||
|  | <?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.OrganizationMessagePublishRangeDao"> | ||||
|  | 
 | ||||
|  |     <resultMap type="com.epmet.entity.OrganizationMessagePublishRangeEntity" id="organizationMessagePublishRangeMap"> | ||||
|  |         <result property="id" column="ID"/> | ||||
|  |         <result property="customerId" column="CUSTOMER_ID"/> | ||||
|  |         <result property="messageId" column="MESSAGE_ID"/> | ||||
|  |         <result property="orgId" column="ORG_ID"/> | ||||
|  |         <result property="orgType" column="ORG_TYPE"/> | ||||
|  |         <result property="pid" column="PID"/> | ||||
|  |         <result property="orgIdPath" column="ORG_ID_PATH"/> | ||||
|  |         <result property="orgName" column="ORG_NAME"/> | ||||
|  |         <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> | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | </mapper> | ||||
					Loading…
					
					
				
		Reference in new issue