Browse Source

添加课题组分级

master
ccsens_zhengzhichuan 2 months ago
parent
commit
23f704b893
  1. 11
      research-admin/src/main/java/com/research/web/controller/client/project/GroupController.java
  2. 1
      research-admin/src/main/java/com/research/web/controller/system/SysLoginController.java
  3. 2
      research-admin/src/main/resources/application-prod.yml
  4. 2
      research-framework/src/main/java/com/research/framework/web/service/SysLoginService.java
  5. 4
      research-generator/src/main/resources/mbg.xml
  6. 7
      research-system/src/main/java/com/research/system/domain/dto/GroupDto.java
  7. 7
      research-system/src/main/java/com/research/system/domain/dto/OutcomeDto.java
  8. 22
      research-system/src/main/java/com/research/system/domain/po/AchAchievement.java
  9. 140
      research-system/src/main/java/com/research/system/domain/po/AchAchievementExample.java
  10. 22
      research-system/src/main/java/com/research/system/domain/po/KtsKtGroupMember.java
  11. 120
      research-system/src/main/java/com/research/system/domain/po/KtsKtGroupMemberExample.java
  12. 10
      research-system/src/main/java/com/research/system/domain/vo/GroupVO.java
  13. 7
      research-system/src/main/java/com/research/system/domain/vo/OutcomeVo.java
  14. 4
      research-system/src/main/java/com/research/system/service/KtsGroupService.java
  15. 87
      research-system/src/main/java/com/research/system/service/impl/KtsGroupServiceImpl.java
  16. 4
      research-system/src/main/resources/mapper/dao/KtsGroupDao.xml
  17. 4
      research-system/src/main/resources/mapper/dao/OutcomeDao.xml
  18. 47
      research-system/src/main/resources/mapper/system/AchAchievementMapper.xml
  19. 43
      research-system/src/main/resources/mapper/system/KtsKtGroupMemberMapper.xml

11
research-admin/src/main/java/com/research/web/controller/client/project/GroupController.java

@ -79,6 +79,16 @@ public class GroupController {
} }
return JsonResponse.ok(new PageInfo<>(ktsGroupService.queryGroupList(query.getParam()))); return JsonResponse.ok(new PageInfo<>(ktsGroupService.queryGroupList(query.getParam())));
} }
@Anonymous
@PostMapping("/childList")
public JsonResponse<PageInfo<GroupVO.Result>> childList(@RequestBody @Validated BaseDto<GroupDto.Query> query){
// if (query.getPageNum() > 0) {
// PageHelper.startPage(query.getPageNum(), query.getPageSize());
// }
return JsonResponse.ok(new PageInfo<>(ktsGroupService.childList(query.getParam())));
}
@PostMapping("/add") @PostMapping("/add")
public JsonResponse<Integer> add(@RequestBody @Validated GroupDto.Add dto){ public JsonResponse<Integer> add(@RequestBody @Validated GroupDto.Add dto){
ktsGroupService.add(dto); ktsGroupService.add(dto);
@ -109,7 +119,6 @@ public class GroupController {
// @DataSource(DataSourceType.MASTER) // @DataSource(DataSourceType.MASTER)
public JsonResponse<Integer> addMember(@RequestBody @Validated GroupDto.AddMember dto) throws Exception { public JsonResponse<Integer> addMember(@RequestBody @Validated GroupDto.AddMember dto) throws Exception {
KtsKtGroupMember ktsKtGroupMember = ktsGroupService.addMember(dto); KtsKtGroupMember ktsKtGroupMember = ktsGroupService.addMember(dto);
// aduit(ktsKtGroupMember.getId());
return JsonResponse.ok(); return JsonResponse.ok();
} }

1
research-admin/src/main/java/com/research/web/controller/system/SysLoginController.java

@ -56,6 +56,7 @@ public class SysLoginController
return ajax; return ajax;
} }
/** /**
* 获取用户信息 * 获取用户信息
* *

2
research-admin/src/main/resources/application-prod.yml

@ -8,7 +8,7 @@ spring:
master: master:
url: jdbc:mysql://127.0.0.1:3306/open_research?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true url: jdbc:mysql://127.0.0.1:3306/open_research?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true
username: root username: root
password: Sxinf18aA! password: csylcx18aA!
# 从库数据源 # 从库数据源
slave: slave:
# 从数据源开关/默认关闭 # 从数据源开关/默认关闭

2
research-framework/src/main/java/com/research/framework/web/service/SysLoginService.java

@ -64,7 +64,7 @@ public class SysLoginService
public String login(String username, String password, String code, String uuid) public String login(String username, String password, String code, String uuid)
{ {
// 验证码校验 // 验证码校验
validateCaptcha(username, code, uuid); // validateCaptcha(username, code, uuid);
// 登录前置校验 // 登录前置校验
loginPreCheck(username, password); loginPreCheck(username, password);
// 用户验证 // 用户验证

4
research-generator/src/main/resources/mbg.xml

@ -62,13 +62,13 @@
<!-- <table tableName="tms_tenant_user" domainObjectName="TmsTenantUser" enableDeleteByExample="false"/>--> <!-- <table tableName="tms_tenant_user" domainObjectName="TmsTenantUser" enableDeleteByExample="false"/>-->
<!-- <table tableName="tms_tenant_config" domainObjectName="TmsTenantConfig" enableDeleteByExample="false"/>--> <!-- <table tableName="tms_tenant_config" domainObjectName="TmsTenantConfig" enableDeleteByExample="false"/>-->
<!-- <table tableName="tms_tenant_srv_relation" domainObjectName="TmsTenantSrvRelation" enableDeleteByExample="false"/>--> <!-- <table tableName="tms_tenant_srv_relation" domainObjectName="TmsTenantSrvRelation" enableDeleteByExample="false"/>-->
<!-- <table tableName="ach_achievement" domainObjectName="AchAchievement" enableDeleteByExample="false"/>--> <table tableName="ach_achievement" domainObjectName="AchAchievement" enableDeleteByExample="false"/>
<!-- <table tableName="ach_achievement_category" domainObjectName="AchAchievementCategory" enableDeleteByExample="false"/>--> <!-- <table tableName="ach_achievement_category" domainObjectName="AchAchievementCategory" enableDeleteByExample="false"/>-->
<!-- <table tableName="fud_fund_record" domainObjectName="FudFundRecord" enableDeleteByExample="false"/>--> <!-- <table tableName="fud_fund_record" domainObjectName="FudFundRecord" enableDeleteByExample="false"/>-->
<!-- <table tableName="kts_kt_group" domainObjectName="KtsKtGroup" enableDeleteByExample="false"/>--> <!-- <table tableName="kts_kt_group" domainObjectName="KtsKtGroup" enableDeleteByExample="false"/>-->
<!-- <table tableName="kts_kt_group_member" domainObjectName="KtsKtGroupMember" enableDeleteByExample="false"/>--> <!-- <table tableName="kts_kt_group_member" domainObjectName="KtsKtGroupMember" enableDeleteByExample="false"/>-->
<!-- <table tableName="met_meeting_participant" domainObjectName="MetMeetingParticipant" enableDeleteByExample="false"/>--> <!-- <table tableName="met_meeting_participant" domainObjectName="MetMeetingParticipant" enableDeleteByExample="false"/>-->
<table tableName="met_meeting_record" domainObjectName="MetMeetingRecord" enableDeleteByExample="false"/> <!-- <table tableName="met_meeting_record" domainObjectName="MetMeetingRecord" enableDeleteByExample="false"/>-->
<!-- <table tableName="prj_proj_document" domainObjectName="PrjProjDocument" enableDeleteByExample="false"/>--> <!-- <table tableName="prj_proj_document" domainObjectName="PrjProjDocument" enableDeleteByExample="false"/>-->
<!-- <table tableName="prj_proj_info" domainObjectName="PrjProjInfo" enableDeleteByExample="false"/>--> <!-- <table tableName="prj_proj_info" domainObjectName="PrjProjInfo" enableDeleteByExample="false"/>-->
<!-- <table tableName="prj_proj_org" domainObjectName="PrjProjOrg" enableDeleteByExample="false"/>--> <!-- <table tableName="prj_proj_org" domainObjectName="PrjProjOrg" enableDeleteByExample="false"/>-->

7
research-system/src/main/java/com/research/system/domain/dto/GroupDto.java

@ -127,5 +127,12 @@ public class GroupDto {
private String phone; private String phone;
@ApiModelProperty("负责人") @ApiModelProperty("负责人")
private String name; private String name;
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty("入学时间")
private Date enrollTime;
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty("毕业时间")
private Date graduationTime;
} }
} }

7
research-system/src/main/java/com/research/system/domain/dto/OutcomeDto.java

@ -3,6 +3,7 @@ package com.research.system.domain.dto;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.research.system.domain.po.AchAchievement; import com.research.system.domain.po.AchAchievement;
import com.research.system.domain.po.AchAchievementCategory; import com.research.system.domain.po.AchAchievementCategory;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.util.Date;
@ -86,6 +87,12 @@ public class OutcomeDto {
private String commitmentLetterUrl; private String commitmentLetterUrl;
private String remark; private String remark;
private String fq;
private String yxyz;
@ApiModelProperty("分区")
private String partition;
@ApiModelProperty("影响因子")
private String impactFactor;
} }
@Data @Data

22
research-system/src/main/java/com/research/system/domain/po/AchAchievement.java

@ -66,6 +66,10 @@ public class AchAchievement implements Serializable {
private String paperDoi; private String paperDoi;
private String partition;
private String impactFactor;
private String abstracts; private String abstracts;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -318,6 +322,22 @@ public class AchAchievement implements Serializable {
this.paperDoi = paperDoi == null ? null : paperDoi.trim(); this.paperDoi = paperDoi == null ? null : paperDoi.trim();
} }
public String getPartition() {
return partition;
}
public void setPartition(String partition) {
this.partition = partition == null ? null : partition.trim();
}
public String getImpactFactor() {
return impactFactor;
}
public void setImpactFactor(String impactFactor) {
this.impactFactor = impactFactor == null ? null : impactFactor.trim();
}
public String getAbstracts() { public String getAbstracts() {
return abstracts; return abstracts;
} }
@ -363,6 +383,8 @@ public class AchAchievement implements Serializable {
sb.append(", remark=").append(remark); sb.append(", remark=").append(remark);
sb.append(", txAuthors=").append(txAuthors); sb.append(", txAuthors=").append(txAuthors);
sb.append(", paperDoi=").append(paperDoi); sb.append(", paperDoi=").append(paperDoi);
sb.append(", partition=").append(partition);
sb.append(", impactFactor=").append(impactFactor);
sb.append(", abstracts=").append(abstracts); sb.append(", abstracts=").append(abstracts);
sb.append("]"); sb.append("]");
return sb.toString(); return sb.toString();

140
research-system/src/main/java/com/research/system/domain/po/AchAchievementExample.java

@ -2161,6 +2161,146 @@ public class AchAchievementExample {
addCriterion("paper_doi not between", value1, value2, "paperDoi"); addCriterion("paper_doi not between", value1, value2, "paperDoi");
return (Criteria) this; return (Criteria) this;
} }
public Criteria andPartitionIsNull() {
addCriterion("partition is null");
return (Criteria) this;
}
public Criteria andPartitionIsNotNull() {
addCriterion("partition is not null");
return (Criteria) this;
}
public Criteria andPartitionEqualTo(String value) {
addCriterion("partition =", value, "partition");
return (Criteria) this;
}
public Criteria andPartitionNotEqualTo(String value) {
addCriterion("partition <>", value, "partition");
return (Criteria) this;
}
public Criteria andPartitionGreaterThan(String value) {
addCriterion("partition >", value, "partition");
return (Criteria) this;
}
public Criteria andPartitionGreaterThanOrEqualTo(String value) {
addCriterion("partition >=", value, "partition");
return (Criteria) this;
}
public Criteria andPartitionLessThan(String value) {
addCriterion("partition <", value, "partition");
return (Criteria) this;
}
public Criteria andPartitionLessThanOrEqualTo(String value) {
addCriterion("partition <=", value, "partition");
return (Criteria) this;
}
public Criteria andPartitionLike(String value) {
addCriterion("partition like", value, "partition");
return (Criteria) this;
}
public Criteria andPartitionNotLike(String value) {
addCriterion("partition not like", value, "partition");
return (Criteria) this;
}
public Criteria andPartitionIn(List<String> values) {
addCriterion("partition in", values, "partition");
return (Criteria) this;
}
public Criteria andPartitionNotIn(List<String> values) {
addCriterion("partition not in", values, "partition");
return (Criteria) this;
}
public Criteria andPartitionBetween(String value1, String value2) {
addCriterion("partition between", value1, value2, "partition");
return (Criteria) this;
}
public Criteria andPartitionNotBetween(String value1, String value2) {
addCriterion("partition not between", value1, value2, "partition");
return (Criteria) this;
}
public Criteria andImpactFactorIsNull() {
addCriterion("impact_factor is null");
return (Criteria) this;
}
public Criteria andImpactFactorIsNotNull() {
addCriterion("impact_factor is not null");
return (Criteria) this;
}
public Criteria andImpactFactorEqualTo(String value) {
addCriterion("impact_factor =", value, "impactFactor");
return (Criteria) this;
}
public Criteria andImpactFactorNotEqualTo(String value) {
addCriterion("impact_factor <>", value, "impactFactor");
return (Criteria) this;
}
public Criteria andImpactFactorGreaterThan(String value) {
addCriterion("impact_factor >", value, "impactFactor");
return (Criteria) this;
}
public Criteria andImpactFactorGreaterThanOrEqualTo(String value) {
addCriterion("impact_factor >=", value, "impactFactor");
return (Criteria) this;
}
public Criteria andImpactFactorLessThan(String value) {
addCriterion("impact_factor <", value, "impactFactor");
return (Criteria) this;
}
public Criteria andImpactFactorLessThanOrEqualTo(String value) {
addCriterion("impact_factor <=", value, "impactFactor");
return (Criteria) this;
}
public Criteria andImpactFactorLike(String value) {
addCriterion("impact_factor like", value, "impactFactor");
return (Criteria) this;
}
public Criteria andImpactFactorNotLike(String value) {
addCriterion("impact_factor not like", value, "impactFactor");
return (Criteria) this;
}
public Criteria andImpactFactorIn(List<String> values) {
addCriterion("impact_factor in", values, "impactFactor");
return (Criteria) this;
}
public Criteria andImpactFactorNotIn(List<String> values) {
addCriterion("impact_factor not in", values, "impactFactor");
return (Criteria) this;
}
public Criteria andImpactFactorBetween(String value1, String value2) {
addCriterion("impact_factor between", value1, value2, "impactFactor");
return (Criteria) this;
}
public Criteria andImpactFactorNotBetween(String value1, String value2) {
addCriterion("impact_factor not between", value1, value2, "impactFactor");
return (Criteria) this;
}
} }
public static class Criteria extends GeneratedCriteria { public static class Criteria extends GeneratedCriteria {

22
research-system/src/main/java/com/research/system/domain/po/KtsKtGroupMember.java

@ -50,6 +50,10 @@ public class KtsKtGroupMember implements Serializable {
private String remark; private String remark;
private Date enrollTime;
private Date graduationTime;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public Long getId() { public Long getId() {
@ -236,6 +240,22 @@ public class KtsKtGroupMember implements Serializable {
this.remark = remark == null ? null : remark.trim(); this.remark = remark == null ? null : remark.trim();
} }
public Date getEnrollTime() {
return enrollTime;
}
public void setEnrollTime(Date enrollTime) {
this.enrollTime = enrollTime;
}
public Date getGraduationTime() {
return graduationTime;
}
public void setGraduationTime(Date graduationTime) {
this.graduationTime = graduationTime;
}
@Override @Override
public String toString() { public String toString() {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
@ -265,6 +285,8 @@ public class KtsKtGroupMember implements Serializable {
sb.append(", updateBy=").append(updateBy); sb.append(", updateBy=").append(updateBy);
sb.append(", updateTime=").append(updateTime); sb.append(", updateTime=").append(updateTime);
sb.append(", remark=").append(remark); sb.append(", remark=").append(remark);
sb.append(", enrollTime=").append(enrollTime);
sb.append(", graduationTime=").append(graduationTime);
sb.append("]"); sb.append("]");
return sb.toString(); return sb.toString();
} }

120
research-system/src/main/java/com/research/system/domain/po/KtsKtGroupMemberExample.java

@ -1591,6 +1591,126 @@ public class KtsKtGroupMemberExample {
addCriterion("remark not between", value1, value2, "remark"); addCriterion("remark not between", value1, value2, "remark");
return (Criteria) this; return (Criteria) this;
} }
public Criteria andEnrollTimeIsNull() {
addCriterion("enroll_time is null");
return (Criteria) this;
}
public Criteria andEnrollTimeIsNotNull() {
addCriterion("enroll_time is not null");
return (Criteria) this;
}
public Criteria andEnrollTimeEqualTo(Date value) {
addCriterion("enroll_time =", value, "enrollTime");
return (Criteria) this;
}
public Criteria andEnrollTimeNotEqualTo(Date value) {
addCriterion("enroll_time <>", value, "enrollTime");
return (Criteria) this;
}
public Criteria andEnrollTimeGreaterThan(Date value) {
addCriterion("enroll_time >", value, "enrollTime");
return (Criteria) this;
}
public Criteria andEnrollTimeGreaterThanOrEqualTo(Date value) {
addCriterion("enroll_time >=", value, "enrollTime");
return (Criteria) this;
}
public Criteria andEnrollTimeLessThan(Date value) {
addCriterion("enroll_time <", value, "enrollTime");
return (Criteria) this;
}
public Criteria andEnrollTimeLessThanOrEqualTo(Date value) {
addCriterion("enroll_time <=", value, "enrollTime");
return (Criteria) this;
}
public Criteria andEnrollTimeIn(List<Date> values) {
addCriterion("enroll_time in", values, "enrollTime");
return (Criteria) this;
}
public Criteria andEnrollTimeNotIn(List<Date> values) {
addCriterion("enroll_time not in", values, "enrollTime");
return (Criteria) this;
}
public Criteria andEnrollTimeBetween(Date value1, Date value2) {
addCriterion("enroll_time between", value1, value2, "enrollTime");
return (Criteria) this;
}
public Criteria andEnrollTimeNotBetween(Date value1, Date value2) {
addCriterion("enroll_time not between", value1, value2, "enrollTime");
return (Criteria) this;
}
public Criteria andGraduationTimeIsNull() {
addCriterion("graduation_time is null");
return (Criteria) this;
}
public Criteria andGraduationTimeIsNotNull() {
addCriterion("graduation_time is not null");
return (Criteria) this;
}
public Criteria andGraduationTimeEqualTo(Date value) {
addCriterion("graduation_time =", value, "graduationTime");
return (Criteria) this;
}
public Criteria andGraduationTimeNotEqualTo(Date value) {
addCriterion("graduation_time <>", value, "graduationTime");
return (Criteria) this;
}
public Criteria andGraduationTimeGreaterThan(Date value) {
addCriterion("graduation_time >", value, "graduationTime");
return (Criteria) this;
}
public Criteria andGraduationTimeGreaterThanOrEqualTo(Date value) {
addCriterion("graduation_time >=", value, "graduationTime");
return (Criteria) this;
}
public Criteria andGraduationTimeLessThan(Date value) {
addCriterion("graduation_time <", value, "graduationTime");
return (Criteria) this;
}
public Criteria andGraduationTimeLessThanOrEqualTo(Date value) {
addCriterion("graduation_time <=", value, "graduationTime");
return (Criteria) this;
}
public Criteria andGraduationTimeIn(List<Date> values) {
addCriterion("graduation_time in", values, "graduationTime");
return (Criteria) this;
}
public Criteria andGraduationTimeNotIn(List<Date> values) {
addCriterion("graduation_time not in", values, "graduationTime");
return (Criteria) this;
}
public Criteria andGraduationTimeBetween(Date value1, Date value2) {
addCriterion("graduation_time between", value1, value2, "graduationTime");
return (Criteria) this;
}
public Criteria andGraduationTimeNotBetween(Date value1, Date value2) {
addCriterion("graduation_time not between", value1, value2, "graduationTime");
return (Criteria) this;
}
} }
public static class Criteria extends GeneratedCriteria { public static class Criteria extends GeneratedCriteria {

10
research-system/src/main/java/com/research/system/domain/vo/GroupVO.java

@ -8,6 +8,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* @Author zzc * @Author zzc
@ -63,8 +64,11 @@ public class GroupVO {
private Integer jscgzhNum; private Integer jscgzhNum;
private Integer xsjlNum; private Integer xsjlNum;
private List<Result> childrenList;
} }
@Data @Data
public static class MemberResult { public static class MemberResult {
private Long id; private Long id;
@ -115,6 +119,12 @@ public class GroupVO {
private String projOrgName; private String projOrgName;
private String userName; private String userName;
private String nickName; private String nickName;
@ApiModelProperty("入学时间")
private Date enrollTime;
@ApiModelProperty("毕业时间")
private Date graduationTime;
private List<MemberResult> childrenList;
public String getUserName() { public String getUserName() {
if (StrUtil.isNotEmpty(userName)) { if (StrUtil.isNotEmpty(userName)) {

7
research-system/src/main/java/com/research/system/domain/vo/OutcomeVo.java

@ -3,6 +3,7 @@ package com.research.system.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.research.system.domain.po.AchAchievement; import com.research.system.domain.po.AchAchievement;
import com.research.system.domain.po.AchAchievementCategory; import com.research.system.domain.po.AchAchievementCategory;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.util.Date;
@ -75,6 +76,12 @@ public class OutcomeVo {
private Date createTime; private Date createTime;
private String projOrgName; private String projOrgName;
private String fq;
private String yxyz;
@ApiModelProperty("分区")
private String partition;
@ApiModelProperty("影响因子")
private String impactFactor;
} }
@Data @Data

4
research-system/src/main/java/com/research/system/service/KtsGroupService.java

@ -22,6 +22,8 @@ public interface KtsGroupService {
List<GroupVO.Result> queryGroupList(GroupDto.Query query); List<GroupVO.Result> queryGroupList(GroupDto.Query query);
List<GroupVO.Result> childList(GroupDto.Query query);
KtsKtGroup add(GroupDto.Add dto); KtsKtGroup add(GroupDto.Add dto);
void del(CommonDto.DelDto dto); void del(CommonDto.DelDto dto);
@ -30,6 +32,8 @@ public interface KtsGroupService {
List<GroupVO.MemberResult> queryMemberList(GroupDto.MemberQuery query); List<GroupVO.MemberResult> queryMemberList(GroupDto.MemberQuery query);
List<GroupVO.MemberResult> childList(GroupDto.MemberQuery query);
KtsKtGroupMember addMember(GroupDto.AddMember dto); KtsKtGroupMember addMember(GroupDto.AddMember dto);
void delMember(CommonDto.DelDto dto); void delMember(CommonDto.DelDto dto);

87
research-system/src/main/java/com/research/system/service/impl/KtsGroupServiceImpl.java

@ -26,8 +26,8 @@ import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Date; import java.util.*;
import java.util.List; import java.util.stream.Collectors;
/** /**
* @Author zzc * @Author zzc
@ -56,6 +56,48 @@ public class KtsGroupServiceImpl implements KtsGroupService {
return ktsGroupDao.queryGroupList(query); return ktsGroupDao.queryGroupList(query);
} }
@Override
public List<GroupVO.Result> childList(GroupDto.Query query) {
List<GroupVO.Result> groupList = queryGroupList(query);
if (CollUtil.isNotEmpty(groupList)) {
return buildTree(groupList);
}
return null;
}
public static List<GroupVO.Result> buildTree(List<GroupVO.Result> rootList) {
if (rootList == null || rootList.isEmpty()) {
return Collections.emptyList();
}
// 使用Map存储所有节点,Key为ID
Map<Long, GroupVO.Result> nodeMap = new HashMap<>();
for (GroupVO.Result node : rootList) {
nodeMap.put(node.getId(), node);
} // 处理根节点
List<GroupVO.Result> roots = new ArrayList<>();
for (GroupVO.Result node : rootList) {
if (node.getParentKtId() == null || node.getParentKtId() == 0) {
roots.add(node);
buildChildren(node, nodeMap);
}
}
return roots;
}
private static void buildChildren(GroupVO.Result parent, Map<Long, GroupVO.Result> nodeMap) { // 查找子节点
List<GroupVO.Result> children = nodeMap.values().stream().filter(child -> parent.getId().equals(child.getParentKtId())).collect(Collectors.toList());
if (children.isEmpty()) {
return;
}
// 设置子节点列表
parent.setChildrenList(new ArrayList<>());
children.forEach(child -> {
parent.getChildrenList().add(child);
buildChildren(child, nodeMap);
});
}
@Override @Override
public KtsKtGroup add(GroupDto.Add dto) { public KtsKtGroup add(GroupDto.Add dto) {
//根据登录账号查询项目 //根据登录账号查询项目
@ -104,6 +146,44 @@ public class KtsGroupServiceImpl implements KtsGroupService {
return ktsGroupDao.queryMemberList(query); return ktsGroupDao.queryMemberList(query);
} }
@Override
public List<GroupVO.MemberResult> childList(GroupDto.MemberQuery query) {
List<GroupVO.MemberResult> memberResults = queryMemberList(query);
if (CollUtil.isNotEmpty(memberResults)) {
return buildTreeRecursive(memberResults);
}
return memberResults;
}
/**
* 递归方式构建树形结构
*
* @param allMembers 所有成员列表
* @return 顶级成员列表包含子级
*/
public static List<GroupVO.MemberResult> buildTreeRecursive(List<GroupVO.MemberResult> allMembers) {
// 按sort字段排序
allMembers.sort(Comparator.comparingInt(GroupVO.MemberResult::getSort));
// 获取所有顶级节点(parentMemberId为空的节点)
return allMembers.stream()
.filter(m -> m.getParentMemberId() == null || m.getParentMemberId().isEmpty())
.peek(root -> setChildren(root, allMembers))
.collect(Collectors.toList());
}
private static void setChildren(GroupVO.MemberResult parent, List<GroupVO.MemberResult> allMembers) {
List<GroupVO.MemberResult> children = allMembers.stream()
.filter(m -> parent.getId().toString().equals(m.getParentMemberId()))
.peek(child -> setChildren(child, allMembers))
.collect(Collectors.toList());
if (!children.isEmpty()) {
parent.setChildrenList(children);
}
}
@Override @Override
public KtsKtGroupMember addMember(GroupDto.AddMember dto) { public KtsKtGroupMember addMember(GroupDto.AddMember dto) {
//是否传了课题组ID,没传且课题组名称不为空,则添加课题组 //是否传了课题组ID,没传且课题组名称不为空,则添加课题组
@ -166,7 +246,6 @@ public class KtsGroupServiceImpl implements KtsGroupService {
} }
@Override @Override
public void delMember(CommonDto.DelDto dto) { public void delMember(CommonDto.DelDto dto) {
KtsKtGroupMemberExample ktsKtGroupMemberExample = new KtsKtGroupMemberExample(); KtsKtGroupMemberExample ktsKtGroupMemberExample = new KtsKtGroupMemberExample();
@ -206,7 +285,7 @@ public class KtsGroupServiceImpl implements KtsGroupService {
ktsKtGroupMember.setAuditStatus((byte) 2); ktsKtGroupMember.setAuditStatus((byte) 2);
ktsKtGroupMember.setUserId(sysUser.getUserId()); ktsKtGroupMember.setUserId(sysUser.getUserId());
ktsKtGroupMemberMapper.updateByPrimaryKeySelective(ktsKtGroupMember); ktsKtGroupMemberMapper.updateByPrimaryKeySelective(ktsKtGroupMember);
}else { } else {
ktsKtGroupMember.setAuditStatus((byte) 1); ktsKtGroupMember.setAuditStatus((byte) 1);
ktsKtGroupMemberMapper.updateByPrimaryKeySelective(ktsKtGroupMember); ktsKtGroupMemberMapper.updateByPrimaryKeySelective(ktsKtGroupMember);
} }

4
research-system/src/main/resources/mapper/dao/KtsGroupDao.xml

@ -64,7 +64,9 @@
d2.dict_label as titleName, d2.dict_label as titleName,
o.org_name as projOrgName, o.org_name as projOrgName,
u.user_name as userName, u.user_name as userName,
u.nick_name as nickName u.nick_name as nickName,
m.enroll_time as enrollTime,
m.graduation_time as graduationTime
from from
kts_kt_group_member m kts_kt_group_member m
left join left join

4
research-system/src/main/resources/mapper/dao/OutcomeDao.xml

@ -49,7 +49,9 @@
a.create_by as createBy, a.create_by as createBy,
a.create_time as createTime, a.create_time as createTime,
p.org_name as projOrgName, p.org_name as projOrgName,
g.kt_group_name as ktGroupName g.kt_group_name as ktGroupName,
a.partition,
a.impact_factor as impactFactor
FROM ach_achievement a FROM ach_achievement a
left join prj_proj_org p on a.proj_org_id = p.id left join prj_proj_org p on a.proj_org_id = p.id
left join kts_kt_group g on a.kt_group_id = g.id left join kts_kt_group g on a.kt_group_id = g.id

47
research-system/src/main/resources/mapper/system/AchAchievementMapper.xml

@ -33,6 +33,8 @@
<result column="remark" jdbcType="VARCHAR" property="remark" /> <result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="tx_authors" jdbcType="VARCHAR" property="txAuthors" /> <result column="tx_authors" jdbcType="VARCHAR" property="txAuthors" />
<result column="paper_doi" jdbcType="VARCHAR" property="paperDoi" /> <result column="paper_doi" jdbcType="VARCHAR" property="paperDoi" />
<result column="partition" jdbcType="VARCHAR" property="partition" />
<result column="impact_factor" jdbcType="VARCHAR" property="impactFactor" />
</resultMap> </resultMap>
<resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.research.system.domain.po.AchAchievement"> <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.research.system.domain.po.AchAchievement">
<result column="abstracts" jdbcType="LONGVARCHAR" property="abstracts" /> <result column="abstracts" jdbcType="LONGVARCHAR" property="abstracts" />
@ -99,7 +101,8 @@
id, proj_id, proj_org_id, kt_group_id, category_id_1, category_id_2, title, no, authors, id, proj_id, proj_org_id, kt_group_id, category_id_1, category_id_2, title, no, authors,
apply_date, publish_date, place, ach_type, source, paper_source_type, yskt_xmfzr, apply_date, publish_date, place, ach_type, source, paper_source_type, yskt_xmfzr,
yskt_funds, yskt_lxpzwh, yskt_status, keywords, paper_link, pdf_download_url, commitment_letter_url, yskt_funds, yskt_lxpzwh, yskt_status, keywords, paper_link, pdf_download_url, commitment_letter_url,
del_flag, create_by, create_time, update_by, update_time, remark, tx_authors, paper_doi del_flag, create_by, create_time, update_by, update_time, remark, tx_authors, paper_doi,
partition, impact_factor
</sql> </sql>
<sql id="Blob_Column_List"> <sql id="Blob_Column_List">
abstracts abstracts
@ -157,7 +160,8 @@
pdf_download_url, commitment_letter_url, del_flag, pdf_download_url, commitment_letter_url, del_flag,
create_by, create_time, update_by, create_by, create_time, update_by,
update_time, remark, tx_authors, update_time, remark, tx_authors,
paper_doi, abstracts) paper_doi, partition, impact_factor,
abstracts)
values (#{id,jdbcType=BIGINT}, #{projId,jdbcType=BIGINT}, #{projOrgId,jdbcType=BIGINT}, values (#{id,jdbcType=BIGINT}, #{projId,jdbcType=BIGINT}, #{projOrgId,jdbcType=BIGINT},
#{ktGroupId,jdbcType=BIGINT}, #{categoryId1,jdbcType=BIGINT}, #{categoryId2,jdbcType=BIGINT}, #{ktGroupId,jdbcType=BIGINT}, #{categoryId1,jdbcType=BIGINT}, #{categoryId2,jdbcType=BIGINT},
#{title,jdbcType=VARCHAR}, #{no,jdbcType=VARCHAR}, #{authors,jdbcType=VARCHAR}, #{title,jdbcType=VARCHAR}, #{no,jdbcType=VARCHAR}, #{authors,jdbcType=VARCHAR},
@ -168,7 +172,8 @@
#{pdfDownloadUrl,jdbcType=VARCHAR}, #{commitmentLetterUrl,jdbcType=VARCHAR}, #{delFlag,jdbcType=TINYINT}, #{pdfDownloadUrl,jdbcType=VARCHAR}, #{commitmentLetterUrl,jdbcType=VARCHAR}, #{delFlag,jdbcType=TINYINT},
#{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateBy,jdbcType=VARCHAR}, #{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateBy,jdbcType=VARCHAR},
#{updateTime,jdbcType=TIMESTAMP}, #{remark,jdbcType=VARCHAR}, #{txAuthors,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, #{remark,jdbcType=VARCHAR}, #{txAuthors,jdbcType=VARCHAR},
#{paperDoi,jdbcType=VARCHAR}, #{abstracts,jdbcType=LONGVARCHAR}) #{paperDoi,jdbcType=VARCHAR}, #{partition,jdbcType=VARCHAR}, #{impactFactor,jdbcType=VARCHAR},
#{abstracts,jdbcType=LONGVARCHAR})
</insert> </insert>
<insert id="insertSelective" parameterType="com.research.system.domain.po.AchAchievement"> <insert id="insertSelective" parameterType="com.research.system.domain.po.AchAchievement">
insert into ach_achievement insert into ach_achievement
@ -266,6 +271,12 @@
<if test="paperDoi != null"> <if test="paperDoi != null">
paper_doi, paper_doi,
</if> </if>
<if test="partition != null">
partition,
</if>
<if test="impactFactor != null">
impact_factor,
</if>
<if test="abstracts != null"> <if test="abstracts != null">
abstracts, abstracts,
</if> </if>
@ -364,6 +375,12 @@
<if test="paperDoi != null"> <if test="paperDoi != null">
#{paperDoi,jdbcType=VARCHAR}, #{paperDoi,jdbcType=VARCHAR},
</if> </if>
<if test="partition != null">
#{partition,jdbcType=VARCHAR},
</if>
<if test="impactFactor != null">
#{impactFactor,jdbcType=VARCHAR},
</if>
<if test="abstracts != null"> <if test="abstracts != null">
#{abstracts,jdbcType=LONGVARCHAR}, #{abstracts,jdbcType=LONGVARCHAR},
</if> </if>
@ -471,6 +488,12 @@
<if test="record.paperDoi != null"> <if test="record.paperDoi != null">
paper_doi = #{record.paperDoi,jdbcType=VARCHAR}, paper_doi = #{record.paperDoi,jdbcType=VARCHAR},
</if> </if>
<if test="record.partition != null">
partition = #{record.partition,jdbcType=VARCHAR},
</if>
<if test="record.impactFactor != null">
impact_factor = #{record.impactFactor,jdbcType=VARCHAR},
</if>
<if test="record.abstracts != null"> <if test="record.abstracts != null">
abstracts = #{record.abstracts,jdbcType=LONGVARCHAR}, abstracts = #{record.abstracts,jdbcType=LONGVARCHAR},
</if> </if>
@ -512,6 +535,8 @@
remark = #{record.remark,jdbcType=VARCHAR}, remark = #{record.remark,jdbcType=VARCHAR},
tx_authors = #{record.txAuthors,jdbcType=VARCHAR}, tx_authors = #{record.txAuthors,jdbcType=VARCHAR},
paper_doi = #{record.paperDoi,jdbcType=VARCHAR}, paper_doi = #{record.paperDoi,jdbcType=VARCHAR},
partition = #{record.partition,jdbcType=VARCHAR},
impact_factor = #{record.impactFactor,jdbcType=VARCHAR},
abstracts = #{record.abstracts,jdbcType=LONGVARCHAR} abstracts = #{record.abstracts,jdbcType=LONGVARCHAR}
<if test="_parameter != null"> <if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" /> <include refid="Update_By_Example_Where_Clause" />
@ -549,7 +574,9 @@
update_time = #{record.updateTime,jdbcType=TIMESTAMP}, update_time = #{record.updateTime,jdbcType=TIMESTAMP},
remark = #{record.remark,jdbcType=VARCHAR}, remark = #{record.remark,jdbcType=VARCHAR},
tx_authors = #{record.txAuthors,jdbcType=VARCHAR}, tx_authors = #{record.txAuthors,jdbcType=VARCHAR},
paper_doi = #{record.paperDoi,jdbcType=VARCHAR} paper_doi = #{record.paperDoi,jdbcType=VARCHAR},
partition = #{record.partition,jdbcType=VARCHAR},
impact_factor = #{record.impactFactor,jdbcType=VARCHAR}
<if test="_parameter != null"> <if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" /> <include refid="Update_By_Example_Where_Clause" />
</if> </if>
@ -647,6 +674,12 @@
<if test="paperDoi != null"> <if test="paperDoi != null">
paper_doi = #{paperDoi,jdbcType=VARCHAR}, paper_doi = #{paperDoi,jdbcType=VARCHAR},
</if> </if>
<if test="partition != null">
partition = #{partition,jdbcType=VARCHAR},
</if>
<if test="impactFactor != null">
impact_factor = #{impactFactor,jdbcType=VARCHAR},
</if>
<if test="abstracts != null"> <if test="abstracts != null">
abstracts = #{abstracts,jdbcType=LONGVARCHAR}, abstracts = #{abstracts,jdbcType=LONGVARCHAR},
</if> </if>
@ -685,6 +718,8 @@
remark = #{remark,jdbcType=VARCHAR}, remark = #{remark,jdbcType=VARCHAR},
tx_authors = #{txAuthors,jdbcType=VARCHAR}, tx_authors = #{txAuthors,jdbcType=VARCHAR},
paper_doi = #{paperDoi,jdbcType=VARCHAR}, paper_doi = #{paperDoi,jdbcType=VARCHAR},
partition = #{partition,jdbcType=VARCHAR},
impact_factor = #{impactFactor,jdbcType=VARCHAR},
abstracts = #{abstracts,jdbcType=LONGVARCHAR} abstracts = #{abstracts,jdbcType=LONGVARCHAR}
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</update> </update>
@ -719,7 +754,9 @@
update_time = #{updateTime,jdbcType=TIMESTAMP}, update_time = #{updateTime,jdbcType=TIMESTAMP},
remark = #{remark,jdbcType=VARCHAR}, remark = #{remark,jdbcType=VARCHAR},
tx_authors = #{txAuthors,jdbcType=VARCHAR}, tx_authors = #{txAuthors,jdbcType=VARCHAR},
paper_doi = #{paperDoi,jdbcType=VARCHAR} paper_doi = #{paperDoi,jdbcType=VARCHAR},
partition = #{partition,jdbcType=VARCHAR},
impact_factor = #{impactFactor,jdbcType=VARCHAR}
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</update> </update>
</mapper> </mapper>

43
research-system/src/main/resources/mapper/system/KtsKtGroupMemberMapper.xml

@ -25,6 +25,8 @@
<result column="update_by" jdbcType="VARCHAR" property="updateBy" /> <result column="update_by" jdbcType="VARCHAR" property="updateBy" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" /> <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="remark" jdbcType="VARCHAR" property="remark" /> <result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="enroll_time" jdbcType="TIMESTAMP" property="enrollTime" />
<result column="graduation_time" jdbcType="TIMESTAMP" property="graduationTime" />
</resultMap> </resultMap>
<sql id="Example_Where_Clause"> <sql id="Example_Where_Clause">
<where> <where>
@ -87,7 +89,8 @@
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, user_id, kt_group_id, parent_member_id, member_name, member_phone, member_email, id, user_id, kt_group_id, parent_member_id, member_name, member_phone, member_email,
member_gender, member_birth, type, category, qualification, title, sort, intro, audit_status, member_gender, member_birth, type, category, qualification, title, sort, intro, audit_status,
member_status, del_flag, create_by, create_time, update_by, update_time, remark member_status, del_flag, create_by, create_time, update_by, update_time, remark,
enroll_time, graduation_time
</sql> </sql>
<select id="selectByExample" parameterType="com.research.system.domain.po.KtsKtGroupMemberExample" resultMap="BaseResultMap"> <select id="selectByExample" parameterType="com.research.system.domain.po.KtsKtGroupMemberExample" resultMap="BaseResultMap">
select select
@ -121,7 +124,8 @@
title, sort, intro, title, sort, intro,
audit_status, member_status, del_flag, audit_status, member_status, del_flag,
create_by, create_time, update_by, create_by, create_time, update_by,
update_time, remark) update_time, remark, enroll_time,
graduation_time)
values (#{id,jdbcType=BIGINT}, #{userId,jdbcType=BIGINT}, #{ktGroupId,jdbcType=BIGINT}, values (#{id,jdbcType=BIGINT}, #{userId,jdbcType=BIGINT}, #{ktGroupId,jdbcType=BIGINT},
#{parentMemberId,jdbcType=VARCHAR}, #{memberName,jdbcType=VARCHAR}, #{memberPhone,jdbcType=VARCHAR}, #{parentMemberId,jdbcType=VARCHAR}, #{memberName,jdbcType=VARCHAR}, #{memberPhone,jdbcType=VARCHAR},
#{memberEmail,jdbcType=VARCHAR}, #{memberGender,jdbcType=TINYINT}, #{memberBirth,jdbcType=DATE}, #{memberEmail,jdbcType=VARCHAR}, #{memberGender,jdbcType=TINYINT}, #{memberBirth,jdbcType=DATE},
@ -129,7 +133,8 @@
#{title,jdbcType=INTEGER}, #{sort,jdbcType=INTEGER}, #{intro,jdbcType=VARCHAR}, #{title,jdbcType=INTEGER}, #{sort,jdbcType=INTEGER}, #{intro,jdbcType=VARCHAR},
#{auditStatus,jdbcType=TINYINT}, #{memberStatus,jdbcType=TINYINT}, #{delFlag,jdbcType=TINYINT}, #{auditStatus,jdbcType=TINYINT}, #{memberStatus,jdbcType=TINYINT}, #{delFlag,jdbcType=TINYINT},
#{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateBy,jdbcType=VARCHAR}, #{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateBy,jdbcType=VARCHAR},
#{updateTime,jdbcType=TIMESTAMP}, #{remark,jdbcType=VARCHAR}) #{updateTime,jdbcType=TIMESTAMP}, #{remark,jdbcType=VARCHAR}, #{enrollTime,jdbcType=TIMESTAMP},
#{graduationTime,jdbcType=TIMESTAMP})
</insert> </insert>
<insert id="insertSelective" parameterType="com.research.system.domain.po.KtsKtGroupMember"> <insert id="insertSelective" parameterType="com.research.system.domain.po.KtsKtGroupMember">
insert into kts_kt_group_member insert into kts_kt_group_member
@ -203,6 +208,12 @@
<if test="remark != null"> <if test="remark != null">
remark, remark,
</if> </if>
<if test="enrollTime != null">
enroll_time,
</if>
<if test="graduationTime != null">
graduation_time,
</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null"> <if test="id != null">
@ -274,6 +285,12 @@
<if test="remark != null"> <if test="remark != null">
#{remark,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR},
</if> </if>
<if test="enrollTime != null">
#{enrollTime,jdbcType=TIMESTAMP},
</if>
<if test="graduationTime != null">
#{graduationTime,jdbcType=TIMESTAMP},
</if>
</trim> </trim>
</insert> </insert>
<select id="countByExample" parameterType="com.research.system.domain.po.KtsKtGroupMemberExample" resultType="java.lang.Long"> <select id="countByExample" parameterType="com.research.system.domain.po.KtsKtGroupMemberExample" resultType="java.lang.Long">
@ -354,6 +371,12 @@
<if test="record.remark != null"> <if test="record.remark != null">
remark = #{record.remark,jdbcType=VARCHAR}, remark = #{record.remark,jdbcType=VARCHAR},
</if> </if>
<if test="record.enrollTime != null">
enroll_time = #{record.enrollTime,jdbcType=TIMESTAMP},
</if>
<if test="record.graduationTime != null">
graduation_time = #{record.graduationTime,jdbcType=TIMESTAMP},
</if>
</set> </set>
<if test="_parameter != null"> <if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" /> <include refid="Update_By_Example_Where_Clause" />
@ -383,7 +406,9 @@
create_time = #{record.createTime,jdbcType=TIMESTAMP}, create_time = #{record.createTime,jdbcType=TIMESTAMP},
update_by = #{record.updateBy,jdbcType=VARCHAR}, update_by = #{record.updateBy,jdbcType=VARCHAR},
update_time = #{record.updateTime,jdbcType=TIMESTAMP}, update_time = #{record.updateTime,jdbcType=TIMESTAMP},
remark = #{record.remark,jdbcType=VARCHAR} remark = #{record.remark,jdbcType=VARCHAR},
enroll_time = #{record.enrollTime,jdbcType=TIMESTAMP},
graduation_time = #{record.graduationTime,jdbcType=TIMESTAMP}
<if test="_parameter != null"> <if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" /> <include refid="Update_By_Example_Where_Clause" />
</if> </if>
@ -457,6 +482,12 @@
<if test="remark != null"> <if test="remark != null">
remark = #{remark,jdbcType=VARCHAR}, remark = #{remark,jdbcType=VARCHAR},
</if> </if>
<if test="enrollTime != null">
enroll_time = #{enrollTime,jdbcType=TIMESTAMP},
</if>
<if test="graduationTime != null">
graduation_time = #{graduationTime,jdbcType=TIMESTAMP},
</if>
</set> </set>
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</update> </update>
@ -483,7 +514,9 @@
create_time = #{createTime,jdbcType=TIMESTAMP}, create_time = #{createTime,jdbcType=TIMESTAMP},
update_by = #{updateBy,jdbcType=VARCHAR}, update_by = #{updateBy,jdbcType=VARCHAR},
update_time = #{updateTime,jdbcType=TIMESTAMP}, update_time = #{updateTime,jdbcType=TIMESTAMP},
remark = #{remark,jdbcType=VARCHAR} remark = #{remark,jdbcType=VARCHAR},
enroll_time = #{enrollTime,jdbcType=TIMESTAMP},
graduation_time = #{graduationTime,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</update> </update>
</mapper> </mapper>
Loading…
Cancel
Save