Browse Source

Merge branch 'pt' of https://gitee.com/ccsens_s/ccsenscloud into pt

master
zhizhi wu 5 years ago
parent
commit
2c134f5d38
  1. 2
      game/src/main/resources/druid-test.yml
  2. 45
      tall/src/main/java/com/ccsens/tall/bean/dto/RingDto.java
  3. 6
      tall/src/main/java/com/ccsens/tall/bean/dto/message/RingMessageWithReadDto.java
  4. 6
      tall/src/main/java/com/ccsens/tall/bean/dto/message/RingMessageWithSendDto.java
  5. 117
      tall/src/main/java/com/ccsens/tall/bean/po/SysRingMsg.java
  6. 691
      tall/src/main/java/com/ccsens/tall/bean/po/SysRingMsgExample.java
  7. 106
      tall/src/main/java/com/ccsens/tall/bean/po/SysRingSend.java
  8. 681
      tall/src/main/java/com/ccsens/tall/bean/po/SysRingSendExample.java
  9. 60
      tall/src/main/java/com/ccsens/tall/bean/vo/RingVo.java
  10. 2
      tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java
  11. 3
      tall/src/main/java/com/ccsens/tall/config/SpringConfig.java
  12. 4
      tall/src/main/java/com/ccsens/tall/persist/dao/ProMemberRoleDao.java
  13. 18
      tall/src/main/java/com/ccsens/tall/persist/dao/SysRingMsgDao.java
  14. 8
      tall/src/main/java/com/ccsens/tall/persist/dao/SysRingSendDao.java
  15. 4
      tall/src/main/java/com/ccsens/tall/persist/dao/TaskSubTimeDao.java
  16. 36
      tall/src/main/java/com/ccsens/tall/persist/mapper/SysRingMsgMapper.java
  17. 30
      tall/src/main/java/com/ccsens/tall/persist/mapper/SysRingSendMapper.java
  18. 16
      tall/src/main/java/com/ccsens/tall/service/IRingService.java
  19. 4
      tall/src/main/java/com/ccsens/tall/service/ProMemberService.java
  20. 170
      tall/src/main/java/com/ccsens/tall/service/RingService.java
  21. 24
      tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java
  22. 42
      tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java
  23. 35
      tall/src/main/java/com/ccsens/tall/service/UserService.java
  24. 3
      tall/src/main/java/com/ccsens/tall/web/PluginController.java
  25. 66
      tall/src/main/java/com/ccsens/tall/web/RingController.java
  26. 3
      tall/src/main/java/com/ccsens/tall/web/TaskController.java
  27. 4
      tall/src/main/resources/application.yml
  28. 28
      tall/src/main/resources/mapper_dao/ProMemberRoleDao.xml
  29. 2
      tall/src/main/resources/mapper_dao/SysOperationDao.xml
  30. 93
      tall/src/main/resources/mapper_dao/SysRingMsgDao.xml
  31. 41
      tall/src/main/resources/mapper_dao/TaskSubTimeDao.xml
  32. 323
      tall/src/main/resources/mapper_raw/SysRingMsgMapper.xml
  33. 258
      tall/src/main/resources/mapper_raw/SysRingSendMapper.xml
  34. 8
      util/src/main/java/com/ccsens/util/StringUtil.java
  35. 45
      util/src/main/java/com/ccsens/util/cron/CronConstant.java
  36. 4
      util/src/main/java/com/ccsens/util/cron/NatureConstant.java
  37. 21
      util/src/main/java/com/ccsens/util/cron/NatureToDate.java
  38. 73
      util/src/test/java/com/ccsens/util/Base64Test.java

2
game/src/main/resources/druid-test.yml

@ -28,6 +28,6 @@ spring:
testWhileIdle: true
timeBetweenEvictionRunsMillis: 60000
url: jdbc:mysql://127.0.0.1/game?useUnicode=true&characterEncoding=UTF-8
rname: root
username: root
validationQuery: SELECT 1 FROM DUAL
env: CCSENS_GAME

45
tall/src/main/java/com/ccsens/tall/bean/dto/RingDto.java

@ -0,0 +1,45 @@
package com.ccsens.tall.bean.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
public class RingDto {
@Data
@ApiModel("发送ring消息")
public static class RingSendDto {
@NotNull(message = "项目id不能为空")
@ApiModelProperty("项目id")
private Long projectId;
@ApiModelProperty("消息内容")
private String value;
@ApiModelProperty("接收的角色的id")
private List<Long> roleList;
}
@Data
@ApiModel("查找ring消息")
public static class GetRingDto {
@NotNull(message = "项目id不能为空")
@ApiModelProperty("项目id")
private Long projectId;
@ApiModelProperty("页数")
private Integer page;
@ApiModelProperty("每页数量")
private Integer pageSize;
}
@Data
@ApiModel("将消息设为已读")
public static class MessageId {
@ApiModelProperty("项目id")
private Long projectId;
@ApiModelProperty("消息id")
private List<Long> messageIdList;
}
}

6
tall/src/main/java/com/ccsens/tall/bean/dto/message/RingMessageWithReadDto.java

@ -11,6 +11,8 @@ public class RingMessageWithReadDto extends BaseMessageDto{
@Getter
public static class Data{
private Long msgId;
private Long projectId;
private Long roleId;
}
private Data data;
@ -21,10 +23,12 @@ public class RingMessageWithReadDto extends BaseMessageDto{
setTime(System.currentTimeMillis());
}
public RingMessageWithReadDto(Long msgId){
public RingMessageWithReadDto(Long msgId,Long projectId,Long roleId){
this();
Data d = new Data();
d.setMsgId(msgId);
d.setProjectId(projectId);
d.setRoleId(roleId);
setData(d);
}
}

6
tall/src/main/java/com/ccsens/tall/bean/dto/message/RingMessageWithSendDto.java

@ -12,7 +12,9 @@ public class RingMessageWithSendDto extends BaseMessageDto{
@Getter
public static class Data{
private Long msgId;
private Long projectId;
private String text;
private Long sendTime;
}
private Data data;
@ -23,11 +25,13 @@ public class RingMessageWithSendDto extends BaseMessageDto{
setTime(System.currentTimeMillis());
}
public RingMessageWithSendDto(Long msgId,String text){
public RingMessageWithSendDto(Long msgId,Long projectId,String text,Long sendTime){
this();
Data d = new Data();
d.setMsgId(msgId);
d.setProjectId(projectId);
d.setText(text);
d.setSendTime(sendTime);
setData(d);
}
}

117
tall/src/main/java/com/ccsens/tall/bean/po/SysRingMsg.java

@ -0,0 +1,117 @@
package com.ccsens.tall.bean.po;
import java.io.Serializable;
import java.util.Date;
public class SysRingMsg implements Serializable {
private Long id;
private Long projectId;
private String value;
private Long senderId;
private Long time;
private Date createdAt;
private Date updatedAt;
private Byte recStatus;
private String valueText;
private static final long serialVersionUID = 1L;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getProjectId() {
return projectId;
}
public void setProjectId(Long projectId) {
this.projectId = projectId;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value == null ? null : value.trim();
}
public Long getSenderId() {
return senderId;
}
public void setSenderId(Long senderId) {
this.senderId = senderId;
}
public Long getTime() {
return time;
}
public void setTime(Long time) {
this.time = time;
}
public Date getCreatedAt() {
return createdAt;
}
public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}
public Date getUpdatedAt() {
return updatedAt;
}
public void setUpdatedAt(Date updatedAt) {
this.updatedAt = updatedAt;
}
public Byte getRecStatus() {
return recStatus;
}
public void setRecStatus(Byte recStatus) {
this.recStatus = recStatus;
}
public String getValueText() {
return valueText;
}
public void setValueText(String valueText) {
this.valueText = valueText == null ? null : valueText.trim();
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", projectId=").append(projectId);
sb.append(", value=").append(value);
sb.append(", senderId=").append(senderId);
sb.append(", time=").append(time);
sb.append(", createdAt=").append(createdAt);
sb.append(", updatedAt=").append(updatedAt);
sb.append(", recStatus=").append(recStatus);
sb.append(", valueText=").append(valueText);
sb.append("]");
return sb.toString();
}
}

691
tall/src/main/java/com/ccsens/tall/bean/po/SysRingMsgExample.java

@ -0,0 +1,691 @@
package com.ccsens.tall.bean.po;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class SysRingMsgExample {
protected String orderByClause;
protected boolean distinct;
protected List<Criteria> oredCriteria;
public SysRingMsgExample() {
oredCriteria = new ArrayList<Criteria>();
}
public void setOrderByClause(String orderByClause) {
this.orderByClause = orderByClause;
}
public String getOrderByClause() {
return orderByClause;
}
public void setDistinct(boolean distinct) {
this.distinct = distinct;
}
public boolean isDistinct() {
return distinct;
}
public List<Criteria> getOredCriteria() {
return oredCriteria;
}
public void or(Criteria criteria) {
oredCriteria.add(criteria);
}
public Criteria or() {
Criteria criteria = createCriteriaInternal();
oredCriteria.add(criteria);
return criteria;
}
public Criteria createCriteria() {
Criteria criteria = createCriteriaInternal();
if (oredCriteria.size() == 0) {
oredCriteria.add(criteria);
}
return criteria;
}
protected Criteria createCriteriaInternal() {
Criteria criteria = new Criteria();
return criteria;
}
public void clear() {
oredCriteria.clear();
orderByClause = null;
distinct = false;
}
protected abstract static class GeneratedCriteria {
protected List<Criterion> criteria;
protected GeneratedCriteria() {
super();
criteria = new ArrayList<Criterion>();
}
public boolean isValid() {
return criteria.size() > 0;
}
public List<Criterion> getAllCriteria() {
return criteria;
}
public List<Criterion> getCriteria() {
return criteria;
}
protected void addCriterion(String condition) {
if (condition == null) {
throw new RuntimeException("Value for condition cannot be null");
}
criteria.add(new Criterion(condition));
}
protected void addCriterion(String condition, Object value, String property) {
if (value == null) {
throw new RuntimeException("Value for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value));
}
protected void addCriterion(String condition, Object value1, Object value2, String property) {
if (value1 == null || value2 == null) {
throw new RuntimeException("Between values for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value1, value2));
}
public Criteria andIdIsNull() {
addCriterion("id is null");
return (Criteria) this;
}
public Criteria andIdIsNotNull() {
addCriterion("id is not null");
return (Criteria) this;
}
public Criteria andIdEqualTo(Long value) {
addCriterion("id =", value, "id");
return (Criteria) this;
}
public Criteria andIdNotEqualTo(Long value) {
addCriterion("id <>", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThan(Long value) {
addCriterion("id >", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThanOrEqualTo(Long value) {
addCriterion("id >=", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThan(Long value) {
addCriterion("id <", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThanOrEqualTo(Long value) {
addCriterion("id <=", value, "id");
return (Criteria) this;
}
public Criteria andIdIn(List<Long> values) {
addCriterion("id in", values, "id");
return (Criteria) this;
}
public Criteria andIdNotIn(List<Long> values) {
addCriterion("id not in", values, "id");
return (Criteria) this;
}
public Criteria andIdBetween(Long value1, Long value2) {
addCriterion("id between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andIdNotBetween(Long value1, Long value2) {
addCriterion("id not between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andProjectIdIsNull() {
addCriterion("project_id is null");
return (Criteria) this;
}
public Criteria andProjectIdIsNotNull() {
addCriterion("project_id is not null");
return (Criteria) this;
}
public Criteria andProjectIdEqualTo(Long value) {
addCriterion("project_id =", value, "projectId");
return (Criteria) this;
}
public Criteria andProjectIdNotEqualTo(Long value) {
addCriterion("project_id <>", value, "projectId");
return (Criteria) this;
}
public Criteria andProjectIdGreaterThan(Long value) {
addCriterion("project_id >", value, "projectId");
return (Criteria) this;
}
public Criteria andProjectIdGreaterThanOrEqualTo(Long value) {
addCriterion("project_id >=", value, "projectId");
return (Criteria) this;
}
public Criteria andProjectIdLessThan(Long value) {
addCriterion("project_id <", value, "projectId");
return (Criteria) this;
}
public Criteria andProjectIdLessThanOrEqualTo(Long value) {
addCriterion("project_id <=", value, "projectId");
return (Criteria) this;
}
public Criteria andProjectIdIn(List<Long> values) {
addCriterion("project_id in", values, "projectId");
return (Criteria) this;
}
public Criteria andProjectIdNotIn(List<Long> values) {
addCriterion("project_id not in", values, "projectId");
return (Criteria) this;
}
public Criteria andProjectIdBetween(Long value1, Long value2) {
addCriterion("project_id between", value1, value2, "projectId");
return (Criteria) this;
}
public Criteria andProjectIdNotBetween(Long value1, Long value2) {
addCriterion("project_id not between", value1, value2, "projectId");
return (Criteria) this;
}
public Criteria andValueIsNull() {
addCriterion("value is null");
return (Criteria) this;
}
public Criteria andValueIsNotNull() {
addCriterion("value is not null");
return (Criteria) this;
}
public Criteria andValueEqualTo(String value) {
addCriterion("value =", value, "value");
return (Criteria) this;
}
public Criteria andValueNotEqualTo(String value) {
addCriterion("value <>", value, "value");
return (Criteria) this;
}
public Criteria andValueGreaterThan(String value) {
addCriterion("value >", value, "value");
return (Criteria) this;
}
public Criteria andValueGreaterThanOrEqualTo(String value) {
addCriterion("value >=", value, "value");
return (Criteria) this;
}
public Criteria andValueLessThan(String value) {
addCriterion("value <", value, "value");
return (Criteria) this;
}
public Criteria andValueLessThanOrEqualTo(String value) {
addCriterion("value <=", value, "value");
return (Criteria) this;
}
public Criteria andValueLike(String value) {
addCriterion("value like", value, "value");
return (Criteria) this;
}
public Criteria andValueNotLike(String value) {
addCriterion("value not like", value, "value");
return (Criteria) this;
}
public Criteria andValueIn(List<String> values) {
addCriterion("value in", values, "value");
return (Criteria) this;
}
public Criteria andValueNotIn(List<String> values) {
addCriterion("value not in", values, "value");
return (Criteria) this;
}
public Criteria andValueBetween(String value1, String value2) {
addCriterion("value between", value1, value2, "value");
return (Criteria) this;
}
public Criteria andValueNotBetween(String value1, String value2) {
addCriterion("value not between", value1, value2, "value");
return (Criteria) this;
}
public Criteria andSenderIdIsNull() {
addCriterion("sender_id is null");
return (Criteria) this;
}
public Criteria andSenderIdIsNotNull() {
addCriterion("sender_id is not null");
return (Criteria) this;
}
public Criteria andSenderIdEqualTo(Long value) {
addCriterion("sender_id =", value, "senderId");
return (Criteria) this;
}
public Criteria andSenderIdNotEqualTo(Long value) {
addCriterion("sender_id <>", value, "senderId");
return (Criteria) this;
}
public Criteria andSenderIdGreaterThan(Long value) {
addCriterion("sender_id >", value, "senderId");
return (Criteria) this;
}
public Criteria andSenderIdGreaterThanOrEqualTo(Long value) {
addCriterion("sender_id >=", value, "senderId");
return (Criteria) this;
}
public Criteria andSenderIdLessThan(Long value) {
addCriterion("sender_id <", value, "senderId");
return (Criteria) this;
}
public Criteria andSenderIdLessThanOrEqualTo(Long value) {
addCriterion("sender_id <=", value, "senderId");
return (Criteria) this;
}
public Criteria andSenderIdIn(List<Long> values) {
addCriterion("sender_id in", values, "senderId");
return (Criteria) this;
}
public Criteria andSenderIdNotIn(List<Long> values) {
addCriterion("sender_id not in", values, "senderId");
return (Criteria) this;
}
public Criteria andSenderIdBetween(Long value1, Long value2) {
addCriterion("sender_id between", value1, value2, "senderId");
return (Criteria) this;
}
public Criteria andSenderIdNotBetween(Long value1, Long value2) {
addCriterion("sender_id not between", value1, value2, "senderId");
return (Criteria) this;
}
public Criteria andTimeIsNull() {
addCriterion("time is null");
return (Criteria) this;
}
public Criteria andTimeIsNotNull() {
addCriterion("time is not null");
return (Criteria) this;
}
public Criteria andTimeEqualTo(Long value) {
addCriterion("time =", value, "time");
return (Criteria) this;
}
public Criteria andTimeNotEqualTo(Long value) {
addCriterion("time <>", value, "time");
return (Criteria) this;
}
public Criteria andTimeGreaterThan(Long value) {
addCriterion("time >", value, "time");
return (Criteria) this;
}
public Criteria andTimeGreaterThanOrEqualTo(Long value) {
addCriterion("time >=", value, "time");
return (Criteria) this;
}
public Criteria andTimeLessThan(Long value) {
addCriterion("time <", value, "time");
return (Criteria) this;
}
public Criteria andTimeLessThanOrEqualTo(Long value) {
addCriterion("time <=", value, "time");
return (Criteria) this;
}
public Criteria andTimeIn(List<Long> values) {
addCriterion("time in", values, "time");
return (Criteria) this;
}
public Criteria andTimeNotIn(List<Long> values) {
addCriterion("time not in", values, "time");
return (Criteria) this;
}
public Criteria andTimeBetween(Long value1, Long value2) {
addCriterion("time between", value1, value2, "time");
return (Criteria) this;
}
public Criteria andTimeNotBetween(Long value1, Long value2) {
addCriterion("time not between", value1, value2, "time");
return (Criteria) this;
}
public Criteria andCreatedAtIsNull() {
addCriterion("created_at is null");
return (Criteria) this;
}
public Criteria andCreatedAtIsNotNull() {
addCriterion("created_at is not null");
return (Criteria) this;
}
public Criteria andCreatedAtEqualTo(Date value) {
addCriterion("created_at =", value, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtNotEqualTo(Date value) {
addCriterion("created_at <>", value, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtGreaterThan(Date value) {
addCriterion("created_at >", value, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtGreaterThanOrEqualTo(Date value) {
addCriterion("created_at >=", value, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtLessThan(Date value) {
addCriterion("created_at <", value, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtLessThanOrEqualTo(Date value) {
addCriterion("created_at <=", value, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtIn(List<Date> values) {
addCriterion("created_at in", values, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtNotIn(List<Date> values) {
addCriterion("created_at not in", values, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtBetween(Date value1, Date value2) {
addCriterion("created_at between", value1, value2, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtNotBetween(Date value1, Date value2) {
addCriterion("created_at not between", value1, value2, "createdAt");
return (Criteria) this;
}
public Criteria andUpdatedAtIsNull() {
addCriterion("updated_at is null");
return (Criteria) this;
}
public Criteria andUpdatedAtIsNotNull() {
addCriterion("updated_at is not null");
return (Criteria) this;
}
public Criteria andUpdatedAtEqualTo(Date value) {
addCriterion("updated_at =", value, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtNotEqualTo(Date value) {
addCriterion("updated_at <>", value, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtGreaterThan(Date value) {
addCriterion("updated_at >", value, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtGreaterThanOrEqualTo(Date value) {
addCriterion("updated_at >=", value, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtLessThan(Date value) {
addCriterion("updated_at <", value, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtLessThanOrEqualTo(Date value) {
addCriterion("updated_at <=", value, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtIn(List<Date> values) {
addCriterion("updated_at in", values, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtNotIn(List<Date> values) {
addCriterion("updated_at not in", values, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtBetween(Date value1, Date value2) {
addCriterion("updated_at between", value1, value2, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtNotBetween(Date value1, Date value2) {
addCriterion("updated_at not between", value1, value2, "updatedAt");
return (Criteria) this;
}
public Criteria andRecStatusIsNull() {
addCriterion("rec_status is null");
return (Criteria) this;
}
public Criteria andRecStatusIsNotNull() {
addCriterion("rec_status is not null");
return (Criteria) this;
}
public Criteria andRecStatusEqualTo(Byte value) {
addCriterion("rec_status =", value, "recStatus");
return (Criteria) this;
}
public Criteria andRecStatusNotEqualTo(Byte value) {
addCriterion("rec_status <>", value, "recStatus");
return (Criteria) this;
}
public Criteria andRecStatusGreaterThan(Byte value) {
addCriterion("rec_status >", value, "recStatus");
return (Criteria) this;
}
public Criteria andRecStatusGreaterThanOrEqualTo(Byte value) {
addCriterion("rec_status >=", value, "recStatus");
return (Criteria) this;
}
public Criteria andRecStatusLessThan(Byte value) {
addCriterion("rec_status <", value, "recStatus");
return (Criteria) this;
}
public Criteria andRecStatusLessThanOrEqualTo(Byte value) {
addCriterion("rec_status <=", value, "recStatus");
return (Criteria) this;
}
public Criteria andRecStatusIn(List<Byte> values) {
addCriterion("rec_status in", values, "recStatus");
return (Criteria) this;
}
public Criteria andRecStatusNotIn(List<Byte> values) {
addCriterion("rec_status not in", values, "recStatus");
return (Criteria) this;
}
public Criteria andRecStatusBetween(Byte value1, Byte value2) {
addCriterion("rec_status between", value1, value2, "recStatus");
return (Criteria) this;
}
public Criteria andRecStatusNotBetween(Byte value1, Byte value2) {
addCriterion("rec_status not between", value1, value2, "recStatus");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {
protected Criteria() {
super();
}
}
public static class Criterion {
private String condition;
private Object value;
private Object secondValue;
private boolean noValue;
private boolean singleValue;
private boolean betweenValue;
private boolean listValue;
private String typeHandler;
public String getCondition() {
return condition;
}
public Object getValue() {
return value;
}
public Object getSecondValue() {
return secondValue;
}
public boolean isNoValue() {
return noValue;
}
public boolean isSingleValue() {
return singleValue;
}
public boolean isBetweenValue() {
return betweenValue;
}
public boolean isListValue() {
return listValue;
}
public String getTypeHandler() {
return typeHandler;
}
protected Criterion(String condition) {
super();
this.condition = condition;
this.typeHandler = null;
this.noValue = true;
}
protected Criterion(String condition, Object value, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.typeHandler = typeHandler;
if (value instanceof List<?>) {
this.listValue = true;
} else {
this.singleValue = true;
}
}
protected Criterion(String condition, Object value) {
this(condition, value, null);
}
protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.secondValue = secondValue;
this.typeHandler = typeHandler;
this.betweenValue = true;
}
protected Criterion(String condition, Object value, Object secondValue) {
this(condition, value, secondValue, null);
}
}
}

106
tall/src/main/java/com/ccsens/tall/bean/po/SysRingSend.java

@ -0,0 +1,106 @@
package com.ccsens.tall.bean.po;
import java.io.Serializable;
import java.util.Date;
public class SysRingSend implements Serializable {
private Long id;
private Long ringId;
private Long roleId;
private Byte readStatus;
private Date createdAt;
private Date updatedAt;
private Byte recStatus;
private Long readTime;
private static final long serialVersionUID = 1L;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getRingId() {
return ringId;
}
public void setRingId(Long ringId) {
this.ringId = ringId;
}
public Long getRoleId() {
return roleId;
}
public void setRoleId(Long roleId) {
this.roleId = roleId;
}
public Byte getReadStatus() {
return readStatus;
}
public void setReadStatus(Byte readStatus) {
this.readStatus = readStatus;
}
public Date getCreatedAt() {
return createdAt;
}
public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}
public Date getUpdatedAt() {
return updatedAt;
}
public void setUpdatedAt(Date updatedAt) {
this.updatedAt = updatedAt;
}
public Byte getRecStatus() {
return recStatus;
}
public void setRecStatus(Byte recStatus) {
this.recStatus = recStatus;
}
public Long getReadTime() {
return readTime;
}
public void setReadTime(Long readTime) {
this.readTime = readTime;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", ringId=").append(ringId);
sb.append(", roleId=").append(roleId);
sb.append(", readStatus=").append(readStatus);
sb.append(", createdAt=").append(createdAt);
sb.append(", updatedAt=").append(updatedAt);
sb.append(", recStatus=").append(recStatus);
sb.append(", readTime=").append(readTime);
sb.append("]");
return sb.toString();
}
}

681
tall/src/main/java/com/ccsens/tall/bean/po/SysRingSendExample.java

@ -0,0 +1,681 @@
package com.ccsens.tall.bean.po;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class SysRingSendExample {
protected String orderByClause;
protected boolean distinct;
protected List<Criteria> oredCriteria;
public SysRingSendExample() {
oredCriteria = new ArrayList<Criteria>();
}
public void setOrderByClause(String orderByClause) {
this.orderByClause = orderByClause;
}
public String getOrderByClause() {
return orderByClause;
}
public void setDistinct(boolean distinct) {
this.distinct = distinct;
}
public boolean isDistinct() {
return distinct;
}
public List<Criteria> getOredCriteria() {
return oredCriteria;
}
public void or(Criteria criteria) {
oredCriteria.add(criteria);
}
public Criteria or() {
Criteria criteria = createCriteriaInternal();
oredCriteria.add(criteria);
return criteria;
}
public Criteria createCriteria() {
Criteria criteria = createCriteriaInternal();
if (oredCriteria.size() == 0) {
oredCriteria.add(criteria);
}
return criteria;
}
protected Criteria createCriteriaInternal() {
Criteria criteria = new Criteria();
return criteria;
}
public void clear() {
oredCriteria.clear();
orderByClause = null;
distinct = false;
}
protected abstract static class GeneratedCriteria {
protected List<Criterion> criteria;
protected GeneratedCriteria() {
super();
criteria = new ArrayList<Criterion>();
}
public boolean isValid() {
return criteria.size() > 0;
}
public List<Criterion> getAllCriteria() {
return criteria;
}
public List<Criterion> getCriteria() {
return criteria;
}
protected void addCriterion(String condition) {
if (condition == null) {
throw new RuntimeException("Value for condition cannot be null");
}
criteria.add(new Criterion(condition));
}
protected void addCriterion(String condition, Object value, String property) {
if (value == null) {
throw new RuntimeException("Value for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value));
}
protected void addCriterion(String condition, Object value1, Object value2, String property) {
if (value1 == null || value2 == null) {
throw new RuntimeException("Between values for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value1, value2));
}
public Criteria andIdIsNull() {
addCriterion("id is null");
return (Criteria) this;
}
public Criteria andIdIsNotNull() {
addCriterion("id is not null");
return (Criteria) this;
}
public Criteria andIdEqualTo(Long value) {
addCriterion("id =", value, "id");
return (Criteria) this;
}
public Criteria andIdNotEqualTo(Long value) {
addCriterion("id <>", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThan(Long value) {
addCriterion("id >", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThanOrEqualTo(Long value) {
addCriterion("id >=", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThan(Long value) {
addCriterion("id <", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThanOrEqualTo(Long value) {
addCriterion("id <=", value, "id");
return (Criteria) this;
}
public Criteria andIdIn(List<Long> values) {
addCriterion("id in", values, "id");
return (Criteria) this;
}
public Criteria andIdNotIn(List<Long> values) {
addCriterion("id not in", values, "id");
return (Criteria) this;
}
public Criteria andIdBetween(Long value1, Long value2) {
addCriterion("id between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andIdNotBetween(Long value1, Long value2) {
addCriterion("id not between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andRingIdIsNull() {
addCriterion("ring_id is null");
return (Criteria) this;
}
public Criteria andRingIdIsNotNull() {
addCriterion("ring_id is not null");
return (Criteria) this;
}
public Criteria andRingIdEqualTo(Long value) {
addCriterion("ring_id =", value, "ringId");
return (Criteria) this;
}
public Criteria andRingIdNotEqualTo(Long value) {
addCriterion("ring_id <>", value, "ringId");
return (Criteria) this;
}
public Criteria andRingIdGreaterThan(Long value) {
addCriterion("ring_id >", value, "ringId");
return (Criteria) this;
}
public Criteria andRingIdGreaterThanOrEqualTo(Long value) {
addCriterion("ring_id >=", value, "ringId");
return (Criteria) this;
}
public Criteria andRingIdLessThan(Long value) {
addCriterion("ring_id <", value, "ringId");
return (Criteria) this;
}
public Criteria andRingIdLessThanOrEqualTo(Long value) {
addCriterion("ring_id <=", value, "ringId");
return (Criteria) this;
}
public Criteria andRingIdIn(List<Long> values) {
addCriterion("ring_id in", values, "ringId");
return (Criteria) this;
}
public Criteria andRingIdNotIn(List<Long> values) {
addCriterion("ring_id not in", values, "ringId");
return (Criteria) this;
}
public Criteria andRingIdBetween(Long value1, Long value2) {
addCriterion("ring_id between", value1, value2, "ringId");
return (Criteria) this;
}
public Criteria andRingIdNotBetween(Long value1, Long value2) {
addCriterion("ring_id not between", value1, value2, "ringId");
return (Criteria) this;
}
public Criteria andRoleIdIsNull() {
addCriterion("role_id is null");
return (Criteria) this;
}
public Criteria andRoleIdIsNotNull() {
addCriterion("role_id is not null");
return (Criteria) this;
}
public Criteria andRoleIdEqualTo(Long value) {
addCriterion("role_id =", value, "roleId");
return (Criteria) this;
}
public Criteria andRoleIdNotEqualTo(Long value) {
addCriterion("role_id <>", value, "roleId");
return (Criteria) this;
}
public Criteria andRoleIdGreaterThan(Long value) {
addCriterion("role_id >", value, "roleId");
return (Criteria) this;
}
public Criteria andRoleIdGreaterThanOrEqualTo(Long value) {
addCriterion("role_id >=", value, "roleId");
return (Criteria) this;
}
public Criteria andRoleIdLessThan(Long value) {
addCriterion("role_id <", value, "roleId");
return (Criteria) this;
}
public Criteria andRoleIdLessThanOrEqualTo(Long value) {
addCriterion("role_id <=", value, "roleId");
return (Criteria) this;
}
public Criteria andRoleIdIn(List<Long> values) {
addCriterion("role_id in", values, "roleId");
return (Criteria) this;
}
public Criteria andRoleIdNotIn(List<Long> values) {
addCriterion("role_id not in", values, "roleId");
return (Criteria) this;
}
public Criteria andRoleIdBetween(Long value1, Long value2) {
addCriterion("role_id between", value1, value2, "roleId");
return (Criteria) this;
}
public Criteria andRoleIdNotBetween(Long value1, Long value2) {
addCriterion("role_id not between", value1, value2, "roleId");
return (Criteria) this;
}
public Criteria andReadStatusIsNull() {
addCriterion("read_status is null");
return (Criteria) this;
}
public Criteria andReadStatusIsNotNull() {
addCriterion("read_status is not null");
return (Criteria) this;
}
public Criteria andReadStatusEqualTo(Byte value) {
addCriterion("read_status =", value, "readStatus");
return (Criteria) this;
}
public Criteria andReadStatusNotEqualTo(Byte value) {
addCriterion("read_status <>", value, "readStatus");
return (Criteria) this;
}
public Criteria andReadStatusGreaterThan(Byte value) {
addCriterion("read_status >", value, "readStatus");
return (Criteria) this;
}
public Criteria andReadStatusGreaterThanOrEqualTo(Byte value) {
addCriterion("read_status >=", value, "readStatus");
return (Criteria) this;
}
public Criteria andReadStatusLessThan(Byte value) {
addCriterion("read_status <", value, "readStatus");
return (Criteria) this;
}
public Criteria andReadStatusLessThanOrEqualTo(Byte value) {
addCriterion("read_status <=", value, "readStatus");
return (Criteria) this;
}
public Criteria andReadStatusIn(List<Byte> values) {
addCriterion("read_status in", values, "readStatus");
return (Criteria) this;
}
public Criteria andReadStatusNotIn(List<Byte> values) {
addCriterion("read_status not in", values, "readStatus");
return (Criteria) this;
}
public Criteria andReadStatusBetween(Byte value1, Byte value2) {
addCriterion("read_status between", value1, value2, "readStatus");
return (Criteria) this;
}
public Criteria andReadStatusNotBetween(Byte value1, Byte value2) {
addCriterion("read_status not between", value1, value2, "readStatus");
return (Criteria) this;
}
public Criteria andCreatedAtIsNull() {
addCriterion("created_at is null");
return (Criteria) this;
}
public Criteria andCreatedAtIsNotNull() {
addCriterion("created_at is not null");
return (Criteria) this;
}
public Criteria andCreatedAtEqualTo(Date value) {
addCriterion("created_at =", value, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtNotEqualTo(Date value) {
addCriterion("created_at <>", value, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtGreaterThan(Date value) {
addCriterion("created_at >", value, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtGreaterThanOrEqualTo(Date value) {
addCriterion("created_at >=", value, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtLessThan(Date value) {
addCriterion("created_at <", value, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtLessThanOrEqualTo(Date value) {
addCriterion("created_at <=", value, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtIn(List<Date> values) {
addCriterion("created_at in", values, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtNotIn(List<Date> values) {
addCriterion("created_at not in", values, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtBetween(Date value1, Date value2) {
addCriterion("created_at between", value1, value2, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtNotBetween(Date value1, Date value2) {
addCriterion("created_at not between", value1, value2, "createdAt");
return (Criteria) this;
}
public Criteria andUpdatedAtIsNull() {
addCriterion("updated_at is null");
return (Criteria) this;
}
public Criteria andUpdatedAtIsNotNull() {
addCriterion("updated_at is not null");
return (Criteria) this;
}
public Criteria andUpdatedAtEqualTo(Date value) {
addCriterion("updated_at =", value, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtNotEqualTo(Date value) {
addCriterion("updated_at <>", value, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtGreaterThan(Date value) {
addCriterion("updated_at >", value, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtGreaterThanOrEqualTo(Date value) {
addCriterion("updated_at >=", value, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtLessThan(Date value) {
addCriterion("updated_at <", value, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtLessThanOrEqualTo(Date value) {
addCriterion("updated_at <=", value, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtIn(List<Date> values) {
addCriterion("updated_at in", values, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtNotIn(List<Date> values) {
addCriterion("updated_at not in", values, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtBetween(Date value1, Date value2) {
addCriterion("updated_at between", value1, value2, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtNotBetween(Date value1, Date value2) {
addCriterion("updated_at not between", value1, value2, "updatedAt");
return (Criteria) this;
}
public Criteria andRecStatusIsNull() {
addCriterion("rec_status is null");
return (Criteria) this;
}
public Criteria andRecStatusIsNotNull() {
addCriterion("rec_status is not null");
return (Criteria) this;
}
public Criteria andRecStatusEqualTo(Byte value) {
addCriterion("rec_status =", value, "recStatus");
return (Criteria) this;
}
public Criteria andRecStatusNotEqualTo(Byte value) {
addCriterion("rec_status <>", value, "recStatus");
return (Criteria) this;
}
public Criteria andRecStatusGreaterThan(Byte value) {
addCriterion("rec_status >", value, "recStatus");
return (Criteria) this;
}
public Criteria andRecStatusGreaterThanOrEqualTo(Byte value) {
addCriterion("rec_status >=", value, "recStatus");
return (Criteria) this;
}
public Criteria andRecStatusLessThan(Byte value) {
addCriterion("rec_status <", value, "recStatus");
return (Criteria) this;
}
public Criteria andRecStatusLessThanOrEqualTo(Byte value) {
addCriterion("rec_status <=", value, "recStatus");
return (Criteria) this;
}
public Criteria andRecStatusIn(List<Byte> values) {
addCriterion("rec_status in", values, "recStatus");
return (Criteria) this;
}
public Criteria andRecStatusNotIn(List<Byte> values) {
addCriterion("rec_status not in", values, "recStatus");
return (Criteria) this;
}
public Criteria andRecStatusBetween(Byte value1, Byte value2) {
addCriterion("rec_status between", value1, value2, "recStatus");
return (Criteria) this;
}
public Criteria andRecStatusNotBetween(Byte value1, Byte value2) {
addCriterion("rec_status not between", value1, value2, "recStatus");
return (Criteria) this;
}
public Criteria andReadTimeIsNull() {
addCriterion("read_time is null");
return (Criteria) this;
}
public Criteria andReadTimeIsNotNull() {
addCriterion("read_time is not null");
return (Criteria) this;
}
public Criteria andReadTimeEqualTo(Long value) {
addCriterion("read_time =", value, "readTime");
return (Criteria) this;
}
public Criteria andReadTimeNotEqualTo(Long value) {
addCriterion("read_time <>", value, "readTime");
return (Criteria) this;
}
public Criteria andReadTimeGreaterThan(Long value) {
addCriterion("read_time >", value, "readTime");
return (Criteria) this;
}
public Criteria andReadTimeGreaterThanOrEqualTo(Long value) {
addCriterion("read_time >=", value, "readTime");
return (Criteria) this;
}
public Criteria andReadTimeLessThan(Long value) {
addCriterion("read_time <", value, "readTime");
return (Criteria) this;
}
public Criteria andReadTimeLessThanOrEqualTo(Long value) {
addCriterion("read_time <=", value, "readTime");
return (Criteria) this;
}
public Criteria andReadTimeIn(List<Long> values) {
addCriterion("read_time in", values, "readTime");
return (Criteria) this;
}
public Criteria andReadTimeNotIn(List<Long> values) {
addCriterion("read_time not in", values, "readTime");
return (Criteria) this;
}
public Criteria andReadTimeBetween(Long value1, Long value2) {
addCriterion("read_time between", value1, value2, "readTime");
return (Criteria) this;
}
public Criteria andReadTimeNotBetween(Long value1, Long value2) {
addCriterion("read_time not between", value1, value2, "readTime");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {
protected Criteria() {
super();
}
}
public static class Criterion {
private String condition;
private Object value;
private Object secondValue;
private boolean noValue;
private boolean singleValue;
private boolean betweenValue;
private boolean listValue;
private String typeHandler;
public String getCondition() {
return condition;
}
public Object getValue() {
return value;
}
public Object getSecondValue() {
return secondValue;
}
public boolean isNoValue() {
return noValue;
}
public boolean isSingleValue() {
return singleValue;
}
public boolean isBetweenValue() {
return betweenValue;
}
public boolean isListValue() {
return listValue;
}
public String getTypeHandler() {
return typeHandler;
}
protected Criterion(String condition) {
super();
this.condition = condition;
this.typeHandler = null;
this.noValue = true;
}
protected Criterion(String condition, Object value, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.typeHandler = typeHandler;
if (value instanceof List<?>) {
this.listValue = true;
} else {
this.singleValue = true;
}
}
protected Criterion(String condition, Object value) {
this(condition, value, null);
}
protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.secondValue = secondValue;
this.typeHandler = typeHandler;
this.betweenValue = true;
}
protected Criterion(String condition, Object value, Object secondValue) {
this(condition, value, secondValue, null);
}
}
}

60
tall/src/main/java/com/ccsens/tall/bean/vo/RingVo.java

@ -0,0 +1,60 @@
package com.ccsens.tall.bean.vo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class RingVo {
@Data
@ApiModel("返回ring消息")
public static class PageInfoRing{
@ApiModelProperty("当前页数")
private Integer pageNum;
@ApiModelProperty("总页数")
private Integer totalPage ;
@JsonIgnore //"总数据量"
private Integer size ;
}
@Data
@ApiModel("返回ring消息")
public static class RingInfo{
@ApiModelProperty("消息id")
private String messageId;
@ApiModelProperty("消息内容")
private String value ;
@ApiModelProperty("消息发送时间")
private Long time ;
@ApiModelProperty("是否是自己发送的消息")
private Integer mine ;
@ApiModelProperty("未读数量")
private Integer unread;
@ApiModelProperty("发送者信息")
private MsgSender sender;
@ApiModelProperty("接收角色的信息")
private List<MsgReceiveRole> roleList;
}
@Data
@ApiModel("接收/发送者信息")
public static class MsgReceiveRole{
@ApiModelProperty("接收者的角色id")
private Long id;
@ApiModelProperty("接收者的角色名")
private String name;
@ApiModelProperty("该角色是否已读")
private Integer readStatus;
}
@Data
@ApiModel("接收/发送者信息")
public static class MsgSender{
@ApiModelProperty("发送者的id")
private Long id;
@ApiModelProperty("发送者的名字")
private String name;
}
}

2
tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java

@ -348,6 +348,8 @@ public class TaskVo {
private Long taskBeginTime;
@ApiModelProperty("结束时间")
private Long taskEndTime;
@ApiModelProperty("是否是自己的任务 0否 1是")
private Integer mine;
}
}

3
tall/src/main/java/com/ccsens/tall/config/SpringConfig.java

@ -155,7 +155,8 @@ public class SpringConfig implements WebMvcConfigurer {
.addPathPatterns("/templates/**")
.addPathPatterns("/hardware/**")
.addPathPatterns("/labels/**")
.addPathPatterns("/charts/**");
.addPathPatterns("/charts/**")
.addPathPatterns("/ring/**");
//super.addInterceptors(registry);
}

4
tall/src/main/java/com/ccsens/tall/persist/dao/ProMemberRoleDao.java

@ -9,4 +9,8 @@ import java.util.List;
@Repository
public interface ProMemberRoleDao extends ProMemberRoleMapper{
void insertBatch(List<ProMemberRole> members);
List<Long> selectUserIdByRoleId(Long roleId);
List<Long> selectUserIdByProjectId(Long projectId);
}

18
tall/src/main/java/com/ccsens/tall/persist/dao/SysRingMsgDao.java

@ -0,0 +1,18 @@
package com.ccsens.tall.persist.dao;
import com.ccsens.tall.bean.vo.RingVo;
import com.ccsens.tall.persist.mapper.SysRingMsgMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface SysRingMsgDao extends SysRingMsgMapper {
List<RingVo.RingInfo> selectRingInfoByProject(@Param("userId")Long userId, @Param("projectId")Long projectId, @Param("pageIndex")int pageIndex, @Param("pageSize")int pageSize);
List<Long> selectRoleIdByUserId(@Param("userId")Long userId, @Param("projectId")Long projectId);
void updateStatusByRoleIdAndMsgId(@Param("roleIdList")List<Long> roleIdList, @Param("messageIdList")List<Long> messageIdList);
}

8
tall/src/main/java/com/ccsens/tall/persist/dao/SysRingSendDao.java

@ -0,0 +1,8 @@
package com.ccsens.tall.persist.dao;
import com.ccsens.tall.persist.mapper.SysRingSendMapper;
import org.springframework.stereotype.Repository;
@Repository
public interface SysRingSendDao extends SysRingSendMapper {
}

4
tall/src/main/java/com/ccsens/tall/persist/dao/TaskSubTimeDao.java

@ -14,7 +14,7 @@ public interface TaskSubTimeDao extends ProTaskSubTimeMapper{
void clearTaskRealTime(@Param("projectId")Long projectId);
List<TaskVo.KanBanTask> getKanbanTake(@Param("projectId")Long projectId, @Param("roleId")Long roleId,@Param("type") Integer type,@Param("memberId")Long memberId);
List<TaskVo.KanBanTask> getKanbanTake(@Param("userId")Long userId,@Param("projectId")Long projectId, @Param("roleId")Long roleId,@Param("type") Integer type,@Param("memberId")Long memberId);
List<TaskVo.KanBanTask> getKanbanTakeByType(@Param("projectId")Long projectId, @Param("roleId")Long roleId, @Param("type")Integer type);
List<TaskVo.KanBanTask> getKanbanTakeByType(@Param("userId")Long userId,@Param("projectId")Long projectId, @Param("roleId")Long roleId, @Param("type")Integer type);
}

36
tall/src/main/java/com/ccsens/tall/persist/mapper/SysRingMsgMapper.java

@ -0,0 +1,36 @@
package com.ccsens.tall.persist.mapper;
import com.ccsens.tall.bean.po.SysRingMsg;
import com.ccsens.tall.bean.po.SysRingMsgExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;
public interface SysRingMsgMapper {
long countByExample(SysRingMsgExample example);
int deleteByExample(SysRingMsgExample example);
int deleteByPrimaryKey(Long id);
int insert(SysRingMsg record);
int insertSelective(SysRingMsg record);
List<SysRingMsg> selectByExampleWithBLOBs(SysRingMsgExample example);
List<SysRingMsg> selectByExample(SysRingMsgExample example);
SysRingMsg selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") SysRingMsg record, @Param("example") SysRingMsgExample example);
int updateByExampleWithBLOBs(@Param("record") SysRingMsg record, @Param("example") SysRingMsgExample example);
int updateByExample(@Param("record") SysRingMsg record, @Param("example") SysRingMsgExample example);
int updateByPrimaryKeySelective(SysRingMsg record);
int updateByPrimaryKeyWithBLOBs(SysRingMsg record);
int updateByPrimaryKey(SysRingMsg record);
}

30
tall/src/main/java/com/ccsens/tall/persist/mapper/SysRingSendMapper.java

@ -0,0 +1,30 @@
package com.ccsens.tall.persist.mapper;
import com.ccsens.tall.bean.po.SysRingSend;
import com.ccsens.tall.bean.po.SysRingSendExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;
public interface SysRingSendMapper {
long countByExample(SysRingSendExample example);
int deleteByExample(SysRingSendExample example);
int deleteByPrimaryKey(Long id);
int insert(SysRingSend record);
int insertSelective(SysRingSend record);
List<SysRingSend> selectByExample(SysRingSendExample example);
SysRingSend selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") SysRingSend record, @Param("example") SysRingSendExample example);
int updateByExample(@Param("record") SysRingSend record, @Param("example") SysRingSendExample example);
int updateByPrimaryKeySelective(SysRingSend record);
int updateByPrimaryKey(SysRingSend record);
}

16
tall/src/main/java/com/ccsens/tall/service/IRingService.java

@ -0,0 +1,16 @@
package com.ccsens.tall.service;
import com.ccsens.tall.bean.dto.RingDto;
import com.ccsens.tall.bean.vo.RingVo;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.github.pagehelper.PageInfo;
import java.util.List;
public interface IRingService {
void sendRingMsg(Long currentUserId, RingDto.RingSendDto ringSendDto) throws Exception;
PageInfo<RingVo.RingInfo> getRingInfo(Long currentUserId, RingDto.GetRingDto getRingDto);
void readRingMsg(Long currentUserId, RingDto.MessageId message) throws JsonProcessingException;
}

4
tall/src/main/java/com/ccsens/tall/service/ProMemberService.java

@ -68,7 +68,7 @@ public class ProMemberService implements IProMemberService {
List<ProRole> roleList = proRoleDao.selectByExample(roleExample);
if(CollectionUtil.isNotEmpty(roleList)){
for(ProRole role :roleList){
if(!role.getName().equals(WebConstant.ROLE_NAME.AllMember.phase)&&!role.getName().equals("MVP")) {
if(!role.getName().equals(WebConstant.ROLE_NAME.AllMember.phase)&&!role.getName().equals(WebConstant.ROLE_NAME.MVP.phase)) {
//查找角色下所有成员
ProMemberRoleExample memberRoleExample = new ProMemberRoleExample();
memberRoleExample.createCriteria().andRoleIdEqualTo(role.getId());
@ -77,7 +77,7 @@ public class ProMemberService implements IProMemberService {
for (ProMemberRole memberRole:memberRoleList){
ProMember proMember = proMemberDao.selectByPrimaryKey(memberRole.getMemberId());
if(ObjectUtil.isNotNull(proMember)){
Boolean flag = false;
boolean flag = false;
if (CollectionUtil.isNotEmpty(members)) {
for (ProjectVo.MembersByProject membersByProject : members) {
if (membersByProject.getPhone().equals(proMember.getPhone())) {

170
tall/src/main/java/com/ccsens/tall/service/RingService.java

@ -0,0 +1,170 @@
package com.ccsens.tall.service;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.ObjectUtil;
import com.ccsens.tall.bean.dto.RingDto;
import com.ccsens.tall.bean.dto.message.BaseMessageDto;
import com.ccsens.tall.bean.dto.message.RingMessageWithReadDto;
import com.ccsens.tall.bean.dto.message.RingMessageWithSendDto;
import com.ccsens.tall.bean.po.SysRingMsg;
import com.ccsens.tall.bean.po.SysRingSend;
import com.ccsens.tall.bean.po.SysRingSendExample;
import com.ccsens.tall.bean.vo.RingVo;
import com.ccsens.tall.persist.dao.SysRingMsgDao;
import com.ccsens.tall.persist.dao.SysRingSendDao;
import com.ccsens.util.CodeEnum;
import com.ccsens.util.JacksonUtil;
import com.ccsens.util.config.RabbitMQConfig;
import com.ccsens.util.exception.BaseException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.function.Consumer;
/**
* @author
*/
@Slf4j
@Service
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class RingService implements IRingService{
@Autowired
private Snowflake snowflake;
@Autowired
private SysRingMsgDao sysRingMsgDao;
@Autowired
private SysRingSendDao sysRingSendDao;
@Autowired
private IUserService userService;
@Autowired
private RabbitTemplate rabbitTemplate;
/**
* 发送ring消息
* @param currentUserId 当前用户userid
* @param ringSendDto 发送的消息内容
*/
@Override
public void sendRingMsg(Long currentUserId, RingDto.RingSendDto ringSendDto) throws Exception {
//获取当前时间
Long time = System.currentTimeMillis();
//将消息详情保存至数据库
SysRingMsg ringMsg = new SysRingMsg();
ringMsg.setId(snowflake.nextId());
ringMsg.setProjectId(ringSendDto.getProjectId());
ringMsg.setSenderId(currentUserId);
ringMsg.setTime(time);
ringMsg.setValueText(ringSendDto.getValue());
if(ringSendDto.getValue().length() > 20){
ringMsg.setValue(ringSendDto.getValue().substring(0,20));
}else {
ringMsg.setValue(ringSendDto.getValue());
}
sysRingMsgDao.insertSelective(ringMsg);
//所有接收者的userId
Set<Long> userIdSet = new HashSet<>();
//添加消息详情与接收角色的关联信息
if(CollectionUtil.isNotEmpty(ringSendDto.getRoleList())){
for(Long roleId :ringSendDto.getRoleList()){
SysRingSend sysRingSend = new SysRingSend();
sysRingSend.setId(snowflake.nextId());
sysRingSend.setRingId(ringMsg.getId());
sysRingSend.setRoleId(roleId);
sysRingSendDao.insertSelective(sysRingSend);
List<Long> userIdList = userService.selectUserIdByRoleId(roleId);
userIdSet.addAll(userIdList);
}
}
List<Long> userIdList = new ArrayList<>(userIdSet);
//发送消息
RingMessageWithSendDto ringMessageWithSendDto = new RingMessageWithSendDto(
ringMsg.getId(),ringSendDto.getProjectId(),ringMsg.getValue(),time);
ringMessageWithSendDto.setReceivers(BaseMessageDto.MessageUser.userIdToUsers(userIdList));
rabbitTemplate.convertAndSend(RabbitMQConfig.RabbitMQ_QUEUE_NAME,
JacksonUtil.beanToJson(ringMessageWithSendDto));
}
/**
* 查询ring消息
* @param currentUserId userId
* @param getRingDto 查询条件
* @return 时间倒叙查询最近10条信息在返回的结果中需时间正序展示
*/
@Override
public PageInfo<RingVo.RingInfo> getRingInfo(Long currentUserId, RingDto.GetRingDto getRingDto) {
//计算分页信息
int pageIndex = 0;
int pageSize = 10;
if(ObjectUtil.isNotNull(getRingDto.getPageSize())) {
pageSize = getRingDto.getPageSize();
}
if(ObjectUtil.isNotNull(getRingDto.getPage())) {
pageIndex = (getRingDto.getPage() - 1) * pageSize;
}
getRingDto.setPage(getRingDto.getPage() == null ? 1 : getRingDto.getPage());
getRingDto.setPageSize(getRingDto.getPageSize() == null ? 10 : getRingDto.getPageSize());
PageHelper.startPage(getRingDto.getPage(), getRingDto.getPageSize());
List<RingVo.RingInfo> ringInfoList = sysRingMsgDao.selectRingInfoByProject(currentUserId,getRingDto.getProjectId(),pageIndex,pageSize);
CollectionUtil.sort(ringInfoList,new Comparator<RingVo.RingInfo>(){
@Override
public int compare(RingVo.RingInfo o1, RingVo.RingInfo o2) {
return (int)(o1.getTime() - o2.getTime());
}
});
return new PageInfo<>(ringInfoList);
}
/**
* 阅读消息将消息设为已读
* @param currentUserId userId
* @param message 项目id和消息id可以多个同时将多个消息设为已读
*/
@Override
public void readRingMsg(Long currentUserId, RingDto.MessageId message) throws JsonProcessingException {
//获取当前用户在项目内的角色
List<Long> roleIdList = sysRingMsgDao.selectRoleIdByUserId(currentUserId,message.getProjectId());
log.info("阅读者的角色:{}",roleIdList.toString());
//将每条消息的状态设为已读
if(CollectionUtil.isNotEmpty(roleIdList) && CollectionUtil.isNotEmpty(message.getMessageIdList())){
for(Long roleId : roleIdList){
for(Long msgId : message.getMessageIdList()){
//查找消息
SysRingMsg sysRingMsg = sysRingMsgDao.selectByPrimaryKey(msgId);
if(ObjectUtil.isNull(sysRingMsg)){
throw new BaseException(CodeEnum.PARAM_ERROR);
}
SysRingSendExample sysRingSendExample = new SysRingSendExample();
sysRingSendExample.createCriteria().andRingIdEqualTo(msgId).andRoleIdEqualTo(roleId);
List<SysRingSend> sysRingSendList = sysRingSendDao.selectByExample(sysRingSendExample);
if(CollectionUtil.isNotEmpty(sysRingSendList)){
for(SysRingSend sysRingSend : sysRingSendList){
sysRingSend.setReadStatus((byte) 1);
sysRingSend.setReadTime(System.currentTimeMillis());
sysRingSendDao.updateByPrimaryKeySelective(sysRingSend);
}
//将已读消息返回给发送者
List<Long> userIdList = new ArrayList<>();
userIdList.add(sysRingMsg.getSenderId());
RingMessageWithReadDto ringMessageWithReadDto = new RingMessageWithReadDto(msgId,message.getProjectId(),roleId);
ringMessageWithReadDto.setReceivers(BaseMessageDto.MessageUser.userIdToUsers(userIdList));
rabbitTemplate.convertAndSend(RabbitMQConfig.RabbitMQ_QUEUE_NAME,
JacksonUtil.beanToJson(ringMessageWithReadDto));
}
}
}
}
}
}

24
tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java

@ -249,13 +249,13 @@ public class TaskDeliverService implements ITaskDeliverService {
userIdList.addAll(userService.selectUserIdByRoleId(postLogCheckerId));
}
}
Set<String> userIdSet = new HashSet<>();
// Set<String> userIdSet = new HashSet<>();
if (CollectionUtil.isNotEmpty(userIdList)) {
HashSet<Long> h = new HashSet<>(userIdList);
userIdList.clear();
userIdList.addAll(h);
for (Long userId : userIdList) {
userIdSet.add(userId.toString());
// userIdSet.add(userId.toString());
messageUser = new BaseMessageDto.MessageUser();
messageUser.setUserId(userId);
messageUserList.add(messageUser);
@ -276,8 +276,11 @@ public class TaskDeliverService implements ITaskDeliverService {
uploadMessageData.setUploadTime(System.currentTimeMillis());
uploadMessageData.setFile(uploadDeliver.getFileInfo());
uploadMessage.setData(uploadMessageData);
uploadMessage.setReceivers(messageUserList);
log.info("检查交付物:{}",JacksonUtil.beanToJson(uploadMessage));
rabbitTemplate.convertAndSend(RabbitMQConfig.RabbitMQ_QUEUE_NAME,
JacksonUtil.beanToJson(uploadMessage));
// MessageRule messageRule = MessageRule.defaultRule(MessageConstant.DomainType.User);
// String s = JacksonUtil.beanToJson(uploadMessage);
// InMessage inMessage = InMessage.newToUserMessage(currentUserId.toString(),userIdSet,null,messageRule,s);
@ -317,6 +320,8 @@ public class TaskDeliverService implements ITaskDeliverService {
subTimeId = taskAndSubTime.getSubTimeId();
}
}
}else {
throw new BaseException(CodeEnum.NOT_TASK);
}
if(ObjectUtil.isNull(subTimeId)){
ProTaskSubTimeExample taskSubTimeExample = new ProTaskSubTimeExample();
@ -558,6 +563,16 @@ public class TaskDeliverService implements ITaskDeliverService {
checkerDtoData.setCheckTime(checkTime);
checkerDtoData.setIsChecker(checkDeliver.getCheckStatus());
checkerDto.setData(checkerDtoData);
//接收者
if(CollectionUtil.isNotEmpty(userIdSet)) {
for (String userId : userIdSet) {
messageUser = new BaseMessageDto.MessageUser();
messageUser.setUserId(Long.valueOf(userId));
messageUserList.add(messageUser);
}
}
checkerDto.setReceivers(messageUserList);
log.info("检查交付物:{}",JacksonUtil.beanToJson(checkerDto));
rabbitTemplate.convertAndSend(RabbitMQConfig.RabbitMQ_QUEUE_NAME,
JacksonUtil.beanToJson(checkerDto));
// MessageRule messageRule = MessageRule.defaultRule(MessageConstant.DomainType.User);
@ -724,13 +739,13 @@ public class TaskDeliverService implements ITaskDeliverService {
ProTaskDetail task = taskDetailDao.selectByPrimaryKey(deliver.getTaskDetailId());
ProRole role = proRoleDao.selectByPrimaryKey(task.getExecutorRole());
//发送消息
Set<String> userIdSet = new HashSet<>();
// Set<String> userIdSet = new HashSet<>();
if (CollectionUtil.isNotEmpty(userIdList)) {
HashSet<Long> h = new HashSet<>(userIdList);
userIdList.clear();
userIdList.addAll(h);
for (Long userId : userIdList) {
userIdSet.add(userId.toString());
// userIdSet.add(userId.toString());
messageUser = new BaseMessageDto.MessageUser();
messageUser.setUserId(userId);
messageUserList.add(messageUser);
@ -749,6 +764,7 @@ public class TaskDeliverService implements ITaskDeliverService {
deleteMessageData.setDeleteTime(deleteTime);
deleteMessageData.setUserId(currentUserId);
deleteMessage.setData(deleteMessageData);
deleteMessage.setReceivers(messageUserList);
rabbitTemplate.convertAndSend(RabbitMQConfig.RabbitMQ_QUEUE_NAME,
JacksonUtil.beanToJson(deleteMessage));
// MessageRule messageRule = MessageRule.defaultRule(MessageConstant.DomainType.User);

42
tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java

@ -469,10 +469,10 @@ public class TaskSubTimeService implements ITaskSubTimeService {
kanBan.setTypeName(entry.getValue());
PageHelper.startPage(page, pageSize);
if (kanBan.getCode() <= 2) {
List<TaskVo.KanBanTask> kanBanTaskList = taskSubTimeDao.getKanbanTake(projectId, roleId, kanBan.getCode(), member.getId());
List<TaskVo.KanBanTask> kanBanTaskList = taskSubTimeDao.getKanbanTake(currentUserId,projectId, roleId, kanBan.getCode(), member.getId());
kanBan.setTaskList(new PageInfo<>(kanBanTaskList));
} else {
List<TaskVo.KanBanTask> kanBanTaskList = taskSubTimeDao.getKanbanTakeByType(projectId, roleId, kanBan.getCode());
List<TaskVo.KanBanTask> kanBanTaskList = taskSubTimeDao.getKanbanTakeByType(currentUserId,projectId, roleId, kanBan.getCode());
kanBan.setTaskList(new PageInfo<>(kanBanTaskList));
}
kanBans.add(kanBan);
@ -483,49 +483,15 @@ public class TaskSubTimeService implements ITaskSubTimeService {
kanBan.setTypeName(typeMap.get(type));
PageHelper.startPage(page, pageSize);
if (kanBan.getCode() <= 2) {
List<TaskVo.KanBanTask> kanBanTaskList = taskSubTimeDao.getKanbanTake(projectId, roleId, type, member.getId());
List<TaskVo.KanBanTask> kanBanTaskList = taskSubTimeDao.getKanbanTake(currentUserId,projectId, roleId, type, member.getId());
kanBan.setTaskList(new PageInfo<>(kanBanTaskList));
} else {
List<TaskVo.KanBanTask> kanBanTaskList = taskSubTimeDao.getKanbanTakeByType(projectId, roleId, type);
List<TaskVo.KanBanTask> kanBanTaskList = taskSubTimeDao.getKanbanTakeByType(currentUserId,projectId, roleId, type);
kanBan.setTaskList(new PageInfo<>(kanBanTaskList));
}
kanBans.add(kanBan);
}
// if (ObjectUtil.isNull(type)) {
//
// TaskVo.KanBan kanBan0 = new TaskVo.KanBan();
// kanBan0.setCode(0);
// kanBan0.setTypeName("未开始");
// PageHelper.startPage(page, pageSize);
// List<TaskVo.KanBanTask> kanBanTaskList0 = taskSubTimeDao.getKanbanTake(projectId, roleId, kanBan0.getCode(), member.getId());
// kanBan0.setTaskList(new PageInfo<>(kanBanTaskList0));
//
// TaskVo.KanBan kanBan1 = new TaskVo.KanBan();
// kanBan1.setCode(1);
// kanBan1.setTypeName("进行中");
// List<TaskVo.KanBanTask> kanBanTaskList1 = taskSubTimeDao.getKanbanTake(projectId, roleId, kanBan1.getCode(), member.getId());
// kanBan1.setTaskList(new PageInfo<>(kanBanTaskList1));
//
// TaskVo.KanBan kanBan2 = new TaskVo.KanBan();
// kanBan2.setCode(2);
// kanBan2.setTypeName("已完成");
// List<TaskVo.KanBanTask> kanBanTaskList2 = taskSubTimeDao.getKanbanTake(projectId, roleId, kanBan2.getCode(), member.getId());
// kanBan2.setTaskList(new PageInfo<>(kanBanTaskList2));
//
// kanBans.add(kanBan0);
// kanBans.add(kanBan1);
// kanBans.add(kanBan2);
//
// } else {
// TaskVo.KanBan kanBan = new TaskVo.KanBan();
// kanBan.setCode(type);
// kanBan.setTypeName(typeMap.get(type));
// PageHelper.startPage(page, pageSize);
// List<TaskVo.KanBanTask> kanBanTaskList0 = taskSubTimeDao.getKanbanTake(projectId, roleId, type, member.getId());
// kanBan.setTaskList(new PageInfo<>(kanBanTaskList0));
// kanBans.add(kanBan);
// }
return kanBans;
}

35
tall/src/main/java/com/ccsens/tall/service/UserService.java

@ -52,6 +52,8 @@ public class UserService implements IUserService {
@Autowired
private ProMemberDao memberDao;
@Autowired
private ProRoleDao proRoleDao;
@Autowired
private ProMemberRoleDao memberRoleDao;
@Autowired
private SysBalanceLogDao sysBalanceLogDao;
@ -411,7 +413,7 @@ public class UserService implements IUserService {
*/
private UserVo.UserSign getUserSign(String openId, String unionId,
byte identifyType, String redirect) {
UserVo.UserSign userSignVo;//1.查找对应账户,不存在则注册
UserVo.UserSign userSignVo;
List<SysAuth> authList = null;
SysAuth theAuth = null;
if (ObjectUtil.isNotNull(openId)) {
@ -437,7 +439,6 @@ public class UserService implements IUserService {
theAuth.setCredential(unionId);
authDao.insertSelective(theAuth);
} else {
//新建用户并保存微信信息
SysUser user = new SysUser();
@ -1025,17 +1026,27 @@ public class UserService implements IUserService {
*/
@Override
public List<Long> selectUserIdByRoleId(Long roleId) {
List<Long> userIdList = new ArrayList<>();
ProMemberRoleExample proMemberRoleExample = new ProMemberRoleExample();
proMemberRoleExample.createCriteria().andRoleIdEqualTo(roleId);
List<ProMemberRole> memberRoleList = memberRoleDao.selectByExample(proMemberRoleExample);
if (CollectionUtil.isNotEmpty(memberRoleList)) {
for (ProMemberRole memberRole : memberRoleList) {
ProMember member = memberDao.selectByPrimaryKey(memberRole.getMemberId());
Long userId = member.getUserId();
userIdList.add(userId);
}
ProRole role = proRoleDao.selectByPrimaryKey(roleId);
if(ObjectUtil.isNull(role)){
return null;
}
List<Long> userIdList = new ArrayList<>();
if(role.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase)){
userIdList = memberRoleDao.selectUserIdByProjectId(role.getProjectId());
}else {
userIdList = memberRoleDao.selectUserIdByRoleId(roleId);
}
// List<Long> userIdList = new ArrayList<>();
// ProMemberRoleExample proMemberRoleExample = new ProMemberRoleExample();
// proMemberRoleExample.createCriteria().andRoleIdEqualTo(roleId);
// List<ProMemberRole> memberRoleList = memberRoleDao.selectByExample(proMemberRoleExample);
// if (CollectionUtil.isNotEmpty(memberRoleList)) {
// for (ProMemberRole memberRole : memberRoleList) {
// ProMember member = memberDao.selectByPrimaryKey(memberRole.getMemberId());
// Long userId = member.getUserId();
// userIdList.add(userId);
// }
// }
return userIdList;
}

3
tall/src/main/java/com/ccsens/tall/web/PluginController.java

@ -8,6 +8,7 @@ import com.ccsens.tall.service.ISysPluginService;
import com.ccsens.tall.service.ITaskPluginService;
import com.ccsens.util.JsonResponse;
import com.ccsens.util.WebConstant;
import com.ccsens.util.annotation.OperateType;
import io.jsonwebtoken.Claims;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParams;
@ -75,7 +76,7 @@ public class PluginController {
return taskDetailId;
}
@OperateType(13)
@ApiOperation(value = "评论", notes = "")
@ApiImplicitParams({
})

66
tall/src/main/java/com/ccsens/tall/web/RingController.java

@ -0,0 +1,66 @@
package com.ccsens.tall.web;
import com.ccsens.tall.bean.dto.RingDto;
import com.ccsens.tall.bean.dto.TaskDto;
import com.ccsens.tall.bean.vo.RingVo;
import com.ccsens.tall.service.IRingService;
import com.ccsens.util.JsonResponse;
import com.ccsens.util.WebConstant;
import com.github.pagehelper.PageInfo;
import io.jsonwebtoken.Claims;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
@Api(tags = "Ring消息相关API" , description = "")
@RestController
@RequestMapping("/ring")
public class RingController {
@Autowired
private IRingService ringService;
@ApiOperation(value = "发送ring消息", notes = "")
@ApiImplicitParams({
})
@RequestMapping(value = "/send", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse sendRingMsg(HttpServletRequest request,
@ApiParam @Validated @RequestBody RingDto.RingSendDto ringSendDto) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
ringService.sendRingMsg(currentUserId,ringSendDto);
return JsonResponse.newInstance().ok();
}
@ApiOperation(value = "查看ring消息", notes = "")
@ApiImplicitParams({
})
@RequestMapping(value = "", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<PageInfo<RingVo.RingInfo>> getRingInfo(HttpServletRequest request,
@ApiParam @Validated @RequestBody RingDto.GetRingDto getRingDto) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
PageInfo<RingVo.RingInfo> ringInfoList = ringService.getRingInfo(currentUserId,getRingDto);
return JsonResponse.newInstance().ok(ringInfoList);
}
@ApiOperation(value = "阅读消息(将消息设为已读)", notes = "")
@ApiImplicitParams({
})
@RequestMapping(value = "/read", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse readRingMsg(HttpServletRequest request,
@ApiParam @Validated @RequestBody RingDto.MessageId message) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
ringService.readRingMsg(currentUserId,message);
return JsonResponse.newInstance().ok();
}
}

3
tall/src/main/java/com/ccsens/tall/web/TaskController.java

@ -144,9 +144,6 @@ public class TaskController {
@ApiOperation(value = "看板上修改任务信息", notes = "")
@ApiImplicitParams({
@ApiImplicitParam(name = "projectId", value = "项目id 必填", required = true, paramType = "query"),
@ApiImplicitParam(name = "type", value = "必填 任务状态 0未开始 1进行中 2已完成", required = true, paramType = "query"),
@ApiImplicitParam(name = "roleId", value = "角色id 不传则查找全部", required = true, paramType = "query")
})
@RequestMapping(value = "kanban/change", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse changeKanbanTake(HttpServletRequest request,

4
tall/src/main/resources/application.yml

@ -1,4 +1,4 @@
spring:
profiles:
active: test
include: util-test,common
active: dev
include: util-dev,common

28
tall/src/main/resources/mapper_dao/ProMemberRoleDao.xml

@ -12,4 +12,32 @@
</insert>
<select id="selectUserIdByRoleId" parameterType="java.util.Map" resultType="Long">
SELECT
m.user_id
FROM
t_pro_member m LEFT JOIN t_pro_member_role mr on m.id = mr.member_id
LEFT JOIN t_pro_role r on mr.role_id = r.id
where
r.id = #{roleId}
and m.rec_status = 0
and r.rec_status = 0
</select>
<select id="selectUserIdByProjectId" parameterType="java.util.Map" resultType="Long">
select
m.user_id,
m.nickname
from
t_pro_member m LEFT JOIN t_pro_member_role mr on m.id = mr.member_id
LEFT JOIN t_pro_role r on mr.role_id = r.id
WHERE
m.project_id = #{projectId}
and
r.name != 'MoneyStakeholder'
and m.rec_status = 0
and r.rec_status = 0
and m.user_id != 0
GROUP BY m.user_id
</select>
</mapper>

2
tall/src/main/resources/mapper_dao/SysOperationDao.xml

@ -38,7 +38,7 @@
AND s.receiver_id = #{userId}
AND s.send_type = #{sendType}
AND s.init_read =0
AND s.rec_status = 0
AND s.rec_status = 0e
AND o.rec_status = 0
</select>
<select id="queryMsg" resultMap="MessageQuery">

93
tall/src/main/resources/mapper_dao/SysRingMsgDao.xml

@ -0,0 +1,93 @@
<?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.ccsens.tall.persist.dao.SysRingMsgDao">
<resultMap id="ring_message" type="com.ccsens.tall.bean.vo.RingVo$RingInfo">
<id column="messageId" property="messageId" />
<result column="value" property="value" />
<result column="mine" property="mine" />
<result column="unread" property="unread" />
<result column="time" property="time" />
<collection property="roleList" ofType="com.ccsens.tall.bean.vo.RingVo$MsgReceiveRole">
<id column="roleId" property="id"/>
<result column="roleName" property="name"/>
<result column="readStatus" property="readStatus"/>
</collection>
<collection property="sender" ofType="com.ccsens.tall.bean.vo.RingVo$MsgSender">
<id column="senderId" property="id"/>
<result column="senderName" property="name"/>
</collection>
</resultMap>
<select id="selectRingInfoByProject" parameterType="java.util.Map" resultMap="ring_message">
SELECT
m.id as messageId,
m.`value` as `value`,
m.`value_text` as `valueText`,
m.`time` as time,
if(m.sender_id = #{userId},1,0) as mine,
r.id as roleId,
r.name as roleName,
s.read_status as readStatus,
m.sender_id as senderId,
(
SELECT
IF( u.nickname = '', a.identifier, u.nickname ) AS userName
FROM
t_sys_user u
LEFT JOIN t_sys_auth a ON u.id = a.user_id
AND a.identify_type = 3
WHERE
u.rec_status = 0
and
a.rec_status = 0
and
u.id = m.sender_id
limit 1
) as senderName,
(SELECT count(read_status) FROM t_sys_ring_send WHERE ring_id = m.id and read_status = 0) as unread
FROM
t_sys_ring_msg m LEFT JOIN t_sys_ring_send s on m.id = s.ring_id
LEFT JOIN t_pro_role r on s.role_id = r.id
WHERE
(
m.sender_id = #{userId}
or
s.role_id in (
SELECT
r.id as rId
FROM
t_pro_role r LEFT JOIN t_pro_member_role mr on r.id = mr.role_id
LEFT JOIN t_pro_member m on mr.member_id = m.id
WHERE
(m.user_id = #{userId}
or
r.`name` = '全体成员'
)
AND
r.project_id = #{projectId}
)
)
and
m.project_id = #{projectId}
ORDER BY m.time DESC
</select>
<select id="selectRoleIdByUserId" parameterType="java.util.Map" resultType="Long">
SELECT
r.id as rId
FROM
t_pro_role r LEFT JOIN t_pro_member_role mr on r.id = mr.role_id
LEFT JOIN t_pro_member m on mr.member_id = m.id
WHERE
(m.user_id = #{userId}
or
r.`name` = '全体成员'
)
AND
r.project_id = #{projectId}
</select>
</mapper>

41
tall/src/main/resources/mapper_dao/TaskSubTimeDao.xml

@ -37,7 +37,8 @@
d.executor_role as roleId,
r.name as roleName,
s.begin_time as taskBegintime,
s.end_time as taskEndTime
s.end_time as taskEndTime,
if(a.rId is not null or r.`name` = '全体成员',1,0) as mine
FROM
t_pro_task_detail d LEFT JOIN t_pro_task_sub_time s on d.id = s.task_detail_id
LEFT JOIN t_pro_role r on r.id = d.executor_role
@ -53,9 +54,24 @@
and
m.rec_status = 0
)t on t.sId = s.id
LEFT JOIN
(
SELECT
r.id as rId
FROM
t_pro_role r Left join t_pro_member_role mr on r.id = mr.role_id
LEFT JOIN t_pro_member m on mr.member_id = m.id
WHERE
m.user_id = #{userId}
and m.rec_status = 0
and r.rec_status = 0
) a on a.rId = r.id
WHERE
d.project_id = #{projectId}
and
d.rec_status = 0
and
d.level != 0
<if test="roleId != null">
and
@ -64,6 +80,8 @@
and
s.complated_status = #{type}
and
FROM_UNIXTIME(s.begin_time/1000,'%Y-%m-%d %H:%m:%s') &lt; NOW()
and
(
(
d.finish_need_all = 0
@ -75,6 +93,7 @@
t.mid > 0
)
)
ORDER BY s.begin_time DESC
</select>
<select id="getKanbanTakeByType" parameterType="java.util.Map" resultType="com.ccsens.tall.bean.vo.TaskVo$KanBanTask">
@ -85,13 +104,28 @@
d.executor_role as roleId,
r.name as roleName,
s.begin_time as taskBegintime,
s.end_time as taskEndTime
s.end_time as taskEndTime,
if(t.rId is not null or r.`name` = '全体成员',1,0) as mine
FROM
t_pro_task_detail d LEFT JOIN t_pro_task_sub_time s on d.id = s.task_detail_id
LEFT JOIN t_pro_role r on r.id = d.executor_role
LEFT JOIN
(
SELECT
r.id as rId
FROM
t_pro_role r Left join t_pro_member_role mr on r.id = mr.role_id
LEFT JOIN t_pro_member m on mr.member_id = m.id
WHERE
m.user_id = #{userId}
and m.rec_status = 0
and r.rec_status = 0
) t on t.rId = r.id
WHERE
d.project_id = #{projectId}
and
d.rec_status = 0
and
d.level != 0
<if test="roleId != null">
and
@ -99,5 +133,8 @@
</if>
and
s.complated_status = #{type}
and
FROM_UNIXTIME(s.begin_time/1000,'%Y-%m-%d %H:%m:%s') &lt; NOW()
ORDER BY s.begin_time DESC
</select>
</mapper>

323
tall/src/main/resources/mapper_raw/SysRingMsgMapper.xml

@ -0,0 +1,323 @@
<?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.ccsens.tall.persist.mapper.SysRingMsgMapper">
<resultMap id="BaseResultMap" type="com.ccsens.tall.bean.po.SysRingMsg">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="project_id" jdbcType="BIGINT" property="projectId" />
<result column="value" jdbcType="VARCHAR" property="value" />
<result column="sender_id" jdbcType="BIGINT" property="senderId" />
<result column="time" jdbcType="BIGINT" property="time" />
<result column="created_at" jdbcType="TIMESTAMP" property="createdAt" />
<result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" />
<result column="rec_status" jdbcType="TINYINT" property="recStatus" />
</resultMap>
<resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.ccsens.tall.bean.po.SysRingMsg">
<result column="value_text" jdbcType="LONGVARCHAR" property="valueText" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Update_By_Example_Where_Clause">
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Base_Column_List">
id, project_id, value, sender_id, time, created_at, updated_at, rec_status
</sql>
<sql id="Blob_Column_List">
value_text
</sql>
<select id="selectByExampleWithBLOBs" parameterType="com.ccsens.tall.bean.po.SysRingMsgExample" resultMap="ResultMapWithBLOBs">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
,
<include refid="Blob_Column_List" />
from t_sys_ring_msg
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<select id="selectByExample" parameterType="com.ccsens.tall.bean.po.SysRingMsgExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from t_sys_ring_msg
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="ResultMapWithBLOBs">
select
<include refid="Base_Column_List" />
,
<include refid="Blob_Column_List" />
from t_sys_ring_msg
where id = #{id,jdbcType=BIGINT}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from t_sys_ring_msg
where id = #{id,jdbcType=BIGINT}
</delete>
<delete id="deleteByExample" parameterType="com.ccsens.tall.bean.po.SysRingMsgExample">
delete from t_sys_ring_msg
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="com.ccsens.tall.bean.po.SysRingMsg">
insert into t_sys_ring_msg (id, project_id, value,
sender_id, time, created_at,
updated_at, rec_status, value_text
)
values (#{id,jdbcType=BIGINT}, #{projectId,jdbcType=BIGINT}, #{value,jdbcType=VARCHAR},
#{senderId,jdbcType=BIGINT}, #{time,jdbcType=BIGINT}, #{createdAt,jdbcType=TIMESTAMP},
#{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT}, #{valueText,jdbcType=LONGVARCHAR}
)
</insert>
<insert id="insertSelective" parameterType="com.ccsens.tall.bean.po.SysRingMsg">
insert into t_sys_ring_msg
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="projectId != null">
project_id,
</if>
<if test="value != null">
value,
</if>
<if test="senderId != null">
sender_id,
</if>
<if test="time != null">
time,
</if>
<if test="createdAt != null">
created_at,
</if>
<if test="updatedAt != null">
updated_at,
</if>
<if test="recStatus != null">
rec_status,
</if>
<if test="valueText != null">
value_text,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=BIGINT},
</if>
<if test="projectId != null">
#{projectId,jdbcType=BIGINT},
</if>
<if test="value != null">
#{value,jdbcType=VARCHAR},
</if>
<if test="senderId != null">
#{senderId,jdbcType=BIGINT},
</if>
<if test="time != null">
#{time,jdbcType=BIGINT},
</if>
<if test="createdAt != null">
#{createdAt,jdbcType=TIMESTAMP},
</if>
<if test="updatedAt != null">
#{updatedAt,jdbcType=TIMESTAMP},
</if>
<if test="recStatus != null">
#{recStatus,jdbcType=TINYINT},
</if>
<if test="valueText != null">
#{valueText,jdbcType=LONGVARCHAR},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.ccsens.tall.bean.po.SysRingMsgExample" resultType="java.lang.Long">
select count(*) from t_sys_ring_msg
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update t_sys_ring_msg
<set>
<if test="record.id != null">
id = #{record.id,jdbcType=BIGINT},
</if>
<if test="record.projectId != null">
project_id = #{record.projectId,jdbcType=BIGINT},
</if>
<if test="record.value != null">
value = #{record.value,jdbcType=VARCHAR},
</if>
<if test="record.senderId != null">
sender_id = #{record.senderId,jdbcType=BIGINT},
</if>
<if test="record.time != null">
time = #{record.time,jdbcType=BIGINT},
</if>
<if test="record.createdAt != null">
created_at = #{record.createdAt,jdbcType=TIMESTAMP},
</if>
<if test="record.updatedAt != null">
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
</if>
<if test="record.recStatus != null">
rec_status = #{record.recStatus,jdbcType=TINYINT},
</if>
<if test="record.valueText != null">
value_text = #{record.valueText,jdbcType=LONGVARCHAR},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExampleWithBLOBs" parameterType="map">
update t_sys_ring_msg
set id = #{record.id,jdbcType=BIGINT},
project_id = #{record.projectId,jdbcType=BIGINT},
value = #{record.value,jdbcType=VARCHAR},
sender_id = #{record.senderId,jdbcType=BIGINT},
time = #{record.time,jdbcType=BIGINT},
created_at = #{record.createdAt,jdbcType=TIMESTAMP},
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
rec_status = #{record.recStatus,jdbcType=TINYINT},
value_text = #{record.valueText,jdbcType=LONGVARCHAR}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map">
update t_sys_ring_msg
set id = #{record.id,jdbcType=BIGINT},
project_id = #{record.projectId,jdbcType=BIGINT},
value = #{record.value,jdbcType=VARCHAR},
sender_id = #{record.senderId,jdbcType=BIGINT},
time = #{record.time,jdbcType=BIGINT},
created_at = #{record.createdAt,jdbcType=TIMESTAMP},
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
rec_status = #{record.recStatus,jdbcType=TINYINT}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByPrimaryKeySelective" parameterType="com.ccsens.tall.bean.po.SysRingMsg">
update t_sys_ring_msg
<set>
<if test="projectId != null">
project_id = #{projectId,jdbcType=BIGINT},
</if>
<if test="value != null">
value = #{value,jdbcType=VARCHAR},
</if>
<if test="senderId != null">
sender_id = #{senderId,jdbcType=BIGINT},
</if>
<if test="time != null">
time = #{time,jdbcType=BIGINT},
</if>
<if test="createdAt != null">
created_at = #{createdAt,jdbcType=TIMESTAMP},
</if>
<if test="updatedAt != null">
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
</if>
<if test="recStatus != null">
rec_status = #{recStatus,jdbcType=TINYINT},
</if>
<if test="valueText != null">
value_text = #{valueText,jdbcType=LONGVARCHAR},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update id="updateByPrimaryKeyWithBLOBs" parameterType="com.ccsens.tall.bean.po.SysRingMsg">
update t_sys_ring_msg
set project_id = #{projectId,jdbcType=BIGINT},
value = #{value,jdbcType=VARCHAR},
sender_id = #{senderId,jdbcType=BIGINT},
time = #{time,jdbcType=BIGINT},
created_at = #{createdAt,jdbcType=TIMESTAMP},
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
rec_status = #{recStatus,jdbcType=TINYINT},
value_text = #{valueText,jdbcType=LONGVARCHAR}
where id = #{id,jdbcType=BIGINT}
</update>
<update id="updateByPrimaryKey" parameterType="com.ccsens.tall.bean.po.SysRingMsg">
update t_sys_ring_msg
set project_id = #{projectId,jdbcType=BIGINT},
value = #{value,jdbcType=VARCHAR},
sender_id = #{senderId,jdbcType=BIGINT},
time = #{time,jdbcType=BIGINT},
created_at = #{createdAt,jdbcType=TIMESTAMP},
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
rec_status = #{recStatus,jdbcType=TINYINT}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>

258
tall/src/main/resources/mapper_raw/SysRingSendMapper.xml

@ -0,0 +1,258 @@
<?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.ccsens.tall.persist.mapper.SysRingSendMapper">
<resultMap id="BaseResultMap" type="com.ccsens.tall.bean.po.SysRingSend">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="ring_id" jdbcType="BIGINT" property="ringId" />
<result column="role_id" jdbcType="BIGINT" property="roleId" />
<result column="read_status" jdbcType="TINYINT" property="readStatus" />
<result column="created_at" jdbcType="TIMESTAMP" property="createdAt" />
<result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" />
<result column="rec_status" jdbcType="TINYINT" property="recStatus" />
<result column="read_time" jdbcType="BIGINT" property="readTime" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Update_By_Example_Where_Clause">
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Base_Column_List">
id, ring_id, role_id, read_status, created_at, updated_at, rec_status, read_time
</sql>
<select id="selectByExample" parameterType="com.ccsens.tall.bean.po.SysRingSendExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from t_sys_ring_send
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from t_sys_ring_send
where id = #{id,jdbcType=BIGINT}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from t_sys_ring_send
where id = #{id,jdbcType=BIGINT}
</delete>
<delete id="deleteByExample" parameterType="com.ccsens.tall.bean.po.SysRingSendExample">
delete from t_sys_ring_send
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="com.ccsens.tall.bean.po.SysRingSend">
insert into t_sys_ring_send (id, ring_id, role_id,
read_status, created_at, updated_at,
rec_status, read_time)
values (#{id,jdbcType=BIGINT}, #{ringId,jdbcType=BIGINT}, #{roleId,jdbcType=BIGINT},
#{readStatus,jdbcType=TINYINT}, #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP},
#{recStatus,jdbcType=TINYINT}, #{readTime,jdbcType=BIGINT})
</insert>
<insert id="insertSelective" parameterType="com.ccsens.tall.bean.po.SysRingSend">
insert into t_sys_ring_send
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="ringId != null">
ring_id,
</if>
<if test="roleId != null">
role_id,
</if>
<if test="readStatus != null">
read_status,
</if>
<if test="createdAt != null">
created_at,
</if>
<if test="updatedAt != null">
updated_at,
</if>
<if test="recStatus != null">
rec_status,
</if>
<if test="readTime != null">
read_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=BIGINT},
</if>
<if test="ringId != null">
#{ringId,jdbcType=BIGINT},
</if>
<if test="roleId != null">
#{roleId,jdbcType=BIGINT},
</if>
<if test="readStatus != null">
#{readStatus,jdbcType=TINYINT},
</if>
<if test="createdAt != null">
#{createdAt,jdbcType=TIMESTAMP},
</if>
<if test="updatedAt != null">
#{updatedAt,jdbcType=TIMESTAMP},
</if>
<if test="recStatus != null">
#{recStatus,jdbcType=TINYINT},
</if>
<if test="readTime != null">
#{readTime,jdbcType=BIGINT},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.ccsens.tall.bean.po.SysRingSendExample" resultType="java.lang.Long">
select count(*) from t_sys_ring_send
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update t_sys_ring_send
<set>
<if test="record.id != null">
id = #{record.id,jdbcType=BIGINT},
</if>
<if test="record.ringId != null">
ring_id = #{record.ringId,jdbcType=BIGINT},
</if>
<if test="record.roleId != null">
role_id = #{record.roleId,jdbcType=BIGINT},
</if>
<if test="record.readStatus != null">
read_status = #{record.readStatus,jdbcType=TINYINT},
</if>
<if test="record.createdAt != null">
created_at = #{record.createdAt,jdbcType=TIMESTAMP},
</if>
<if test="record.updatedAt != null">
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
</if>
<if test="record.recStatus != null">
rec_status = #{record.recStatus,jdbcType=TINYINT},
</if>
<if test="record.readTime != null">
read_time = #{record.readTime,jdbcType=BIGINT},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map">
update t_sys_ring_send
set id = #{record.id,jdbcType=BIGINT},
ring_id = #{record.ringId,jdbcType=BIGINT},
role_id = #{record.roleId,jdbcType=BIGINT},
read_status = #{record.readStatus,jdbcType=TINYINT},
created_at = #{record.createdAt,jdbcType=TIMESTAMP},
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
rec_status = #{record.recStatus,jdbcType=TINYINT},
read_time = #{record.readTime,jdbcType=BIGINT}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByPrimaryKeySelective" parameterType="com.ccsens.tall.bean.po.SysRingSend">
update t_sys_ring_send
<set>
<if test="ringId != null">
ring_id = #{ringId,jdbcType=BIGINT},
</if>
<if test="roleId != null">
role_id = #{roleId,jdbcType=BIGINT},
</if>
<if test="readStatus != null">
read_status = #{readStatus,jdbcType=TINYINT},
</if>
<if test="createdAt != null">
created_at = #{createdAt,jdbcType=TIMESTAMP},
</if>
<if test="updatedAt != null">
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
</if>
<if test="recStatus != null">
rec_status = #{recStatus,jdbcType=TINYINT},
</if>
<if test="readTime != null">
read_time = #{readTime,jdbcType=BIGINT},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update id="updateByPrimaryKey" parameterType="com.ccsens.tall.bean.po.SysRingSend">
update t_sys_ring_send
set ring_id = #{ringId,jdbcType=BIGINT},
role_id = #{roleId,jdbcType=BIGINT},
read_status = #{readStatus,jdbcType=TINYINT},
created_at = #{createdAt,jdbcType=TIMESTAMP},
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
rec_status = #{recStatus,jdbcType=TINYINT},
read_time = #{readTime,jdbcType=BIGINT}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>

8
util/src/main/java/com/ccsens/util/StringUtil.java

@ -12,13 +12,17 @@ import java.util.regex.Pattern;
public class StringUtil {
public final static String SPLIT_RANGE = "[到\\-至]";
public final static String SPLIT = "-";
public final static String WEEK_DAY = "(每?隔\\d周)|(每?隔\\d星期)|(每?周[0-7]+)|(每?星期[0-7]+)|(每?周一)|(每?周二)|(每?周三)|(每?周四)|(每?周五)|(每?周六)|(每?周日)|(每?周天)";
public final static String WEEK_DAY_CIRCLE = WEEK_DAY+SPLIT_RANGE+WEEK_DAY;
public final static String DAY = "(每\\d+天)|(每\\d+日)|(每?隔\\d+天)|(每?隔\\d+日)|(\\d+号)|(\\d+日)|(\\d+\\-\\d+号)|(\\d+\\-\\d+日)|(\\d+到\\d+号)|(\\d+到\\d+日)";
public final static String CONTINUE_RANGE = ".*(到|\\-|至).*";
public final static String EVERY = "每(天|日|小时|时|分钟|分|秒)";
public final static String EVERY_WEEK = "每(周|星期)";
public final static String EVERY_MONTH = "每月";
public final static String EVERY_NUM = "\\D*(\\d+)\\D*";
public final static String CHINESE_NUM = "([零一二三四五六七八九十百千万亿]+)";
@ -29,13 +33,13 @@ public class StringUtil {
public final static String DAY_REGEXP = "(每天)|(每日)|" + DAY;
public final static String MONTH_REGEXP = EVERY_MONTH +"|(每隔\\d+月)|(\\d+月)|(每隔[零一二三四五六七八九十百千万亿]+月)|([零一二三四五六七八九十百千万亿]+月)";
public final static String WEEK_REGEXP = WEEK_DAY + "|(每周)|(每星期)";
public final static String WEEK_REGEXP = "(每?周[0-7]"+SPLIT_RANGE+"每?周[0-7])|" + WEEK_DAY + "|(每周)|(每星期)";
public final static String WEEK_FLAG_REGEXP = "(每?周)|(每?星期)";
public final static String NO_REPEAT = "不重复";
public final static String SPLIT_RANGE = "[到\\-至]";
public final static String NUMBER = "\\d+";

45
util/src/main/java/com/ccsens/util/cron/CronConstant.java

@ -39,7 +39,7 @@ public class CronConstant {
// System.out.println("每月:" + month);
// System.out.println("每月:" + getDate(month, start, end));
// TaskCron day = getCronDay("八月8号-15号");
TaskCron day = getCronDay("八月8号-15号");
// System.out.println("每月8号-15号:" + day);
// System.out.println("每月8号-15号:" + getDate(day, start, end));
//
@ -154,6 +154,7 @@ public class CronConstant {
}
/**
* 根据自然语言转换成开始cron和结束cron
* */
@ -178,19 +179,21 @@ public class CronConstant {
split = natureDate.split(StringUtil.SPLIT_RANGE);
String start = startCron.generateCron(split[0]);
taskCron.setStartCron(start);
//结束
String endStr = null;
if (split.length == 1) {
String start = startCron.generateCron(split[0]);
taskCron.setStartCron(start);
List<String> months = StringUtil.match(natureDate, StringUtil.MONTH_REGEXP);
List<String> weeks = StringUtil.match(natureDate, StringUtil.WEEK_REGEXP);
if (CollectionUtils.isEmpty(months) && months.contains("每月")) {
if (!CollectionUtils.isEmpty(months) && months.contains("每月")) {
endStr = "每月1号0时0分";
taskCron.setFirstFlag(true);
} else if (CollectionUtils.isEmpty(weeks) &&(weeks.contains("每周") ||
CollectionUtils.isEmpty(weeks) && weeks.contains("每星期"))) {
} else if (!CollectionUtils.isEmpty(weeks) &&(weeks.contains("每周") ||
!CollectionUtils.isEmpty(weeks) && weeks.contains("每星期"))) {
endStr = "每周1 ";
taskCron.setFirstFlag(true);
} else {
@ -198,7 +201,23 @@ public class CronConstant {
endStr = reg.replaceAll(StringUtil.MINUTE_REGEXP,"");
endStr += " 23时59分";
}
} else if (natureDate.contains(NatureConstant.SPACE_STR) && natureDate.split(NatureConstant.SPACE).length >= 2) {
// 多个分段且包含空格
//空格分隔 认为最后一个是最小单位,前面都是xx-xx 例如:周一-周5 8点:周一-周五8点和周一到周五23:59:59 周一-周5 8点-9点:周一-周五8点和周一到周五9点
String[] manyTypes = natureDate.split(NatureConstant.SPACE);
String last = manyTypes[manyTypes.length-1];
String startStr = natureDate.substring(0, natureDate.indexOf(last));
StringBuilder start = new StringBuilder(startStr);
StringBuilder end = new StringBuilder(startStr);
String[] mins = last.split(StringUtil.SPLIT_RANGE);
start.append(mins[0]);
taskCron.setStartCron(startCron.generateCron(start.toString()));
// TODO 根据时间单位,确认是时分秒日月周
end.append(mins.length > 1 ? mins[1] : "23:59:59");
endStr = end.toString();
} else {
String start = startCron.generateCron(split[0]);
taskCron.setStartCron(start);
String reg = split[1].replaceAll("\\d+","\\\\d+");
endStr = split[0].replaceAll(reg, "") + split[1];
}
@ -258,6 +277,8 @@ public class CronConstant {
private String month = "";
private String week = "";
/**
* 将自然时间转化成cron
* @param natureDate
@ -335,6 +356,12 @@ public class CronConstant {
} else if (StringUtil.isMatch(nature, StringUtil.EVERY_WEEK)) {
//每周默认是从每周一
set("1", type);
}else if (nature.split(StringUtil.SPLIT_RANGE).length > 1){
//例如:每周一-周五 --> 1-5
String[] arr = nature.split(StringUtil.SPLIT_RANGE);
int start = getNum(arr[0]);
int end = getNum(arr[1]);
set(start + "-" + end, type);
} else if (StringUtil.isMatch(nature, StringUtil.WEEK_DAY)){
//每周几
int num = getNum(nature);
@ -360,6 +387,12 @@ public class CronConstant {
// for (; start <= end; start++) {
// set(String.valueOf(start), type);
// }
} else if (nature.split(StringUtil.SPLIT_RANGE).length > 1){
//例如:每周一-周五 --> 1-5
String[] arr = nature.split(StringUtil.SPLIT_RANGE);
int start = getNum(arr[0]);
int end = getNum(arr[1]);
set(start + "-" + end, type);
} else {
//普通
int num = getNum(nature);

4
util/src/main/java/com/ccsens/util/cron/NatureConstant.java

@ -15,6 +15,8 @@ public class NatureConstant {
public static final String WORK_DAY = "工作日";
/**每周几*/
public static final String WEEK_ZHOU = "每?周[一二三四五六七日天0-7]";
/**每周一到周五 */
public static final String WEEK_EVERY = "每周[一二三四五六七日天0-7][到\\-至]周[一二三四五六七日天0-7]";
public static final String WEEK_XINGQI = "每?星期[一二三四五六七日天0-7]";
/**每月几号*/
public static final String EVERY_MONTH_DAY = "每月" + NUM + "号?日?";
@ -42,6 +44,8 @@ public class NatureConstant {
/**第几天*/
public static final String WHAT_DAY= "第" + NUM + "天?日?";
public static final String SPACE = "\\s";
public static final String SPACE_STR = " ";

21
util/src/main/java/com/ccsens/util/cron/NatureToDate.java

@ -40,8 +40,9 @@ public class NatureToDate {
// System.out.println("入职第一月:" + generateDates("入职第一月", start, end));
// System.out.println("入职第一年:" + generateDates("入职第一年", start, end));
// System.out.println("第八天:" + generateDates("第八天", start, end));
System.out.println("每月15号下午5点:" + generateDates("每月15号下午5点", start, end));
// System.out.println("每月15号下午5点:" + generateDates("每月15号下午5点", start, end));
System.out.println("周一-周五 8点-9点: " + generateDates("周一-周五 8点-9点", start, end));
}
@ -93,7 +94,10 @@ public class NatureToDate {
*/
private static List<CronConstant.TaskDate> dealSpecialKnow(String nature, Date startDate, Date endDate) {
List<CronConstant.TaskDate> taskDates = new ArrayList<>();
if (StringUtil.isMatch(nature, NatureConstant.EVERY_MONTH_ZHOU) || StringUtil.isMatch(nature, NatureConstant.EVERY_MONTH_XINGQI) ) {
if(nature.contains(NatureConstant.SPACE_STR)){
String[] natureArr = nature.split(NatureConstant.SPACE);
} else if (StringUtil.isMatch(nature, NatureConstant.EVERY_MONTH_ZHOU) || StringUtil.isMatch(nature, NatureConstant.EVERY_MONTH_XINGQI) ) {
//获取第几周
int endIndex = getWeekEndIndex(nature);
String numStr = nature.substring(nature.indexOf("第") + 1, endIndex);
@ -247,6 +251,9 @@ public class NatureToDate {
if (CronConstant.CronExpression.map.containsKey(nature)){
split[0] = nature;
split[1] = nature;
} else if (StringUtil.isMatch(nature, NatureConstant.WEEK_EVERY)){
String[] natureArr = nature.split(NatureConstant.SPACE);
} else if (nature.contains(NatureConstant.WORK_DAY)) {
//工作日
split[0] = nature.replaceAll("工作日","周1");
@ -286,8 +293,14 @@ public class NatureToDate {
private static String dealSpecialTime(String nature){
nature = nature.replace("周日", "周0").replace("周天", "周0")
.replace("星期日", "周0").replace("星期天", "周0")
.replace("周七", "周0").replace("周七", "周0")
.replace("星期七", "周0").replace("星期七", "周0") ;
.replace("周七", "周0").replace("星期七", "周0")
.replace("星期一", "周1").replace("周一", "周1")
.replace("星期二", "周2").replace("周二", "周2")
.replace("星期三", "周3").replace("周三", "周3")
.replace("星期四", "周4").replace("周四", "周4")
.replace("星期五", "周5").replace("周五", "周5")
.replace("星期六", "周6").replace("周六", "周6")
;
if (nature.contains(NatureConstant.PM)) {
int start = nature.indexOf("下午");
int end = nature.indexOf("点", start) > 0 ? nature.indexOf("点", start) : nature.indexOf("时", start);

73
util/src/test/java/com/ccsens/util/Base64Test.java

@ -38,76 +38,11 @@ public class Base64Test {
@Test
public void test02() throws Exception {
String[] strings = new String[]{"1590997352223",
"1591545600000",
"1592150400000",
"1592755200000",
"1593360000000",
"1593964800000",
"1594569600000",
"1595174400000",
"1595779200000",
"1596384000000",
"1596988800000",
"1597593600000",
"1598198400000",
"1598803200000",
"1599408000000",
"1600012800000",
"1600617600000",
"1601222400000",
"1601827200000",
"1602432000000",
"1603036800000",
"1603641600000",
"1604246400000",
"1604851200000",
"1605456000000",
"1606060800000",
"1606665600000",
"1607270400000",
"1607875200000",
"1608480000000",
"1609084800000"
};
String[] strings1 = new String[]{
"1591315200000",
"1591574400000",
"1592179200000",
"1592784000000",
"1593388800000",
"1593993600000",
"1594598400000",
"1595203200000",
"1595808000000",
"1596412800000",
"1597017600000",
"1597622400000",
"1598227200000",
"1598832000000",
"1599436800000",
"1600041600000",
"1600646400000",
"1601251200000",
"1601856000000",
"1602460800000",
"1603065600000",
"1603670400000",
"1604275200000",
"1604880000000",
"1605484800000",
"1606089600000",
"1606694400000",
"1607299200000",
"1607904000000",
"1608508800000",
"1609113600000"
};
for(int i = 0 ;i<strings.length;i++){
System.out.println( DateUtil.date(Long.valueOf(strings[i])) + "===" + DateUtil.date(Long.valueOf(strings1[i])));
String a = "112233445566";
String b = a.substring(0,12);
System.out.println(a.length());
System.out.println(b);
}
}
}

Loading…
Cancel
Save