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 String linkName;
//链接url
private String linkUrl;
//排序号
private Integer sort;
//是否开启0不开启1开启
private Integer isOpen;
//创建人id
//java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值)
//所以通过序列化成字符串来解决
@JsonSerialize(using = LongToStringSerializer.class)
private Long createUserId;
//创建时间
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
//更新者用户id
//java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值)
//所以通过序列化成字符串来解决
@JsonSerialize(using = LongToStringSerializer.class)
private Long updateUserId;
//更新时间
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/**
* 设置主键 //主键
*/ private Integer id;
public void setId(Integer id) { //链接名
this.id = id; private String linkName;
} //链接url
/** @URL
* 获取主键 private String linkUrl;
*/ //排序号
public Integer getId() { private Integer sort;
return id; //是否开启0不开启1开启
} private Integer isOpen;
/** //创建人id
* 设置链接名 //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值)
*/ //所以通过序列化成字符串来解决
public void setLinkName(String linkName) { @JsonSerialize(using = LongToStringSerializer.class)
this.linkName = linkName; private Long createUserId;
} //创建时间
/** @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
* 获取链接名 private Date createTime;
*/ //更新者用户id
public String getLinkName() { //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值)
return linkName; //所以通过序列化成字符串来解决
} @JsonSerialize(using = LongToStringSerializer.class)
/** private Long updateUserId;
* 设置链接url //更新时间
*/ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
public void setLinkUrl(String linkUrl) { private Date updateTime;
this.linkUrl = linkUrl;
} /**
/** * 设置主键
* 获取链接url */
*/ public void setId(Integer id) {
public String getLinkUrl() { this.id = id;
return linkUrl; }
}
/** /**
* 设置排序号 * 获取主键
*/ */
public void setSort(Integer sort) { public Integer getId() {
this.sort = sort; return id;
} }
/**
* 获取排序号 /**
*/ * 设置链接名
public Integer getSort() { */
return sort; public void setLinkName(String linkName) {
} this.linkName = linkName;
/** }
* 设置是否开启0不开启1开启
*/ /**
public void setIsOpen(Integer isOpen) { * 获取链接名
this.isOpen = isOpen; */
} public String getLinkName() {
/** return linkName;
* 获取是否开启0不开启1开启 }
*/
public Integer getIsOpen() { /**
return isOpen; * 设置链接url
} */
/** public void setLinkUrl(String linkUrl) {
* 设置创建人id this.linkUrl = linkUrl;
*/ }
public void setCreateUserId(Long createUserId) {
this.createUserId = createUserId; /**
} * 获取链接url
/** */
* 获取创建人id public String getLinkUrl() {
*/ return linkUrl;
public Long getCreateUserId() { }
return createUserId;
} /**
/** * 设置排序号
* 设置创建时间 */
*/ public void setSort(Integer sort) {
public void setCreateTime(Date createTime) { this.sort = sort;
this.createTime = createTime; }
}
/** /**
* 获取创建时间 * 获取排序号
*/ */
public Date getCreateTime() { public Integer getSort() {
return createTime; return sort;
} }
/**
* 设置更新者用户id /**
*/ * 设置是否开启0不开启1开启
public void setUpdateUserId(Long updateUserId) { */
this.updateUserId = updateUserId; public void setIsOpen(Integer isOpen) {
} this.isOpen = isOpen;
/** }
* 获取更新者用户id
*/ /**
public Long getUpdateUserId() { * 获取是否开启0不开启1开启
return updateUserId; */
} public Integer getIsOpen() {
/** return isOpen;
* 设置更新时间 }
*/
public void setUpdateTime(Date updateTime) { /**
this.updateTime = updateTime; * 设置创建人id
} */
/** public void setCreateUserId(Long createUserId) {
* 获取更新时间 this.createUserId = createUserId;
*/ }
public Date getUpdateTime() {
return updateTime; /**
} * 获取创建人id
*/
public Long getCreateUserId() {
return createUserId;
}
/**
* 设置创建时间
*/
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
/**
* 获取创建时间
*/
public Date getCreateTime() {
return createTime;
}
/**
* 设置更新者用户id
*/
public void setUpdateUserId(Long updateUserId) {
this.updateUserId = updateUserId;
}
/**
* 获取更新者用户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">