diff --git a/research-admin/src/main/java/com/research/web/controller/client/project/GroupController.java b/research-admin/src/main/java/com/research/web/controller/client/project/GroupController.java index 7f334e44..4da5fb40 100644 --- a/research-admin/src/main/java/com/research/web/controller/client/project/GroupController.java +++ b/research-admin/src/main/java/com/research/web/controller/client/project/GroupController.java @@ -191,6 +191,16 @@ public class GroupController { return JsonResponse.ok(ktsGroupService.queryStudentList(new GroupDto.Query())); } + @PostMapping("/statistics1") + public JsonResponse> statistics1(){ + return JsonResponse.ok(ktsGroupService.statistics1()); + } + + @PostMapping("/zdStatistics") + public JsonResponse zdStatistics(){ + return JsonResponse.ok(ktsGroupService.zdStatistics()); + } + private void aduit(Long memberId) throws Exception { //1.流程初始化表单 diff --git a/research-admin/src/main/java/com/research/web/controller/tenant/TmsLoginController.java b/research-admin/src/main/java/com/research/web/controller/tenant/TmsLoginController.java index ab833e69..09421d6d 100644 --- a/research-admin/src/main/java/com/research/web/controller/tenant/TmsLoginController.java +++ b/research-admin/src/main/java/com/research/web/controller/tenant/TmsLoginController.java @@ -15,14 +15,18 @@ import com.research.common.utils.SecurityUtils; import com.research.framework.web.service.SysLoginService; import com.research.framework.web.service.TokenService; import com.research.framework.web.service.WebTmsLoginService; +import com.research.system.domain.dto.SmsDto; import com.research.system.domain.po.TmsTenant; +import com.research.system.domain.vo.SmsVo; import com.research.system.domain.vo.TmsLoginUserVo; import com.research.system.service.ISysUserService; import com.research.system.service.TmsLoginService; import com.research.system.service.TmsTenantUserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -161,4 +165,11 @@ public class TmsLoginController { public JsonResponse> query(){ return JsonResponse.ok(dmsLoginService.query()); } + + @ApiOperation("获取手机验证码") + @GetMapping("/getSmsCode") + @Anonymous + public JsonResponse getSmsCode(@ApiParam @Validated SmsDto.GetSmsCode dto) { + return JsonResponse.ok(dmsLoginService.sendSmsCode(dto.getPhone())); + } } diff --git a/research-admin/src/main/resources/application.yml b/research-admin/src/main/resources/application.yml index 7d8f0df0..02559fc8 100644 --- a/research-admin/src/main/resources/application.yml +++ b/research-admin/src/main/resources/application.yml @@ -12,7 +12,11 @@ research: addressEnabled: false # 验证码类型 math 数字计算 char 字符验证 captchaType: math - + # 验证码发送间隔时间 + smsCodeSendIntervalInSeconds: 60 + # 短信验证码有效时间 + smsCodeExpireInSeconds: 120 + smsUrl: http://113.45.159.249:27363/external/sendSms # 开发环境配置 server: # 服务器的HTTP端口,默认为8080 diff --git a/research-common/src/main/java/com/research/common/constant/CacheConstants.java b/research-common/src/main/java/com/research/common/constant/CacheConstants.java index 1f0c7ba2..e4f16580 100644 --- a/research-common/src/main/java/com/research/common/constant/CacheConstants.java +++ b/research-common/src/main/java/com/research/common/constant/CacheConstants.java @@ -12,6 +12,11 @@ public class CacheConstants */ public static final String LOGIN_TOKEN_KEY = "login_tokens:"; + /** + * 手机验证码 redis key + */ + public static final String PHONE_CODE_KEY = "phone_codes:"; + /** * 验证码 redis key */ diff --git a/research-common/src/main/java/com/research/common/core/domain/PhoneCode.java b/research-common/src/main/java/com/research/common/core/domain/PhoneCode.java new file mode 100644 index 00000000..5de785be --- /dev/null +++ b/research-common/src/main/java/com/research/common/core/domain/PhoneCode.java @@ -0,0 +1,35 @@ +package com.research.common.core.domain; + +import lombok.Data; + +/** + * @author zhangsan + * @date 2022-08-17 15:24 + * @description TODO + */ +@Data +public class PhoneCode { + private static final int MIN_SEQUENCE = 11; + private static final int MAX_SEQUENCE = 99; + /** + * 验证码 + */ + private String code; + /** + * 序号 + */ + private int sequence = MIN_SEQUENCE; + /** + * 创建时间 + */ + private Long createTime = System.currentTimeMillis(); + + /** + * 序号增加 + */ + public void incrSequence() { + if(sequence++ >= MAX_SEQUENCE){ + sequence = MIN_SEQUENCE; + }; + } +} \ No newline at end of file diff --git a/research-generator/src/main/resources/mbg.xml b/research-generator/src/main/resources/mbg.xml index 9b558105..b4da9372 100644 --- a/research-generator/src/main/resources/mbg.xml +++ b/research-generator/src/main/resources/mbg.xml @@ -67,14 +67,14 @@ - + -
+ diff --git a/research-system/src/main/java/com/research/system/domain/dto/DocumentDto.java b/research-system/src/main/java/com/research/system/domain/dto/DocumentDto.java index cc29029e..901de49f 100644 --- a/research-system/src/main/java/com/research/system/domain/dto/DocumentDto.java +++ b/research-system/src/main/java/com/research/system/domain/dto/DocumentDto.java @@ -16,6 +16,7 @@ public class DocumentDto { public static class Query{ private Long projId; protected String docName; + private Byte docType; } @Data diff --git a/research-system/src/main/java/com/research/system/domain/dto/GroupDto.java b/research-system/src/main/java/com/research/system/domain/dto/GroupDto.java index e9afedf6..dd063b49 100644 --- a/research-system/src/main/java/com/research/system/domain/dto/GroupDto.java +++ b/research-system/src/main/java/com/research/system/domain/dto/GroupDto.java @@ -23,6 +23,7 @@ public class GroupDto { public static class Query { @ApiModelProperty("合作单位id") private Long projOrgId; + private Long ktGroupId; @ApiModelProperty("课题组状态:0-正常,1禁用") private Byte ktGroupStatus; @ApiModelProperty("课题组名称") @@ -89,6 +90,8 @@ public class GroupDto { private List contentList; private List outcomesList; + + private Byte type; } @Data diff --git a/research-system/src/main/java/com/research/system/domain/dto/SmsDto.java b/research-system/src/main/java/com/research/system/domain/dto/SmsDto.java new file mode 100644 index 00000000..6ddfd371 --- /dev/null +++ b/research-system/src/main/java/com/research/system/domain/dto/SmsDto.java @@ -0,0 +1,27 @@ +package com.research.system.domain.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Pattern; + +/** + * @Author zzc + * @Package com.research.system.domain.dto + * @Date 2026/1/21 15:08 + * @description: + */ +public class SmsDto { + + @Data + @ApiModel("DTO-获取手机验证码") + public static class GetSmsCode { + @ApiModelProperty("手机号") + @NotBlank(message = "phone不能为空") + @Pattern(regexp = "(?:0|86|\\+86)?1[3-9]\\d{9}", message = "phone格式不正确") + private String phone; + } + +} diff --git a/research-system/src/main/java/com/research/system/domain/po/KtsKtGroup.java b/research-system/src/main/java/com/research/system/domain/po/KtsKtGroup.java index 88b790a7..0f46dddf 100644 --- a/research-system/src/main/java/com/research/system/domain/po/KtsKtGroup.java +++ b/research-system/src/main/java/com/research/system/domain/po/KtsKtGroup.java @@ -40,6 +40,8 @@ public class KtsKtGroup implements Serializable { private Byte developStatus; + private Byte type; + private static final long serialVersionUID = 1L; public Long getId() { @@ -186,6 +188,14 @@ public class KtsKtGroup implements Serializable { this.developStatus = developStatus; } + public Byte getType() { + return type; + } + + public void setType(Byte type) { + this.type = type; + } + @Override public String toString() { StringBuilder sb = new StringBuilder(); @@ -210,6 +220,7 @@ public class KtsKtGroup implements Serializable { sb.append(", phone=").append(phone); sb.append(", planStatus=").append(planStatus); sb.append(", developStatus=").append(developStatus); + sb.append(", type=").append(type); sb.append("]"); return sb.toString(); } diff --git a/research-system/src/main/java/com/research/system/domain/po/KtsKtGroupExample.java b/research-system/src/main/java/com/research/system/domain/po/KtsKtGroupExample.java index 239ef171..56db9bae 100644 --- a/research-system/src/main/java/com/research/system/domain/po/KtsKtGroupExample.java +++ b/research-system/src/main/java/com/research/system/domain/po/KtsKtGroupExample.java @@ -1254,6 +1254,66 @@ public class KtsKtGroupExample { addCriterion("develop_status not between", value1, value2, "developStatus"); return (Criteria) this; } + + public Criteria andTypeIsNull() { + addCriterion("type is null"); + return (Criteria) this; + } + + public Criteria andTypeIsNotNull() { + addCriterion("type is not null"); + return (Criteria) this; + } + + public Criteria andTypeEqualTo(Byte value) { + addCriterion("type =", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotEqualTo(Byte value) { + addCriterion("type <>", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThan(Byte value) { + addCriterion("type >", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThanOrEqualTo(Byte value) { + addCriterion("type >=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThan(Byte value) { + addCriterion("type <", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThanOrEqualTo(Byte value) { + addCriterion("type <=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeIn(List values) { + addCriterion("type in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotIn(List values) { + addCriterion("type not in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeBetween(Byte value1, Byte value2) { + addCriterion("type between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotBetween(Byte value1, Byte value2) { + addCriterion("type not between", value1, value2, "type"); + return (Criteria) this; + } } public static class Criteria extends GeneratedCriteria { diff --git a/research-system/src/main/java/com/research/system/domain/vo/GroupVO.java b/research-system/src/main/java/com/research/system/domain/vo/GroupVO.java index 010031fe..27515838 100644 --- a/research-system/src/main/java/com/research/system/domain/vo/GroupVO.java +++ b/research-system/src/main/java/com/research/system/domain/vo/GroupVO.java @@ -84,6 +84,8 @@ public class GroupVO { private long cgIng; + private Byte type; + } @Data @@ -474,7 +476,51 @@ public class GroupVO { private int jsy; } } + } + + @Data + public static class GroupStatistics{ + private Long orgId; + private String orgName; + private Long groupId; + private String groupName; + private int num; + private List groupList; + + //支持前端方便对接,显示组织名称 + public String getGroupName() { + return orgName; + } + + public Long getGroupId() { + return orgId; + } + } + @Data + public static class Statistics1 { + private Long orgId; + private String orgName; + private Long groupId; + private String groupName; + private int num; } + + @Data + public static class ZdStatistics { + private int zd; + private int zdSs; + private int zdBs; + private int zdBsh; + private int by; + private int bySs; + private int byBs; + private int byBsh; + private int total; + + public int getTotal() { + return zd + by; + } + } } diff --git a/research-system/src/main/java/com/research/system/domain/vo/SmsVo.java b/research-system/src/main/java/com/research/system/domain/vo/SmsVo.java new file mode 100644 index 00000000..206c1167 --- /dev/null +++ b/research-system/src/main/java/com/research/system/domain/vo/SmsVo.java @@ -0,0 +1,28 @@ +package com.research.system.domain.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Pattern; + +/** + * @Author zzc + * @Package com.research.system.domain.dto + * @Date 2026/1/21 15:08 + * @description: + */ +public class SmsVo { + + @Data + @ApiModel("Vo-获取验证码") + public static class GetSmsCodeVo { + @ApiModelProperty("有效时间") + private int expireInSeconds; + @ApiModelProperty("sendInterval秒内只能发送一次") + private int sendIntervalInSeconds; + @ApiModelProperty("序号") + private int sequence; + } +} diff --git a/research-system/src/main/java/com/research/system/persist/dao/KtsGroupDao.java b/research-system/src/main/java/com/research/system/persist/dao/KtsGroupDao.java index 338bab16..4ac2a6a1 100644 --- a/research-system/src/main/java/com/research/system/persist/dao/KtsGroupDao.java +++ b/research-system/src/main/java/com/research/system/persist/dao/KtsGroupDao.java @@ -47,4 +47,9 @@ public interface KtsGroupDao { List gzryxlStatistics(); List queryStudentStatistics(GroupDto.Query query); + + List statistics1(); + + GroupVO.ZdStatistics zdStatistics(); + } diff --git a/research-system/src/main/java/com/research/system/service/KtsGroupService.java b/research-system/src/main/java/com/research/system/service/KtsGroupService.java index d12a292c..ffbd714f 100644 --- a/research-system/src/main/java/com/research/system/service/KtsGroupService.java +++ b/research-system/src/main/java/com/research/system/service/KtsGroupService.java @@ -66,4 +66,8 @@ public interface KtsGroupService { List gzryxlStatistics(); List queryStudentList(GroupDto.Query query); + + List statistics1(); + + GroupVO.ZdStatistics zdStatistics(); } diff --git a/research-system/src/main/java/com/research/system/service/TmsLoginService.java b/research-system/src/main/java/com/research/system/service/TmsLoginService.java index 29e3e8f0..fa6881ac 100644 --- a/research-system/src/main/java/com/research/system/service/TmsLoginService.java +++ b/research-system/src/main/java/com/research/system/service/TmsLoginService.java @@ -3,6 +3,7 @@ package com.research.system.service; import com.research.common.core.domain.entity.SysUser; import com.research.system.domain.dto.TmsTenantUserDto; import com.research.system.domain.po.TmsTenant; +import com.research.system.domain.vo.SmsVo; import com.research.system.domain.vo.TmsLoginUserVo; import java.util.List; @@ -47,4 +48,6 @@ public interface TmsLoginService { TmsLoginUserVo.DmsUserVo selectTenantUserById(Long userId); List query(); + + SmsVo.GetSmsCodeVo sendSmsCode(String phone); } diff --git a/research-system/src/main/java/com/research/system/service/impl/KtsGroupServiceImpl.java b/research-system/src/main/java/com/research/system/service/impl/KtsGroupServiceImpl.java index bd4cc32c..c0750651 100644 --- a/research-system/src/main/java/com/research/system/service/impl/KtsGroupServiceImpl.java +++ b/research-system/src/main/java/com/research/system/service/impl/KtsGroupServiceImpl.java @@ -539,9 +539,9 @@ public class KtsGroupServiceImpl implements KtsGroupService { if (CollUtil.isNotEmpty(memberResults)) { //按照组织分组 Map> collect = memberResults.stream().collect(Collectors.groupingBy(GroupVO.MemberResult::getOrgId)); + List titleList = new ArrayList<>(); for (Map.Entry> entry : collect.entrySet()) { GroupVO.WorkerStatistics.Title title = new GroupVO.WorkerStatistics.Title(); - List titleList = new ArrayList<>(); title.setOrgId(entry.getKey()); title.setOrgName(entry.getValue().get(0).getProjOrgName()); //判断每个成员的数量 @@ -585,5 +585,15 @@ public class KtsGroupServiceImpl implements KtsGroupService { return ktsGroupDao.queryStudentStatistics(query); } + @Override + public List statistics1() { + return ktsGroupDao.statistics1(); + } + + @Override + public GroupVO.ZdStatistics zdStatistics() { + return ktsGroupDao.zdStatistics(); + } + } diff --git a/research-system/src/main/java/com/research/system/service/impl/TmsLoginServiceImpl.java b/research-system/src/main/java/com/research/system/service/impl/TmsLoginServiceImpl.java index 1a8912aa..887af91c 100644 --- a/research-system/src/main/java/com/research/system/service/impl/TmsLoginServiceImpl.java +++ b/research-system/src/main/java/com/research/system/service/impl/TmsLoginServiceImpl.java @@ -1,19 +1,32 @@ package com.research.system.service.impl; +import cn.hutool.core.map.MapBuilder; +import cn.hutool.core.util.RandomUtil; +import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson2.JSON; +import com.research.common.constant.CacheConstants; +import com.research.common.core.domain.PhoneCode; import com.research.common.core.domain.entity.SysUser; +import com.research.common.core.redis.RedisCache; +import com.research.common.exception.base.BaseException; import com.research.system.domain.dto.TmsTenantUserDto; import com.research.system.domain.po.TmsTenant; import com.research.system.domain.po.TmsTenantExample; +import com.research.system.domain.vo.SmsVo; import com.research.system.domain.vo.TmsLoginUserVo; import com.research.system.mapper.SysUserMapper; import com.research.system.persist.dao.TmsUserDao; import com.research.system.persist.mapper.TmsTenantMapper; import com.research.system.persist.mapper.TmsTenantUserMapper; import com.research.system.service.TmsLoginService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.HashMap; import java.util.List; +import java.util.concurrent.TimeUnit; /** * @Author zzc @@ -21,6 +34,7 @@ import java.util.List; * @Date 2025/8/5 14:22 * @description: */ +@Slf4j @Service public class TmsLoginServiceImpl implements TmsLoginService { @@ -29,8 +43,13 @@ public class TmsLoginServiceImpl implements TmsLoginService { @Resource private TmsTenantMapper tmsTenantMapper; @Resource - private TmsTenantUserMapper tmsTenantUserMapper; - + private RedisCache redisCache; + @Value(value = "${research.smsCodeSendIntervalInSeconds}") + private long smsCodeSendIntervalInSeconds; + @Value(value = "${research.smsCodeExpireInSeconds}") + private long smsCodeExpireInSeconds; + @Value(value = "${research.smsUrl}") + private String smsUrl; @Override public boolean checkUserNameUnique(String phone) { @@ -77,4 +96,49 @@ public class TmsLoginServiceImpl implements TmsLoginService { tmsTenantExample.createCriteria().andDelFlagEqualTo((byte) 0); return tmsTenantMapper.selectByExample(tmsTenantExample); } + + private String getPhoneCodeKey(String phone) { + return CacheConstants.PHONE_CODE_KEY + phone; + } + + @Override + public SmsVo.GetSmsCodeVo sendSmsCode(String phone) { + //1.判断发送间隔时间 + PhoneCode phoneCode = redisCache.getCacheObject(getPhoneCodeKey(phone)); + if (phoneCode != null) { + if (System.currentTimeMillis() - phoneCode.getCreateTime() < smsCodeSendIntervalInSeconds * 1000) { + throw new BaseException("短信验证码发送太频繁,请稍后再试"); + } + } + + //2.构造验证码对象 + if (phoneCode == null) { + phoneCode = new PhoneCode(); + } else { + phoneCode.incrSequence(); + } + phoneCode.setCreateTime(System.currentTimeMillis()); + phoneCode.setCode(RandomUtil.randomString("0123456789", 4)); + + //3.发送验证码 + log.info("ExternalService-SendSms:{},{},{}",phone,phoneCode.getCode(),smsCodeExpireInSeconds); + String body = HttpRequest.post(smsUrl).body(JSON.toJSONString( + MapBuilder.create(new HashMap(3)) + .put("to", phone).put("text", phoneCode.getCode()).put("validSeconds", smsCodeExpireInSeconds).build()) + ).timeout(5000).execute().body(); + System.out.println(body); + + //4.将验证码对象放入redis + redisCache.setCacheObject(getPhoneCodeKey(phone), phoneCode, (int) smsCodeExpireInSeconds, TimeUnit.SECONDS); + + //5.返回vo对象 + SmsVo.GetSmsCodeVo vo = new SmsVo.GetSmsCodeVo(); + vo.setExpireInSeconds((int) smsCodeExpireInSeconds); + vo.setSendIntervalInSeconds((int) smsCodeSendIntervalInSeconds); + vo.setSequence(phoneCode.getSequence()); + + log.debug(phoneCode.getCode()); + + return vo; + } } diff --git a/research-system/src/main/resources/mapper/dao/KtsGroupDao.xml b/research-system/src/main/resources/mapper/dao/KtsGroupDao.xml index 4193dc49..36099966 100644 --- a/research-system/src/main/resources/mapper/dao/KtsGroupDao.xml +++ b/research-system/src/main/resources/mapper/dao/KtsGroupDao.xml @@ -21,6 +21,7 @@ g.plan_status as planStatus, g.develop_status as developStatus, g.target, + g.type, g.plan from kts_kt_group g left join @@ -35,6 +36,9 @@ #{item} + + and g.id = #{dto.ktGroupId} + and g.proj_org_id = #{dto.projOrgId} @@ -319,4 +323,52 @@ where o.del_flag = 0 group by o.id + + + + + + + + + + + + + + diff --git a/research-system/src/main/resources/mapper/dao/ProjDocumentDao.xml b/research-system/src/main/resources/mapper/dao/ProjDocumentDao.xml index fa135556..f1c7c489 100644 --- a/research-system/src/main/resources/mapper/dao/ProjDocumentDao.xml +++ b/research-system/src/main/resources/mapper/dao/ProjDocumentDao.xml @@ -26,5 +26,8 @@ and doc_name like concat('%',#{dto.docName},'%') + + and doc_type = #{dto.docType} + diff --git a/research-system/src/main/resources/mapper/system/KtsKtGroupMapper.xml b/research-system/src/main/resources/mapper/system/KtsKtGroupMapper.xml index 0ca8160a..017eb490 100644 --- a/research-system/src/main/resources/mapper/system/KtsKtGroupMapper.xml +++ b/research-system/src/main/resources/mapper/system/KtsKtGroupMapper.xml @@ -20,6 +20,7 @@ + @@ -86,7 +87,7 @@ id, proj_id, proj_org_id, parent_kt_id, kt_group_name, sort, intro, kt_group_status, del_flag, create_by, create_time, update_by, update_time, remark, name, phone, plan_status, - develop_status + develop_status, type target, plan @@ -140,14 +141,16 @@ create_by, create_time, update_by, update_time, remark, name, phone, plan_status, develop_status, - target, plan) + type, target, plan + ) values (#{id,jdbcType=BIGINT}, #{projId,jdbcType=BIGINT}, #{projOrgId,jdbcType=BIGINT}, #{parentKtId,jdbcType=BIGINT}, #{ktGroupName,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, #{intro,jdbcType=VARCHAR}, #{ktGroupStatus,jdbcType=TINYINT}, #{delFlag,jdbcType=TINYINT}, #{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateBy,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, #{remark,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{phone,jdbcType=VARCHAR}, #{planStatus,jdbcType=TINYINT}, #{developStatus,jdbcType=TINYINT}, - #{target,jdbcType=LONGVARCHAR}, #{plan,jdbcType=LONGVARCHAR}) + #{type,jdbcType=TINYINT}, #{target,jdbcType=LONGVARCHAR}, #{plan,jdbcType=LONGVARCHAR} + ) insert into kts_kt_group @@ -206,6 +209,9 @@ develop_status, + + type, + target, @@ -268,6 +274,9 @@ #{developStatus,jdbcType=TINYINT}, + + #{type,jdbcType=TINYINT}, + #{target,jdbcType=LONGVARCHAR}, @@ -339,6 +348,9 @@ develop_status = #{record.developStatus,jdbcType=TINYINT}, + + type = #{record.type,jdbcType=TINYINT}, + target = #{record.target,jdbcType=LONGVARCHAR}, @@ -370,6 +382,7 @@ phone = #{record.phone,jdbcType=VARCHAR}, plan_status = #{record.planStatus,jdbcType=TINYINT}, develop_status = #{record.developStatus,jdbcType=TINYINT}, + type = #{record.type,jdbcType=TINYINT}, target = #{record.target,jdbcType=LONGVARCHAR}, plan = #{record.plan,jdbcType=LONGVARCHAR} @@ -395,7 +408,8 @@ name = #{record.name,jdbcType=VARCHAR}, phone = #{record.phone,jdbcType=VARCHAR}, plan_status = #{record.planStatus,jdbcType=TINYINT}, - develop_status = #{record.developStatus,jdbcType=TINYINT} + develop_status = #{record.developStatus,jdbcType=TINYINT}, + type = #{record.type,jdbcType=TINYINT} @@ -454,6 +468,9 @@ develop_status = #{developStatus,jdbcType=TINYINT}, + + type = #{type,jdbcType=TINYINT}, + target = #{target,jdbcType=LONGVARCHAR}, @@ -482,6 +499,7 @@ phone = #{phone,jdbcType=VARCHAR}, plan_status = #{planStatus,jdbcType=TINYINT}, develop_status = #{developStatus,jdbcType=TINYINT}, + type = #{type,jdbcType=TINYINT}, target = #{target,jdbcType=LONGVARCHAR}, plan = #{plan,jdbcType=LONGVARCHAR} where id = #{id,jdbcType=BIGINT} @@ -504,7 +522,8 @@ name = #{name,jdbcType=VARCHAR}, phone = #{phone,jdbcType=VARCHAR}, plan_status = #{planStatus,jdbcType=TINYINT}, - develop_status = #{developStatus,jdbcType=TINYINT} + develop_status = #{developStatus,jdbcType=TINYINT}, + type = #{type,jdbcType=TINYINT} where id = #{id,jdbcType=BIGINT} \ No newline at end of file