From f79dd632f83167b3cd5ad01e2f7c494b92c834d3 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 21 Jul 2021 16:23:45 +0800
Subject: [PATCH] 202107021

---
 gc-sys/src/main/java/com/xzx/gc/system/dto/AddSysNewsDto.java                 |   30 +++
 gc-sys/src/main/java/com/xzx/gc/system/dto/UpdateSysNewsDto.java              |   22 ++
 gc-sys/src/main/java/com/xzx/gc/system/vo/SysNewsListVo.java                  |   39 ++++
 gc-core/src/main/java/com/xzx/gc/entity/SysNews.java                          |   32 ++++
 gc-sys/src/main/java/com/xzx/gc/system/dto/DelSysNewsDto.java                 |   10 +
 gc-shop/src/main/resources/sql                                                |   12 +
 gc-sys/src/main/resources/mapper/system/SysNewsMapper.xml                     |   38 ++++
 gc-sys/src/main/java/com/xzx/gc/system/dto/ViewSysNewsDto.java                |    8 +
 gc-sys/src/main/java/com/xzx/gc/system/vo/ViewSysNewsVo.java                  |   24 +++
 gc-sys/src/main/java/com/xzx/gc/system/controller/AdminSysNewsController.java |  120 +++++++++++++++
 gc-sys/src/main/java/com/xzx/gc/system/service/SysNewsService.java            |   77 +++++++++
 gc-sys/src/main/java/com/xzx/gc/system/dto/SysNewsListDto.java                |   15 +
 gc-sys/src/main/java/com/xzx/gc/system/mapper/SysNewsMapper.java              |   24 +++
 gc-sys/src/main/java/com/xzx/gc/system/dto/OnSysNewsDto.java                  |   15 +
 14 files changed, 466 insertions(+), 0 deletions(-)

diff --git a/gc-core/src/main/java/com/xzx/gc/entity/SysNews.java b/gc-core/src/main/java/com/xzx/gc/entity/SysNews.java
new file mode 100644
index 0000000..de0eff3
--- /dev/null
+++ b/gc-core/src/main/java/com/xzx/gc/entity/SysNews.java
@@ -0,0 +1,32 @@
+package com.xzx.gc.entity;
+
+import lombok.Data;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+@Data
+@Table(name="xzx_sys_news")
+public class SysNews {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private long newsId;
+
+    private String title;
+    private String content;
+    private String createTime;
+    private String createUserId;
+    private String picture;
+    //删除0:未删除,1:删除
+    private Integer delFlag;
+    //排序
+    private Integer sort;
+    //状态 1:未发布 2:已发布
+    private Integer status;
+
+
+
+}
diff --git a/gc-shop/src/main/resources/sql b/gc-shop/src/main/resources/sql
index ac4c2ad..c6a337a 100644
--- a/gc-shop/src/main/resources/sql
+++ b/gc-shop/src/main/resources/sql
@@ -63,6 +63,18 @@
 ALTER TABLE `xzx_score_order`
 ADD COLUMN `is_finish`  int(11) NULL DEFAULT 2 COMMENT '后台确认提货  1:是  2:否' AFTER `remark`;
 
+ALTER TABLE `xzx_sys_news`
+DROP COLUMN `del_flag`,
+ADD COLUMN `del_flag`  int(1) NULL DEFAULT 0 COMMENT '删除0:未删除,1:删除' AFTER `picture`;
+
+ALTER TABLE `xzx_sys_news`
+ADD COLUMN `sort`  int(5) NULL DEFAULT 10 COMMENT '排序' AFTER `del_flag`;
+
+ALTER TABLE `xzx_sys_news`
+ADD COLUMN `status`  int(1) NULL DEFAULT 1 COMMENT '状态 1:未发布 2:已发布' AFTER `sort`;
+
+
+
 
 
 
diff --git a/gc-sys/src/main/java/com/xzx/gc/system/controller/AdminSysNewsController.java b/gc-sys/src/main/java/com/xzx/gc/system/controller/AdminSysNewsController.java
new file mode 100644
index 0000000..2bdceef
--- /dev/null
+++ b/gc-sys/src/main/java/com/xzx/gc/system/controller/AdminSysNewsController.java
@@ -0,0 +1,120 @@
+package com.xzx.gc.system.controller;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.xzx.gc.common.constant.CommonEnum;
+import com.xzx.gc.common.constant.Constants;
+import com.xzx.gc.common.dto.log.OperationAppLog;
+import com.xzx.gc.common.request.BaseController;
+import com.xzx.gc.entity.JhyInfo;
+import com.xzx.gc.entity.SysNews;
+import com.xzx.gc.model.JsonResult;
+import com.xzx.gc.system.dto.*;
+import com.xzx.gc.system.mapper.SysNewsMapper;
+import com.xzx.gc.system.service.SysNewsService;
+import com.xzx.gc.system.vo.SysNewsListVo;
+import com.xzx.gc.system.vo.ViewSysNewsVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
+import java.util.Map;
+
+@RestController
+@Api(tags = {"广播通知"})
+@Slf4j
+public class AdminSysNewsController extends BaseController {
+
+    @Autowired
+    private SysNewsService sysNewsService;
+
+    @Resource
+    SysNewsMapper sysNewsMapper;
+
+    @ApiOperation(value = "广播通知--列表")
+    @ApiResponses(
+            @ApiResponse(code = 200, message = "success", response = SysNewsListVo.class)
+    )
+    @PostMapping(value = Constants.ADMIN_VIEW_PREFIX + "/sysNews/sysNewsList.json")
+    public JsonResult<Map<String, Object>> sysNewsService(@RequestBody SysNewsListDto sysNewsListDto) {
+        return JsonResult.success(sysNewsService.sysNewsService(sysNewsListDto));
+    }
+
+    @PostMapping(Constants.ADMIN_VIEW_PREFIX+"/sysNews/addSysNews.json")
+    @ApiOperation(value = "广播通知--添加", notes = "test: 仅0有正确返回")
+    public JsonResult<String> addSysNews(@RequestBody AddSysNewsDto model, HttpServletRequest request) {
+
+        model.setCreateUserId(getAdminName(request));
+        model.setCreateTime(new Date());
+        sysNewsService.addSysNews(model);
+        OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request))
+                .methodName(Constants.SCORESHOP_MODUL_NAME).operateAction("广播通知--添加-").build();
+        mqUtil.sendApp(build);
+        return  JsonResult.success("操作成功!");
+    }
+
+    @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/sysNews/viewSysNews.json")
+    @ApiResponses({@ApiResponse( code = 200, message = "success", response = ViewSysNewsVo.class)})
+    @ApiOperation(value="广播通知--查看通知详情", notes="test: 仅0有正确返回")
+    public JsonResult<ViewSysNewsVo> viewSysNews(@RequestBody ViewSysNewsDto viewSysNewsDto) {
+        Long id = viewSysNewsDto.getId();
+        ViewSysNewsVo viewSysNewsVo = sysNewsService.viewSysNews(id);
+        return JsonResult.success(viewSysNewsVo);
+    }
+
+    @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/sysNews/updateSysNews.json")
+    @ApiOperation(value="广播通知--更新通知详情", notes="test: 仅0有正确返回")
+    public JsonResult updateSysNews(@RequestBody UpdateSysNewsDto model, HttpServletRequest request) {
+        long id = model.getId();
+        SysNews sysNews = sysNewsMapper.selectById(id);
+        if(ObjectUtil.isEmpty(sysNews)){
+            return JsonResult.failMessage("当前记录不存在!");
+        }
+        sysNewsService.updateSysNews(model);
+        OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request))
+                .methodName(Constants.SCORESHOP_MODUL_NAME).operateAction("广播通知--更新通知详情-" + id).build();
+        mqUtil.sendApp(build);
+        return  JsonResult.success("操作成功!");
+    }
+
+    @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/sysNews/delSysNews.json")
+    @ApiOperation(value="广播通知--删除", notes="test: 仅0有正确返回")
+    public JsonResult delSysNews(@RequestBody DelSysNewsDto model, HttpServletRequest request) {
+        long id = model.getId();
+        SysNews sysNews = sysNewsMapper.selectById(id);
+        if(ObjectUtil.isEmpty(sysNews)){
+            return JsonResult.failMessage("当前记录不存在!");
+        }
+        sysNewsService.delSysNews(model);
+        OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request))
+                .methodName(Constants.SCORESHOP_MODUL_NAME).operateAction("广播通知--删除-" + id).build();
+        mqUtil.sendApp(build);
+        return  JsonResult.success("操作成功!");
+    }
+
+    @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/sysNews/onOffSysNews.json")
+    @ApiOperation(value="广播通知--上下架", notes="test: 仅0有正确返回")
+    public JsonResult onOffSysNews(@RequestBody OnSysNewsDto model, HttpServletRequest request) {
+        long id = model.getId();
+        SysNews sysNews = sysNewsMapper.selectById(id);
+        if(ObjectUtil.isEmpty(sysNews)){
+            return JsonResult.failMessage("当前记录不存在!");
+        }
+        sysNewsService.onOffSysNews(model);
+        OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request))
+                .methodName(Constants.SCORESHOP_MODUL_NAME).operateAction("广播通知--删除-" + id).build();
+        mqUtil.sendApp(build);
+        return  JsonResult.success("操作成功!");
+    }
+
+
+}
diff --git a/gc-sys/src/main/java/com/xzx/gc/system/dto/AddSysNewsDto.java b/gc-sys/src/main/java/com/xzx/gc/system/dto/AddSysNewsDto.java
new file mode 100644
index 0000000..0c12508
--- /dev/null
+++ b/gc-sys/src/main/java/com/xzx/gc/system/dto/AddSysNewsDto.java
@@ -0,0 +1,30 @@
+package com.xzx.gc.system.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class AddSysNewsDto {
+
+    @ApiModelProperty(value = "标题")
+    private String title;
+
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+    @ApiModelProperty(value = "排序")
+    private Integer sort;
+
+    @ApiModelProperty(value = "状态:1:未发布 2:立即发布")
+    private Integer status;
+
+    @ApiModelProperty(value="创建人")
+    private String createUserId;
+
+    @ApiModelProperty(value="创建时间")
+    private Date createTime;
+
+
+}
diff --git a/gc-sys/src/main/java/com/xzx/gc/system/dto/DelSysNewsDto.java b/gc-sys/src/main/java/com/xzx/gc/system/dto/DelSysNewsDto.java
new file mode 100644
index 0000000..87da8d2
--- /dev/null
+++ b/gc-sys/src/main/java/com/xzx/gc/system/dto/DelSysNewsDto.java
@@ -0,0 +1,10 @@
+package com.xzx.gc.system.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class DelSysNewsDto {
+    @ApiModelProperty(value = "Id")
+    private long id;
+}
diff --git a/gc-sys/src/main/java/com/xzx/gc/system/dto/OnSysNewsDto.java b/gc-sys/src/main/java/com/xzx/gc/system/dto/OnSysNewsDto.java
new file mode 100644
index 0000000..dc9fdd2
--- /dev/null
+++ b/gc-sys/src/main/java/com/xzx/gc/system/dto/OnSysNewsDto.java
@@ -0,0 +1,15 @@
+package com.xzx.gc.system.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class OnSysNewsDto {
+
+    @ApiModelProperty(value = "Id")
+    private long id;
+
+    @ApiModelProperty(value = "状态 1:未发布 2:已发布")
+    private Integer status;
+
+}
diff --git a/gc-sys/src/main/java/com/xzx/gc/system/dto/SysNewsListDto.java b/gc-sys/src/main/java/com/xzx/gc/system/dto/SysNewsListDto.java
new file mode 100644
index 0000000..11a515a
--- /dev/null
+++ b/gc-sys/src/main/java/com/xzx/gc/system/dto/SysNewsListDto.java
@@ -0,0 +1,15 @@
+package com.xzx.gc.system.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class SysNewsListDto {
+
+    @ApiModelProperty(value = "第几页", required = true)
+    private int page;
+
+    @ApiModelProperty(value = "每一页数量", required = true)
+    private int limit;
+
+}
diff --git a/gc-sys/src/main/java/com/xzx/gc/system/dto/UpdateSysNewsDto.java b/gc-sys/src/main/java/com/xzx/gc/system/dto/UpdateSysNewsDto.java
new file mode 100644
index 0000000..73f6723
--- /dev/null
+++ b/gc-sys/src/main/java/com/xzx/gc/system/dto/UpdateSysNewsDto.java
@@ -0,0 +1,22 @@
+package com.xzx.gc.system.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class UpdateSysNewsDto {
+
+    @ApiModelProperty(value = "Id")
+    private long id;
+
+    @ApiModelProperty(value = "标题")
+    private String title;
+
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+    //排序
+    @ApiModelProperty(value = "排序")
+    private Integer sort;
+
+}
diff --git a/gc-sys/src/main/java/com/xzx/gc/system/dto/ViewSysNewsDto.java b/gc-sys/src/main/java/com/xzx/gc/system/dto/ViewSysNewsDto.java
new file mode 100644
index 0000000..bbbb7a2
--- /dev/null
+++ b/gc-sys/src/main/java/com/xzx/gc/system/dto/ViewSysNewsDto.java
@@ -0,0 +1,8 @@
+package com.xzx.gc.system.dto;
+
+import lombok.Data;
+
+@Data
+public class ViewSysNewsDto {
+    private Long id;
+}
diff --git a/gc-sys/src/main/java/com/xzx/gc/system/mapper/SysNewsMapper.java b/gc-sys/src/main/java/com/xzx/gc/system/mapper/SysNewsMapper.java
new file mode 100644
index 0000000..db8778f
--- /dev/null
+++ b/gc-sys/src/main/java/com/xzx/gc/system/mapper/SysNewsMapper.java
@@ -0,0 +1,24 @@
+package com.xzx.gc.system.mapper;
+
+import com.xzx.gc.entity.SysNews;
+import com.xzx.gc.system.dto.SysNewsListDto;
+import com.xzx.gc.system.vo.SysNewsListVo;
+import com.xzx.gc.util.GcMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface SysNewsMapper extends GcMapper<SysNews> {
+
+    List<SysNewsListVo> selectSysNewsListVo(SysNewsListDto sysNewsListDto);
+
+    SysNews selectById(@Param("id")Long id);
+
+    void updateById(@Param("newsId")long newsId);
+
+    void updateStatusById(@Param("newsId")long id, @Param("status")Integer status);
+
+    void updateSysNews(@Param("title")String title, @Param("content")String content,
+                            @Param("sort")Integer sort, @Param("newsId")long id);
+
+}
diff --git a/gc-sys/src/main/java/com/xzx/gc/system/service/SysNewsService.java b/gc-sys/src/main/java/com/xzx/gc/system/service/SysNewsService.java
new file mode 100644
index 0000000..b61c0e9
--- /dev/null
+++ b/gc-sys/src/main/java/com/xzx/gc/system/service/SysNewsService.java
@@ -0,0 +1,77 @@
+package com.xzx.gc.system.service;
+
+import cn.hutool.core.convert.Convert;
+import cn.hutool.core.date.DateUtil;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.xzx.gc.entity.SysNews;
+import com.xzx.gc.system.dto.*;
+import com.xzx.gc.system.mapper.SysNewsMapper;
+import com.xzx.gc.system.vo.SysNewsListVo;
+import com.xzx.gc.system.vo.ViewSysNewsVo;
+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.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Slf4j
+@Service
+@Transactional
+public class SysNewsService {
+
+    @Resource
+    SysNewsMapper sysNewsMapper;
+
+    public Map<String, Object> sysNewsService(SysNewsListDto sysNewsListDto) {
+        PageHelper.startPage(sysNewsListDto.getPage(), sysNewsListDto.getLimit());
+        List<SysNewsListVo> sysNewsListVos = sysNewsMapper.selectSysNewsListVo(sysNewsListDto);
+        PageInfo<SysNewsListVo> pageInfo = new PageInfo<>(sysNewsListVos);
+
+        Map<String, Object> data = new HashMap<>();
+        int count = Convert.toInt(pageInfo.getTotal());
+        data.put("data", sysNewsListVos);
+        data.put("count", count);
+        data.put("code", 0);
+        return data;
+    }
+
+
+    public ViewSysNewsVo viewSysNews(Long id) {
+        SysNews sysNews = sysNewsMapper.selectById(id);
+        ViewSysNewsVo viewSysNewsVo = new ViewSysNewsVo();
+        viewSysNewsVo.setNewsId(id);
+        viewSysNewsVo.setTitle(sysNews.getTitle());
+        viewSysNewsVo.setContent(sysNews.getContent());
+        viewSysNewsVo.setSort(sysNews.getSort());
+        return viewSysNewsVo;
+    }
+
+    public void updateSysNews(UpdateSysNewsDto model) {
+        sysNewsMapper.updateSysNews(model.getTitle(),model.getContent(),model.getSort(),model.getId());
+    }
+
+    public void addSysNews(AddSysNewsDto model) {
+        SysNews sysNews = new SysNews();
+        sysNews.setCreateTime(DateUtil.format(model.getCreateTime(),"yyyy-MM-dd HH:mm:ss"));
+        sysNews.setCreateUserId(model.getCreateUserId());
+        sysNews.setStatus(model.getStatus());
+        sysNews.setSort(model.getSort());
+        sysNews.setDelFlag(0);
+        sysNews.setTitle(model.getTitle());
+        sysNews.setContent(model.getContent());
+        sysNewsMapper.insertSelective(sysNews);
+    }
+
+    public void delSysNews(DelSysNewsDto model) {
+        sysNewsMapper.updateById(model.getId());
+    }
+
+    public void onOffSysNews(OnSysNewsDto model) {
+        sysNewsMapper.updateStatusById(model.getId(),model.getStatus());
+    }
+}
diff --git a/gc-sys/src/main/java/com/xzx/gc/system/vo/SysNewsListVo.java b/gc-sys/src/main/java/com/xzx/gc/system/vo/SysNewsListVo.java
new file mode 100644
index 0000000..cf4afca
--- /dev/null
+++ b/gc-sys/src/main/java/com/xzx/gc/system/vo/SysNewsListVo.java
@@ -0,0 +1,39 @@
+package com.xzx.gc.system.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "SysNewsListVo", description = "返回参数类")
+public class SysNewsListVo {
+
+    @ApiModelProperty(value = "Id")
+    private long newsId;
+
+    @ApiModelProperty(value = "标题")
+    private String title;
+
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+    @ApiModelProperty(value = "创建时间")
+    private String createTime;
+
+    @ApiModelProperty(value = "创建人")
+    private String createUserId;
+
+    //删除0:未删除,1:删除
+    @ApiModelProperty(value = "删除0:未删除,1:删除")
+    private Integer delFlag;
+
+    //排序
+    @ApiModelProperty(value = "排序")
+    private Integer sort;
+
+    //状态 1:未发布 2:已发布
+    @ApiModelProperty(value = "状态 1:未发布 2:已发布")
+    private Integer status;
+
+
+}
diff --git a/gc-sys/src/main/java/com/xzx/gc/system/vo/ViewSysNewsVo.java b/gc-sys/src/main/java/com/xzx/gc/system/vo/ViewSysNewsVo.java
new file mode 100644
index 0000000..8f8f681
--- /dev/null
+++ b/gc-sys/src/main/java/com/xzx/gc/system/vo/ViewSysNewsVo.java
@@ -0,0 +1,24 @@
+package com.xzx.gc.system.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "ViewSysNewsVo", description = "返回参数类")
+public class ViewSysNewsVo {
+
+    @ApiModelProperty(value = "Id")
+    private long newsId;
+
+    @ApiModelProperty(value = "标题")
+    private String title;
+
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+    //排序
+    @ApiModelProperty(value = "排序")
+    private Integer sort;
+
+}
diff --git a/gc-sys/src/main/resources/mapper/system/SysNewsMapper.xml b/gc-sys/src/main/resources/mapper/system/SysNewsMapper.xml
new file mode 100644
index 0000000..1bb4a94
--- /dev/null
+++ b/gc-sys/src/main/resources/mapper/system/SysNewsMapper.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xzx.gc.system.mapper.SysNewsMapper">
+
+    <select id="selectSysNewsListVo" resultType="com.xzx.gc.system.vo.SysNewsListVo">
+        select * from xzx_sys_news
+        order by sort ASC
+    </select>
+
+    <select id="selectById" resultType="com.xzx.gc.entity.SysNews">
+        select * from xzx_sys_news where news_id = #{id}
+        order by sort ASC
+    </select>
+
+
+    <update id="updateById" parameterType="java.util.Map">
+        update xzx_sys_news
+        set del_flag=1
+        where  news_id = #{newsId}
+    </update>
+
+
+    <update id="updateStatusById" parameterType="java.util.Map">
+        update xzx_sys_news
+        set status = #{status}
+        where  news_id = #{newsId}
+    </update>
+
+    <update id="updateSysNews" parameterType="java.util.Map">
+        update xzx_sys_news
+        set title = #{title},
+            content = #{content},
+            sort = #{sort}
+        where  news_id = #{newsId}
+    </update>
+
+
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.1