Browse Source

20201010

master
zy_Java 5 years ago
parent
commit
6676970644
  1. 29
      mt/src/main/java/com/ccsens/mt/api/CompeteController.java
  2. 59
      mt/src/main/java/com/ccsens/mt/bean/dto/CompeteDto.java
  3. 11
      mt/src/main/java/com/ccsens/mt/bean/po/CompetePlayer.java
  4. 60
      mt/src/main/java/com/ccsens/mt/bean/po/CompetePlayerExample.java
  5. 95
      mt/src/main/java/com/ccsens/mt/bean/po/CompeteProjectGroup.java
  6. 631
      mt/src/main/java/com/ccsens/mt/bean/po/CompeteProjectGroupExample.java
  7. 11
      mt/src/main/java/com/ccsens/mt/bean/po/CompeteProjectPlayer.java
  8. 60
      mt/src/main/java/com/ccsens/mt/bean/po/CompeteProjectPlayerExample.java
  9. 11
      mt/src/main/java/com/ccsens/mt/bean/po/CompeteTeam.java
  10. 60
      mt/src/main/java/com/ccsens/mt/bean/po/CompeteTeamExample.java
  11. 9
      mt/src/main/java/com/ccsens/mt/persist/dao/CompeteTimeDao.java
  12. 30
      mt/src/main/java/com/ccsens/mt/persist/mapper/CompeteProjectGroupMapper.java
  13. 141
      mt/src/main/java/com/ccsens/mt/service/CompeteService.java
  14. 21
      mt/src/main/java/com/ccsens/mt/service/ICompeteService.java
  15. 21
      mt/src/main/resources/mapper_dao/CompeteTimeDao.xml
  16. 30
      mt/src/main/resources/mapper_raw/CompetePlayerMapper.xml
  17. 243
      mt/src/main/resources/mapper_raw/CompeteProjectGroupMapper.xml
  18. 29
      mt/src/main/resources/mapper_raw/CompeteProjectPlayerMapper.xml
  19. 25
      mt/src/main/resources/mapper_raw/CompeteTeamMapper.xml
  20. 15
      tall/src/main/java/com/ccsens/tall/bean/dto/ProjectDto.java
  21. 2
      tall/src/main/java/com/ccsens/tall/bean/dto/RoleDto.java
  22. 7
      tall/src/main/java/com/ccsens/tall/service/IProjectService.java
  23. 9
      tall/src/main/java/com/ccsens/tall/service/ProRoleService.java
  24. 1
      tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java
  25. 140
      tall/src/main/java/com/ccsens/tall/service/ProjectService.java
  26. 12
      tall/src/main/java/com/ccsens/tall/web/ProjectController.java

29
mt/src/main/java/com/ccsens/mt/api/CompeteController.java

@ -49,6 +49,16 @@ public class CompeteController {
return JsonResponse.newInstance().ok(competeGroups);
}
@MustLogin
@ApiOperation(value = "根据项目查找组别信息 ", notes = "")
@RequestMapping(value = "/group/project", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<CompeteVo.CompeteGroup>> queryGroupByProject(@ApiParam @Validated @RequestBody QueryDto<CompeteDto.QueryGroupByProject> params) {
log.info("扫码加入团队:{}",params);
List<CompeteVo.CompeteGroup> groupByProject = competeService.queryGroupByProject(params);
return JsonResponse.newInstance().ok(groupByProject);
}
@MustLogin
@ApiOperation(value = "模糊查询参赛单位", notes = "")
@RequestMapping(value = "/company", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
@ -86,6 +96,15 @@ public class CompeteController {
return JsonResponse.newInstance().ok(competeProjects);
}
// @MustLogin
// @ApiOperation(value = "根据组别查看比赛项目 ", notes = "")
// @RequestMapping(value = "/project/group", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
// public JsonResponse<List<CompeteVo.CompeteSecondProject>> queryProjectByGroup(@ApiParam @Validated @RequestBody QueryDto<CompeteDto.QueryProjectByGroup> params) {
// log.info("扫码加入团队:{}",params);
// List<CompeteVo.CompeteSecondProject> projectByGroup = competeService.queryProjectByGroup(params);
// return JsonResponse.newInstance().ok(projectByGroup);
// }
@MustLogin
@ApiOperation(value = "提交选择的比赛项目", notes = "")
@RequestMapping(value = "/save/project", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
@ -132,6 +151,16 @@ public class CompeteController {
return JsonResponse.newInstance().ok(competeTeamProject);
}
@MustLogin
@ApiOperation(value = "提交报名信息和参加比赛", notes = "")
@RequestMapping(value = "/submit", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse submitProjectAndGroup(@ApiParam @Validated @RequestBody QueryDto<CompeteDto.CompetePlayerAndProject> params) {
log.info("扫码加入团队:{}",params);
competeService.submitProjectAndGroup(params);
return JsonResponse.newInstance().ok();
}
// @MustLogin
// @ApiOperation(value = "查询比赛项目上的参赛选手列表", notes = "")
// @RequestMapping(value = "/get/players", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})

59
mt/src/main/java/com/ccsens/mt/bean/dto/CompeteDto.java

@ -169,4 +169,63 @@ public class CompeteDto {
@ApiModelProperty("比赛的类型,0跳绳省赛 1跳绳校内比赛")
private int type;
}
@Data
@ApiModel
public static class QueryProjectByGroup{
@NotNull
@ApiModelProperty("比赛的类型,0跳绳省赛 1跳绳校内比赛")
private int type;
@NotNull
@ApiModelProperty("组别id")
private Long groupId;
}
@Data
@ApiModel
public static class QueryGroupByProject{
@NotNull
@ApiModelProperty("比赛的类型,0跳绳省赛 1跳绳校内比赛")
private int type;
@NotNull
@ApiModelProperty("项目id")
private Long projectId;
}
@Data
@ApiModel("提交报名基本信息")
public static class CompetePlayerAndProject{
@NotNull
@ApiModelProperty("第几届信息的id")
private Long competeTimeId;
@NotNull
@ApiModelProperty("比赛的类型,0跳绳比赛")
private int type;
@NotEmpty
@ApiModelProperty("姓名")
private String name;
@NotEmpty
@ApiModelProperty("手机号")
private String phone;
@NotEmpty
@ApiModelProperty("手机验证码")
private String smsCode;
@NotEmpty
@ApiModelProperty("身份证")
private String idCard;
// @NotNull
// @ApiModelProperty("参加的组别的id")
// private Long groupId;
@ApiModelProperty("参加的比赛信息")
List<ProjectAndGroup> projectAndGroups;
}
@Data
@ApiModel("项目id和组别id")
public static class ProjectAndGroup{
@ApiModelProperty("比赛项目id(二级的)")
private Long projectId;
@ApiModelProperty("组别id")
private Long groupId;
@ApiModelProperty("其他参赛人员(亲子组需要)")
private String family;
}
}

11
mt/src/main/java/com/ccsens/mt/bean/po/CompetePlayer.java

@ -34,6 +34,8 @@ public class CompetePlayer implements Serializable {
private Byte recStatus;
private Long competeTimeId;
private static final long serialVersionUID = 1L;
public Long getId() {
@ -156,6 +158,14 @@ public class CompetePlayer implements Serializable {
this.recStatus = recStatus;
}
public Long getCompeteTimeId() {
return competeTimeId;
}
public void setCompeteTimeId(Long competeTimeId) {
this.competeTimeId = competeTimeId;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
@ -177,6 +187,7 @@ public class CompetePlayer implements Serializable {
sb.append(", createdAt=").append(createdAt);
sb.append(", updatedAt=").append(updatedAt);
sb.append(", recStatus=").append(recStatus);
sb.append(", competeTimeId=").append(competeTimeId);
sb.append("]");
return sb.toString();
}

60
mt/src/main/java/com/ccsens/mt/bean/po/CompetePlayerExample.java

@ -1064,6 +1064,66 @@ public class CompetePlayerExample {
addCriterion("rec_status not between", value1, value2, "recStatus");
return (Criteria) this;
}
public Criteria andCompeteTimeIdIsNull() {
addCriterion("compete_time_id is null");
return (Criteria) this;
}
public Criteria andCompeteTimeIdIsNotNull() {
addCriterion("compete_time_id is not null");
return (Criteria) this;
}
public Criteria andCompeteTimeIdEqualTo(Long value) {
addCriterion("compete_time_id =", value, "competeTimeId");
return (Criteria) this;
}
public Criteria andCompeteTimeIdNotEqualTo(Long value) {
addCriterion("compete_time_id <>", value, "competeTimeId");
return (Criteria) this;
}
public Criteria andCompeteTimeIdGreaterThan(Long value) {
addCriterion("compete_time_id >", value, "competeTimeId");
return (Criteria) this;
}
public Criteria andCompeteTimeIdGreaterThanOrEqualTo(Long value) {
addCriterion("compete_time_id >=", value, "competeTimeId");
return (Criteria) this;
}
public Criteria andCompeteTimeIdLessThan(Long value) {
addCriterion("compete_time_id <", value, "competeTimeId");
return (Criteria) this;
}
public Criteria andCompeteTimeIdLessThanOrEqualTo(Long value) {
addCriterion("compete_time_id <=", value, "competeTimeId");
return (Criteria) this;
}
public Criteria andCompeteTimeIdIn(List<Long> values) {
addCriterion("compete_time_id in", values, "competeTimeId");
return (Criteria) this;
}
public Criteria andCompeteTimeIdNotIn(List<Long> values) {
addCriterion("compete_time_id not in", values, "competeTimeId");
return (Criteria) this;
}
public Criteria andCompeteTimeIdBetween(Long value1, Long value2) {
addCriterion("compete_time_id between", value1, value2, "competeTimeId");
return (Criteria) this;
}
public Criteria andCompeteTimeIdNotBetween(Long value1, Long value2) {
addCriterion("compete_time_id not between", value1, value2, "competeTimeId");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {

95
mt/src/main/java/com/ccsens/mt/bean/po/CompeteProjectGroup.java

@ -0,0 +1,95 @@
package com.ccsens.mt.bean.po;
import java.io.Serializable;
import java.util.Date;
public class CompeteProjectGroup implements Serializable {
private Long id;
private Long projectId;
private Long groupId;
private String description;
private Date createdAt;
private Date updatedAt;
private Byte recStatus;
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 Long getGroupId() {
return groupId;
}
public void setGroupId(Long groupId) {
this.groupId = groupId;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description == null ? null : description.trim();
}
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;
}
@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(", groupId=").append(groupId);
sb.append(", description=").append(description);
sb.append(", createdAt=").append(createdAt);
sb.append(", updatedAt=").append(updatedAt);
sb.append(", recStatus=").append(recStatus);
sb.append("]");
return sb.toString();
}
}

631
mt/src/main/java/com/ccsens/mt/bean/po/CompeteProjectGroupExample.java

@ -0,0 +1,631 @@
package com.ccsens.mt.bean.po;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class CompeteProjectGroupExample {
protected String orderByClause;
protected boolean distinct;
protected List<Criteria> oredCriteria;
public CompeteProjectGroupExample() {
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 andGroupIdIsNull() {
addCriterion("group_id is null");
return (Criteria) this;
}
public Criteria andGroupIdIsNotNull() {
addCriterion("group_id is not null");
return (Criteria) this;
}
public Criteria andGroupIdEqualTo(Long value) {
addCriterion("group_id =", value, "groupId");
return (Criteria) this;
}
public Criteria andGroupIdNotEqualTo(Long value) {
addCriterion("group_id <>", value, "groupId");
return (Criteria) this;
}
public Criteria andGroupIdGreaterThan(Long value) {
addCriterion("group_id >", value, "groupId");
return (Criteria) this;
}
public Criteria andGroupIdGreaterThanOrEqualTo(Long value) {
addCriterion("group_id >=", value, "groupId");
return (Criteria) this;
}
public Criteria andGroupIdLessThan(Long value) {
addCriterion("group_id <", value, "groupId");
return (Criteria) this;
}
public Criteria andGroupIdLessThanOrEqualTo(Long value) {
addCriterion("group_id <=", value, "groupId");
return (Criteria) this;
}
public Criteria andGroupIdIn(List<Long> values) {
addCriterion("group_id in", values, "groupId");
return (Criteria) this;
}
public Criteria andGroupIdNotIn(List<Long> values) {
addCriterion("group_id not in", values, "groupId");
return (Criteria) this;
}
public Criteria andGroupIdBetween(Long value1, Long value2) {
addCriterion("group_id between", value1, value2, "groupId");
return (Criteria) this;
}
public Criteria andGroupIdNotBetween(Long value1, Long value2) {
addCriterion("group_id not between", value1, value2, "groupId");
return (Criteria) this;
}
public Criteria andDescriptionIsNull() {
addCriterion("description is null");
return (Criteria) this;
}
public Criteria andDescriptionIsNotNull() {
addCriterion("description is not null");
return (Criteria) this;
}
public Criteria andDescriptionEqualTo(String value) {
addCriterion("description =", value, "description");
return (Criteria) this;
}
public Criteria andDescriptionNotEqualTo(String value) {
addCriterion("description <>", value, "description");
return (Criteria) this;
}
public Criteria andDescriptionGreaterThan(String value) {
addCriterion("description >", value, "description");
return (Criteria) this;
}
public Criteria andDescriptionGreaterThanOrEqualTo(String value) {
addCriterion("description >=", value, "description");
return (Criteria) this;
}
public Criteria andDescriptionLessThan(String value) {
addCriterion("description <", value, "description");
return (Criteria) this;
}
public Criteria andDescriptionLessThanOrEqualTo(String value) {
addCriterion("description <=", value, "description");
return (Criteria) this;
}
public Criteria andDescriptionLike(String value) {
addCriterion("description like", value, "description");
return (Criteria) this;
}
public Criteria andDescriptionNotLike(String value) {
addCriterion("description not like", value, "description");
return (Criteria) this;
}
public Criteria andDescriptionIn(List<String> values) {
addCriterion("description in", values, "description");
return (Criteria) this;
}
public Criteria andDescriptionNotIn(List<String> values) {
addCriterion("description not in", values, "description");
return (Criteria) this;
}
public Criteria andDescriptionBetween(String value1, String value2) {
addCriterion("description between", value1, value2, "description");
return (Criteria) this;
}
public Criteria andDescriptionNotBetween(String value1, String value2) {
addCriterion("description not between", value1, value2, "description");
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);
}
}
}

11
mt/src/main/java/com/ccsens/mt/bean/po/CompeteProjectPlayer.java

@ -22,6 +22,8 @@ public class CompeteProjectPlayer implements Serializable {
private Byte recStatus;
private Long competeGroupId;
private static final long serialVersionUID = 1L;
public Long getId() {
@ -96,6 +98,14 @@ public class CompeteProjectPlayer implements Serializable {
this.recStatus = recStatus;
}
public Long getCompeteGroupId() {
return competeGroupId;
}
public void setCompeteGroupId(Long competeGroupId) {
this.competeGroupId = competeGroupId;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
@ -111,6 +121,7 @@ public class CompeteProjectPlayer implements Serializable {
sb.append(", createdAt=").append(createdAt);
sb.append(", updatedAt=").append(updatedAt);
sb.append(", recStatus=").append(recStatus);
sb.append(", competeGroupId=").append(competeGroupId);
sb.append("]");
return sb.toString();
}

60
mt/src/main/java/com/ccsens/mt/bean/po/CompeteProjectPlayerExample.java

@ -644,6 +644,66 @@ public class CompeteProjectPlayerExample {
addCriterion("rec_status not between", value1, value2, "recStatus");
return (Criteria) this;
}
public Criteria andCompeteGroupIdIsNull() {
addCriterion("compete_group_id is null");
return (Criteria) this;
}
public Criteria andCompeteGroupIdIsNotNull() {
addCriterion("compete_group_id is not null");
return (Criteria) this;
}
public Criteria andCompeteGroupIdEqualTo(Long value) {
addCriterion("compete_group_id =", value, "competeGroupId");
return (Criteria) this;
}
public Criteria andCompeteGroupIdNotEqualTo(Long value) {
addCriterion("compete_group_id <>", value, "competeGroupId");
return (Criteria) this;
}
public Criteria andCompeteGroupIdGreaterThan(Long value) {
addCriterion("compete_group_id >", value, "competeGroupId");
return (Criteria) this;
}
public Criteria andCompeteGroupIdGreaterThanOrEqualTo(Long value) {
addCriterion("compete_group_id >=", value, "competeGroupId");
return (Criteria) this;
}
public Criteria andCompeteGroupIdLessThan(Long value) {
addCriterion("compete_group_id <", value, "competeGroupId");
return (Criteria) this;
}
public Criteria andCompeteGroupIdLessThanOrEqualTo(Long value) {
addCriterion("compete_group_id <=", value, "competeGroupId");
return (Criteria) this;
}
public Criteria andCompeteGroupIdIn(List<Long> values) {
addCriterion("compete_group_id in", values, "competeGroupId");
return (Criteria) this;
}
public Criteria andCompeteGroupIdNotIn(List<Long> values) {
addCriterion("compete_group_id not in", values, "competeGroupId");
return (Criteria) this;
}
public Criteria andCompeteGroupIdBetween(Long value1, Long value2) {
addCriterion("compete_group_id between", value1, value2, "competeGroupId");
return (Criteria) this;
}
public Criteria andCompeteGroupIdNotBetween(Long value1, Long value2) {
addCriterion("compete_group_id not between", value1, value2, "competeGroupId");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {

11
mt/src/main/java/com/ccsens/mt/bean/po/CompeteTeam.java

@ -24,6 +24,8 @@ public class CompeteTeam implements Serializable {
private Byte recStatus;
private Long competeGroupId;
private static final long serialVersionUID = 1L;
public Long getId() {
@ -106,6 +108,14 @@ public class CompeteTeam implements Serializable {
this.recStatus = recStatus;
}
public Long getCompeteGroupId() {
return competeGroupId;
}
public void setCompeteGroupId(Long competeGroupId) {
this.competeGroupId = competeGroupId;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
@ -122,6 +132,7 @@ public class CompeteTeam implements Serializable {
sb.append(", createdAt=").append(createdAt);
sb.append(", updatedAt=").append(updatedAt);
sb.append(", recStatus=").append(recStatus);
sb.append(", competeGroupId=").append(competeGroupId);
sb.append("]");
return sb.toString();
}

60
mt/src/main/java/com/ccsens/mt/bean/po/CompeteTeamExample.java

@ -714,6 +714,66 @@ public class CompeteTeamExample {
addCriterion("rec_status not between", value1, value2, "recStatus");
return (Criteria) this;
}
public Criteria andCompeteGroupIdIsNull() {
addCriterion("compete_group_id is null");
return (Criteria) this;
}
public Criteria andCompeteGroupIdIsNotNull() {
addCriterion("compete_group_id is not null");
return (Criteria) this;
}
public Criteria andCompeteGroupIdEqualTo(Long value) {
addCriterion("compete_group_id =", value, "competeGroupId");
return (Criteria) this;
}
public Criteria andCompeteGroupIdNotEqualTo(Long value) {
addCriterion("compete_group_id <>", value, "competeGroupId");
return (Criteria) this;
}
public Criteria andCompeteGroupIdGreaterThan(Long value) {
addCriterion("compete_group_id >", value, "competeGroupId");
return (Criteria) this;
}
public Criteria andCompeteGroupIdGreaterThanOrEqualTo(Long value) {
addCriterion("compete_group_id >=", value, "competeGroupId");
return (Criteria) this;
}
public Criteria andCompeteGroupIdLessThan(Long value) {
addCriterion("compete_group_id <", value, "competeGroupId");
return (Criteria) this;
}
public Criteria andCompeteGroupIdLessThanOrEqualTo(Long value) {
addCriterion("compete_group_id <=", value, "competeGroupId");
return (Criteria) this;
}
public Criteria andCompeteGroupIdIn(List<Long> values) {
addCriterion("compete_group_id in", values, "competeGroupId");
return (Criteria) this;
}
public Criteria andCompeteGroupIdNotIn(List<Long> values) {
addCriterion("compete_group_id not in", values, "competeGroupId");
return (Criteria) this;
}
public Criteria andCompeteGroupIdBetween(Long value1, Long value2) {
addCriterion("compete_group_id between", value1, value2, "competeGroupId");
return (Criteria) this;
}
public Criteria andCompeteGroupIdNotBetween(Long value1, Long value2) {
addCriterion("compete_group_id not between", value1, value2, "competeGroupId");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {

9
mt/src/main/java/com/ccsens/mt/persist/dao/CompeteTimeDao.java

@ -40,4 +40,13 @@ public interface CompeteTimeDao extends CompeteTimeMapper {
* @return 参赛项目信息
*/
List<CompeteVo.CompeteProject> queryCompeteProjectByType(@Param("type") int type);
/**
* 通过项目查看组别信息
* @param type 比赛类型
* @param projectId 项目id
* @return 返回组别信息
*/
List<CompeteVo.CompeteGroup> queryGroupByProject(@Param("type") int type, @Param("projectId") Long projectId);
}

30
mt/src/main/java/com/ccsens/mt/persist/mapper/CompeteProjectGroupMapper.java

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

141
mt/src/main/java/com/ccsens/mt/service/CompeteService.java

@ -58,6 +58,8 @@ public class CompeteService implements ICompeteService{
private ILevelUpService levelUpService;
@Resource
private CompetePlayerFamilyMapper competePlayerFamilyMapper;
@Resource
private CompeteProjectGroupMapper competeProjectGroupMapper;
/**
@ -78,6 +80,24 @@ public class CompeteService implements ICompeteService{
return competeTimeDao.queryCompeteGroupByType(competeType.getType());
}
@Override
public List<CompeteVo.CompeteGroup> queryGroupByProject(QueryDto<CompeteDto.QueryGroupByProject> params) {
CompeteDto.QueryGroupByProject competeType = params.getParam();
List<CompeteVo.CompeteGroup> competeGroups = competeTimeDao.queryGroupByProject(competeType.getType(),competeType.getProjectId());
//
//
// CompeteDto.QueryGroupByProject competeType = params.getParam();
// List<CompeteVo.CompeteGroup> competeGroups = competeTimeDao.queryCompeteGroupByType(competeType.getType());
// competeGroups.forEach(competeGroup -> {
// CompeteProjectGroupExample competeProjectGroupExample = new CompeteProjectGroupExample();
// competeProjectGroupExample.createCriteria().andGroupIdEqualTo(competeGroup.getGroupId()).andProjectIdEqualTo(competeType.getProjectId());
// if(competeProjectGroupMapper.countByExample(competeProjectGroupExample) == 0){
// competeGroups.remove(competeGroup);
// }
// });
return competeGroups;
}
/**
* 模糊查询参赛单位
*/
@ -209,6 +229,33 @@ public class CompeteService implements ICompeteService{
return competeTimeDao.queryCompeteProjectByType(competeType.getType());
}
/**
* 根据组别查看比赛项目信息
*/
@Override
public List<CompeteVo.CompeteSecondProject> queryProjectByGroup(QueryDto<CompeteDto.QueryProjectByGroup> params) {
CompeteDto.QueryProjectByGroup competeType = params.getParam();
List<CompeteVo.CompeteSecondProject> competeSecondProjects = new ArrayList<>();
CompeteProjectExample projectExample = new CompeteProjectExample();
projectExample.createCriteria().andTypeEqualTo((byte) competeType.getType()).andLevelEqualTo((byte) 2);
List<CompeteProject> competeProjectList = competeProjectMapper.selectByExample(projectExample);
if(CollectionUtil.isNotEmpty(competeProjectList)){
competeProjectList.forEach(competeProject -> {
CompeteProjectGroupExample projectGroupExample = new CompeteProjectGroupExample();
projectGroupExample.createCriteria().andProjectIdEqualTo(competeProject.getId())
.andGroupIdEqualTo(competeType.getGroupId());
if(competeProjectGroupMapper.countByExample(projectGroupExample) != 0){
competeProjectList.remove(competeProject);
}else {
CompeteVo.CompeteSecondProject secondProject = new CompeteVo.CompeteSecondProject();
BeanUtil.copyProperties(competeProject,secondProject);
competeSecondProjects.add(secondProject);
}
});
}
return competeSecondProjects;
}
/**
* 提交选择的比赛项目
*/
@ -227,9 +274,9 @@ public class CompeteService implements ICompeteService{
// 个人赛
long joinedNum = competeTeamDao.countTiwnTeam(player.getId(), params.getParam().getCompeteTimeId());
log.info("个人赛参赛数量:{}", joinedNum);
if (joinedNum >= Constant.Compete.TIWN_MAX_NUM) {
throw new BaseException(CodeEnum.JOINED_MORE);
}
// if (joinedNum >= Constant.Compete.TIWN_MAX_NUM) {
// throw new BaseException(CodeEnum.JOINED_MORE);
// }
CompeteProjectPlayer projectPlayer = new CompeteProjectPlayer();
projectPlayer.setId(snowflake.nextId());
projectPlayer.setPlayerId(player.getId());
@ -449,4 +496,92 @@ public class CompeteService implements ICompeteService{
}
return queryPlayerList;
}
@Override
public void submitProjectAndGroup(QueryDto<CompeteDto.CompetePlayerAndProject> params) {
Long userId = params.getUserId();
CompeteDto.CompetePlayerAndProject playerAndProject = params.getParam();
//检查验证码是否正确
if (!redisUtil.hasKey(RedisKeyManager.getSigninSmsKey(playerAndProject.getPhone()))) {
throw new BaseException(CodeEnum.SMS_CODE_CORRECT);
}
if (!playerAndProject.getSmsCode().equals(redisUtil.get(RedisKeyManager.getSigninSmsKey(playerAndProject.getPhone())).toString())) {
throw new BaseException(CodeEnum.SMS_CODE_CORRECT);
}
//查找此用户是否注册过此身份信息
CompetePlayer player;
CompetePlayerExample playerExample = new CompetePlayerExample();
playerExample.createCriteria().andUserIdEqualTo(userId).andIdCardEqualTo(playerAndProject.getIdCard());
List<CompetePlayer> playerList = competePlayerDao.selectByExample(playerExample);
if(CollectionUtil.isNotEmpty(playerList)){
//有则直接使用
player = playerList.get(0);
}else {
//没有则添加
player = new CompetePlayer();
BeanUtil.copyProperties(playerAndProject,player);
player.setId(snowflake.nextId());
player.setUserId(userId);
player.setCompeteTimeId(playerAndProject.getCompeteTimeId());
competePlayerDao.insertSelective(player);
}
//读取项目信息
if(CollectionUtil.isNotEmpty(playerAndProject.getProjectAndGroups())){
playerAndProject.getProjectAndGroups().forEach(projectAndGroup -> {
CompeteProject project = competeProjectMapper.selectByPrimaryKey(projectAndGroup.getProjectId());
log.info("项目信息:{}", project);
if (project == null) {
throw new BaseException(CodeEnum.PARAM_ERROR);
}
//单人项目直接添加信息和分组
if (project.getTeam() == Constant.Compete.TEAM_NO) {
// 个人赛
CompeteProjectPlayer projectPlayer = new CompeteProjectPlayer();
projectPlayer.setId(snowflake.nextId());
projectPlayer.setPlayerId(player.getId());
projectPlayer.setProjectId(project.getId());
projectPlayer.setCompeteTimeId(playerAndProject.getCompeteTimeId());
projectPlayer.setCompeteGroupId(projectAndGroup.getGroupId());
competeProjectPlayerMapper.insertSelective(projectPlayer);
}else {
//团队项目创建团队
CompeteTeam team = new CompeteTeam();
team.setId(snowflake.nextId());
team.setCreator(player.getId());
team.setProjectId(project.getId());
team.setCompeteTimeId(playerAndProject.getCompeteTimeId());
team.setCompeteGroupId(projectAndGroup.getGroupId());
competeTeamDao.insertSelective(team);
//将当前选手加入团队
CompeteTeamMember teamMember = new CompeteTeamMember();
teamMember.setId(snowflake.nextId());
teamMember.setPlayerId(player.getId());
teamMember.setCompeteTeamId(team.getId());
teamMember.setCaptain(Constant.Compete.TEAM_LEADER_YES);
competeTeamMemberMapper.insertSelective(teamMember);
//读取其他参赛人员的姓名,并添加为选手
if(StrUtil.isNotEmpty(projectAndGroup.getFamily())){
String names = StringUtil.replaceComma(projectAndGroup.getFamily());
String[] familyNames = names.split(",");
if(ObjectUtil.isNotNull(familyNames)){
for (String familyName : familyNames) {
CompetePlayer familyPlayer = new CompetePlayer();
familyPlayer.setId(snowflake.nextId());
familyPlayer.setName(familyName);
competePlayerDao.insertSelective(familyPlayer);
//将其他参赛人员添加至此团队
CompeteTeamMember member = new CompeteTeamMember();
member.setId(snowflake.nextId());
member.setPlayerId(familyPlayer.getId());
member.setCompeteTeamId(team.getId());
member.setCaptain(Constant.Compete.TEAM_LEADER_NO);
competeTeamMemberMapper.insertSelective(member);
}
}
}
}
});
}
}
}

21
mt/src/main/java/com/ccsens/mt/service/ICompeteService.java

@ -93,4 +93,25 @@ public interface ICompeteService {
* @return 返回参赛人员或团队的列表
*/
CompeteVo.QueryPlayerList queryPlayerList(QueryDto<CompeteDto.CompeteProjectId> params);
/**
* 根据组别查找比赛项目信息
* @param params 类型和组别
* @return 返回比赛项目没有一级项目直接二级
*/
List<CompeteVo.CompeteSecondProject> queryProjectByGroup(QueryDto<CompeteDto.QueryProjectByGroup> params);
/**
* 根据项目查询组别信息
* @param params 项目信息
* @return 返回组别信息
*/
List<CompeteVo.CompeteGroup> queryGroupByProject(QueryDto<CompeteDto.QueryGroupByProject> params);
/**
* 同时提交基本信息和参赛项目
* @param params
* @return
*/
void submitProjectAndGroup(QueryDto<CompeteDto.CompetePlayerAndProject> params);
}

21
mt/src/main/resources/mapper_dao/CompeteTimeDao.xml

@ -46,9 +46,9 @@
FROM
t_compete_group
WHERE
rec_status = #{type}
rec_status = 0
and
type = 0
type = #{type}
ORDER BY sequence
</select>
@ -103,4 +103,21 @@
level = 1
</select>
<select id="queryGroupByProject" parameterType="java.util.Map" resultType="com.ccsens.mt.bean.vo.CompeteVo$CompeteGroup">
SELECT
g.id as groupId,
g.group_name as groupName,
g.description as groupDescription
FROM
t_compete_group g
LEFT JOIN t_compete_project_group pg on g.id = pg.group_id
LEFT JOIN t_compete_project p on p.id = pg.project_id
WHERE
g.type = #{type}
and
p.id = #{projectId}
and g.rec_status = 0
and p.rec_status = 0
GROUP BY g.id
</select>
</mapper>

30
mt/src/main/resources/mapper_raw/CompetePlayerMapper.xml

@ -17,6 +17,7 @@
<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="compete_time_id" jdbcType="BIGINT" property="competeTimeId" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
@ -78,7 +79,8 @@
</sql>
<sql id="Base_Column_List">
id, user_id, name, id_card, phone, gender, id_card_front, id_card_back, prove_img,
compete_group_id, company_id, authorization, created_at, updated_at, rec_status
compete_group_id, company_id, authorization, created_at, updated_at, rec_status,
compete_time_id
</sql>
<select id="selectByExample" parameterType="com.ccsens.mt.bean.po.CompetePlayerExample" resultMap="BaseResultMap">
select
@ -115,14 +117,14 @@
id_card, phone, gender,
id_card_front, id_card_back, prove_img,
compete_group_id, company_id, authorization,
created_at, updated_at, rec_status
)
created_at, updated_at, rec_status,
compete_time_id)
values (#{id,jdbcType=BIGINT}, #{userId,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR},
#{idCard,jdbcType=VARCHAR}, #{phone,jdbcType=VARCHAR}, #{gender,jdbcType=TINYINT},
#{idCardFront,jdbcType=VARCHAR}, #{idCardBack,jdbcType=VARCHAR}, #{proveImg,jdbcType=VARCHAR},
#{competeGroupId,jdbcType=BIGINT}, #{companyId,jdbcType=BIGINT}, #{authorization,jdbcType=TINYINT},
#{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT}
)
#{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT},
#{competeTimeId,jdbcType=BIGINT})
</insert>
<insert id="insertSelective" parameterType="com.ccsens.mt.bean.po.CompetePlayer">
insert into t_compete_player
@ -172,6 +174,9 @@
<if test="recStatus != null">
rec_status,
</if>
<if test="competeTimeId != null">
compete_time_id,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
@ -219,6 +224,9 @@
<if test="recStatus != null">
#{recStatus,jdbcType=TINYINT},
</if>
<if test="competeTimeId != null">
#{competeTimeId,jdbcType=BIGINT},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.ccsens.mt.bean.po.CompetePlayerExample" resultType="java.lang.Long">
@ -275,6 +283,9 @@
<if test="record.recStatus != null">
rec_status = #{record.recStatus,jdbcType=TINYINT},
</if>
<if test="record.competeTimeId != null">
compete_time_id = #{record.competeTimeId,jdbcType=BIGINT},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
@ -296,7 +307,8 @@
authorization = #{record.authorization,jdbcType=TINYINT},
created_at = #{record.createdAt,jdbcType=TIMESTAMP},
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
rec_status = #{record.recStatus,jdbcType=TINYINT}
rec_status = #{record.recStatus,jdbcType=TINYINT},
compete_time_id = #{record.competeTimeId,jdbcType=BIGINT}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
@ -346,6 +358,9 @@
<if test="recStatus != null">
rec_status = #{recStatus,jdbcType=TINYINT},
</if>
<if test="competeTimeId != null">
compete_time_id = #{competeTimeId,jdbcType=BIGINT},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
@ -364,7 +379,8 @@
authorization = #{authorization,jdbcType=TINYINT},
created_at = #{createdAt,jdbcType=TIMESTAMP},
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
rec_status = #{recStatus,jdbcType=TINYINT}
rec_status = #{recStatus,jdbcType=TINYINT},
compete_time_id = #{competeTimeId,jdbcType=BIGINT}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>

243
mt/src/main/resources/mapper_raw/CompeteProjectGroupMapper.xml

@ -0,0 +1,243 @@
<?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.mt.persist.mapper.CompeteProjectGroupMapper">
<resultMap id="BaseResultMap" type="com.ccsens.mt.bean.po.CompeteProjectGroup">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="project_id" jdbcType="BIGINT" property="projectId" />
<result column="group_id" jdbcType="BIGINT" property="groupId" />
<result column="description" jdbcType="VARCHAR" property="description" />
<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>
<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, group_id, description, created_at, updated_at, rec_status
</sql>
<select id="selectByExample" parameterType="com.ccsens.mt.bean.po.CompeteProjectGroupExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from t_compete_project_group
<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_compete_project_group
where id = #{id,jdbcType=BIGINT}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from t_compete_project_group
where id = #{id,jdbcType=BIGINT}
</delete>
<delete id="deleteByExample" parameterType="com.ccsens.mt.bean.po.CompeteProjectGroupExample">
delete from t_compete_project_group
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="com.ccsens.mt.bean.po.CompeteProjectGroup">
insert into t_compete_project_group (id, project_id, group_id,
description, created_at, updated_at,
rec_status)
values (#{id,jdbcType=BIGINT}, #{projectId,jdbcType=BIGINT}, #{groupId,jdbcType=BIGINT},
#{description,jdbcType=VARCHAR}, #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP},
#{recStatus,jdbcType=TINYINT})
</insert>
<insert id="insertSelective" parameterType="com.ccsens.mt.bean.po.CompeteProjectGroup">
insert into t_compete_project_group
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="projectId != null">
project_id,
</if>
<if test="groupId != null">
group_id,
</if>
<if test="description != null">
description,
</if>
<if test="createdAt != null">
created_at,
</if>
<if test="updatedAt != null">
updated_at,
</if>
<if test="recStatus != null">
rec_status,
</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="groupId != null">
#{groupId,jdbcType=BIGINT},
</if>
<if test="description != null">
#{description,jdbcType=VARCHAR},
</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>
</trim>
</insert>
<select id="countByExample" parameterType="com.ccsens.mt.bean.po.CompeteProjectGroupExample" resultType="java.lang.Long">
select count(*) from t_compete_project_group
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update t_compete_project_group
<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.groupId != null">
group_id = #{record.groupId,jdbcType=BIGINT},
</if>
<if test="record.description != null">
description = #{record.description,jdbcType=VARCHAR},
</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>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map">
update t_compete_project_group
set id = #{record.id,jdbcType=BIGINT},
project_id = #{record.projectId,jdbcType=BIGINT},
group_id = #{record.groupId,jdbcType=BIGINT},
description = #{record.description,jdbcType=VARCHAR},
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.mt.bean.po.CompeteProjectGroup">
update t_compete_project_group
<set>
<if test="projectId != null">
project_id = #{projectId,jdbcType=BIGINT},
</if>
<if test="groupId != null">
group_id = #{groupId,jdbcType=BIGINT},
</if>
<if test="description != null">
description = #{description,jdbcType=VARCHAR},
</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>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update id="updateByPrimaryKey" parameterType="com.ccsens.mt.bean.po.CompeteProjectGroup">
update t_compete_project_group
set project_id = #{projectId,jdbcType=BIGINT},
group_id = #{groupId,jdbcType=BIGINT},
description = #{description,jdbcType=VARCHAR},
created_at = #{createdAt,jdbcType=TIMESTAMP},
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
rec_status = #{recStatus,jdbcType=TINYINT}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>

29
mt/src/main/resources/mapper_raw/CompeteProjectPlayerMapper.xml

@ -11,6 +11,7 @@
<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="compete_group_id" jdbcType="BIGINT" property="competeGroupId" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
@ -72,7 +73,7 @@
</sql>
<sql id="Base_Column_List">
id, player_id, project_id, compete_time_id, gender_group, certificate, created_at,
updated_at, rec_status
updated_at, rec_status, compete_group_id
</sql>
<select id="selectByExample" parameterType="com.ccsens.mt.bean.po.CompeteProjectPlayerExample" resultMap="BaseResultMap">
select
@ -107,12 +108,12 @@
<insert id="insert" parameterType="com.ccsens.mt.bean.po.CompeteProjectPlayer">
insert into t_compete_project_player (id, player_id, project_id,
compete_time_id, gender_group, certificate,
created_at, updated_at, rec_status
)
created_at, updated_at, rec_status,
compete_group_id)
values (#{id,jdbcType=BIGINT}, #{playerId,jdbcType=BIGINT}, #{projectId,jdbcType=BIGINT},
#{competeTimeId,jdbcType=BIGINT}, #{genderGroup,jdbcType=TINYINT}, #{certificate,jdbcType=TINYINT},
#{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT}
)
#{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT},
#{competeGroupId,jdbcType=BIGINT})
</insert>
<insert id="insertSelective" parameterType="com.ccsens.mt.bean.po.CompeteProjectPlayer">
insert into t_compete_project_player
@ -144,6 +145,9 @@
<if test="recStatus != null">
rec_status,
</if>
<if test="competeGroupId != null">
compete_group_id,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
@ -173,6 +177,9 @@
<if test="recStatus != null">
#{recStatus,jdbcType=TINYINT},
</if>
<if test="competeGroupId != null">
#{competeGroupId,jdbcType=BIGINT},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.ccsens.mt.bean.po.CompeteProjectPlayerExample" resultType="java.lang.Long">
@ -211,6 +218,9 @@
<if test="record.recStatus != null">
rec_status = #{record.recStatus,jdbcType=TINYINT},
</if>
<if test="record.competeGroupId != null">
compete_group_id = #{record.competeGroupId,jdbcType=BIGINT},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
@ -226,7 +236,8 @@
certificate = #{record.certificate,jdbcType=TINYINT},
created_at = #{record.createdAt,jdbcType=TIMESTAMP},
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
rec_status = #{record.recStatus,jdbcType=TINYINT}
rec_status = #{record.recStatus,jdbcType=TINYINT},
compete_group_id = #{record.competeGroupId,jdbcType=BIGINT}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
@ -258,6 +269,9 @@
<if test="recStatus != null">
rec_status = #{recStatus,jdbcType=TINYINT},
</if>
<if test="competeGroupId != null">
compete_group_id = #{competeGroupId,jdbcType=BIGINT},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
@ -270,7 +284,8 @@
certificate = #{certificate,jdbcType=TINYINT},
created_at = #{createdAt,jdbcType=TIMESTAMP},
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
rec_status = #{recStatus,jdbcType=TINYINT}
rec_status = #{recStatus,jdbcType=TINYINT},
compete_group_id = #{competeGroupId,jdbcType=BIGINT}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>

25
mt/src/main/resources/mapper_raw/CompeteTeamMapper.xml

@ -12,6 +12,7 @@
<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="compete_group_id" jdbcType="BIGINT" property="competeGroupId" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
@ -73,7 +74,7 @@
</sql>
<sql id="Base_Column_List">
id, creator, project_id, compete_time_id, gender_group, certificate, qr_code, created_at,
updated_at, rec_status
updated_at, rec_status, compete_group_id
</sql>
<select id="selectByExample" parameterType="com.ccsens.mt.bean.po.CompeteTeamExample" resultMap="BaseResultMap">
select
@ -109,11 +110,11 @@
insert into t_compete_team (id, creator, project_id,
compete_time_id, gender_group, certificate,
qr_code, created_at, updated_at,
rec_status)
rec_status, compete_group_id)
values (#{id,jdbcType=BIGINT}, #{creator,jdbcType=BIGINT}, #{projectId,jdbcType=BIGINT},
#{competeTimeId,jdbcType=BIGINT}, #{genderGroup,jdbcType=TINYINT}, #{certificate,jdbcType=TINYINT},
#{qrCode,jdbcType=VARCHAR}, #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP},
#{recStatus,jdbcType=TINYINT})
#{recStatus,jdbcType=TINYINT}, #{competeGroupId,jdbcType=BIGINT})
</insert>
<insert id="insertSelective" parameterType="com.ccsens.mt.bean.po.CompeteTeam">
insert into t_compete_team
@ -148,6 +149,9 @@
<if test="recStatus != null">
rec_status,
</if>
<if test="competeGroupId != null">
compete_group_id,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
@ -180,6 +184,9 @@
<if test="recStatus != null">
#{recStatus,jdbcType=TINYINT},
</if>
<if test="competeGroupId != null">
#{competeGroupId,jdbcType=BIGINT},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.ccsens.mt.bean.po.CompeteTeamExample" resultType="java.lang.Long">
@ -221,6 +228,9 @@
<if test="record.recStatus != null">
rec_status = #{record.recStatus,jdbcType=TINYINT},
</if>
<if test="record.competeGroupId != null">
compete_group_id = #{record.competeGroupId,jdbcType=BIGINT},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
@ -237,7 +247,8 @@
qr_code = #{record.qrCode,jdbcType=VARCHAR},
created_at = #{record.createdAt,jdbcType=TIMESTAMP},
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
rec_status = #{record.recStatus,jdbcType=TINYINT}
rec_status = #{record.recStatus,jdbcType=TINYINT},
compete_group_id = #{record.competeGroupId,jdbcType=BIGINT}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
@ -272,6 +283,9 @@
<if test="recStatus != null">
rec_status = #{recStatus,jdbcType=TINYINT},
</if>
<if test="competeGroupId != null">
compete_group_id = #{competeGroupId,jdbcType=BIGINT},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
@ -285,7 +299,8 @@
qr_code = #{qrCode,jdbcType=VARCHAR},
created_at = #{createdAt,jdbcType=TIMESTAMP},
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
rec_status = #{recStatus,jdbcType=TINYINT}
rec_status = #{recStatus,jdbcType=TINYINT},
compete_group_id = #{competeGroupId,jdbcType=BIGINT}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>

15
tall/src/main/java/com/ccsens/tall/bean/dto/ProjectDto.java

@ -124,4 +124,19 @@ public class ProjectDto {
@ApiModelProperty("变身的秘钥")
private String code;
}
@Data
@ApiModel("创建新项目")
public static class CreateProject{
@ApiModelProperty("名字")
private String name;
@ApiModelProperty("详情")
private String description;
@ApiModelProperty("地址")
private String address;
@ApiModelProperty("开始时间")
private Long beginTime;
@ApiModelProperty("结束时间")
private Long endTime;
}
}

2
tall/src/main/java/com/ccsens/tall/bean/dto/RoleDto.java

@ -29,6 +29,8 @@ public class RoleDto {
private Long roleId;
@ApiModelProperty("角色名")
private String roleName;
@ApiModelProperty("关联项目id(只有角色项目可以修改)")
private Long relevanceProjectId;
}
@Data

7
tall/src/main/java/com/ccsens/tall/service/IProjectService.java

@ -49,4 +49,11 @@ public interface IProjectService {
* 变身成为某个角色
*/
void imitationRole(Long currentUserId, ProjectDto.ImitationRole imitationRole);
/**
* 新建项目
* @param currentUserId userId
* @return 返回项目信息
*/
ProjectVo.ProjectInfo createProject(Long currentUserId,ProjectDto.CreateProject createProject,String token);
}

9
tall/src/main/java/com/ccsens/tall/service/ProRoleService.java

@ -378,9 +378,18 @@ public class ProRoleService implements IProRoleService {
if (power < 2) {
throw new BaseException(CodeEnum.NOT_POWER);
}
//修改名字
if(StrUtil.isNotEmpty(updateRole.getRoleName())){
proRole.setName(updateRole.getRoleName());
}
//修改关联项目id
if(ObjectUtil.isNotNull(updateRole.getRelevanceProjectId())){
//检查角色是否是角色项目
ProRole parentRole = proRoleDao.selectByPrimaryKey(proRole.getParentId());
if(parentRole.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.ProjectVirtualRole.value)){
proRole.setRelevanceProjectId(updateRole.getRelevanceProjectId());
}
}
proRoleDao.updateByPrimaryKeySelective(proRole);
}

1
tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java

@ -1148,6 +1148,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
(taskDetail.getDelay() == WebConstant.TASK_DELAY.DelayManual.value)){
taskDetail.setDelayTime(updateTaskInfo.getDelayTime());
}
//是否是里程碑
if(ObjectUtil.isNotNull(updateTaskInfo.getMilestone())){
taskDetail.setMilestone(updateTaskInfo.getMilestone());
}

140
tall/src/main/java/com/ccsens/tall/service/ProjectService.java

@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.ccsens.tall.bean.dto.MemberRoleDto;
import com.ccsens.tall.bean.dto.ProjectDto;
import com.ccsens.tall.bean.po.*;
import com.ccsens.tall.bean.vo.LabelVo;
@ -41,6 +42,10 @@ public class ProjectService implements IProjectService {
@Resource
private ProRoleDao proRoleDao;
@Resource
private ProMemberDao proMemberDao;
@Resource
private ProMemberRoleDao memberRoleDao;
@Resource
private TaskDetailDao taskDetailDao;
@Resource
private TaskSubTimeDao taskSubTimeDao;
@ -66,6 +71,13 @@ public class ProjectService implements IProjectService {
private ProTaskShowDao proTaskShowDao;
@Resource
private SysImitationMapper imitationMapper;
@Resource
private UserAttentionDao userAttentionDao;
@Resource
private SysUserDao sysUserDao;
@Resource
private SysAuthDao sysAuthDao;
@Override
public void saveProject(SysProject sysProject) {
@ -950,4 +962,132 @@ public class ProjectService implements IProjectService {
sysImitation.setUserId(currentUserId);
imitationMapper.insertSelective(sysImitation);
}
@Override
public ProjectVo.ProjectInfo createProject(Long currentUserId,ProjectDto.CreateProject createProject,String token) {
//查找当前账号的用户名和手机号
String name = sysUserDao.selectByPrimaryKey(currentUserId).getNickname();
String phone = null;
SysAuthExample sysAuthExample = new SysAuthExample();
sysAuthExample.createCriteria().andUserIdEqualTo(currentUserId).andIdentifyTypeEqualTo((byte) WebConstant.IDENTIFY_TYPE.Phone.value);
List<SysAuth> sysAuthList = sysAuthDao.selectByExample(sysAuthExample);
if(CollectionUtil.isNotEmpty(sysAuthList)){
phone = sysAuthList.get(0).getIdentifier();
}
log.info("新建项目,操作用户id:{}",currentUserId);
//新建项目
long beginTime = createProject.getBeginTime() == null ? System.currentTimeMillis() : createProject.getBeginTime();
long endTime = createProject.getEndTime() == null ? beginTime + (3600 * 24 * 10 * 1000) : createProject.getEndTime();
SysProject sysProject = new SysProject();
sysProject.setId(snowflake.nextId());
sysProject.setName(createProject.getName());
sysProject.setDescription(createProject.getDescription());
sysProject.setAddress(createProject.getAddress());
sysProject.setBeginTime(beginTime);
sysProject.setEndTime(endTime);
sysProject.setCreatorId(currentUserId);
sysProjectDao.insertSelective(sysProject);
//让当前用户关注项目
UserAttention userAttention = new UserAttention();
userAttention.setId(snowflake.nextId());
userAttention.setUserId(currentUserId);
userAttention.setProjectId(sysProject.getId());
userAttentionDao.insertSelective(userAttention);
//添加默认的角色(奖惩干系人、创建者、关注者、项目经理、和项目成员的一级角色)
//添加奖惩干系人角色(一级角色)
ProRole stakeholderRole = new ProRole();
stakeholderRole.setName(WebConstant.ROLE_NAME.MoneyStakeholder.value);
stakeholderRole.setDescription(WebConstant.ROLE_NAME.MoneyStakeholder.phase);
stakeholderRole.setProjectId(sysProject.getId());
stakeholderRole.setId(snowflake.nextId());
proRoleService.saveProRole(stakeholderRole);
//添加奖惩干系人角色(二级角色)
ProRole stakeholderProRole = new ProRole();
stakeholderProRole.setName(WebConstant.ROLE_NAME.MoneyStakeholder.phase);
stakeholderProRole.setDescription(WebConstant.ROLE_NAME.MoneyStakeholder.value);
stakeholderProRole.setParentId(stakeholderRole.getId());
stakeholderProRole.setProjectId(sysProject.getId());
stakeholderProRole.setId(snowflake.nextId());
proRoleService.saveProRole(stakeholderProRole);
//添加创建者一级角色
ProRole creator = new ProRole();
creator.setName(WebConstant.ROLE_NAME.Creator.value);
creator.setDescription(WebConstant.ROLE_NAME.Creator.phase);
creator.setProjectId(sysProject.getId());
creator.setId(snowflake.nextId());
proRoleService.saveProRole(creator);
//添加创建者角色(二级角色)
ProRole creatorRole = new ProRole();
creatorRole.setName(WebConstant.ROLE_NAME.Creator.phase);
creatorRole.setDescription(WebConstant.ROLE_NAME.Creator.value);
creatorRole.setParentId(creator.getId());
creatorRole.setProjectId(sysProject.getId());
creatorRole.setId(snowflake.nextId());
proRoleService.saveProRole(creatorRole);
//添加关注者一级角色
ProRole attention = new ProRole();
attention.setName(WebConstant.ROLE_NAME.Attention.value);
attention.setDescription(WebConstant.ROLE_NAME.Attention.phase);
attention.setProjectId(sysProject.getId());
attention.setId(snowflake.nextId());
proRoleService.saveProRole(attention);
//添加关注者角色(二级角色)
ProRole attentionRole = new ProRole();
attentionRole.setName(WebConstant.ROLE_NAME.Attention.phase);
attentionRole.setDescription(WebConstant.ROLE_NAME.Attention.value);
attentionRole.setParentId(attention.getId());
attentionRole.setProjectId(sysProject.getId());
attentionRole.setId(snowflake.nextId());
proRoleService.saveProRole(attentionRole);
//添加项目经理一级角色
ProRole pm = new ProRole();
pm.setName(WebConstant.ROLE_NAME.PM.value);
pm.setDescription(WebConstant.ROLE_NAME.PM.phase);
pm.setProjectId(sysProject.getId());
pm.setId(snowflake.nextId());
proRoleService.saveProRole(pm);
//添加项目经理角色(二级角色)
ProRole pmRole = new ProRole();
pmRole.setName(WebConstant.ROLE_NAME.PM.value);
pmRole.setParentId(pm.getId());
pmRole.setProjectId(sysProject.getId());
pmRole.setId(snowflake.nextId());
proRoleService.saveProRole(pmRole);
//添加项目成员一级角色
ProRole memberRole = new ProRole();
memberRole.setName(WebConstant.ROLE_NAME.Member.value);
memberRole.setDescription(WebConstant.ROLE_NAME.Member.phase);
memberRole.setProjectId(sysProject.getId());
memberRole.setId(snowflake.nextId());
proRoleService.saveProRole(memberRole);
//添加默认成员(当前用户)
ProMember proMember = new ProMember();
proMember.setId(snowflake.nextId());
proMember.setNickname(name);
proMember.setPhone(phone);
proMember.setUserId(currentUserId);
proMember.setProjectId(sysProject.getId());
proMemberDao.insertSelective(proMember);
//关联成员与项目经理
ProMemberRole proMemberRole = new MemberRoleDto();
proMemberRole.setId(snowflake.nextId());
proMemberRole.setRoleId(pmRole.getId());
proMemberRole.setMemberId(proMember.getId());
memberRoleDao.insertSelective(proMemberRole);
//添加一个默认任务
ProTaskDetail taskDetail = new ProTaskDetail();
taskDetail.setId(snowflake.nextId());
taskDetail.setProjectId(sysProject.getId());
taskDetail.setName("一级任务");
taskDetail.setBeginTime(sysProject.getBeginTime());
taskDetail.setEndTime(sysProject.getEndTime());
taskDetail.setExecutorRole(pmRole.getId());
taskDetail.setCheckerRole(pmRole.getId());
taskDetailDao.insertSelective(taskDetail);
return getProjectInfoById(currentUserId,sysProject.getId(),token);
}
}

12
tall/src/main/java/com/ccsens/tall/web/ProjectController.java

@ -238,6 +238,18 @@ public class ProjectController {
return JsonResponse.newInstance().ok(projectByKeyList);
}
@ApiOperation(value = "新建项目", notes = "")
@ApiImplicitParams({
})
@RequestMapping(value = "/create", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse createProject(HttpServletRequest request,@RequestBody ProjectDto.CreateProject createProject) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
String authHeader = request.getHeader(WebConstant.HEADER_KEY_TOKEN);
String token = authHeader.substring(WebConstant.HEADER_KEY_TOKEN_PREFIX.length());
ProjectVo.ProjectInfo projectInfo = projectService.createProject(currentUserId,createProject,token);
return JsonResponse.newInstance().ok(projectInfo);
}
//==============================================================

Loading…
Cancel
Save