diff --git a/document_management.iml b/document_management.iml index 519080f..470f4b0 100644 --- a/document_management.iml +++ b/document_management.iml @@ -185,5 +185,6 @@ + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 2e467f6..0934387 100644 --- a/pom.xml +++ b/pom.xml @@ -4,8 +4,8 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - com.bsd - case + com.jingcheng.cms + cms 1.0.0-SNAPSHOT @@ -251,6 +251,12 @@ spring-boot-configuration-processor true + + + org.xerial + sqlite-jdbc + 3.21.0.1 + diff --git a/src/main/java/com/jingcheng/cms/Application.java b/src/main/java/com/jingcheng/cms/Application.java index 1efcd30..c6882d3 100644 --- a/src/main/java/com/jingcheng/cms/Application.java +++ b/src/main/java/com/jingcheng/cms/Application.java @@ -16,7 +16,7 @@ import tk.mybatis.spring.annotation.MapperScan; @SpringBootApplication @EnableConfigurationProperties @EnableScheduling -@MapperScan(basePackages = "com.bsd.cases.mapper") +@MapperScan(basePackages = "com.jingcheng.cms.mapper") public class Application implements CommandLineRunner { private Logger logger = LoggerFactory.getLogger(Application.class); diff --git a/src/main/java/com/jingcheng/cms/conf/ShiroConfig.java b/src/main/java/com/jingcheng/cms/conf/ShiroConfig.java index bea5f37..6758cdc 100644 --- a/src/main/java/com/jingcheng/cms/conf/ShiroConfig.java +++ b/src/main/java/com/jingcheng/cms/conf/ShiroConfig.java @@ -51,8 +51,7 @@ public class ShiroConfig { // 所有请求通过我们自己的JWT Filter filterRuleMap.put("/**", "jwt"); // 访问401和404页面不通过我们的Filter - filterRuleMap.put("/api/adminlogin", "anon"); - filterRuleMap.put("/api/autologin", "anon"); + filterRuleMap.put("/api/login", "anon"); filterRuleMap.put("/api/401", "anon"); factoryBean.setFilterChainDefinitionMap(filterRuleMap); return factoryBean; diff --git a/src/main/java/com/jingcheng/cms/controller/CategoryController.java b/src/main/java/com/jingcheng/cms/controller/CategoryController.java new file mode 100644 index 0000000..81c9d23 --- /dev/null +++ b/src/main/java/com/jingcheng/cms/controller/CategoryController.java @@ -0,0 +1,75 @@ +package com.jingcheng.cms.controller; + +import com.alibaba.fastjson.JSONObject; +import com.jingcheng.cms.model.Category; +import com.jingcheng.cms.model.CategoryType; +import com.jingcheng.cms.service.CategoryService; +import com.jingcheng.cms.util.AjaxRequest; +import com.jingcheng.cms.util.AjaxResult; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +@RestController +@RequestMapping("/api/category") +public class CategoryController { + @Autowired + private CategoryService categoryService; + + @RequestMapping("/all-category-type") + public AjaxResult getAllCategory() { + AjaxResult ajaxResult = new AjaxResult(); + List categoryTypeList= categoryService.getAllCategoryType(); + if (null == categoryTypeList || 0 == categoryTypeList.size()){ + ajaxResult.setRetmsg("分类类别列表为空"); + }else { + ajaxResult.setData(categoryTypeList); + } + return ajaxResult; + } + + /** + * 获取分类分页 + * @param jsonObject + * @return + */ + @RequestMapping("/category-list") + public AjaxResult getAllCategory(@RequestBody JSONObject jsonObject) { + AjaxResult ajaxResult = new AjaxResult(); + JSONObject pageJson= categoryService.getCategoryListByPage(jsonObject); + ajaxResult.setData(pageJson); + return ajaxResult; + } + + /** + * 新增或者更新类别 + * @param jsonObject + * @return + */ + @RequestMapping("/save-category") + public AjaxResult saveCategory(@RequestBody JSONObject jsonObject) { + AjaxResult ajaxResult = categoryService.saveCategory(jsonObject); + return ajaxResult; + } + + /** + * 删除类别 + * @param jsonObject + * @return + */ + @RequestMapping("/del-category") + public AjaxResult delCategory(@RequestBody JSONObject jsonObject) { + AjaxResult ajaxResult = new AjaxResult(); + Long id = jsonObject.getLong("id"); + if (null == id){ + ajaxResult.setRetmsg("id不可为空"); + return ajaxResult; + } + ajaxResult= categoryService.delCategory(id); + return ajaxResult; + } +} diff --git a/src/main/java/com/jingcheng/cms/controller/CaseIndexController.java b/src/main/java/com/jingcheng/cms/controller/LoginController.java similarity index 65% rename from src/main/java/com/jingcheng/cms/controller/CaseIndexController.java rename to src/main/java/com/jingcheng/cms/controller/LoginController.java index 5acfa90..0c3b3f2 100644 --- a/src/main/java/com/jingcheng/cms/controller/CaseIndexController.java +++ b/src/main/java/com/jingcheng/cms/controller/LoginController.java @@ -2,7 +2,9 @@ package com.jingcheng.cms.controller; import com.alibaba.fastjson.JSONObject; import com.jingcheng.cms.model.CaseUsers; +import com.jingcheng.cms.model.Users; import com.jingcheng.cms.service.CaseUsersService; +import com.jingcheng.cms.service.UsersService; import com.jingcheng.cms.util.AjaxResult; import com.jingcheng.cms.util.JWTUtil; import com.jingcheng.cms.util.LogUtils; @@ -22,15 +24,12 @@ import javax.servlet.http.HttpServletResponse; @Api("后台登录API") @RestController @CrossOrigin -public class CaseIndexController { +public class LoginController { - - Logger logger = LogUtils.getBussinessLogger(); - - String mofang = "876215850057f8245d2bd82554bd7e7c"; - String erp = "cb472ab819ba7209e37fbf0e501a2964"; @Resource private CaseUsersService caseUsersService; + @Resource + private UsersService usersService; @RequiresAuthentication @@ -40,56 +39,32 @@ public class CaseIndexController { AjaxResult ajaxResult = new AjaxResult(); ajaxResult.setRetcode(AjaxResult.SUCCESS); - CaseUsers caseUsers = caseUsersService.currentUser(); - ajaxResult.setData(caseUsers); + Users users = usersService.currentUser(); + ajaxResult.setData(users); return ajaxResult; } - @ApiOperation(value = "微信登录", notes = "微信登录") - @ApiImplicitParams({ - @ApiImplicitParam(name = "code", value = "微信授权code") - }) - - @PostMapping("autologin") - public AjaxResult autoLogin(String params) { - - - AjaxResult ajaxResult = new AjaxResult(); - try { - String token = caseUsersService.autoLogin(params); - ajaxResult.setRetcode(AjaxResult.SUCCESS); - ajaxResult.setData(token); - ajaxResult.setRetmsg("自动登录成功"); - } catch (RuntimeException e) { - - e.printStackTrace(); - ajaxResult.setRetmsg("自动登录失败:" + e.getMessage()); - ajaxResult.setRetcode(AjaxResult.FAILED); - } - return ajaxResult; - - } @ApiOperation(value = "后台登录", notes = "后台登录") @ApiImplicitParams({ @ApiImplicitParam(name = "userName", value = "用户名"), @ApiImplicitParam(name = "password", value = "密码") }) - @PostMapping("adminlogin") + @PostMapping("/api/login") public AjaxResult adminLogin(@RequestBody JSONObject params) { AjaxResult ajaxResult = new AjaxResult(); try { - String userName = params.getString("userName"); + String userNo = params.getString("userNo"); String password = params.getString("password"); - if (null == userName) { + if (null == userNo) { ajaxResult.setRetmsg("登录失败, 用户名或密码错误!"); ajaxResult.setRetcode(AjaxResult.FAILED); } else { - CaseUsers caseUsers = caseUsersService.findUser(userName, password); - ajaxResult.setData(JWTUtil.sign(caseUsers.getUserNo())); + Users users = usersService.findUser(userNo, password); + ajaxResult.setData(JWTUtil.sign(users.getUserNo())); ajaxResult.setRetmsg("登录成功"); ajaxResult.setRetcode(AjaxResult.SUCCESS); } @@ -140,7 +115,7 @@ public class CaseIndexController { } - @RequestMapping("/401") + @RequestMapping("/api/401") @ResponseStatus(HttpStatus.UNAUTHORIZED) public AjaxResult unauthorized(HttpServletResponse servletResponse) { @@ -150,24 +125,5 @@ public class CaseIndexController { return ajaxResult; } - @RequestMapping("wxconfig") - public AjaxResult wxconfig(String url) { - - AjaxResult ajaxResult = new AjaxResult(); - try { - - JSONObject jsonObject = WechatAccessUtils.share(url); - ajaxResult.setData(jsonObject); - ajaxResult.setRetcode(AjaxResult.SUCCESS); - ajaxResult.setRetmsg("获取微信配置成功"); - } catch (Exception e) { - - e.printStackTrace(); - ajaxResult.setRetmsg("自动登录失败:" + e.getMessage()); - ajaxResult.setRetcode(AjaxResult.FAILED); - } - return ajaxResult; - } - } diff --git a/src/main/java/com/jingcheng/cms/controller/PopularLabelController.java b/src/main/java/com/jingcheng/cms/controller/PopularLabelController.java new file mode 100644 index 0000000..8285c94 --- /dev/null +++ b/src/main/java/com/jingcheng/cms/controller/PopularLabelController.java @@ -0,0 +1,58 @@ +package com.jingcheng.cms.controller; + +import com.alibaba.fastjson.JSONObject; +import com.jingcheng.cms.service.PopularLabelService; +import com.jingcheng.cms.util.AjaxResult; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/api/popularLabel") +public class PopularLabelController { + @Autowired + private PopularLabelService popularLabelService; + + /** + * 获取热门标签分页 + * @param jsonObject + * @return + */ + @RequestMapping("/popular-label-list") + public AjaxResult getPopularLabelListByPage(@RequestBody JSONObject jsonObject) { + AjaxResult ajaxResult = new AjaxResult(); + JSONObject pageJson= popularLabelService.getPopularLabelListByPage(jsonObject); + ajaxResult.setData(pageJson); + return ajaxResult; + } + + + /** + * 新增或者更新热门 + * @param jsonObject + * @return + */ + @RequestMapping("/save-popular-label") + public AjaxResult savePopularLabel(@RequestBody JSONObject jsonObject) { + AjaxResult ajaxResult = popularLabelService.savePopularLabel(jsonObject); + return ajaxResult; + } + + /** + * 删除热门标签 + * @param jsonObject + * @return + */ + @RequestMapping("/del-popular-label") + public AjaxResult delPopularLabel(@RequestBody JSONObject jsonObject) { + AjaxResult ajaxResult = new AjaxResult(); + Long id = jsonObject.getLong("id"); + if (null == id){ + ajaxResult.setRetmsg("id不可为空"); + return ajaxResult; + } + ajaxResult= popularLabelService.delPopularLabel(id); + return ajaxResult; + } +} diff --git a/src/main/java/com/jingcheng/cms/mapper/ArticleMapper.java b/src/main/java/com/jingcheng/cms/mapper/ArticleMapper.java new file mode 100644 index 0000000..d0f7013 --- /dev/null +++ b/src/main/java/com/jingcheng/cms/mapper/ArticleMapper.java @@ -0,0 +1,10 @@ +package com.jingcheng.cms.mapper; + +import com.jingcheng.cms.model.Article; +import com.jingcheng.cms.util.CommonMapper; +import org.springframework.stereotype.Repository; + +@Repository +public interface ArticleMapper extends CommonMapper
{ + int addArticle(Article article); +} diff --git a/src/main/java/com/jingcheng/cms/mapper/CategoryMapper.java b/src/main/java/com/jingcheng/cms/mapper/CategoryMapper.java new file mode 100644 index 0000000..cda4726 --- /dev/null +++ b/src/main/java/com/jingcheng/cms/mapper/CategoryMapper.java @@ -0,0 +1,12 @@ +package com.jingcheng.cms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jingcheng.cms.model.Category; + +import com.jingcheng.cms.util.CommonMapper; +import org.springframework.stereotype.Repository; + +@Repository +public interface CategoryMapper extends CommonMapper { + int addCategory(Category category); +} diff --git a/src/main/java/com/jingcheng/cms/mapper/CategoryTypeMapper.java b/src/main/java/com/jingcheng/cms/mapper/CategoryTypeMapper.java new file mode 100644 index 0000000..ee96e16 --- /dev/null +++ b/src/main/java/com/jingcheng/cms/mapper/CategoryTypeMapper.java @@ -0,0 +1,10 @@ +package com.jingcheng.cms.mapper; + +import com.jingcheng.cms.model.CategoryType; +import com.jingcheng.cms.util.CommonMapper; +import org.springframework.stereotype.Repository; +import tk.mybatis.mapper.common.BaseMapper; + +@Repository +public interface CategoryTypeMapper extends CommonMapper { +} diff --git a/src/main/java/com/jingcheng/cms/mapper/PopularLabelMapper.java b/src/main/java/com/jingcheng/cms/mapper/PopularLabelMapper.java new file mode 100644 index 0000000..d54a7c2 --- /dev/null +++ b/src/main/java/com/jingcheng/cms/mapper/PopularLabelMapper.java @@ -0,0 +1,10 @@ +package com.jingcheng.cms.mapper; + +import com.jingcheng.cms.model.PopularLabel; +import com.jingcheng.cms.util.CommonMapper; +import org.springframework.stereotype.Repository; + +@Repository +public interface PopularLabelMapper extends CommonMapper { + int addPopularLabel(PopularLabel popularLabel); +} diff --git a/src/main/java/com/jingcheng/cms/mapper/UsersMapper.java b/src/main/java/com/jingcheng/cms/mapper/UsersMapper.java new file mode 100644 index 0000000..0ab9024 --- /dev/null +++ b/src/main/java/com/jingcheng/cms/mapper/UsersMapper.java @@ -0,0 +1,10 @@ +package com.jingcheng.cms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jingcheng.cms.model.Users; +import com.jingcheng.cms.util.CommonMapper; +import org.springframework.stereotype.Repository; + +@Repository +public interface UsersMapper extends CommonMapper,BaseMapper{ +} diff --git a/src/main/java/com/jingcheng/cms/model/Article.java b/src/main/java/com/jingcheng/cms/model/Article.java new file mode 100644 index 0000000..a11732c --- /dev/null +++ b/src/main/java/com/jingcheng/cms/model/Article.java @@ -0,0 +1,45 @@ +package com.jingcheng.cms.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("article") +public class Article extends BaseEntity{ + /** + * 文章标题 + */ + private String title; + + /** + * 1级分类名称 + */ + private String firstCategoryName; + + /** + * 2级分类名称 + */ + private String secondCategoryName; + + /** + * 关键字 + */ + private String keyword; + + /** + * 形式 0-图文 1-视频 + */ + private Integer fileType; + + /** + * 文件路径 + */ + private String filePath; + + /** + * 文章文字 + */ + private byte[] content; +} diff --git a/src/main/java/com/jingcheng/cms/model/BaseEntity.java b/src/main/java/com/jingcheng/cms/model/BaseEntity.java index be95d36..eb25259 100644 --- a/src/main/java/com/jingcheng/cms/model/BaseEntity.java +++ b/src/main/java/com/jingcheng/cms/model/BaseEntity.java @@ -43,9 +43,7 @@ public class BaseEntity { @Column(name = "id") @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date createDateTime; - @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date updateDateTime; private Long createBy; private Long updateBy; diff --git a/src/main/java/com/jingcheng/cms/model/Category.java b/src/main/java/com/jingcheng/cms/model/Category.java new file mode 100644 index 0000000..79ebc9f --- /dev/null +++ b/src/main/java/com/jingcheng/cms/model/Category.java @@ -0,0 +1,19 @@ +package com.jingcheng.cms.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("category") +public class Category extends BaseEntity{ + + private String name; + + private Integer level; + + private String typeName; + + private Integer sortNum; +} diff --git a/src/main/java/com/jingcheng/cms/model/CategoryType.java b/src/main/java/com/jingcheng/cms/model/CategoryType.java new file mode 100644 index 0000000..9e621e0 --- /dev/null +++ b/src/main/java/com/jingcheng/cms/model/CategoryType.java @@ -0,0 +1,14 @@ +package com.jingcheng.cms.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("category_type") +public class CategoryType extends BaseEntity{ + + private String typeName; + +} diff --git a/src/main/java/com/jingcheng/cms/model/PopularLabel.java b/src/main/java/com/jingcheng/cms/model/PopularLabel.java new file mode 100644 index 0000000..5b09688 --- /dev/null +++ b/src/main/java/com/jingcheng/cms/model/PopularLabel.java @@ -0,0 +1,13 @@ +package com.jingcheng.cms.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("popular_label") +public class PopularLabel extends BaseEntity{ + private String name; + private Integer sortNum; +} diff --git a/src/main/java/com/jingcheng/cms/model/Users.java b/src/main/java/com/jingcheng/cms/model/Users.java new file mode 100644 index 0000000..847c959 --- /dev/null +++ b/src/main/java/com/jingcheng/cms/model/Users.java @@ -0,0 +1,17 @@ +package com.jingcheng.cms.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("users") +public class Users extends BaseEntity{ + + private String userName; + + private String userNo; + + private String password; +} diff --git a/src/main/java/com/jingcheng/cms/service/ArticleSerive.java b/src/main/java/com/jingcheng/cms/service/ArticleSerive.java new file mode 100644 index 0000000..54ef9a9 --- /dev/null +++ b/src/main/java/com/jingcheng/cms/service/ArticleSerive.java @@ -0,0 +1,8 @@ +package com.jingcheng.cms.service; + +import com.alibaba.fastjson.JSONObject; +import com.jingcheng.cms.util.AjaxResult; + +public interface ArticleSerive { + AjaxResult saveArticle(JSONObject jsonObject); +} diff --git a/src/main/java/com/jingcheng/cms/service/CategoryService.java b/src/main/java/com/jingcheng/cms/service/CategoryService.java new file mode 100644 index 0000000..298b76c --- /dev/null +++ b/src/main/java/com/jingcheng/cms/service/CategoryService.java @@ -0,0 +1,39 @@ +package com.jingcheng.cms.service; + +import com.alibaba.fastjson.JSONObject; +import com.jingcheng.cms.model.Category; +import com.jingcheng.cms.model.CategoryType; +import com.jingcheng.cms.util.AjaxRequest; +import com.jingcheng.cms.util.AjaxResult; + +import java.util.List; + +public interface CategoryService { + + /** + * 获取所有的分类类别 + * @return + */ + List getAllCategoryType(); + + /** + * 分页获取分类 + * @param jsonObject + * @return + */ + JSONObject getCategoryListByPage(JSONObject jsonObject); + + /** + * 新增或修改分类 + * @param jsonObject + * @return + */ + AjaxResult saveCategory(JSONObject jsonObject); + + /** + * 删除分类 + * @param id + * @return + */ + AjaxResult delCategory(Long id); +} diff --git a/src/main/java/com/jingcheng/cms/service/PopularLabelService.java b/src/main/java/com/jingcheng/cms/service/PopularLabelService.java new file mode 100644 index 0000000..2f4683e --- /dev/null +++ b/src/main/java/com/jingcheng/cms/service/PopularLabelService.java @@ -0,0 +1,22 @@ +package com.jingcheng.cms.service; + +import com.alibaba.fastjson.JSONObject; +import com.jingcheng.cms.util.AjaxResult; + +public interface PopularLabelService { + /** + * 分页获取分类 + * @param jsonObject + * @return + */ + JSONObject getPopularLabelListByPage(JSONObject jsonObject); + + /** + * 新增或修改热门标签 + * @param jsonObject + * @return + */ + AjaxResult savePopularLabel(JSONObject jsonObject); + + AjaxResult delPopularLabel(Long id); +} diff --git a/src/main/java/com/jingcheng/cms/service/UsersService.java b/src/main/java/com/jingcheng/cms/service/UsersService.java new file mode 100644 index 0000000..4181822 --- /dev/null +++ b/src/main/java/com/jingcheng/cms/service/UsersService.java @@ -0,0 +1,13 @@ +package com.jingcheng.cms.service; + +import com.jingcheng.cms.model.Users; + +public interface UsersService { + + Users currentUser(); + + Users selectByUserNo(String key); + + Users findUser(String userName, String password); + +} diff --git a/src/main/java/com/jingcheng/cms/service/impl/ArticleSerivceImpl.java b/src/main/java/com/jingcheng/cms/service/impl/ArticleSerivceImpl.java new file mode 100644 index 0000000..0c973a6 --- /dev/null +++ b/src/main/java/com/jingcheng/cms/service/impl/ArticleSerivceImpl.java @@ -0,0 +1,80 @@ +package com.jingcheng.cms.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.jingcheng.cms.mapper.ArticleMapper; +import com.jingcheng.cms.model.Article; +import com.jingcheng.cms.service.ArticleSerive; +import com.jingcheng.cms.util.AjaxResult; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; + +@Service +@Transactional +public class ArticleSerivceImpl implements ArticleSerive { + + @Resource + private ArticleMapper articleMapper; + + + @Override + public AjaxResult saveArticle(JSONObject jsonObject) { + AjaxResult ajaxResult = new AjaxResult(); + Long id = jsonObject.getLong("id"); + String title = jsonObject.getString("title"); + String firstCategoryName = jsonObject.getString("firstCategoryName"); + String secondCategoryName = jsonObject.getString("secondCategoryName"); + String keyword = jsonObject.getString("keyword"); + Integer fileType = jsonObject.getInteger("fileType"); + Integer state = jsonObject.getInteger("state"); + if (null == state){ + ajaxResult.setRetcode(AjaxResult.FAILED); + ajaxResult.setRetmsg("是否启用不可为空"); + return ajaxResult; + } + if (StringUtils.isBlank(title)){ + ajaxResult.setRetcode(AjaxResult.FAILED); + ajaxResult.setRetmsg("文章标题不可为空"); + return ajaxResult; + } + if (StringUtils.isBlank(firstCategoryName)||StringUtils.isBlank(secondCategoryName)){ + ajaxResult.setRetcode(AjaxResult.FAILED); + ajaxResult.setRetmsg("文章分类不可为空"); + return ajaxResult; + } + if (null == fileType){ + ajaxResult.setRetcode(AjaxResult.FAILED); + ajaxResult.setRetmsg("文章形式不可为空"); + return ajaxResult; + } + if (null == id){ + //新增 + Article article = new Article(); + article.setTitle(title); + article.setFirstCategoryName(firstCategoryName); + article.setSecondCategoryName(secondCategoryName); + article.setKeyword(keyword); + article.setFileType(fileType); + article.setState(state); + + }else { + //修改 + Article article = articleMapper.selectByPrimaryKey(id); + if (null == article){ + ajaxResult.setRetcode(AjaxResult.FAILED); + ajaxResult.setRetmsg("未找到文章"); + return ajaxResult; + } + article.setTitle(title); + article.setFirstCategoryName(firstCategoryName); + article.setSecondCategoryName(secondCategoryName); + article.setKeyword(keyword); + article.setFileType(fileType); + article.setState(state); + articleMapper.updateByPrimaryKeySelective(article); + } + return null; + } +} diff --git a/src/main/java/com/jingcheng/cms/service/impl/CaseContentServiceImpl.java b/src/main/java/com/jingcheng/cms/service/impl/CaseContentServiceImpl.java index 40594e2..3ed1722 100644 --- a/src/main/java/com/jingcheng/cms/service/impl/CaseContentServiceImpl.java +++ b/src/main/java/com/jingcheng/cms/service/impl/CaseContentServiceImpl.java @@ -3,8 +3,7 @@ package com.jingcheng.cms.service.impl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.jingcheng.cms.constants.Constants; -import com.bsd.cases.mapper.*; -import com.bsd.cases.model.*; + import com.jingcheng.cms.mapper.*; import com.jingcheng.cms.model.*; import com.jingcheng.cms.service.CaseContentService; diff --git a/src/main/java/com/jingcheng/cms/service/impl/CaseUsersServiceImpl.java b/src/main/java/com/jingcheng/cms/service/impl/CaseUsersServiceImpl.java index a6c2e65..2889519 100644 --- a/src/main/java/com/jingcheng/cms/service/impl/CaseUsersServiceImpl.java +++ b/src/main/java/com/jingcheng/cms/service/impl/CaseUsersServiceImpl.java @@ -7,10 +7,8 @@ import com.jingcheng.cms.mapper.CaseAreaMapper; import com.jingcheng.cms.mapper.CaseCompanyMapper; import com.jingcheng.cms.mapper.CaseStoreMapper; import com.jingcheng.cms.mapper.CaseUsersMapper; -import com.bsd.cases.model.*; import com.jingcheng.cms.model.*; import com.jingcheng.cms.service.CaseUsersService; -import com.bsd.cases.util.*; import com.github.pagehelper.PageHelper; import com.jingcheng.cms.util.*; import org.apache.poi.hssf.usermodel.HSSFRow; diff --git a/src/main/java/com/jingcheng/cms/service/impl/CategoryServiceImpl.java b/src/main/java/com/jingcheng/cms/service/impl/CategoryServiceImpl.java new file mode 100644 index 0000000..921a920 --- /dev/null +++ b/src/main/java/com/jingcheng/cms/service/impl/CategoryServiceImpl.java @@ -0,0 +1,128 @@ +package com.jingcheng.cms.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.MybatisConfiguration; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.jingcheng.cms.constants.Constants; +import com.jingcheng.cms.mapper.CategoryMapper; +import com.jingcheng.cms.mapper.CategoryTypeMapper; +import com.jingcheng.cms.model.CaseCategory; +import com.jingcheng.cms.model.Category; +import com.jingcheng.cms.model.CategoryType; +import com.jingcheng.cms.service.CategoryService; +import com.jingcheng.cms.util.AjaxRequest; +import com.jingcheng.cms.util.AjaxResult; +import com.jingcheng.cms.util.PageUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.ibatis.builder.MapperBuilderAssistant; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import tk.mybatis.mapper.entity.Example; + +import javax.annotation.Resource; +import java.util.List; +@Service +@Transactional +public class CategoryServiceImpl implements CategoryService { + + @Resource + private CategoryMapper categoryMapper; + @Resource + private CategoryTypeMapper categoryTypeMapper; + + @Override + public List getAllCategoryType() { + + CategoryType findCategoryType = new CategoryType(); + findCategoryType.setState(Constants.STATE_VALID); + List categoryTypeList = categoryTypeMapper.select(findCategoryType); + return categoryTypeList; + } + + @Override + public JSONObject getCategoryListByPage(JSONObject jsonObject) { + + Example example = new Example(Category.class); + example.setOrderByClause("id ASC"); + Example.Criteria criteria = example.createCriteria(); + criteria.andEqualTo("state",Constants.STATE_VALID); + Integer pageNum = jsonObject.getInteger("pageNum") == null ? 1 : jsonObject.getInteger("pageNum"); + Integer pageSize = jsonObject.getInteger("pageSize") == null ? 5 : jsonObject.getInteger("pageSize"); + Integer level = jsonObject.getInteger("level") == null ? 1 : jsonObject.getInteger("level"); + criteria.andEqualTo("level",level); + List CategoryList = categoryMapper.selectByExample(example); + JSONObject pageJson = PageUtils.page(CategoryList,pageNum,pageSize); + return pageJson; + } + + @Override + public AjaxResult saveCategory(JSONObject jsonObject) { + AjaxResult ajaxResult = new AjaxResult(); + Long id = jsonObject.getLong("id"); + String name = jsonObject.getString("name"); + String typeName = jsonObject.getString("typeName"); + Integer level = jsonObject.getInteger("level") == null ? 1:jsonObject.getInteger("level"); + Integer sortNum = jsonObject.getInteger("sortNum"); + if (StringUtils.isBlank(name)){ + ajaxResult.setRetmsg("分类名称不可为空"); + ajaxResult.setRetcode(AjaxResult.FAILED); + return ajaxResult; + } + if (StringUtils.isBlank(typeName)){ + ajaxResult.setRetmsg("分类类别名称不可为空"); + ajaxResult.setRetcode(AjaxResult.FAILED); + return ajaxResult; + } + if (level <= 0){ + ajaxResult.setRetmsg("分类等级错误"); + ajaxResult.setRetcode(AjaxResult.FAILED); + return ajaxResult; + } + if (null != id){ + Category category = categoryMapper.selectByPrimaryKey(id); + if (null == category){ + ajaxResult.setRetmsg("未找到该id分类"); + ajaxResult.setRetcode(AjaxResult.FAILED); + return ajaxResult; + }else { + category.setName(name); + category.setSortNum(sortNum); + category.setTypeName(typeName); + categoryMapper.updateByPrimaryKeySelective(category); + } + ajaxResult.setRetmsg("成功修改分类"); + }else { + Category category = new Category(); + category.setLevel(level); + category.setName(name); + category.setTypeName(typeName); + category.setSortNum(sortNum); + categoryMapper.addCategory(category); + ajaxResult.setRetmsg("成功新增分类"); + } + return ajaxResult; + } + + @Override + public AjaxResult delCategory(Long id) { + AjaxResult ajaxResult = new AjaxResult(); + Category findCategory = new Category(); + findCategory.setId(id); + findCategory.setState(Constants.STATE_VALID); + Category category = categoryMapper.selectOne(findCategory); + if (null == category){ + ajaxResult.setRetmsg("未找到该分类"); + ajaxResult.setRetcode(AjaxResult.FAILED); + return ajaxResult; + }else { + category.setState(Constants.DISABLE); + categoryMapper.updateByPrimaryKeySelective(category); + ajaxResult.setRetmsg("分类删除成功"); + return ajaxResult; + } + } + + +} diff --git a/src/main/java/com/jingcheng/cms/service/impl/PopularLabelServiceImpl.java b/src/main/java/com/jingcheng/cms/service/impl/PopularLabelServiceImpl.java new file mode 100644 index 0000000..d05b47f --- /dev/null +++ b/src/main/java/com/jingcheng/cms/service/impl/PopularLabelServiceImpl.java @@ -0,0 +1,85 @@ +package com.jingcheng.cms.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.jingcheng.cms.constants.Constants; +import com.jingcheng.cms.mapper.PopularLabelMapper; +import com.jingcheng.cms.model.PopularLabel; +import com.jingcheng.cms.service.PopularLabelService; +import com.jingcheng.cms.util.AjaxResult; +import com.jingcheng.cms.util.PageUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import tk.mybatis.mapper.entity.Example; + +import javax.annotation.Resource; +import java.util.List; + +@Service +@Transactional +public class PopularLabelServiceImpl implements PopularLabelService { + + @Resource + private PopularLabelMapper popularLabelMapper; + + @Override + public JSONObject getPopularLabelListByPage(JSONObject jsonObject) { + Example example = new Example(PopularLabel.class); + example.setOrderByClause("id ASC"); + Example.Criteria criteria = example.createCriteria(); + criteria.andEqualTo("state",Constants.STATE_VALID); + Integer pageNum = jsonObject.getInteger("pageNum") == null ? 1 : jsonObject.getInteger("pageNum"); + Integer pageSize = jsonObject.getInteger("pageSize") == null ? 5 : jsonObject.getInteger("pageSize"); + List CategoryList = popularLabelMapper.selectByExample(example); + JSONObject pageJson = PageUtils.page(CategoryList,pageNum,pageSize); + return pageJson; + } + + @Override + public AjaxResult savePopularLabel(JSONObject jsonObject) { + AjaxResult ajaxResult = new AjaxResult(); + Long id = jsonObject.getLong("id"); + String name = jsonObject.getString("name"); + Integer sortNum = jsonObject.getInteger("sortNum"); + if (null != id){ + PopularLabel popularLabel = popularLabelMapper.selectByPrimaryKey(id); + if (null == popularLabel){ + ajaxResult.setRetmsg("未找到该id热门标签"); + ajaxResult.setRetcode(AjaxResult.FAILED); + return ajaxResult; + }else { + popularLabel.setName(name); + popularLabel.setSortNum(sortNum); + popularLabelMapper.updateByPrimaryKeySelective(popularLabel); + } + ajaxResult.setRetmsg("成功修改热门标签"); + }else { + PopularLabel popularLabel = new PopularLabel(); + popularLabel.setName(name); + popularLabel.setSortNum(sortNum); + popularLabelMapper.addPopularLabel(popularLabel); + ajaxResult.setRetmsg("成功新增热门标签"); + } + return ajaxResult; + } + + @Override + public AjaxResult delPopularLabel(Long id) { + AjaxResult ajaxResult = new AjaxResult(); + PopularLabel findPopularLabel = new PopularLabel(); + findPopularLabel.setId(id); + findPopularLabel.setState(Constants.STATE_VALID); + PopularLabel popularLabel = popularLabelMapper.selectOne(findPopularLabel); + if (null == popularLabel){ + ajaxResult.setRetmsg("未找到该热门标签"); + ajaxResult.setRetcode(AjaxResult.FAILED); + return ajaxResult; + }else { + popularLabel.setState(Constants.DISABLE); + popularLabelMapper.updateByPrimaryKeySelective(popularLabel); + ajaxResult.setRetmsg("热门标签删除成功"); + return ajaxResult; + } + } + + +} diff --git a/src/main/java/com/jingcheng/cms/service/impl/UsersServiceImpl.java b/src/main/java/com/jingcheng/cms/service/impl/UsersServiceImpl.java new file mode 100644 index 0000000..634bb82 --- /dev/null +++ b/src/main/java/com/jingcheng/cms/service/impl/UsersServiceImpl.java @@ -0,0 +1,55 @@ +package com.jingcheng.cms.service.impl; + +import com.jingcheng.cms.mapper.UsersMapper; +import com.jingcheng.cms.model.Users; +import com.jingcheng.cms.service.UsersService; +import com.jingcheng.cms.util.JWTUtil; +import com.jingcheng.cms.util.LogUtils; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.subject.Subject; +import org.slf4j.Logger; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; + +@Service +@Transactional +public class UsersServiceImpl implements UsersService { + + private Logger logger = LogUtils.getBussinessLogger(); + @Resource + private UsersMapper usersMapper; + + @Override + public Users currentUser() { + Subject subject = SecurityUtils.getSubject(); + String key = JWTUtil.getKey(subject.getPrincipal().toString()); + Users users = selectByUserNo(key); + return users; + } + + @Override + public Users selectByUserNo(String key) { + Users users = new Users(); + users.setUserNo(key); + users = usersMapper.selectOne(users); + return users; + } + + @Override + public Users findUser(String userName, String password) { + Users users = new Users(); + users.setUserName(userName); + users.setPassword(password); + users = usersMapper.selectOne(users); + + if (null == users) { + users = new Users(); + users.setUserNo(userName); + users.setPassword(password); + } + users = usersMapper.selectOne(users); + return users; + } +} diff --git a/src/main/java/com/jingcheng/cms/util/CommonMapper.java b/src/main/java/com/jingcheng/cms/util/CommonMapper.java index 1412f31..4493637 100644 --- a/src/main/java/com/jingcheng/cms/util/CommonMapper.java +++ b/src/main/java/com/jingcheng/cms/util/CommonMapper.java @@ -1,5 +1,6 @@ package com.jingcheng.cms.util; +import tk.mybatis.mapper.common.BaseMapper; import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.MySqlMapper; @@ -9,7 +10,7 @@ import tk.mybatis.mapper.common.MySqlMapper; * @author * @since 2015-09-06 21:53 */ -public interface CommonMapper extends Mapper, MySqlMapper { +public interface CommonMapper extends Mapper, MySqlMapper{ //TODO //FIXME 特别注意,该接口不能被扫描到,否则会出错 } diff --git a/src/main/java/com/jingcheng/cms/util/CommonRealm.java b/src/main/java/com/jingcheng/cms/util/CommonRealm.java index 4861c25..fa60abc 100644 --- a/src/main/java/com/jingcheng/cms/util/CommonRealm.java +++ b/src/main/java/com/jingcheng/cms/util/CommonRealm.java @@ -1,7 +1,8 @@ package com.jingcheng.cms.util; import com.jingcheng.cms.model.CaseUsers; -import com.jingcheng.cms.service.CaseUsersService; +import com.jingcheng.cms.model.Users; +import com.jingcheng.cms.service.UsersService; import com.jingcheng.cms.shiro.JWTToken; import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.AuthenticationInfo; @@ -20,7 +21,7 @@ public class CommonRealm extends AuthorizingRealm { @Resource - private CaseUsersService caseUsersService; + private UsersService usersService; /** * 大坑!,必须重写此方法,不然Shiro会报错 @@ -37,9 +38,9 @@ public class CommonRealm extends AuthorizingRealm { protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { String key = JWTUtil.getKey(principals.toString()); - CaseUsers caseUsers = caseUsersService.selectByUserNoOrOpenId(key); + Users users = usersService.selectByUserNo(key); SimpleAuthorizationInfo simpleAuthorizationInfo = new SimpleAuthorizationInfo(); - simpleAuthorizationInfo.addRole(caseUsers.getRole().toString()); +// simpleAuthorizationInfo.addRole(caseUsers.getRole().toString()); // Set permission = new HashSet<>(Arrays.asList(caseUsers.getPermission().split(","))); // simpleAuthorizationInfo.addStringPermissions(permission); return simpleAuthorizationInfo; @@ -57,11 +58,11 @@ public class CommonRealm extends AuthorizingRealm { throw new AuthenticationException("token invalid"); } - CaseUsers userBean = caseUsersService.selectByUserNoOrOpenId(username); - if (userBean == null) { + Users users = usersService.selectByUserNo(username); + if (users == null) { throw new AuthenticationException("User didn't existed!"); } - String key = userBean.getUserNo() == null ? userBean.getUserNo() : userBean.getOpenId(); + String key = users.getUserNo(); if (!JWTUtil.verify(token, key)) { throw new AuthenticationException("Username or password error"); diff --git a/src/main/resources/application-production.yml b/src/main/resources/application-production.yml index 2b1ce22..91f7231 100644 --- a/src/main/resources/application-production.yml +++ b/src/main/resources/application-production.yml @@ -42,6 +42,8 @@ mybatis: mapper-locations: classpath:mapper/*.xml configuration: map-underscore-to-camel-case: true + global-config: + db-type: sqlite mapper: mappers: com.jingcheng.cms.util.CommonMapper not-empty: false diff --git a/src/main/resources/mapper/ArticleMapper.xml b/src/main/resources/mapper/ArticleMapper.xml new file mode 100644 index 0000000..3d31773 --- /dev/null +++ b/src/main/resources/mapper/ArticleMapper.xml @@ -0,0 +1,9 @@ + + + + + + INSERT INTO article(`title`,``,`type_name`,`sort_num`) + values (#{name},#{level},#{typeName},#{sortNum}) + + \ No newline at end of file diff --git a/src/main/resources/mapper/CategoryMapper.xml b/src/main/resources/mapper/CategoryMapper.xml new file mode 100644 index 0000000..97ef026 --- /dev/null +++ b/src/main/resources/mapper/CategoryMapper.xml @@ -0,0 +1,9 @@ + + + + + + INSERT INTO category(`name`,`level`,`type_name`,`sort_num`) + values (#{name},#{level},#{typeName},#{sortNum}) + + \ No newline at end of file diff --git a/src/main/resources/mapper/PopularLabelMapper.xml b/src/main/resources/mapper/PopularLabelMapper.xml new file mode 100644 index 0000000..5005e80 --- /dev/null +++ b/src/main/resources/mapper/PopularLabelMapper.xml @@ -0,0 +1,9 @@ + + + + + + INSERT INTO popular_label(`name`,`sort_num`) + values (#{name},#{sortNum}) + + \ No newline at end of file