Ver código fonte

新增菜单栏 接口

xusonglin 5 anos atrás
pai
commit
96b374377f

+ 26 - 0
src/main/java/com/jkcredit/sysnews/model/dto/navigationBar/NavigationBarDto.java

@@ -0,0 +1,26 @@
+package com.jkcredit.sysnews.model.dto.navigationBar;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/3/8 23:53
+ * @version: V1.0
+ **/
+@Data
+public class NavigationBarDto implements Serializable {
+    private static final long serialVersionUID = -779468790358200639L;
+
+    private Long id;
+    private String name;
+    private Long parentId;
+    private String parentIds;
+    private Integer level;
+    private String url;
+    private Integer homePageFlag;
+    private Integer homePageOrder;
+    private Integer activated;
+}

+ 24 - 0
src/main/java/com/jkcredit/sysnews/model/vo/navigationBar/NavigationBarVo.java

@@ -0,0 +1,24 @@
+package com.jkcredit.sysnews.model.vo.navigationBar;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/3/8 23:56
+ * @version: V1.0
+ **/
+@Data
+public class NavigationBarVo implements Serializable {
+    private static final long serialVersionUID = 6290780452818549423L;
+
+    private Long id;
+    private String name;
+    private Long parentId;
+    private Integer level;
+    private String url;
+    private Integer homePageFlag;
+    private Integer homePageOrder;
+}

+ 35 - 0
src/main/java/com/jkcredit/sysnews/resource/web/navigationBar/NavigationBarResource.java

@@ -1,9 +1,22 @@
 package com.jkcredit.sysnews.resource.web.navigationBar;
 
+import com.jkcredit.sysnews.model.dto.navigationBar.NavigationBarDto;
 import com.jkcredit.sysnews.resource.base.WebResource;
+import com.jkcredit.sysnews.resource.web.navigationBar.fb.NavigationBarAddFB;
+import com.jkcredit.sysnews.service.navigationBar.NavigationBarService;
+import com.jkcredit.sysnews.spi.lang.exception.ServiceException;
+import com.jkcredit.sysnews.spi.web.data.ResponseData;
+import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * @description:
  * @author: xusonglin
@@ -13,4 +26,26 @@ import org.springframework.web.bind.annotation.RestController;
 @Slf4j
 @RestController
 public class NavigationBarResource extends WebResource {
+    @Autowired
+    NavigationBarService navigationBarService;
+
+    @PostMapping("/menu")
+    @PreAuthorize("hasPermission('menu','edit')")
+    @ApiOperation(value = "新增菜单栏")
+    public ResponseData saveNavigationBar(@RequestBody List<NavigationBarAddFB> fbList) {
+        try {
+            // todo 导航首页展示顺序是否需要 需要和前端讨论
+            List<NavigationBarDto> navigationBarDtoList = new ArrayList<>();
+            for (NavigationBarAddFB fb : fbList) {
+                validate(fb);
+                NavigationBarDto navigationBarDto = mapper.map(fb, NavigationBarDto.class);
+                navigationBarDtoList.add(navigationBarDto);
+            }
+            navigationBarService.saveNavigationBar(navigationBarDtoList);
+            return ResponseData.success("新增菜单栏成功");
+        } catch (ServiceException e) {
+            log.error(e.getMessage());
+            return ResponseData.failed("新增菜单栏失败,失败原因:" + e.getMessage());
+        }
+    }
 }

+ 30 - 0
src/main/java/com/jkcredit/sysnews/resource/web/navigationBar/fb/NavigationBarAddFB.java

@@ -0,0 +1,30 @@
+package com.jkcredit.sysnews.resource.web.navigationBar.fb;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/3/8 23:49
+ * @version: V1.0
+ **/
+@Data
+public class NavigationBarAddFB implements Serializable {
+    private static final long serialVersionUID = 5371545970154196141L;
+
+    @NotEmpty(message = "菜单名称不能为空")
+    private String name;
+    @NotNull(message = "父类id不能为空")
+    private Long parentId;
+    @NotNull(message = "菜单等级不能为空")
+    private Integer level;
+    private String url;
+    @NotNull(message = "是否首页展示不能为空")
+    private Integer homePageFlag;
+    private Integer homePageOrder;
+}

+ 1 - 0
src/main/java/com/jkcredit/sysnews/resource/web/newsArticle/NewsArticleResource.java

@@ -78,6 +78,7 @@ public class NewsArticleResource extends WebResource {
     @ApiOperation(value = "编辑新闻")
     public ResponseData updateNewsArticle(NewsArticleFB newsArticleFB) {
         try {
+            // todo 新闻内容中的图片
             validate(newsArticleFB);
             NewsArticleDto newsArticleDto = mapper.map(newsArticleFB, NewsArticleDto.class);
             newsArticleService.editNewsArticle(newsArticleDto);

+ 15 - 0
src/main/java/com/jkcredit/sysnews/service/navigationBar/NavigationBarService.java

@@ -0,0 +1,15 @@
+package com.jkcredit.sysnews.service.navigationBar;
+
+import com.jkcredit.sysnews.model.dto.navigationBar.NavigationBarDto;
+
+import java.util.List;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/3/8 23:59
+ * @version: V1.0
+ **/
+public interface NavigationBarService {
+    void saveNavigationBar(List<NavigationBarDto> navigationBarDtoList);
+}

+ 46 - 0
src/main/java/com/jkcredit/sysnews/service/navigationBar/NavigationBarServiceImpl.java

@@ -0,0 +1,46 @@
+package com.jkcredit.sysnews.service.navigationBar;
+
+import com.jkcredit.sysnews.mapper.NavigationBarMapper;
+import com.jkcredit.sysnews.model.dto.navigationBar.NavigationBarDto;
+import com.jkcredit.sysnews.model.po.navigationBar.NavigationBarPo;
+import com.jkcredit.sysnews.service.base.BaseService;
+import com.jkcredit.sysnews.spi.lang.exception.ServiceException;
+import com.jkcredit.sysnews.util.BeanUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/3/8 23:59
+ * @version: V1.0
+ **/
+@Slf4j
+@Service
+@Transactional(readOnly = true)
+public class NavigationBarServiceImpl extends BaseService implements NavigationBarService {
+    @Resource
+    NavigationBarMapper navigationBarMapper;
+
+    @Override
+    @Transactional(rollbackFor = ServiceException.class)
+    public void saveNavigationBar(List<NavigationBarDto> navigationBarDtoList) {
+        try {
+            validate(navigationBarDtoList);
+            for (NavigationBarDto navigationBarDto : navigationBarDtoList) {
+                NavigationBarPo navigationBarPo = new NavigationBarPo();
+                BeanUtil.copyProperties(navigationBarPo, navigationBarDto);
+                navigationBarPo.setCreateTime(new Date());
+                navigationBarMapper.insert(navigationBarPo);
+            }
+        } catch (Exception e) {
+            log.error("新增菜单栏失败,失败原因:{}", e.getMessage());
+            throw new ServiceException("新增菜单栏失败");
+        }
+    }
+}