diff --git a/src/main/java/com/quinn/common/EditText.java b/src/main/java/com/quinn/common/EditText.java new file mode 100644 index 0000000..f2e95b8 --- /dev/null +++ b/src/main/java/com/quinn/common/EditText.java @@ -0,0 +1,8 @@ +package com.quinn.common; + +import lombok.Data; + +@Data +public class EditText { + String text; +} diff --git a/src/main/java/com/quinn/common/QuinnConstant.java b/src/main/java/com/quinn/common/QuinnConstant.java index b499b9c..5b0f6ab 100644 --- a/src/main/java/com/quinn/common/QuinnConstant.java +++ b/src/main/java/com/quinn/common/QuinnConstant.java @@ -18,17 +18,12 @@ public interface QuinnConstant { * 登录超时时间 */ int SESSION_TIME_OUT = 30 * 60; - String SESSION_LOCK = "LOCK"; String SOURCE_KEY = "SOURCE_KEY_"; /** * SESSION_ID */ String SESSION_ID = "SESSION_ID_"; - /** - * PASSWORD //TODO 可以配置数据库MD5加密 - */ - String SOURCE_PASSWORD = "926462"; String APPEND_PASSWORD = "wangna&limengqi"; diff --git a/src/main/java/com/quinn/common/RoleType.java b/src/main/java/com/quinn/common/RoleType.java index 5a1487a..8d7165e 100644 --- a/src/main/java/com/quinn/common/RoleType.java +++ b/src/main/java/com/quinn/common/RoleType.java @@ -1,16 +1,49 @@ package com.quinn.common; +import org.springframework.util.StringUtils; + +/** + * 排名不分先后,篮球迷勿喷 + */ public enum RoleType { /** * 管理员 */ - ADMIN, - /** - * 普通用户 - */ - NORMAL, + ADMIN("KOBE"), /** * VIP */ - VIP + VIP("VIP"), + /** + * 普通用户 + */ + NORMAL("NORMAL"); + + String name; + + RoleType(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + /** + * 数据库存的权限是 KOBE VIP NORMAL + * @param name + * @return + */ + public static RoleType parse(String name){ + if (StringUtils.isEmpty(name)){ + if (ADMIN.getName().equals(name)){ + return RoleType.ADMIN; + } + if (VIP.getName().equals(name)){ + return RoleType.VIP; + } + } + return RoleType.NORMAL; + } + } diff --git a/src/main/java/com/quinn/common/WangEdit.java b/src/main/java/com/quinn/common/WangEdit.java new file mode 100644 index 0000000..48ab9c2 --- /dev/null +++ b/src/main/java/com/quinn/common/WangEdit.java @@ -0,0 +1,14 @@ +package com.quinn.common; + +import lombok.Data; + +import java.util.List; + +@Data +public class WangEdit { + + String type; + + List children; + +} diff --git a/src/main/java/com/quinn/config/SecurityConfig.java b/src/main/java/com/quinn/config/SecurityConfig.java index fe6034b..023c4e2 100644 --- a/src/main/java/com/quinn/config/SecurityConfig.java +++ b/src/main/java/com/quinn/config/SecurityConfig.java @@ -4,6 +4,7 @@ import com.quinn.service.impl.UserServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; +import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; @@ -11,6 +12,7 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder; @EnableWebSecurity +@EnableGlobalMethodSecurity(prePostEnabled = true) public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired diff --git a/src/main/java/com/quinn/controller/AboutController.java b/src/main/java/com/quinn/controller/AboutController.java index a77bc22..99fda47 100644 --- a/src/main/java/com/quinn/controller/AboutController.java +++ b/src/main/java/com/quinn/controller/AboutController.java @@ -3,18 +3,15 @@ package com.quinn.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.quinn.common.RoleType; import com.quinn.pojo.About; -import com.quinn.pojo.User; import com.quinn.service.AboutService; -import com.quinn.service.UserService; import com.quinn.utils.QuinnUtils; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import javax.management.relation.Role; import javax.servlet.http.HttpServletRequest; import java.util.List; @@ -31,9 +28,6 @@ public class AboutController extends BaseModelController { @Resource AboutService aboutService; - @Resource - UserService userService; - @GetMapping("/about") public String userIndexBlog(HttpServletRequest request,Model model){ @@ -48,13 +42,8 @@ public class AboutController extends BaseModelController { } @PostMapping("/about") - public String saveSay(HttpServletRequest request, About about){ - String loginUserId = getLoginUserId(request); - User user = userService.getOne(new QueryWrapper().eq("uid", loginUserId)); - // 防止请求提交 - if (!RoleType.ADMIN.name().equals(user)){ - return "redirect:/about"; - } + @PreAuthorize("hasAuthority('ADMIN')") + public String saveSay(About about){ about.setId(QuinnUtils.getUuid()); about.setGmtCreate(QuinnUtils.getTime()); // 结果 @@ -62,6 +51,5 @@ public class AboutController extends BaseModelController { return "redirect:/about"; } - } diff --git a/src/main/java/com/quinn/controller/BlogController.java b/src/main/java/com/quinn/controller/BlogController.java index 87f8fce..0eb113f 100644 --- a/src/main/java/com/quinn/controller/BlogController.java +++ b/src/main/java/com/quinn/controller/BlogController.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.quinn.common.Category; import com.quinn.pojo.*; import com.quinn.service.*; +import com.quinn.utils.ContentUtil; import com.quinn.utils.QuinnUtils; import com.quinn.vo.*; import org.slf4j.Logger; @@ -98,6 +99,10 @@ public class BlogController extends BaseModelController{ blog.setBid(QuinnUtils.getUuid()); blog.setTitle(questionWriteForm.getTitle()); blog.setContent(questionWriteForm.getContent()); + + String s = ContentUtil.toTextContentFromWangEdit(questionWriteForm.getContentJson()); + blog.setContentJson(s); + blog.setSort(0); blog.setViews(0); @@ -165,6 +170,8 @@ public class BlogController extends BaseModelController{ queryBlog.setTitle(blog.getTitle()); queryBlog.setCategoryId(blog.getCategoryId()); queryBlog.setContent(blog.getContent()); + String s = ContentUtil.toTextContentFromWangEdit(blog.getContentJson()); + queryBlog.setContentJson(s); queryBlog.setGmtUpdate(QuinnUtils.getTime()); blogService.updateById(queryBlog); diff --git a/src/main/java/com/quinn/controller/LoginController.java b/src/main/java/com/quinn/controller/LoginController.java index 8bcbe36..c0afe4e 100644 --- a/src/main/java/com/quinn/controller/LoginController.java +++ b/src/main/java/com/quinn/controller/LoginController.java @@ -2,6 +2,7 @@ package com.quinn.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.quinn.common.RoleType; +import com.quinn.intergration.AttrIcon; import com.quinn.pojo.Invite; import com.quinn.pojo.User; import com.quinn.pojo.UserInfo; @@ -78,10 +79,11 @@ public class LoginController { // 构建用户对象 User user = new User(); user.setUid(QuinnUtils.getUuid()); // 用户唯一id - user.setRoleId(RoleType.NORMAL.name()); + user.setRole(RoleType.NORMAL.name()); user.setUsername(registerForm.getUsername()); // 密码加密 String bCryptPassword = new BCryptPasswordEncoder().encode(registerForm.getPassword()); + user.setAvatar(AttrIcon.INSTANCE.generateImgUrl(registerForm.getUsername())); user.setPassword(bCryptPassword); user.setGmtCreate(QuinnUtils.getTime()); user.setLoginDate(QuinnUtils.getTime()); diff --git a/src/main/java/com/quinn/controller/SearchController.java b/src/main/java/com/quinn/controller/SearchController.java index 70e8e50..5306e5f 100644 --- a/src/main/java/com/quinn/controller/SearchController.java +++ b/src/main/java/com/quinn/controller/SearchController.java @@ -10,6 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import javax.annotation.Resource; @@ -36,29 +37,42 @@ public class SearchController { CommentService commentService; @Resource SourceCategoryService sourceCategoryService; + @Resource + FindService findService; - @PostMapping("/search") + @GetMapping("/search") public String searchAll(String findWhat,Model model){ + /** + * 为空返回主页 + */ if (StringUtils.isEmpty(findWhat)){ return "index"; } + /** + * 新增资源 + */ if (QuinnConstant.NEW_SOURCE_PASSWORD.equals(findWhat)){ List categoryList = sourceCategoryService.list(null); model.addAttribute("categoryList",categoryList); return "source/uploadSource"; } + /** + * 新增公告 + */ if (QuinnConstant.APPEND_PASSWORD.equals(findWhat)){ return "page/append"; } + /** + * 修改资源 + */ if (findWhat.startsWith(QuinnConstant.EDIT_SOURCE_FIRST)){ - findWhat = findWhat.substring(findWhat.indexOf(QuinnConstant.EDIT_SOURCE_FIRST) + QuinnConstant.EDIT_SOURCE_FIRST.length()); - if (!StringUtils.isEmpty(findWhat) && findWhat.endsWith(QuinnConstant.EDIT_SOURCE_LAST)){ - findWhat = findWhat.substring(0,findWhat.lastIndexOf(QuinnConstant.EDIT_SOURCE_LAST)); + String modifyWhat = findWhat.substring(findWhat.indexOf(QuinnConstant.EDIT_SOURCE_FIRST) + QuinnConstant.EDIT_SOURCE_FIRST.length()); + if (!StringUtils.isEmpty(modifyWhat) && modifyWhat.endsWith(QuinnConstant.EDIT_SOURCE_LAST)){ + modifyWhat = modifyWhat.substring(0,modifyWhat.lastIndexOf(QuinnConstant.EDIT_SOURCE_LAST)); } if (!StringUtils.isEmpty(findWhat)){ - Source source = sourceService.getOne(new QueryWrapper().eq("sid", findWhat)); + Source source = sourceService.getOne(new QueryWrapper().eq("sid", modifyWhat)); if (source!=null){ - source.setKeyWord1(concatKeyWord(source.getKeyWord2()) + concatKeyWord(source.getKeyWord2()) + concatKeyWord(source.getKeyWord3())); model.addAttribute("source",source); // 分类信息 List categoryList = sourceCategoryService.list(null); @@ -67,28 +81,20 @@ public class SearchController { } } } - //TODO + + /** + * 正式开始,全局搜索 + */ MyPageParam myPageParam = new MyPageParam(1, 10); - List blogList = blogService.getBlogWithUserOrderBySort(myPageParam); + List findList = findService.listFinds(findWhat, myPageParam); + model.addAttribute("findWhat",findWhat); // 结果 - model.addAttribute("blogList",blogList); + model.addAttribute("findList",findList); model.addAttribute("pageParam",myPageParam); - - List topBlogList = blogService.getTopBlog(); - model.addAttribute("topBlogList",topBlogList); - - // 分类信息 - List categoryList = blogCategoryService.list(null); - model.addAttribute("categoryList",categoryList); return "page/allsearch"; } - private String concatKeyWord(String keyWord) { - if (!StringUtils.isEmpty(keyWord)) { - return keyWord + QuinnConstant.LINK_KEY_WORD; - } - return ""; - } + } diff --git a/src/main/java/com/quinn/controller/SourceController.java b/src/main/java/com/quinn/controller/SourceController.java index 76ad0a8..ac1dc6d 100644 --- a/src/main/java/com/quinn/controller/SourceController.java +++ b/src/main/java/com/quinn/controller/SourceController.java @@ -91,9 +91,6 @@ public class SourceController extends BaseModelController { if (!CollectionUtils.isEmpty(sourceList)){ sourceList.forEach(x ->{ x.setSourceLink(QuinnConstant.GUN); - x.setKeyWord1(QuinnConstant.GUN); - x.setKeyWord2(QuinnConstant.GUN); - x.setKeyWord3(QuinnConstant.GUN); x.setSourceContent(QuinnConstant.GUN); }); } @@ -114,9 +111,6 @@ public class SourceController extends BaseModelController { Source source = sourceService.view(sid,sessionId); if(source != null){ source.setSourceLink(QuinnConstant.GUN); - source.setKeyWord1(QuinnConstant.GUN); - source.setKeyWord2(QuinnConstant.GUN); - source.setKeyWord3(QuinnConstant.GUN); } model.addAttribute("source",source); diff --git a/src/main/java/com/quinn/controller/SourceUploadController.java b/src/main/java/com/quinn/controller/SourceUploadController.java index 0683940..cd3dd03 100644 --- a/src/main/java/com/quinn/controller/SourceUploadController.java +++ b/src/main/java/com/quinn/controller/SourceUploadController.java @@ -1,20 +1,17 @@ package com.quinn.controller; - -import com.quinn.common.QuinnConstant; -import com.quinn.service.SourceCategoryService; import com.quinn.service.SourceService; -import com.quinn.vo.SourceDeleteForm; import com.quinn.vo.SourceUpdateForm; import com.quinn.vo.SourceWriteForm; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.io.PrintWriter; /** *

@@ -25,49 +22,32 @@ import java.io.PrintWriter; * @since 2022-05-03 */ @Controller +@PreAuthorize("hasAuthority('ADMIN')") public class SourceUploadController { - - @Resource - SourceCategoryService sourceCategoryService; @Resource SourceService sourceService; - @PostMapping("/tracy/mcgrady/lmq/love/wn") + @PostMapping("/source/oper") public synchronized String write(MultipartFile file, SourceWriteForm sourceWriteForm) throws IOException { - if (!QuinnConstant.SOURCE_PASSWORD.equals(sourceWriteForm.getUploadPassWord())){ - return "error/check"; - } sourceService.uploadNewSource(file,sourceWriteForm); // 重定向到列表页面 return "redirect:/source"; } // 编辑信息 - @PostMapping("/tracy/mcgrady/lmq/love/wn/update") + @PostMapping("/source/oper/update") public String toEdit(MultipartFile file, SourceUpdateForm sourceUpdateForm) throws IOException { - if (!QuinnConstant.SOURCE_PASSWORD.equals(sourceUpdateForm.getUploadPassWord())){ - return "error/check"; - } sourceService.updateSource(file,sourceUpdateForm); // 重定向详情页面 return "redirect:/source/view/" + sourceUpdateForm.getSid(); } - // 编辑信息 - @PostMapping("/tracy/mcgrady/lmq/love/wn/del") - public void toEdit(HttpServletResponse response, SourceDeleteForm sourceDeleteForm) throws IOException { - PrintWriter writer = response.getWriter(); - if (!QuinnConstant.SOURCE_PASSWORD.equals(sourceDeleteForm.getUploadPassWord())){ - writer.write("/error/check"); - writer.flush(); - writer.close(); - return; - } - sourceService.deleteSource(sourceDeleteForm.getSid()); - // 重定向详情页面 - writer.write("/source"); - writer.flush(); - writer.close(); + // 删除 + @GetMapping("/source/oper/del/{sid}") + public String toDelete(@PathVariable("sid") String sid) { + sourceService.deleteSource(sid); + // 重定向到列表页面 + return "redirect:/source"; } } diff --git a/src/main/java/com/quinn/controller/UserController.java b/src/main/java/com/quinn/controller/UserController.java index 73fbac8..5e5b0ca 100644 --- a/src/main/java/com/quinn/controller/UserController.java +++ b/src/main/java/com/quinn/controller/UserController.java @@ -125,7 +125,7 @@ public class UserController extends BaseModelController { public String userPageStar(UserNavReq navReq,Model model){ // 用户信息回填 userInfoCallBack(navReq.getUserId(),model); - // 用户的论坛列表 + // 用户收藏列表 if (navReq.getPageNum() < 1){ navReq.setPageNum(1); } diff --git a/src/main/java/com/quinn/controller/UserInfoController.java b/src/main/java/com/quinn/controller/UserInfoController.java index c745477..d178213 100644 --- a/src/main/java/com/quinn/controller/UserInfoController.java +++ b/src/main/java/com/quinn/controller/UserInfoController.java @@ -37,7 +37,8 @@ public class UserInfoController extends BaseModelController { @GetMapping("/userinfo/setting") public String userSetting(HttpServletRequest request, Model model){ String uid = getLoginUserId(request); - // todo: 可扩展 + UserInfo userInfo = userInfoService.getById(uid); + model.addAttribute("userInfo",userInfo); return "user/settings"; } @PostMapping("/userinfo/update") diff --git a/src/main/java/com/quinn/intergration/AttrIcon.java b/src/main/java/com/quinn/intergration/AttrIcon.java index c1f5a00..1e73f5a 100644 --- a/src/main/java/com/quinn/intergration/AttrIcon.java +++ b/src/main/java/com/quinn/intergration/AttrIcon.java @@ -38,4 +38,10 @@ public enum AttrIcon { } return QuinnConstant.DEFAULT_ATTR_BASE64; } + + public static void main(String[] args) { + String limengqi = AttrIcon.INSTANCE.generateImg("limengqi"); + System.out.println(limengqi); + } + } diff --git a/src/main/java/com/quinn/mapper/FindMapper.java b/src/main/java/com/quinn/mapper/FindMapper.java new file mode 100644 index 0000000..9e91ea7 --- /dev/null +++ b/src/main/java/com/quinn/mapper/FindMapper.java @@ -0,0 +1,22 @@ +package com.quinn.mapper; + +import com.quinn.pojo.FindResult; +import com.quinn.vo.MyPageParam; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author limqsh + * @since 2022-05-08 + */ +public interface FindMapper { + + int countListFinds(String findWhat); + + List listFinds(String findWhat, MyPageParam myPageParam); + +} diff --git a/src/main/java/com/quinn/mapper/xml/BlogStarMapper.xml b/src/main/java/com/quinn/mapper/xml/BlogStarMapper.xml deleted file mode 100644 index c566f96..0000000 --- a/src/main/java/com/quinn/mapper/xml/BlogStarMapper.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/main/java/com/quinn/mapper/xml/DownloadMapper.xml b/src/main/java/com/quinn/mapper/xml/DownloadMapper.xml deleted file mode 100644 index fc4f6a0..0000000 --- a/src/main/java/com/quinn/mapper/xml/DownloadMapper.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/main/java/com/quinn/mapper/xml/FindMapper.xml b/src/main/java/com/quinn/mapper/xml/FindMapper.xml new file mode 100644 index 0000000..3acbd13 --- /dev/null +++ b/src/main/java/com/quinn/mapper/xml/FindMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + diff --git a/src/main/java/com/quinn/mapper/xml/QuestionCategoryMapper.xml b/src/main/java/com/quinn/mapper/xml/QuestionCategoryMapper.xml deleted file mode 100644 index 173fddb..0000000 --- a/src/main/java/com/quinn/mapper/xml/QuestionCategoryMapper.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/main/java/com/quinn/mapper/xml/QuestionMapper.xml b/src/main/java/com/quinn/mapper/xml/QuestionMapper.xml deleted file mode 100644 index ce88399..0000000 --- a/src/main/java/com/quinn/mapper/xml/QuestionMapper.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/main/java/com/quinn/mapper/xml/SayMapper.xml b/src/main/java/com/quinn/mapper/xml/SayMapper.xml deleted file mode 100644 index b591629..0000000 --- a/src/main/java/com/quinn/mapper/xml/SayMapper.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/main/java/com/quinn/pojo/Blog.java b/src/main/java/com/quinn/pojo/Blog.java index 8ed64ef..12aa213 100644 --- a/src/main/java/com/quinn/pojo/Blog.java +++ b/src/main/java/com/quinn/pojo/Blog.java @@ -41,6 +41,9 @@ public class Blog implements Serializable { @ApiModelProperty(value = "论坛内容") private String content; + @ApiModelProperty(value = "文本论坛内容") + private String contentJson; + @ApiModelProperty(value = "排序 0 普通 1 置顶") private Integer sort; diff --git a/src/main/java/com/quinn/pojo/FindResult.java b/src/main/java/com/quinn/pojo/FindResult.java new file mode 100644 index 0000000..df21f43 --- /dev/null +++ b/src/main/java/com/quinn/pojo/FindResult.java @@ -0,0 +1,32 @@ +package com.quinn.pojo; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author limqsh + * @since 2022-05-08 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +public class FindResult implements Serializable { + + private String topicId; + + private String category; + + private Date gmtCreate; + + private String topicName; + + private String contentText; +} diff --git a/src/main/java/com/quinn/pojo/Source.java b/src/main/java/com/quinn/pojo/Source.java index 8c6b617..9f41623 100644 --- a/src/main/java/com/quinn/pojo/Source.java +++ b/src/main/java/com/quinn/pojo/Source.java @@ -43,14 +43,8 @@ public class Source implements Serializable { @ApiModelProperty(value = "资源内容") private String sourceContent; - @ApiModelProperty(value = "关键字1") - private String keyWord1; - - @ApiModelProperty(value = "关键字2") - private String keyWord2; - - @ApiModelProperty(value = "关键字3") - private String keyWord3; + @ApiModelProperty(value = "文本资源内容") + private String contentJson; @ApiModelProperty(value = "资源类型") private String sourceType; diff --git a/src/main/java/com/quinn/pojo/User.java b/src/main/java/com/quinn/pojo/User.java index 4e74441..025f34a 100644 --- a/src/main/java/com/quinn/pojo/User.java +++ b/src/main/java/com/quinn/pojo/User.java @@ -35,8 +35,8 @@ public class User implements Serializable { @ApiModelProperty(value = "用户编号") private String uid; - @ApiModelProperty(value = "角色编号") - private String roleId; + @ApiModelProperty(value = "角色") + private String role; @ApiModelProperty(value = "用户名") private String username; diff --git a/src/main/java/com/quinn/service/FindService.java b/src/main/java/com/quinn/service/FindService.java new file mode 100644 index 0000000..92b2397 --- /dev/null +++ b/src/main/java/com/quinn/service/FindService.java @@ -0,0 +1,20 @@ +package com.quinn.service; + +import com.quinn.pojo.FindResult; +import com.quinn.vo.MyPageParam; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author limqsh + * @since 2022-05-08 + */ +public interface FindService { + + List listFinds(String findWhat, MyPageParam myPageParam); + +} diff --git a/src/main/java/com/quinn/service/impl/BlogServiceImpl.java b/src/main/java/com/quinn/service/impl/BlogServiceImpl.java index cb8e3b0..4ee5871 100644 --- a/src/main/java/com/quinn/service/impl/BlogServiceImpl.java +++ b/src/main/java/com/quinn/service/impl/BlogServiceImpl.java @@ -26,9 +26,6 @@ import java.util.List; */ @Service public class BlogServiceImpl extends ServiceImpl implements BlogService { - - @Resource - RedisUtils redisUtils; @Resource BlogMapper blogMapper; @@ -66,12 +63,8 @@ public class BlogServiceImpl extends ServiceImpl implements Bl @Override public void addRecord(Blog blog, String sessionId) { - String value = redisUtils.get(sessionId); - if (StringUtils.isEmpty(value)){ - redisUtils.set(sessionId, QuinnConstant.SESSION_LOCK,QuinnConstant.SESSION_TIME_OUT); - blog.setViews(blog.getViews()+1); - updateById(blog); - } + blog.setViews(blog.getViews()+1); + updateById(blog); } } diff --git a/src/main/java/com/quinn/service/impl/FindServiceImpl.java b/src/main/java/com/quinn/service/impl/FindServiceImpl.java new file mode 100644 index 0000000..2601411 --- /dev/null +++ b/src/main/java/com/quinn/service/impl/FindServiceImpl.java @@ -0,0 +1,36 @@ +package com.quinn.service.impl; + +import com.quinn.mapper.FindMapper; +import com.quinn.pojo.FindResult; +import com.quinn.service.FindService; +import com.quinn.vo.MyPageParam; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author limqsh + * @since 2022-05-08 + */ +@Service +public class FindServiceImpl implements FindService { + + @Resource + FindMapper findMapper; + + @Override + public List listFinds(String findWhat, MyPageParam myPageParam) { + int total = findMapper.countListFinds(findWhat); + myPageParam.setTotal(total); + if (total > 0){ + return findMapper.listFinds(findWhat,myPageParam); + } + return new ArrayList<>(); + } +} diff --git a/src/main/java/com/quinn/service/impl/SourceServiceImpl.java b/src/main/java/com/quinn/service/impl/SourceServiceImpl.java index b46e62c..d5ee224 100644 --- a/src/main/java/com/quinn/service/impl/SourceServiceImpl.java +++ b/src/main/java/com/quinn/service/impl/SourceServiceImpl.java @@ -10,6 +10,7 @@ import com.quinn.pojo.SourceCategory; import com.quinn.pojo.SourceWithStar; import com.quinn.service.SourceService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.quinn.utils.ContentUtil; import com.quinn.utils.OSSClientUtil; import com.quinn.utils.QuinnUtils; import com.quinn.utils.RedisUtils; @@ -83,11 +84,7 @@ public class SourceServiceImpl extends ServiceImpl impleme @Override public Source view(String sid,String sessionId) { Source source = getOne(new QueryWrapper().eq("sid", sid)); - String value = redisUtils.get(sessionId); - if (StringUtils.isEmpty(value)){ - redisUtils.set(sessionId,QuinnConstant.SESSION_LOCK,QuinnConstant.SESSION_TIME_OUT); - addDownLoadRecord(source); - } + addDownLoadRecord(source); return source; } @@ -110,19 +107,8 @@ public class SourceServiceImpl extends ServiceImpl impleme source.setSourceName(sourceWriteForm.getTitle()); source.setDetail(sourceWriteForm.getSubContent()); source.setSourceContent(sourceWriteForm.getContent()); - String keyWords = sourceWriteForm.getKeyWords(); - if (!StringUtils.isEmpty(keyWords)){ - //兼容中英文逗号 - keyWords = keyWords.replaceAll(",",","); - String[] split = keyWords.split(QuinnConstant.LINK_KEY_WORD); - source.setKeyWord1(split[0]); - if (split.length > 1){ - source.setKeyWord2(split[1]); - if (split.length > 2){ - source.setKeyWord3(split[2]); - } - } - } + String s = ContentUtil.toTextContentFromWangEdit(sourceWriteForm.getContentJson()); + sourceWriteForm.setContentJson(s); source.setSourceType(sourceWriteForm.getSourceType()); source.setSourceLink(fileLink); @@ -158,19 +144,8 @@ public class SourceServiceImpl extends ServiceImpl impleme before.setSourceName(sourceUpdateForm.getSourceName()); before.setDetail(sourceUpdateForm.getDetail()); before.setSourceContent(sourceUpdateForm.getSourceContent()); - String keyWords = sourceUpdateForm.getKeyWords(); - if (!StringUtils.isEmpty(keyWords)){ - //兼容中英文逗号 - keyWords = keyWords.replaceAll(",",","); - String[] split = keyWords.split(QuinnConstant.LINK_KEY_WORD); - before.setKeyWord1(split[0]); - if (split.length > 1){ - before.setKeyWord2(split[1]); - if (split.length > 2){ - before.setKeyWord3(split[2]); - } - } - } + String s = ContentUtil.toTextContentFromWangEdit(sourceUpdateForm.getContentJson()); + before.setContentJson(s); before.setSourceType(sourceUpdateForm.getSourceType()); before.setSourceLink(fileLink); diff --git a/src/main/java/com/quinn/service/impl/UserServiceImpl.java b/src/main/java/com/quinn/service/impl/UserServiceImpl.java index 0b0b3e8..799c2a1 100644 --- a/src/main/java/com/quinn/service/impl/UserServiceImpl.java +++ b/src/main/java/com/quinn/service/impl/UserServiceImpl.java @@ -17,7 +17,6 @@ import org.springframework.stereotype.Service; import javax.servlet.http.HttpSession; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; /** @@ -28,8 +27,6 @@ import java.util.List; * @author limqsh * @since 2020-06-28 */ -// UserDetailsService接口用于返回用户相关数据。 -// 它有loadUserByUsername()方法,根据username查询用户实体,可以实现该接口覆盖该方法,实现自定义获取用户过程。 // 该接口实现类被DaoAuthenticationProvider 类使用,用于认证过程中载入用户信息。 @Service public class UserServiceImpl extends ServiceImpl implements UserService,UserDetailsService { @@ -58,10 +55,12 @@ public class UserServiceImpl extends ServiceImpl implements Us session.setMaxInactiveInterval(QuinnConstant.SESSION_TIME_OUT); //创建一个集合来存放权限 List authList = new ArrayList(); - RoleType[] values = RoleType.values(); - Arrays.stream(values).forEach(x->{ - authList.add(new SimpleGrantedAuthority("ROLE_" + x.name())); - }); + RoleType roleType = RoleType.parse(user.getRole()); + if (roleType == null){ + roleType = RoleType.NORMAL; + } + SimpleGrantedAuthority authority = new SimpleGrantedAuthority(roleType.getName()); + authList.add(authority); //实例化UserDetails对象 userDetails=new org.springframework.security.core.userdetails.User(s,password, true, diff --git a/src/main/java/com/quinn/utils/ContentUtil.java b/src/main/java/com/quinn/utils/ContentUtil.java new file mode 100644 index 0000000..9761485 --- /dev/null +++ b/src/main/java/com/quinn/utils/ContentUtil.java @@ -0,0 +1,26 @@ +package com.quinn.utils; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.quinn.common.EditText; +import com.quinn.common.WangEdit; +import org.springframework.util.CollectionUtils; + +import java.util.List; + +public interface ContentUtil { + + static String toTextContentFromWangEdit(String wangEdit){ + List decode = JsonUtils.decode(wangEdit, new TypeReference>(){}); + StringBuffer sb = new StringBuffer(); + decode.forEach(x->{ + List children = x.getChildren(); + if (!CollectionUtils.isEmpty(children)){ + children.forEach(y ->{ + sb.append(y.getText()); + }); + } + }); + return sb.toString(); + } + +} diff --git a/src/main/java/com/quinn/utils/JsonUtils.java b/src/main/java/com/quinn/utils/JsonUtils.java new file mode 100644 index 0000000..e43d297 --- /dev/null +++ b/src/main/java/com/quinn/utils/JsonUtils.java @@ -0,0 +1,94 @@ +package com.quinn.utils; + +import com.fasterxml.jackson.core.JsonGenerationException; +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; + +/** + * USER: douya + * DATE: 2017-11-01 + */ +public class JsonUtils { + + + /** + * Logger for this class + */ + private static final Logger logger = LoggerFactory.getLogger(JsonUtils.class); + + private final static ObjectMapper objectMapper = new ObjectMapper(); + + static { + objectMapper.configure(JsonParser.Feature.ALLOW_COMMENTS, true); + objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true); + objectMapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true); + objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true); + objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + } + + private JsonUtils() { + } + + public static String encode(Object obj) { + try { + return objectMapper.writeValueAsString(obj); + } catch (JsonGenerationException e) { + logger.error("encode(Object)", e); //$NON-NLS-1$ + } catch (JsonMappingException e) { + logger.error("encode(Object)", e); //$NON-NLS-1$ + } catch (IOException e) { + logger.error("encode(Object)", e); //$NON-NLS-1$ + } + return null; + } + + /** + * 将json string反序列化成对象 + * + * @param json + * @param valueType + * @return + */ + public static T decode(String json, Class valueType) { + try { + return objectMapper.readValue(json, valueType); + } catch (JsonParseException e) { + logger.error("decode(String, Class)", e); + } catch (JsonMappingException e) { + logger.error("decode(String, Class)", e); + } catch (IOException e) { + logger.error("decode(String, Class)", e); + } + return null; + } + + /** + * 将json array反序列化为对象 + * + * @param json + * @param typeReference + * @return + */ + @SuppressWarnings("unchecked") + public static T decode(String json, TypeReference typeReference) { + try { + return (T) objectMapper.readValue(json, typeReference); + } catch (JsonParseException e) { + logger.error("decode(String, JsonTypeReference)", e); + } catch (JsonMappingException e) { + logger.error("decode(String, JsonTypeReference)", e); + } catch (IOException e) { + logger.error("decode(String, JsonTypeReference)", e); + } + return null; + } + +} diff --git a/src/main/java/com/quinn/vo/QuestionWriteForm.java b/src/main/java/com/quinn/vo/QuestionWriteForm.java index d706de8..6f4e426 100644 --- a/src/main/java/com/quinn/vo/QuestionWriteForm.java +++ b/src/main/java/com/quinn/vo/QuestionWriteForm.java @@ -14,6 +14,8 @@ public class QuestionWriteForm { private String title; @ApiModelProperty(value = "内容") private String content; + @ApiModelProperty(value = "文本内容") + private String contentJson; @ApiModelProperty(value = "分类") private Integer categoryId; diff --git a/src/main/java/com/quinn/vo/SourceDeleteForm.java b/src/main/java/com/quinn/vo/SourceDeleteForm.java deleted file mode 100644 index e0b42ce..0000000 --- a/src/main/java/com/quinn/vo/SourceDeleteForm.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.quinn.vo; - -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; - -/** - *

- * - *

- * - * @author limqsh - * @since 2022-05-03 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@Accessors(chain = true) -public class SourceDeleteForm { - - @ApiModelProperty(value = "资源ID") - private String sid; - - @ApiModelProperty(value = "管理员密码") - private String uploadPassWord; - -} diff --git a/src/main/java/com/quinn/vo/SourceUpdateForm.java b/src/main/java/com/quinn/vo/SourceUpdateForm.java index 63cd2b0..11cb611 100644 --- a/src/main/java/com/quinn/vo/SourceUpdateForm.java +++ b/src/main/java/com/quinn/vo/SourceUpdateForm.java @@ -30,8 +30,8 @@ public class SourceUpdateForm { @ApiModelProperty(value = "资源内容") private String sourceContent; - @ApiModelProperty(value = "关键字") - private String keyWords; + @ApiModelProperty(value = "内容文本") + private String contentJson; @ApiModelProperty(value = "资源类型") private String sourceType; @@ -48,7 +48,4 @@ public class SourceUpdateForm { @ApiModelProperty(value = "英文名") private String enName; - @ApiModelProperty(value = "管理员密码") - private String uploadPassWord; - } diff --git a/src/main/java/com/quinn/vo/SourceWriteForm.java b/src/main/java/com/quinn/vo/SourceWriteForm.java index 5709101..4a7a2ae 100644 --- a/src/main/java/com/quinn/vo/SourceWriteForm.java +++ b/src/main/java/com/quinn/vo/SourceWriteForm.java @@ -16,10 +16,11 @@ public class SourceWriteForm { private String subContent; @ApiModelProperty(value = "内容") private String content; + @ApiModelProperty(value = "内容文本") + private String contentJson; + @ApiModelProperty(value = "英文名") private String enName; - @ApiModelProperty(value = "摘要") - private String keyWords; @ApiModelProperty(value = "分类") private Integer categoryId; @@ -29,6 +30,4 @@ public class SourceWriteForm { @ApiModelProperty(value = "文档路径") private String sourceLink; - @ApiModelProperty(value = "管理员密码") - private String uploadPassWord; } diff --git a/src/main/resources/static/css/error.css b/src/main/resources/static/css/error.css deleted file mode 100644 index f4cf10f..0000000 --- a/src/main/resources/static/css/error.css +++ /dev/null @@ -1,384 +0,0 @@ -.message2 { - position: absolute; - top: 10%; - color: #fafafa; - font-size: 30px; - animation: textRotate 0.8s linear 0.5s infinite alternate; -} - -.message { - position: absolute; - bottom: 20%; - left: 5%; - color: #fafafa; - font-size: 30px; - animation: textRotate 0.8s linear 0.5s infinite alternate; -} - -body { - padding: 0px; - margin: 0px; - border: 0px; - width: 100%; - height: 100%; -} - -@keyframes textRotate { - from { - transform-origin: top; - transform: rotateX(-30deg); - } - to { - transform-origin: top; - transform: rotateX(12deg); - } -} - -.NotPage { - position: relative; - /*z-index: -10;*/ - background: #4d4d4d; - height: 100vh; - overflow: hidden; - display: flex; - font-family: "Anton", sans-serif; - justify-content: center; - align-items: center; - -webkit-perspective: 1000px; - perspective: 1000px; -} - -div { - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; -} - -.rail { - position: absolute; - width: 100%; - height: 100%; - display: flex; - justify-content: center; - align-items: center; - -webkit-transform: rotateX(-30deg) rotateY(-30deg); - transform: rotateX(-30deg) rotateY(-30deg); -} - -.rail .stamp { - position: absolute; - width: 200px; - height: 200px; - display: flex; - justify-content: center; - align-items: center; - background: #141414; - color: #fff; - font-size: 7rem; -} - -.rail .stamp:nth-child(1) { - -webkit-animation: stampSlide 40000ms -2300ms linear infinite; - animation: stampSlide 40000ms -2300ms linear infinite; -} - -.rail .stamp:nth-child(2) { - -webkit-animation: stampSlide 40000ms -4300ms linear infinite; - animation: stampSlide 40000ms -4300ms linear infinite; -} - -.rail .stamp:nth-child(3) { - -webkit-animation: stampSlide 40000ms -6300ms linear infinite; - animation: stampSlide 40000ms -6300ms linear infinite; -} - -.rail .stamp:nth-child(4) { - -webkit-animation: stampSlide 40000ms -8300ms linear infinite; - animation: stampSlide 40000ms -8300ms linear infinite; -} - -.rail .stamp:nth-child(5) { - -webkit-animation: stampSlide 40000ms -10300ms linear infinite; - animation: stampSlide 40000ms -10300ms linear infinite; -} - -.rail .stamp:nth-child(6) { - -webkit-animation: stampSlide 40000ms -12300ms linear infinite; - animation: stampSlide 40000ms -12300ms linear infinite; -} - -.rail .stamp:nth-child(7) { - -webkit-animation: stampSlide 40000ms -14300ms linear infinite; - animation: stampSlide 40000ms -14300ms linear infinite; -} - -.rail .stamp:nth-child(8) { - -webkit-animation: stampSlide 40000ms -16300ms linear infinite; - animation: stampSlide 40000ms -16300ms linear infinite; -} - -.rail .stamp:nth-child(9) { - -webkit-animation: stampSlide 40000ms -18300ms linear infinite; - animation: stampSlide 40000ms -18300ms linear infinite; -} - -.rail .stamp:nth-child(10) { - -webkit-animation: stampSlide 40000ms -20300ms linear infinite; - animation: stampSlide 40000ms -20300ms linear infinite; -} - -.rail .stamp:nth-child(11) { - -webkit-animation: stampSlide 40000ms -22300ms linear infinite; - animation: stampSlide 40000ms -22300ms linear infinite; -} - -.rail .stamp:nth-child(12) { - -webkit-animation: stampSlide 40000ms -24300ms linear infinite; - animation: stampSlide 40000ms -24300ms linear infinite; -} - -.rail .stamp:nth-child(13) { - -webkit-animation: stampSlide 40000ms -26300ms linear infinite; - animation: stampSlide 40000ms -26300ms linear infinite; -} - -.rail .stamp:nth-child(14) { - -webkit-animation: stampSlide 40000ms -28300ms linear infinite; - animation: stampSlide 40000ms -28300ms linear infinite; -} - -.rail .stamp:nth-child(15) { - -webkit-animation: stampSlide 40000ms -30300ms linear infinite; - animation: stampSlide 40000ms -30300ms linear infinite; -} - -.rail .stamp:nth-child(16) { - -webkit-animation: stampSlide 40000ms -32300ms linear infinite; - animation: stampSlide 40000ms -32300ms linear infinite; -} - -.rail .stamp:nth-child(17) { - -webkit-animation: stampSlide 40000ms -34300ms linear infinite; - animation: stampSlide 40000ms -34300ms linear infinite; -} - -.rail .stamp:nth-child(18) { - -webkit-animation: stampSlide 40000ms -36300ms linear infinite; - animation: stampSlide 40000ms -36300ms linear infinite; -} - -.rail .stamp:nth-child(19) { - -webkit-animation: stampSlide 40000ms -38300ms linear infinite; - animation: stampSlide 40000ms -38300ms linear infinite; -} - -.rail .stamp:nth-child(20) { - -webkit-animation: stampSlide 40000ms -40300ms linear infinite; - animation: stampSlide 40000ms -40300ms linear infinite; -} - -@-webkit-keyframes stampSlide { - 0% { - -webkit-transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px) translateY(130px); - transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px) translateY(130px); - } - 100% { - -webkit-transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px) translateY(-3870px); - transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px) translateY(-3870px); - } -} - -@keyframes stampSlide { - 0% { - -webkit-transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px) translateY(130px); - transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px) translateY(130px); - } - 100% { - -webkit-transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px) translateY(-3870px); - transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px) translateY(-3870px); - } -} - -.world { - -webkit-transform: rotateX(-30deg) rotateY(-30deg); - transform: rotateX(-30deg) rotateY(-30deg); -} - -.world .forward { - position: absolute; - -webkit-animation: slide 2000ms linear infinite; - animation: slide 2000ms linear infinite; -} - -.world .box { - width: 200px; - height: 200px; - -webkit-transform-origin: 100% 100%; - transform-origin: 100% 100%; - -webkit-animation: roll 2000ms cubic-bezier(1, 0.01, 1, 1) infinite; - animation: roll 2000ms cubic-bezier(1, 0.01, 1, 1) infinite; -} - -.world .box .wall { - position: absolute; - width: 200px; - height: 200px; - background: rgba(10, 10, 10, 0.8); - border: 1px solid #fafafa; - box-sizing: border-box; -} - -.world .box .wall::before { - content: ""; - position: absolute; - width: 100%; - height: 100%; - display: flex; - justify-content: center; - align-items: center; - color: #fff; - font-size: 7rem; -} - -.world .box .wall:nth-child(1) { - -webkit-transform: translateZ(100px); - transform: translateZ(100px); -} - -.world .box .wall:nth-child(2) { - -webkit-transform: rotateX(180deg) translateZ(100px); - transform: rotateX(180deg) translateZ(100px); -} - -.world .box .wall:nth-child(3) { - -webkit-transform: rotateX(90deg) translateZ(100px); - transform: rotateX(90deg) translateZ(100px); -} - -.world .box .wall:nth-child(3)::before { - -webkit-transform: rotateX(180deg) rotateZ(90deg) translateZ(-1px); - transform: rotateX(180deg) rotateZ(90deg) translateZ(-1px); - -webkit-animation: zeroFour 4000ms -2000ms linear infinite; - animation: zeroFour 4000ms -2000ms linear infinite; -} - -.world .box .wall:nth-child(4) { - -webkit-transform: rotateX(-90deg) translateZ(100px); - transform: rotateX(-90deg) translateZ(100px); -} - -.world .box .wall:nth-child(4)::before { - -webkit-transform: rotateX(180deg) rotateZ(-90deg) translateZ(-1px); - transform: rotateX(180deg) rotateZ(-90deg) translateZ(-1px); - -webkit-animation: zeroFour 4000ms -2000ms linear infinite; - animation: zeroFour 4000ms -2000ms linear infinite; -} - -.world .box .wall:nth-child(5) { - -webkit-transform: rotateY(90deg) translateZ(100px); - transform: rotateY(90deg) translateZ(100px); -} - -.world .box .wall:nth-child(5)::before { - -webkit-transform: rotateX(180deg) translateZ(-1px); - transform: rotateX(180deg) translateZ(-1px); - -webkit-animation: zeroFour 4000ms linear infinite; - animation: zeroFour 4000ms linear infinite; -} - -.world .box .wall:nth-child(6) { - -webkit-transform: rotateY(-90deg) translateZ(100px); - transform: rotateY(-90deg) translateZ(100px); -} - -.world .box .wall:nth-child(6)::before { - -webkit-transform: rotateX(180deg) rotateZ(180deg) translateZ(-1px); - transform: rotateX(180deg) rotateZ(180deg) translateZ(-1px); - -webkit-animation: zeroFour 4000ms linear infinite; - animation: zeroFour 4000ms linear infinite; -} - -@-webkit-keyframes zeroFour { - 0% { - content: "错"; - } - 100% { - content: "误"; - } -} - -@keyframes zeroFour { - 0% { - content: "错"; - } - 100% { - content: "误"; - } -} - -@-webkit-keyframes roll { - 0% { - -webkit-transform: rotateZ(0deg); - transform: rotateZ(0deg); - } - 85% { - -webkit-transform: rotateZ(90deg); - transform: rotateZ(90deg); - } - 87% { - -webkit-transform: rotateZ(88deg); - transform: rotateZ(88deg); - } - 90% { - -webkit-transform: rotateZ(90deg); - transform: rotateZ(90deg); - } - 100% { - -webkit-transform: rotateZ(90deg); - transform: rotateZ(90deg); - } -} - -@keyframes roll { - 0% { - -webkit-transform: rotateZ(0deg); - transform: rotateZ(0deg); - } - 85% { - -webkit-transform: rotateZ(90deg); - transform: rotateZ(90deg); - } - 87% { - -webkit-transform: rotateZ(88deg); - transform: rotateZ(88deg); - } - 90% { - -webkit-transform: rotateZ(90deg); - transform: rotateZ(90deg); - } - 100% { - -webkit-transform: rotateZ(90deg); - transform: rotateZ(90deg); - } -} - -@-webkit-keyframes slide { - 0% { - -webkit-transform: translateX(0); - transform: translateX(0); - } - 100% { - -webkit-transform: translateX(-200px); - transform: translateX(-200px); - } -} - -@keyframes slide { - 0% { - -webkit-transform: translateX(0); - transform: translateX(0); - } - 100% { - -webkit-transform: translateX(-200px); - transform: translateX(-200px); - } -} diff --git a/src/main/resources/static/wangedit/js/wang.init.js b/src/main/resources/static/wangedit/js/wang.init.js index 29b194e..1f4c6e0 100644 --- a/src/main/resources/static/wangedit/js/wang.init.js +++ b/src/main/resources/static/wangedit/js/wang.init.js @@ -18,21 +18,19 @@ const editorConfig = { uploadImage: { fieldName: 'your-fileName', server: '#', // 可以配置上传应用的地址 - base64LimitSize: 2 * 1024 * 1024, // 5M 以下插入 base64 - // 单个文件的最大体积限制,默认为 2M - maxFileSize: 2 * 1024 * 1024, + base64LimitSize: 500 * 1024, // 500K 以下插入 base64 + // 单个文件的最大体积限制,默认为 500K + maxFileSize: 500 * 1024, // 单个文件上传失败 onFailed(file, res) { - console.log("文件过大") $('#warn-text').html(res); $('.toast').toast(); }, // 上传错误,或者触发 timeout 超时 onError(file, err, res) { - console.log("文件过大") layer.open({ type: 1, //1:自定义内容 2:iframe - title: '图片大于2M', + title: '图片过大(MAX:500KB)', // area: ['500px', '170px'], content: '资源有限,大佬请使用网络图片╮(╯▽╰)╭', btn: ['好吧穷鬼'], @@ -49,11 +47,10 @@ const editorConfig = { } }, onChange(editor) { - // console.log(editor.getHtml()) - // $('#content-textarea').value = editor.getHtml() const content = editor.children - // const contentStr = JSON.stringify(content) - // document.getElementById('content-textarea').value = contentStr + const contentStr = JSON.stringify(content) + $('#contentText-textarea').val(contentStr) + // 当编辑器选区、内容变化时,即触发 const html = editor.getHtml() $('#content-textarea').val(html) } @@ -66,6 +63,10 @@ const editor = E.createEditor({ html: $('#content-textarea').val(), config: editorConfig }) +// 初始化 隐藏框 +const contentInit = editor.children +const contentStrInit = JSON.stringify(contentInit) +$('#contentText-textarea').val(contentStrInit) // 创建 toolbar const toolbar = E.createToolbar({ diff --git a/src/main/resources/templates/blog/editor.html b/src/main/resources/templates/blog/editor.html index f33888e..4848ac5 100644 --- a/src/main/resources/templates/blog/editor.html +++ b/src/main/resources/templates/blog/editor.html @@ -53,6 +53,7 @@
+ diff --git a/src/main/resources/templates/blog/write.html b/src/main/resources/templates/blog/write.html index 1596310..4ffdac1 100644 --- a/src/main/resources/templates/blog/write.html +++ b/src/main/resources/templates/blog/write.html @@ -54,6 +54,7 @@
+ diff --git a/src/main/resources/templates/common/header.html b/src/main/resources/templates/common/header.html index 0299a11..20ca871 100644 --- a/src/main/resources/templates/common/header.html +++ b/src/main/resources/templates/common/header.html @@ -39,7 +39,7 @@
-
+