fix(novel-admin): 友情链接URL格式校验

This commit is contained in:
xiongxiaoyang 2023-12-29 18:54:53 +08:00
parent f77792aa3c
commit d6093d8182
4 changed files with 163 additions and 150 deletions

View File

@ -12,6 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
@ -83,7 +84,7 @@ public class FriendLinkController {
@ResponseBody @ResponseBody
@PostMapping("/save") @PostMapping("/save")
@RequiresPermissions("novel:friendLink:add") @RequiresPermissions("novel:friendLink:add")
public R save(FriendLinkDO friendLink) { public R save(@Validated FriendLinkDO friendLink) {
if (friendLinkService.save(friendLink) > 0) { if (friendLinkService.save(friendLink) > 0) {
redisTemplate.delete(CacheKey.INDEX_LINK_KEY); redisTemplate.delete(CacheKey.INDEX_LINK_KEY);
return R.ok(); return R.ok();
@ -98,7 +99,7 @@ public class FriendLinkController {
@ResponseBody @ResponseBody
@RequestMapping("/update") @RequestMapping("/update")
@RequiresPermissions("novel:friendLink:edit") @RequiresPermissions("novel:friendLink:edit")
public R update(FriendLinkDO friendLink) { public R update(@Validated FriendLinkDO friendLink) {
friendLinkService.update(friendLink); friendLinkService.update(friendLink);
redisTemplate.delete(CacheKey.INDEX_LINK_KEY); redisTemplate.delete(CacheKey.INDEX_LINK_KEY);
return R.ok(); return R.ok();

View File

@ -1,163 +1,175 @@
package com.java2nb.novel.domain; package com.java2nb.novel.domain;
import java.io.Serializable;
import java.math.BigDecimal;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.java2nb.common.jsonserializer.LongToStringSerializer; import com.java2nb.common.jsonserializer.LongToStringSerializer;
import org.hibernate.validator.constraints.URL;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date; import java.util.Date;
/** /**
*
*
* @author xiongxy * @author xiongxy
* @email 1179705413@qq.com * @email 1179705413@qq.com
* @date 2023-04-14 15:12:25 * @date 2023-04-14 15:12:25
*/ */
public class FriendLinkDO implements Serializable { public class FriendLinkDO implements Serializable {
private static final long serialVersionUID = 1L;
private static final long serialVersionUID = 1L;
//主键 //主键
private Integer id; private Integer id;
//链接名 //链接名
private String linkName; private String linkName;
//链接url //链接url
private String linkUrl; @URL
//排序号 private String linkUrl;
private Integer sort; //排序号
//是否开启0不开启1开启 private Integer sort;
private Integer isOpen; //是否开启0不开启1开启
//创建人id private Integer isOpen;
//java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值) //创建人id
//所以通过序列化成字符串来解决 //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值)
@JsonSerialize(using = LongToStringSerializer.class) //所以通过序列化成字符串来解决
private Long createUserId; @JsonSerialize(using = LongToStringSerializer.class)
//创建时间 private Long createUserId;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") //创建时间
private Date createTime; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
//更新者用户id private Date createTime;
//java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值) //更新者用户id
//所以通过序列化成字符串来解决 //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值)
@JsonSerialize(using = LongToStringSerializer.class) //所以通过序列化成字符串来解决
private Long updateUserId; @JsonSerialize(using = LongToStringSerializer.class)
//更新时间 private Long updateUserId;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") //更新时间
private Date updateTime; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/** /**
* 设置主键 * 设置主键
*/ */
public void setId(Integer id) { public void setId(Integer id) {
this.id = id; this.id = id;
} }
/**
* 获取主键 /**
*/ * 获取主键
public Integer getId() { */
return id; public Integer getId() {
} return id;
/** }
* 设置链接名
*/ /**
public void setLinkName(String linkName) { * 设置链接名
this.linkName = linkName; */
} public void setLinkName(String linkName) {
/** this.linkName = linkName;
* 获取链接名 }
*/
public String getLinkName() { /**
return linkName; * 获取链接名
} */
/** public String getLinkName() {
* 设置链接url return linkName;
*/ }
public void setLinkUrl(String linkUrl) {
this.linkUrl = linkUrl; /**
} * 设置链接url
/** */
* 获取链接url public void setLinkUrl(String linkUrl) {
*/ this.linkUrl = linkUrl;
public String getLinkUrl() { }
return linkUrl;
} /**
/** * 获取链接url
* 设置排序号 */
*/ public String getLinkUrl() {
public void setSort(Integer sort) { return linkUrl;
this.sort = sort; }
}
/** /**
* 获取排序号 * 设置排序号
*/ */
public Integer getSort() { public void setSort(Integer sort) {
return sort; this.sort = sort;
} }
/**
* 设置是否开启0不开启1开启 /**
*/ * 获取排序号
public void setIsOpen(Integer isOpen) { */
this.isOpen = isOpen; public Integer getSort() {
} return sort;
/** }
* 获取是否开启0不开启1开启
*/ /**
public Integer getIsOpen() { * 设置是否开启0不开启1开启
return isOpen; */
} public void setIsOpen(Integer isOpen) {
/** this.isOpen = isOpen;
* 设置创建人id }
*/
public void setCreateUserId(Long createUserId) { /**
this.createUserId = createUserId; * 获取是否开启0不开启1开启
} */
/** public Integer getIsOpen() {
* 获取创建人id return isOpen;
*/ }
public Long getCreateUserId() {
return createUserId; /**
} * 设置创建人id
/** */
* 设置创建时间 public void setCreateUserId(Long createUserId) {
*/ this.createUserId = createUserId;
public void setCreateTime(Date createTime) { }
this.createTime = createTime;
} /**
/** * 获取创建人id
* 获取创建时间 */
*/ public Long getCreateUserId() {
public Date getCreateTime() { return createUserId;
return createTime; }
}
/** /**
* 设置更新者用户id * 设置创建时间
*/ */
public void setUpdateUserId(Long updateUserId) { public void setCreateTime(Date createTime) {
this.updateUserId = updateUserId; this.createTime = createTime;
} }
/**
* 获取更新者用户id /**
*/ * 获取创建时间
public Long getUpdateUserId() { */
return updateUserId; public Date getCreateTime() {
} return createTime;
/** }
* 设置更新时间
*/ /**
public void setUpdateTime(Date updateTime) { * 设置更新者用户id
this.updateTime = updateTime; */
} public void setUpdateUserId(Long updateUserId) {
/** this.updateUserId = updateUserId;
* 获取更新时间 }
*/
public Date getUpdateTime() { /**
return updateTime; * 获取更新者用户id
} */
public Long getUpdateUserId() {
return updateUserId;
}
/**
* 设置更新时间
*/
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
/**
* 获取更新时间
*/
public Date getUpdateTime() {
return updateTime;
}
} }

View File

@ -23,7 +23,7 @@
<div class="col-sm-8"> <div class="col-sm-8">
<input id="linkUrl" name="linkUrl" <input id="linkUrl" name="linkUrl"
class="form-control" class="form-control"
type="text" required> type="url" required>
</div> </div>
</div> </div>

View File

@ -26,7 +26,7 @@
<input id="linkUrl" name="linkUrl" <input id="linkUrl" name="linkUrl"
th:value="${friendLink.linkUrl}" th:value="${friendLink.linkUrl}"
class="form-control" class="form-control"
type="text" required> type="url" required>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">