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