1、解决英语单词列表模块CRUD前后端输入校验BUG
pull/254/head
xjs 4 years ago
parent 83a006c47a
commit 32587fb68a

@ -6,6 +6,7 @@
v-model="queryParams.englishWord" v-model="queryParams.englishWord"
placeholder="英语单词" placeholder="英语单词"
clearable clearable
maxlength="20"
size="small" size="small"
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
@ -15,6 +16,7 @@
v-model="queryParams.chineseWord" v-model="queryParams.chineseWord"
placeholder="请输入中文" placeholder="请输入中文"
clearable clearable
maxlength="10"
size="small" size="small"
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
@ -314,34 +316,33 @@ export default {
// //
rulesEdit: { rulesEdit: {
englishWord: [ englishWord: [
{required: true, message: "英语单词不能为空", trigger: "blur"} {required: true, message: "英语单词不能为空", trigger: "blur"},
{ min: 1, max: 20, message: '长度在 1 到 20 个字符', trigger: 'blur' }
], ],
chineseWord: [ chineseWord: [
{required: true, message: "中文不能为空", trigger: "blur"} {required: true, message: "中文不能为空", trigger: "blur"},
{ min: 1, max: 10, message: '长度在 1 到 10 个字符', trigger: 'blur' }
], ],
isCollect: [ isCollect: [
{required: true, message: "是否收藏 1收藏 2不收藏不能为空", trigger: "blur"} {required: true, message: "收藏不能为空", trigger: "blur"}
], ],
top: [ top: [
{required: true, message: "置顶 1置顶 2不置顶不能为空", trigger: "blur"} {required: true, message: "置顶不能为空", trigger: "blur"}
], ],
createTime: [
{required: true, message: "创建时间不能为空", trigger: "blur"}
]
}, },
rulesAdd: { rulesAdd: {
content: [ content: [
{required: true, message: "中英文不能为空", trigger: "blur"} {required: true, message: "中英文不能为空", trigger: "blur"},
{ min: 1, max: 20, message: '长度在 1 到 20 个字符', trigger: 'blur' }
], ],
isCollect: [ isCollect: [
{required: true, message: "是否收藏 1收藏 2不收藏不能为空", trigger: "blur"} {required: true, message: "收藏不能为空", trigger: "blur"}
], ],
top: [ top: [
{required: true, message: "置顶 1置顶 2不置顶不能为空", trigger: "blur"} {required: true, message: "置顶不能为空", trigger: "blur"}
], ],
createTime: [
{required: true, message: "创建时间不能为空", trigger: "blur"}
]
} }
}; };
}, },

@ -1,9 +1,9 @@
package com.xjs.validation; package com.xjs.validation;
/** /**
*
* @author xiejs * @author xiejs
* @desc * @since 2021-12-30
* @create 2021-12-30
*/ */
public interface AddGroup { public interface AddGroup {
} }

@ -0,0 +1,9 @@
package com.xjs.validation;
/**
*
* @author xiejs
* @since 2022-02-18
*/
public interface SelectGroup {
}

@ -1,9 +1,10 @@
package com.xjs.validation; package com.xjs.validation;
/** /**
*
*
* @author xiejs * @author xiejs
* @desc * @since 2021-12-30
* @create 2021-12-30
*/ */
public interface UpdateGroup { public interface UpdateGroup {
} }

@ -8,6 +8,7 @@ import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.common.security.annotation.RequiresPermissions;
import com.xjs.validation.AddGroup; import com.xjs.validation.AddGroup;
import com.xjs.validation.SelectGroup;
import com.xjs.validation.UpdateGroup; import com.xjs.validation.UpdateGroup;
import com.xjs.web.MyBaseController; import com.xjs.web.MyBaseController;
import com.xjs.word.domain.EnglishWord; import com.xjs.word.domain.EnglishWord;
@ -77,7 +78,7 @@ public class EnglishWordController extends MyBaseController {
@RequiresPermissions("english:word:list") @RequiresPermissions("english:word:list")
@GetMapping("/list") @GetMapping("/list")
@ApiOperation("查询英语单词列表") @ApiOperation("查询英语单词列表")
public TableDataInfo list(EnglishWord englishWord) { public TableDataInfo list(@Validated({SelectGroup.class}) EnglishWord englishWord) {
startPage(); startPage();
List<EnglishWord> list = englishWordService.selectEnglishWordList(englishWord); List<EnglishWord> list = englishWordService.selectEnglishWordList(englishWord);
return getDataTable(list); return getDataTable(list);

@ -3,6 +3,7 @@ package com.xjs.word.domain;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import com.ruoyi.common.core.annotation.Excel; import com.ruoyi.common.core.annotation.Excel;
import com.xjs.validation.AddGroup; import com.xjs.validation.AddGroup;
import com.xjs.validation.SelectGroup;
import com.xjs.validation.UpdateGroup; import com.xjs.validation.UpdateGroup;
import lombok.Data; import lombok.Data;
@ -15,11 +16,11 @@ import java.util.Date;
* english_word * english_word
* *
* @author xjs * @author xjs
* @date 2021-12-29 * @since 2021-12-29
*/ */
@Data @Data
@TableName("english_word") @TableName("english_word")
public class EnglishWord { public class EnglishWord {
/** /**
* id * id
@ -31,16 +32,16 @@ public class EnglishWord {
* *
*/ */
@Excel(name = "英语单词") @Excel(name = "英语单词")
@NotBlank(message = "英语单词不能为空",groups = {UpdateGroup.class}) @NotBlank(message = "英语单词不能为空", groups = {UpdateGroup.class})
@Size(max = 15,message = "请控制长度在5字符",groups = {UpdateGroup.class}) @Size(max = 20, message = "请控制英语长度在20字符", groups = {UpdateGroup.class, SelectGroup.class})
private String englishWord; private String englishWord;
/** /**
* *
*/ */
@Excel(name = "中文") @Excel(name = "中文")
@NotBlank(message = "中文不能为空",groups = {UpdateGroup.class}) @NotBlank(message = "中文不能为空", groups = {UpdateGroup.class})
@Size(max = 5,message = "请控制长度在5字符",groups = {UpdateGroup.class}) @Size(max = 10, message = "请控制中文长度在10字符", groups = {UpdateGroup.class,SelectGroup.class})
private String chineseWord; private String chineseWord;
@ -48,8 +49,8 @@ public class EnglishWord {
* *
*/ */
@TableField(exist = false) @TableField(exist = false)
@NotBlank(message = "内容不能为空",groups = {AddGroup.class}) @NotBlank(message = "内容不能为空", groups = {AddGroup.class})
@Size(max = 15,message = "请控制长度在5字符",groups = {AddGroup.class}) @Size(max = 20, message = "请控制长度在20字符", groups = {AddGroup.class})
private String content; private String content;
/** /**
@ -61,24 +62,24 @@ public class EnglishWord {
/** /**
* 1 2 * 1 2
*/ */
@Excel(name = "是否收藏",readConverterExp = "1=收藏,2=不收藏") @Excel(name = "是否收藏", readConverterExp = "1=收藏,2=不收藏")
@NotNull(message = "收藏字段不能为空",groups = {AddGroup.class, UpdateGroup.class}) @NotNull(message = "收藏字段不能为空", groups = {AddGroup.class, UpdateGroup.class})
private Integer isCollect; private Integer isCollect;
/** /**
* 1 2 * 1 2
*/ */
@Excel(name = "置顶",readConverterExp = "1=置顶,2=不置顶") @Excel(name = "置顶", readConverterExp = "1=置顶,2=不置顶")
@NotNull(message = "置顶字段不能为空",groups = {AddGroup.class, UpdateGroup.class}) @NotNull(message = "置顶字段不能为空", groups = {AddGroup.class, UpdateGroup.class})
private Integer top; private Integer top;
/** /**
* *
*/ */
@Excel(name = "查看次数") @Excel(name = "查看次数")
private Long lookCount ; private Long lookCount;
@Excel(name = "创建时间",dateFormat = "yyyy-MM-dd HH:mm:ss") @Excel(name = "创建时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
@TableField(fill = FieldFill.INSERT) @TableField(fill = FieldFill.INSERT)
private Date createTime; private Date createTime;

@ -31,7 +31,7 @@ import static com.xjs.consts.RedisConst.TRAN_DICT_EXPIRE;
* Service * Service
* *
* @author xjs * @author xjs
* @date 2021-12-29 * @since 2021-12-29
*/ */
@Service @Service
@Log4j2 @Log4j2
@ -106,9 +106,12 @@ public class EnglishWordServiceImpl implements IEnglishWordService {
//校验数据库是否存在该单词 //校验数据库是否存在该单词
List<EnglishWord> englishWordList = englishWordMapper.selectList(new QueryWrapper<EnglishWord>() List<EnglishWord> englishWordList = englishWordMapper.selectList(new QueryWrapper<EnglishWord>()
.eq("english_word", englishWord.getContent())); .eq("english_word", englishWord.getContent()));
if (CollUtil.isNotEmpty(englishWordList)) { List<EnglishWord> chineseWordList = englishWordMapper.selectList(new QueryWrapper<EnglishWord>()
throw new BusinessException("该单词已存在!!!!"); .eq("chinese_word", englishWord.getContent()));
if (CollUtil.isNotEmpty(englishWordList)|| CollUtil.isNotEmpty(chineseWordList)) {
throw new BusinessException("该词汇已存在!!!!");
} }
//校验前端传入的是否英文或中文 //校验前端传入的是否英文或中文
boolean alpha = ChineseUtils.isAlpha(englishWord.getContent()); boolean alpha = ChineseUtils.isAlpha(englishWord.getContent());
boolean chinese = ChineseUtils.checkNameChese(englishWord.getContent()); boolean chinese = ChineseUtils.checkNameChese(englishWord.getContent());

Loading…
Cancel
Save