Browse Source

保存了内容,还没发消息

master
yinzuomei 2 years ago
parent
commit
09fc9988fb
  1. 100
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/OrganizationMessageDTO.java
  2. 52
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/OrganizationMessageFormDTO.java
  3. 36
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/OrganizationMessagePublishRangeDTO.java
  4. 40
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/OrganizationMessageController.java
  5. 20
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/OrganizationMessageDao.java
  6. 15
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/OrganizationMessageService.java
  7. 84
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/OrganizationMessageServiceImpl.java
  8. 37
      epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/OrganizationMessageDao.xml

100
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/OrganizationMessageDTO.java

@ -1,100 +0,0 @@
package com.epmet.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 组织发布消息烟台
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2023-05-04
*/
@Data
public class OrganizationMessageDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private String id;
/**
* 客户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.未删除 1.已删除
*/
private Integer delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

52
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/OrganizationMessageFormDTO.java

@ -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;
}

36
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/OrganizationMessagePublishRangeDTO.java

@ -1,9 +1,10 @@
package com.epmet.dto; package com.epmet.dto;
import java.io.Serializable;
import java.util.Date;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/** /**
* 消息发布范围烟台 * 消息发布范围烟台
@ -34,11 +35,13 @@ public class OrganizationMessagePublishRangeDTO implements Serializable {
/** /**
* 组织或者网格id * 组织或者网格id
*/ */
@NotBlank(message = "orgId不能为空",groups = {OrganizationMessageFormDTO.AddShowGroup.class})
private String orgId; private String orgId;
/** /**
* 组织agency网格grid * 组织agency网格grid
*/ */
@NotBlank(message = "orgType不能为空",groups = {OrganizationMessageFormDTO.AddShowGroup.class})
private String orgType; private String orgType;
/** /**
@ -56,34 +59,5 @@ public class OrganizationMessagePublishRangeDTO implements Serializable {
*/ */
private String orgName; private String orgName;
/**
* 删除标识0.未删除 1.已删除
*/
private Integer delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
} }

40
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/OrganizationMessageController.java

@ -1,15 +1,17 @@
package com.epmet.controller; package com.epmet.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.page.PageData; 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.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.OrganizationMessageFormDTO;
import com.epmet.dto.form.OrganizationMessagePageFormDTO; import com.epmet.dto.form.OrganizationMessagePageFormDTO;
import com.epmet.dto.result.OrganizationMessageResultDTO; import com.epmet.dto.result.OrganizationMessageResultDTO;
import com.epmet.service.OrganizationMessageService; import com.epmet.service.OrganizationMessageService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/** /**
@ -40,10 +42,32 @@ public class OrganizationMessageController {
formDTO.getEndDate())); 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));
}
} }

20
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/OrganizationMessageDao.java

@ -1,8 +1,12 @@
package com.epmet.dao; package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.result.OrganizationMessageResultDTO;
import com.epmet.entity.OrganizationMessageEntity; import com.epmet.entity.OrganizationMessageEntity;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* 组织发布消息烟台 * 组织发布消息烟台
@ -13,4 +17,20 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper @Mapper
public interface OrganizationMessageDao extends BaseDao<OrganizationMessageEntity> { 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);
} }

15
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/OrganizationMessageService.java

@ -2,6 +2,7 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.OrganizationMessageFormDTO;
import com.epmet.dto.result.OrganizationMessageResultDTO; import com.epmet.dto.result.OrganizationMessageResultDTO;
import com.epmet.entity.OrganizationMessageEntity; import com.epmet.entity.OrganizationMessageEntity;
@ -24,4 +25,18 @@ public interface OrganizationMessageService extends BaseService<OrganizationMess
* @return * @return
*/ */
PageData<OrganizationMessageResultDTO> pageList(Integer pageNo, Integer pageSize, String publishDitch, String orgId, String startDate, String endDate); 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);
} }

84
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/OrganizationMessageServiceImpl.java

@ -1,16 +1,34 @@
package com.epmet.service.impl; package com.epmet.service.impl;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; 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.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.enums.OrgTypeEnum;
import com.epmet.commons.tools.page.PageData; 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.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.EpmetRequestHolder;
import com.epmet.commons.tools.utils.PidUtils;
import com.epmet.dao.OrganizationMessageDao; 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.dto.result.OrganizationMessageResultDTO;
import com.epmet.entity.OrganizationMessageEntity; import com.epmet.entity.OrganizationMessageEntity;
import com.epmet.entity.OrganizationMessagePublishRangeEntity;
import com.epmet.service.OrganizationMessageService; import com.epmet.service.OrganizationMessageService;
import com.github.pagehelper.PageHelper; 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.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
/** /**
* 组织发布消息烟台 * 组织发布消息烟台
@ -20,6 +38,9 @@ import org.springframework.stereotype.Service;
*/ */
@Service @Service
public class OrganizationMessageServiceImpl extends BaseServiceImpl<OrganizationMessageDao, OrganizationMessageEntity> implements OrganizationMessageService { public class OrganizationMessageServiceImpl extends BaseServiceImpl<OrganizationMessageDao, OrganizationMessageEntity> implements OrganizationMessageService {
@Autowired
private OrganizationMessagePublishRangeDao organizationMessagePublishRangeDao;
/** /**
* 分页列表 * 分页列表
* *
@ -34,9 +55,68 @@ public class OrganizationMessageServiceImpl extends BaseServiceImpl<Organization
@Override @Override
public PageData<OrganizationMessageResultDTO> pageList(Integer pageNo, Integer pageSize, String publishDitch, String orgId, String startDate, String endDate) { public PageData<OrganizationMessageResultDTO> pageList(Integer pageNo, Integer pageSize, String publishDitch, String orgId, String startDate, String endDate) {
CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(EpmetRequestHolder.getLoginUserCustomerId(), EpmetRequestHolder.getLoginUserId()); CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(EpmetRequestHolder.getLoginUserCustomerId(), EpmetRequestHolder.getLoginUserId());
String staffOrgIdPath = PidUtils.convertPid2OrgIdPath(staffInfoCacheResult.getAgencyId(), staffInfoCacheResult.getAgencyPIds());
PageHelper.startPage(pageNo, pageSize); PageHelper.startPage(pageNo, pageSize);
//todo List<OrganizationMessageResultDTO> list = baseDao.pageList(EpmetRequestHolder.getLoginUserCustomerId(),staffOrgIdPath, publishDitch, orgId, startDate, endDate,null);
// List<OrganizationMessageResultDTO> list=baseDao.pageList(staffOrgIdPath,publishDitch,orgId,startDate,endDate); 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; 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;
}
} }

37
epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/OrganizationMessageDao.xml

@ -22,5 +22,40 @@
<result property="updatedTime" column="UPDATED_TIME"/> <result property="updatedTime" column="UPDATED_TIME"/>
</resultMap> </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> </mapper>
Loading…
Cancel
Save