forked from rongchao/epmet-cloud-rizhao
9 changed files with 399 additions and 1 deletions
@ -0,0 +1,100 @@ |
|||||
|
package com.epmet.dto; |
||||
|
|
||||
|
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; |
||||
|
import com.fasterxml.jackson.annotation.JsonFormat; |
||||
|
import lombok.Data; |
||||
|
import org.hibernate.validator.constraints.Length; |
||||
|
|
||||
|
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-02 |
||||
|
*/ |
||||
|
@Data |
||||
|
public class IssueCommentDTO implements Serializable { |
||||
|
|
||||
|
private static final long serialVersionUID = 1L; |
||||
|
public interface AddUserInternalGroup { |
||||
|
} |
||||
|
|
||||
|
public interface AddUserShowGroup extends CustomerClientShowGroup { |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 议题ID |
||||
|
*/ |
||||
|
@NotBlank(message = "issueId不能为空",groups = AddUserInternalGroup.class) |
||||
|
private String issueId; |
||||
|
|
||||
|
/** |
||||
|
* 主键ID |
||||
|
*/ |
||||
|
private String id; |
||||
|
|
||||
|
/** |
||||
|
* 客户ID |
||||
|
*/ |
||||
|
private String customerId; |
||||
|
|
||||
|
/** |
||||
|
* 评论内容至多200字 |
||||
|
*/ |
||||
|
@Length(max = 200,message = "评论内容最多输入200字",groups = AddUserShowGroup.class) |
||||
|
@NotBlank(message = "content不能为空",groups = AddUserInternalGroup.class) |
||||
|
private String content; |
||||
|
|
||||
|
/** |
||||
|
* 评论用户id |
||||
|
*/ |
||||
|
private String userId; |
||||
|
|
||||
|
/** |
||||
|
* 姓名 |
||||
|
*/ |
||||
|
private String userName; |
||||
|
|
||||
|
/** |
||||
|
* 头像 |
||||
|
*/ |
||||
|
private String headPhoto; |
||||
|
|
||||
|
/** |
||||
|
* 删除标识 0.未删除 1.已删除 |
||||
|
*/ |
||||
|
private String delFlag; |
||||
|
|
||||
|
/** |
||||
|
* 乐观锁 |
||||
|
*/ |
||||
|
private Integer revision; |
||||
|
|
||||
|
/** |
||||
|
* 创建人 |
||||
|
*/ |
||||
|
private String createdBy; |
||||
|
|
||||
|
/** |
||||
|
* 创建时间 |
||||
|
*/ |
||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") |
||||
|
private Date createdTime; |
||||
|
|
||||
|
/** |
||||
|
* 更新人 |
||||
|
*/ |
||||
|
private String updatedBy; |
||||
|
|
||||
|
/** |
||||
|
* 更新时间 |
||||
|
*/ |
||||
|
private Date updatedTime; |
||||
|
|
||||
|
private String commentId; |
||||
|
|
||||
|
} |
@ -0,0 +1,18 @@ |
|||||
|
package com.epmet.dto.form; |
||||
|
|
||||
|
import com.epmet.commons.tools.dto.form.PageFormDTO; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
import javax.validation.constraints.NotBlank; |
||||
|
|
||||
|
/** |
||||
|
* @Description |
||||
|
* @Author yzm |
||||
|
* @Date 2023/2/2 13:45 |
||||
|
*/ |
||||
|
@Data |
||||
|
public class IssueCommentPageFormDTO extends PageFormDTO { |
||||
|
@NotBlank(message = "issueId不能为空",groups = AddUserInternalGroup.class) |
||||
|
private String issueId; |
||||
|
} |
||||
|
|
@ -0,0 +1,61 @@ |
|||||
|
package com.epmet.controller; |
||||
|
|
||||
|
import com.epmet.commons.tools.annotation.LoginUser; |
||||
|
import com.epmet.commons.tools.aop.NoRepeatSubmit; |
||||
|
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.IssueCommentDTO; |
||||
|
import com.epmet.dto.form.IssueCommentPageFormDTO; |
||||
|
import com.epmet.service.IssueCommentService; |
||||
|
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; |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 议题评论表 |
||||
|
* 目前只有烟台客户,钉钉居民端,议事厅,可以发表评论 |
||||
|
* 产品没有此功能 |
||||
|
* @author generator generator@elink-cn.com |
||||
|
* @since v1.0.0 2023-02-02 |
||||
|
*/ |
||||
|
@RestController |
||||
|
@RequestMapping("issuecomment") |
||||
|
public class IssueCommentController { |
||||
|
|
||||
|
@Autowired |
||||
|
private IssueCommentService issueCommentService; |
||||
|
|
||||
|
/** |
||||
|
* 议题评论列表 |
||||
|
* @param formDTO |
||||
|
* @return |
||||
|
*/ |
||||
|
@RequestMapping("page") |
||||
|
public Result<PageData<IssueCommentDTO>> page(@RequestBody IssueCommentPageFormDTO formDTO){ |
||||
|
PageData<IssueCommentDTO> page = issueCommentService.page(formDTO); |
||||
|
return new Result<PageData<IssueCommentDTO>>().ok(page); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 议题评论 |
||||
|
* @param tokenDto |
||||
|
* @param dto |
||||
|
* @return |
||||
|
*/ |
||||
|
@NoRepeatSubmit |
||||
|
@PostMapping("save") |
||||
|
public Result save(@LoginUser TokenDto tokenDto, @RequestBody IssueCommentDTO dto){ |
||||
|
dto.setCustomerId(tokenDto.getCustomerId()); |
||||
|
dto.setUserId(tokenDto.getUserId()); |
||||
|
ValidatorUtils.validateEntity(dto,IssueCommentDTO.AddUserShowGroup.class,IssueCommentDTO.AddUserInternalGroup.class); |
||||
|
issueCommentService.save(dto); |
||||
|
return new Result(); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
@ -0,0 +1,20 @@ |
|||||
|
package com.epmet.dao; |
||||
|
|
||||
|
import com.epmet.commons.mybatis.dao.BaseDao; |
||||
|
import com.epmet.dto.IssueCommentDTO; |
||||
|
import com.epmet.entity.IssueCommentEntity; |
||||
|
import org.apache.ibatis.annotations.Mapper; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* 议题评论表 |
||||
|
* |
||||
|
* @author generator generator@elink-cn.com |
||||
|
* @since v1.0.0 2023-02-02 |
||||
|
*/ |
||||
|
@Mapper |
||||
|
public interface IssueCommentDao extends BaseDao<IssueCommentEntity> { |
||||
|
|
||||
|
List<IssueCommentDTO> selectCommentList(String issueId); |
||||
|
} |
@ -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-02-02 |
||||
|
*/ |
||||
|
@Data |
||||
|
@EqualsAndHashCode(callSuper=false) |
||||
|
@TableName("issue_comment") |
||||
|
public class IssueCommentEntity extends BaseEpmetEntity { |
||||
|
|
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
/** |
||||
|
* 议题ID |
||||
|
*/ |
||||
|
private String issueId; |
||||
|
|
||||
|
/** |
||||
|
* 客户ID |
||||
|
*/ |
||||
|
private String customerId; |
||||
|
|
||||
|
/** |
||||
|
* 评论内容至多200字 |
||||
|
*/ |
||||
|
private String content; |
||||
|
|
||||
|
/** |
||||
|
* 评论用户id |
||||
|
*/ |
||||
|
private String userId; |
||||
|
|
||||
|
/** |
||||
|
* 姓名 |
||||
|
*/ |
||||
|
private String userName; |
||||
|
|
||||
|
/** |
||||
|
* 头像 |
||||
|
*/ |
||||
|
private String headPhoto; |
||||
|
|
||||
|
} |
@ -0,0 +1,37 @@ |
|||||
|
package com.epmet.service; |
||||
|
|
||||
|
import com.epmet.commons.mybatis.service.BaseService; |
||||
|
import com.epmet.commons.tools.page.PageData; |
||||
|
import com.epmet.dto.IssueCommentDTO; |
||||
|
import com.epmet.dto.form.IssueCommentPageFormDTO; |
||||
|
import com.epmet.entity.IssueCommentEntity; |
||||
|
|
||||
|
/** |
||||
|
* 议题评论表 |
||||
|
* |
||||
|
* @author generator generator@elink-cn.com |
||||
|
* @since v1.0.0 2023-02-02 |
||||
|
*/ |
||||
|
public interface IssueCommentService extends BaseService<IssueCommentEntity> { |
||||
|
|
||||
|
/** |
||||
|
* 默认分页 |
||||
|
* |
||||
|
* @param formDTO |
||||
|
* @return PageData<IssueCommentDTO> |
||||
|
* @author generator |
||||
|
* @date 2023-02-02 |
||||
|
*/ |
||||
|
PageData<IssueCommentDTO> page(IssueCommentPageFormDTO formDTO); |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 默认保存 |
||||
|
* |
||||
|
* @param dto |
||||
|
* @return void |
||||
|
* @author generator |
||||
|
* @date 2023-02-02 |
||||
|
*/ |
||||
|
void save(IssueCommentDTO dto); |
||||
|
} |
@ -0,0 +1,72 @@ |
|||||
|
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.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.commons.tools.utils.Result; |
||||
|
import com.epmet.dao.IssueCommentDao; |
||||
|
import com.epmet.dto.IssueCommentDTO; |
||||
|
import com.epmet.dto.form.IssueCommentPageFormDTO; |
||||
|
import com.epmet.dto.result.UserBaseInfoResultDTO; |
||||
|
import com.epmet.entity.IssueCommentEntity; |
||||
|
import com.epmet.feign.EpmetUserOpenFeignClient; |
||||
|
import com.epmet.service.IssueCommentService; |
||||
|
import com.github.pagehelper.PageHelper; |
||||
|
import com.github.pagehelper.PageInfo; |
||||
|
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.ArrayList; |
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* 议题评论表 |
||||
|
* |
||||
|
* @author generator generator@elink-cn.com |
||||
|
* @since v1.0.0 2023-02-02 |
||||
|
*/ |
||||
|
@Service |
||||
|
public class IssueCommentServiceImpl extends BaseServiceImpl<IssueCommentDao, IssueCommentEntity> implements IssueCommentService { |
||||
|
@Autowired |
||||
|
private EpmetUserOpenFeignClient userOpenFeignClient; |
||||
|
|
||||
|
/** |
||||
|
* 议题评论列表 |
||||
|
* @param formDTO |
||||
|
* @return |
||||
|
*/ |
||||
|
@Override |
||||
|
public PageData<IssueCommentDTO> page(IssueCommentPageFormDTO formDTO) { |
||||
|
PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); |
||||
|
List<IssueCommentDTO> list = baseDao.selectCommentList(formDTO.getIssueId()); |
||||
|
PageInfo<IssueCommentDTO> pageInfo = new PageInfo<>(list); |
||||
|
return new PageData<>(list, pageInfo.getTotal()); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 议题评论 |
||||
|
* 需求来源于烟台:https://modao.cc/app/Uz9nPVerhvcupzLnhoiY#screen=sl8mfpxd863xmb5
|
||||
|
* @param dto |
||||
|
*/ |
||||
|
@Override |
||||
|
@Transactional(rollbackFor = Exception.class) |
||||
|
public void save(IssueCommentDTO dto) { |
||||
|
//查询用户信息
|
||||
|
List<String> userIdList=new ArrayList<>(); |
||||
|
userIdList.add(dto.getUserId()); |
||||
|
Result<List<UserBaseInfoResultDTO>> userInfoRes= userOpenFeignClient.queryUserBaseInfo(userIdList); |
||||
|
if(!userInfoRes.success()|| CollectionUtils.isEmpty(userInfoRes.getData())){ |
||||
|
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"查询用户信息异常userId:"+dto.getUserId(),"查询用户信息异常"); |
||||
|
} |
||||
|
IssueCommentEntity entity = ConvertUtils.sourceToTarget(dto, IssueCommentEntity.class); |
||||
|
entity.setHeadPhoto(userInfoRes.getData().get(NumConstant.ZERO).getHeadImgUrl()); |
||||
|
entity.setUserName(userInfoRes.getData().get(NumConstant.ZERO).getRealName()); |
||||
|
insert(entity); |
||||
|
} |
||||
|
|
||||
|
} |
@ -0,0 +1,36 @@ |
|||||
|
<?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.IssueCommentDao"> |
||||
|
|
||||
|
<resultMap type="com.epmet.entity.IssueCommentEntity" id="issueCommentMap"> |
||||
|
<result property="id" column="ID"/> |
||||
|
<result property="issueId" column="ISSUE_ID"/> |
||||
|
<result property="customerId" column="CUSTOMER_ID"/> |
||||
|
<result property="content" column="CONTENT"/> |
||||
|
<result property="userId" column="USER_ID"/> |
||||
|
<result property="userName" column="USER_NAME"/> |
||||
|
<result property="headPhoto" column="HEAD_PHOTO"/> |
||||
|
<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="selectCommentList" parameterType="java.lang.String" resultType="com.epmet.dto.IssueCommentDTO"> |
||||
|
SELECT |
||||
|
ic.id as commentId, |
||||
|
ic.* |
||||
|
FROM |
||||
|
issue_comment ic |
||||
|
WHERE |
||||
|
ic.DEL_FLAG = '0' |
||||
|
AND ic.ISSUE_ID = #{issueId} |
||||
|
ORDER BY |
||||
|
ic.CREATED_TIME DESC |
||||
|
</select> |
||||
|
|
||||
|
</mapper> |
Loading…
Reference in new issue