diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index 26cd023..bad0313 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -48,6 +48,11 @@ ruoyi-common-social + + org.dromara + ruoyi-common-mail + + org.dromara ruoyi-common-ratelimiter @@ -63,6 +68,7 @@ ruoyi-job + org.dromara @@ -70,9 +76,15 @@ + + + + + org.dromara - ruoyi-demo + rouyi-scale + 5.1.2 diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml index 4aaea57..2832dfa 100644 --- a/ruoyi-admin/src/main/resources/application-dev.yml +++ b/ruoyi-admin/src/main/resources/application-dev.yml @@ -43,15 +43,15 @@ spring: driverClassName: com.mysql.cj.jdbc.Driver # jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562 # rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题) - url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true + url: jdbc:mysql://101.37.69.204:8001/mental_health_vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true username: root - password: root + password: Mz!@#123 # 从库数据源 slave: lazy: true type: ${spring.datasource.type} driverClassName: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true + url: jdbc:mysql://101.37.69.204:8001/mental_health_vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true username: password: # oracle: diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 3f54f64..0c1d129 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -134,6 +134,7 @@ tenant: - sys_user_role - sys_client - sys_oss_config + - scale_info # MyBatisPlus配置 # https://baomidou.com/config/ diff --git a/ruoyi-modules/pom.xml b/ruoyi-modules/pom.xml index 4044916..595641b 100644 --- a/ruoyi-modules/pom.xml +++ b/ruoyi-modules/pom.xml @@ -14,6 +14,7 @@ ruoyi-generator ruoyi-job ruoyi-system + rouyi-scale ruoyi-modules diff --git a/ruoyi-modules/rouyi-scale/.gitignore b/ruoyi-modules/rouyi-scale/.gitignore new file mode 100644 index 0000000..5ff6309 --- /dev/null +++ b/ruoyi-modules/rouyi-scale/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/ruoyi-modules/rouyi-scale/pom.xml b/ruoyi-modules/rouyi-scale/pom.xml new file mode 100644 index 0000000..d31afd1 --- /dev/null +++ b/ruoyi-modules/rouyi-scale/pom.xml @@ -0,0 +1,106 @@ + + + 4.0.0 + + org.dromara + ruoyi-modules + 5.1.2 + + + org.dromara + rouyi-scale + + + 量表模块 + + + + + + org.dromara + ruoyi-common-core + + + + org.dromara + ruoyi-system + + + + org.dromara + ruoyi-common-doc + + + + org.dromara + ruoyi-common-mybatis + + + + org.dromara + ruoyi-common-translation + + + + + org.dromara + ruoyi-common-oss + + + + org.dromara + ruoyi-common-log + + + + + org.dromara + ruoyi-common-excel + + + + + org.dromara + ruoyi-common-sms + + + + org.dromara + ruoyi-common-tenant + + + + org.dromara + ruoyi-common-security + + + + org.dromara + ruoyi-common-web + + + + org.dromara + ruoyi-common-idempotent + + + + org.dromara + ruoyi-common-sensitive + + + + org.dromara + ruoyi-common-encrypt + + + + org.dromara + ruoyi-common-websocket + + + + + diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/ScaleInfoController.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/ScaleInfoController.java new file mode 100644 index 0000000..7161cd0 --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/ScaleInfoController.java @@ -0,0 +1,105 @@ +package org.dromara.scale.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.scale.domain.vo.ScaleInfoVo; +import org.dromara.scale.domain.bo.ScaleInfoBo; +import org.dromara.scale.service.IScaleInfoService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 心理测评量 + * + * @author jiangzhe + * @date 2024-03-29 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/scale/ScaleInfo") +public class ScaleInfoController extends BaseController { + + private final IScaleInfoService scaleInfoService; + + /** + * 查询心理测评量列表 + */ + @SaCheckPermission("scale:ScaleInfo:list") + @GetMapping("/list") + public TableDataInfo list(ScaleInfoBo bo, PageQuery pageQuery) { + return scaleInfoService.queryPageList(bo, pageQuery); + } + + /** + * 导出心理测评量列表 + */ + @SaCheckPermission("scale:ScaleInfo:export") + @Log(title = "心理测评量", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ScaleInfoBo bo, HttpServletResponse response) { + List list = scaleInfoService.queryList(bo); + ExcelUtil.exportExcel(list, "心理测评量", ScaleInfoVo.class, response); + } + + /** + * 获取心理测评量详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("scale:ScaleInfo:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(scaleInfoService.queryById(id)); + } + + /** + * 新增心理测评量 + */ + @SaCheckPermission("scale:ScaleInfo:add") + @Log(title = "心理测评量", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ScaleInfoBo bo) { + return toAjax(scaleInfoService.insertByBo(bo)); + } + + /** + * 修改心理测评量 + */ + @SaCheckPermission("scale:ScaleInfo:edit") + @Log(title = "心理测评量", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ScaleInfoBo bo) { + return toAjax(scaleInfoService.updateByBo(bo)); + } + + /** + * 删除心理测评量 + * + * @param ids 主键串 + */ + @SaCheckPermission("scale:ScaleInfo:remove") + @Log(title = "心理测评量", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(scaleInfoService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/ScaleInfo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/ScaleInfo.java new file mode 100644 index 0000000..a5f33cc --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/ScaleInfo.java @@ -0,0 +1,112 @@ +package org.dromara.scale.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.math.BigDecimal; + +import java.io.Serial; + +/** + * 心理测评量对象 scale_info + * + * @author jiangzhe + * @date 2024-03-29 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("scale_info") +public class ScaleInfo extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private Long id; + + /** + * 量表名称 + */ + private String name; + + /** + * 量表编码 + */ + private String code; + + /** + * 标题 + */ + private String title; + + /** + * 子标题 + */ + private String subTitle; + + /** + * 标签 + */ + private String tags; + + /** + * 适合年龄段 + */ + private String ageRange; + + /** + * 测评次数 + */ + private Long evalNums; + + /** + * 封面 + */ + private Long coverImg; + + /** + * 价格/单次 + */ + private BigDecimal price; + + /** + * 描述 + */ + private String note; + + /** + * 分钟 + */ + private Long duration; + + /** + * 维度类型:0:单项单维,1:多项单维型,2:多项多维型 + */ + private Integer dimensionType; + + /** + * 状态(0正常 1停用) + */ + private String status; + + /** + * 量表类别:如情感,字典 + */ + private Long type; + + /** + * 题量 + */ + private Long questionsNum; + + /** + * 0:高分异常,1:低分异常 + */ + private Integer selectDirection; + + +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/ScaleInfoBo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/ScaleInfoBo.java new file mode 100644 index 0000000..7380f4e --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/ScaleInfoBo.java @@ -0,0 +1,127 @@ +package org.dromara.scale.domain.bo; + +import org.dromara.scale.domain.ScaleInfo; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; + +/** + * 心理测评量业务对象 scale_info + * + * @author jiangzhe + * @date 2024-03-29 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ScaleInfo.class, reverseConvertGenerate = false) +public class ScaleInfoBo extends BaseEntity { + + /** + * 主键 + */ + @NotNull(message = "主键不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 量表名称 + */ + @NotBlank(message = "量表名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String name; + + /** + * 量表编码 + */ + @NotBlank(message = "量表编码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String code; + + /** + * 标题 + */ + @NotBlank(message = "标题不能为空", groups = { AddGroup.class, EditGroup.class }) + private String title; + + /** + * 子标题 + */ + @NotBlank(message = "子标题不能为空", groups = { AddGroup.class, EditGroup.class }) + private String subTitle; + + /** + * 标签 + */ + @NotBlank(message = "标签不能为空", groups = { AddGroup.class, EditGroup.class }) + private String tags; + + /** + * 适合年龄段 + */ + @NotBlank(message = "适合年龄段不能为空", groups = { AddGroup.class, EditGroup.class }) + private String ageRange; + + /** + * 测评次数 + */ + @NotNull(message = "测评次数不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long evalNums; + + /** + * 封面 + */ + @NotNull(message = "封面不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long coverImg; + + /** + * 价格/单次 + */ + @NotNull(message = "价格/单次不能为空", groups = { AddGroup.class, EditGroup.class }) + private BigDecimal price; + + /** + * 描述 + */ + @NotBlank(message = "描述不能为空", groups = { AddGroup.class, EditGroup.class }) + private String note; + + /** + * 分钟 + */ + @NotNull(message = "分钟不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long duration; + + /** + * 维度类型:0:单项单维,1:多项单维型,2:多项多维型 + */ +// @NotNull(message = "维度类型:0:单项单维,1:多项单维型,2:多项多维型不能为空", groups = { AddGroup.class, EditGroup.class }) + private Integer dimensionType; + + /** + * 状态(0正常 1停用) + */ +// @NotBlank(message = "状态(0正常 1停用)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String status; + + /** + * 量表类别:如情感,字典 + */ +// @NotNull(message = "量表类别:如情感,字典不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long type; + + /** + * 题量 + */ + @NotNull(message = "题量不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long questionsNum; + + /** + * 0:高分异常,1:低分异常 + */ +// @NotNull(message = "0:高分异常,1:低分异常不能为空", groups = { AddGroup.class, EditGroup.class }) + private Integer selectDirection; + + +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/ScaleInfoVo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/ScaleInfoVo.java new file mode 100644 index 0000000..6f5dfa1 --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/ScaleInfoVo.java @@ -0,0 +1,138 @@ +package org.dromara.scale.domain.vo; + +import java.math.BigDecimal; +import org.dromara.scale.domain.ScaleInfo; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 心理测评量视图对象 scale_info + * + * @author jiangzhe + * @date 2024-03-29 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ScaleInfo.class) +public class ScaleInfoVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private Long id; + + /** + * 量表名称 + */ + @ExcelProperty(value = "量表名称") + private String name; + + /** + * 量表编码 + */ + @ExcelProperty(value = "量表编码") + private String code; + + /** + * 标题 + */ + @ExcelProperty(value = "标题") + private String title; + + /** + * 子标题 + */ + @ExcelProperty(value = "子标题") + private String subTitle; + + /** + * 标签 + */ + @ExcelProperty(value = "标签") + private String tags; + + /** + * 适合年龄段 + */ + @ExcelProperty(value = "适合年龄段") + private String ageRange; + + /** + * 测评次数 + */ + @ExcelProperty(value = "测评次数") + private Long evalNums; + + /** + * 封面 + */ + @ExcelProperty(value = "封面") + private Long coverImg; + + private String coverImgUrl; + + /** + * 价格/单次 + */ + @ExcelProperty(value = "价格/单次") + private BigDecimal price; + + /** + * 描述 + */ + @ExcelProperty(value = "描述") + private String note; + + /** + * 分钟 + */ + @ExcelProperty(value = "分钟") + private Long duration; + + /** + * 维度类型:0:单项单维,1:多项单维型,2:多项多维型 + */ + @ExcelProperty(value = "维度类型:0:单项单维,1:多项单维型,2:多项多维型") + private Integer dimensionType; + + /** + * 状态(0正常 1停用) + */ + @ExcelProperty(value = "状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=正常,1=停用") + private String status; + + /** + * 量表类别:如情感,字典 + */ + @ExcelProperty(value = "量表类别:如情感,字典") + private Long type; + + /** + * 题量 + */ + @ExcelProperty(value = "题量") + private Long questionsNum; + + /** + * 0:高分异常,1:低分异常 + */ + @ExcelProperty(value = "0:高分异常,1:低分异常") + private Integer selectDirection; + + +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/ScaleInfoMapper.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/ScaleInfoMapper.java new file mode 100644 index 0000000..a6da9fd --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/ScaleInfoMapper.java @@ -0,0 +1,15 @@ +package org.dromara.scale.mapper; + +import org.dromara.scale.domain.ScaleInfo; +import org.dromara.scale.domain.vo.ScaleInfoVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 心理测评量Mapper接口 + * + * @author jiangzhe + * @date 2024-03-29 + */ +public interface ScaleInfoMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IScaleInfoService.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IScaleInfoService.java new file mode 100644 index 0000000..8499728 --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IScaleInfoService.java @@ -0,0 +1,49 @@ +package org.dromara.scale.service; + +import org.dromara.scale.domain.ScaleInfo; +import org.dromara.scale.domain.vo.ScaleInfoVo; +import org.dromara.scale.domain.bo.ScaleInfoBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 心理测评量Service接口 + * + * @author jiangzhe + * @date 2024-03-29 + */ +public interface IScaleInfoService { + + /** + * 查询心理测评量 + */ + ScaleInfoVo queryById(Long id); + + /** + * 查询心理测评量列表 + */ + TableDataInfo queryPageList(ScaleInfoBo bo, PageQuery pageQuery); + + /** + * 查询心理测评量列表 + */ + List queryList(ScaleInfoBo bo); + + /** + * 新增心理测评量 + */ + Boolean insertByBo(ScaleInfoBo bo); + + /** + * 修改心理测评量 + */ + Boolean updateByBo(ScaleInfoBo bo); + + /** + * 校验并批量删除心理测评量信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/ScaleInfoServiceImpl.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/ScaleInfoServiceImpl.java new file mode 100644 index 0000000..870864b --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/ScaleInfoServiceImpl.java @@ -0,0 +1,129 @@ +package org.dromara.scale.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.system.mapper.SysOssMapper; +import org.springframework.stereotype.Service; +import org.dromara.scale.domain.bo.ScaleInfoBo; +import org.dromara.scale.domain.vo.ScaleInfoVo; +import org.dromara.scale.domain.ScaleInfo; +import org.dromara.scale.mapper.ScaleInfoMapper; +import org.dromara.scale.service.IScaleInfoService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 心理测评量Service业务层处理 + * + * @author jiangzhe + * @date 2024-03-29 + */ +@RequiredArgsConstructor +@Service +public class ScaleInfoServiceImpl implements IScaleInfoService { + + private final ScaleInfoMapper baseMapper; + private final SysOssMapper sysOssMapper; + + /** + * 查询心理测评量 + */ + @Override + public ScaleInfoVo queryById(Long id) { + return baseMapper.selectVoById(id); + } + + /** + * 查询心理测评量列表 + */ + @Override + public TableDataInfo queryPageList(ScaleInfoBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + for (ScaleInfoVo record : result.getRecords()) { + record.setCoverImgUrl(sysOssMapper.selectById(record.getCoverImg()).getUrl()); + } + return TableDataInfo.build(result); + } + + /** + * 查询心理测评量列表 + */ + @Override + public List queryList(ScaleInfoBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(ScaleInfoBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.like(StringUtils.isNotBlank(bo.getName()), ScaleInfo::getName, bo.getName()); + lqw.eq(StringUtils.isNotBlank(bo.getCode()), ScaleInfo::getCode, bo.getCode()); + lqw.eq(StringUtils.isNotBlank(bo.getTitle()), ScaleInfo::getTitle, bo.getTitle()); + lqw.eq(StringUtils.isNotBlank(bo.getSubTitle()), ScaleInfo::getSubTitle, bo.getSubTitle()); + lqw.eq(StringUtils.isNotBlank(bo.getTags()), ScaleInfo::getTags, bo.getTags()); + lqw.eq(StringUtils.isNotBlank(bo.getAgeRange()), ScaleInfo::getAgeRange, bo.getAgeRange()); + lqw.eq(bo.getEvalNums() != null, ScaleInfo::getEvalNums, bo.getEvalNums()); + lqw.eq(bo.getCoverImg() != null, ScaleInfo::getCoverImg, bo.getCoverImg()); + lqw.eq(bo.getPrice() != null, ScaleInfo::getPrice, bo.getPrice()); + lqw.eq(StringUtils.isNotBlank(bo.getNote()), ScaleInfo::getNote, bo.getNote()); + lqw.eq(bo.getDuration() != null, ScaleInfo::getDuration, bo.getDuration()); + lqw.eq(bo.getDimensionType() != null, ScaleInfo::getDimensionType, bo.getDimensionType()); + lqw.eq(StringUtils.isNotBlank(bo.getStatus()), ScaleInfo::getStatus, bo.getStatus()); + lqw.eq(bo.getType() != null, ScaleInfo::getType, bo.getType()); + lqw.eq(bo.getQuestionsNum() != null, ScaleInfo::getQuestionsNum, bo.getQuestionsNum()); + lqw.eq(bo.getSelectDirection() != null, ScaleInfo::getSelectDirection, bo.getSelectDirection()); + return lqw; + } + + /** + * 新增心理测评量 + */ + @Override + public Boolean insertByBo(ScaleInfoBo bo) { + ScaleInfo add = MapstructUtils.convert(bo, ScaleInfo.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改心理测评量 + */ + @Override + public Boolean updateByBo(ScaleInfoBo bo) { + ScaleInfo update = MapstructUtils.convert(bo, ScaleInfo.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ScaleInfo entity) { + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除心理测评量 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/ScaleInfoMapper.xml b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/ScaleInfoMapper.xml new file mode 100644 index 0000000..a837a03 --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/ScaleInfoMapper.xml @@ -0,0 +1,7 @@ + + + + +