From b562da3b806b20f145fe67704d7612297fdcd66c Mon Sep 17 00:00:00 2001 From: Machengtianjiang Date: Mon, 4 Jan 2021 16:42:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=8C=E6=96=87=E6=9C=AC=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/winery/component/MiniComponent.java | 1 + .../controller/NewsContentController.java | 127 ++++++ .../com/ruoyi/winery/domain/NewsContent.java | 74 +++ .../winery/mapper/NewsContentMapper.java | 14 + .../winery/service/INewsContentService.java | 14 + .../service/impl/NewsContentServiceImpl.java | 18 + .../mapper/news/NewsContentMapper.xml | 22 + .../core/controller/BaseController.java | 6 +- ruoyi-ui/src/api/news/news_content.js | 53 +++ ruoyi-ui/src/api/system/file.js | 15 + ruoyi-ui/src/components/Editor/index.vue | 135 +++++- .../components/UploadImageMultiple/index.vue | 2 - ruoyi-ui/src/mixin/common.js | 2 + ruoyi-ui/src/utils/utils.js | 16 + .../src/views/news/news_content/index.vue | 423 ++++++++++++++++++ 15 files changed, 907 insertions(+), 15 deletions(-) create mode 100644 hope-winery/src/main/java/com/ruoyi/winery/controller/NewsContentController.java create mode 100644 hope-winery/src/main/java/com/ruoyi/winery/domain/NewsContent.java create mode 100644 hope-winery/src/main/java/com/ruoyi/winery/mapper/NewsContentMapper.java create mode 100644 hope-winery/src/main/java/com/ruoyi/winery/service/INewsContentService.java create mode 100644 hope-winery/src/main/java/com/ruoyi/winery/service/impl/NewsContentServiceImpl.java create mode 100644 hope-winery/src/main/resources/mapper/news/NewsContentMapper.xml create mode 100644 ruoyi-ui/src/api/news/news_content.js create mode 100644 ruoyi-ui/src/api/system/file.js create mode 100644 ruoyi-ui/src/utils/utils.js create mode 100644 ruoyi-ui/src/views/news/news_content/index.vue diff --git a/hope-winery/src/main/java/com/ruoyi/winery/component/MiniComponent.java b/hope-winery/src/main/java/com/ruoyi/winery/component/MiniComponent.java index e54dc37e8..a719f61d4 100644 --- a/hope-winery/src/main/java/com/ruoyi/winery/component/MiniComponent.java +++ b/hope-winery/src/main/java/com/ruoyi/winery/component/MiniComponent.java @@ -83,6 +83,7 @@ public class MiniComponent { WxMaPhoneNumberInfo mobile = wxMaService.getUserService().getPhoneNoInfo(sessionKey, encryptedData, iv); user.setMobile(mobile.getPhoneNumber()); + wineryMauserService.saveOrUpdate(user); return mobile.getPhoneNumber(); diff --git a/hope-winery/src/main/java/com/ruoyi/winery/controller/NewsContentController.java b/hope-winery/src/main/java/com/ruoyi/winery/controller/NewsContentController.java new file mode 100644 index 000000000..3a1b202e6 --- /dev/null +++ b/hope-winery/src/main/java/com/ruoyi/winery/controller/NewsContentController.java @@ -0,0 +1,127 @@ +package com.ruoyi.winery.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; + +import java.util.List; +import java.util.Arrays; + +import com.ruoyi.common.utils.StringUtils; +import lombok.RequiredArgsConstructor; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.winery.domain.NewsContent; +import com.ruoyi.winery.service.INewsContentService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 新闻资讯Controller + * + * @author ruoyi + * @date 2020-12-31 + */ +@RequiredArgsConstructor(onConstructor_ = @Autowired) +@RestController +@RequestMapping("/news/news_content" ) +public class NewsContentController extends BaseController { + + private final INewsContentService iNewsContentService; + + /** + * 查询新闻资讯列表 + */ + @PreAuthorize("@ss.hasPermi('news:news_content:list')") + @GetMapping("/list") + public TableDataInfo list(NewsContent newsContent) + { + startPage(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(newsContent); + if (newsContent.getDeptId() != null){ + lqw.eq(NewsContent::getDeptId ,newsContent.getDeptId()); + } + if (StringUtils.isNotBlank(newsContent.getNewsTitle())){ + lqw.eq(NewsContent::getNewsTitle ,newsContent.getNewsTitle()); + } + if (StringUtils.isNotBlank(newsContent.getNewsBody())){ + lqw.eq(NewsContent::getNewsBody ,newsContent.getNewsBody()); + } + if (StringUtils.isNotBlank(newsContent.getNewsImage())){ + lqw.eq(NewsContent::getNewsImage ,newsContent.getNewsImage()); + } + if (newsContent.getNewsType() != null){ + lqw.eq(NewsContent::getNewsType ,newsContent.getNewsType()); + } + if (newsContent.getState() != null){ + lqw.eq(NewsContent::getState ,newsContent.getState()); + } + List list = iNewsContentService.list(lqw); + return getDataTable(list); + } + + /** + * 导出新闻资讯列表 + */ + @PreAuthorize("@ss.hasPermi('news:news_content:export')" ) + @Log(title = "新闻资讯" , businessType = BusinessType.EXPORT) + @GetMapping("/export" ) + public AjaxResult export(NewsContent newsContent) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper(newsContent); + List list = iNewsContentService.list(lqw); + ExcelUtil util = new ExcelUtil(NewsContent. class); + return util.exportExcel(list, "news_content" ); + } + + /** + * 获取新闻资讯详细信息 + */ + @PreAuthorize("@ss.hasPermi('news:news_content:query')" ) + @GetMapping(value = "/{id}" ) + public AjaxResult getInfo(@PathVariable("id" ) String id) { + return AjaxResult.success(iNewsContentService.getById(id)); + } + + /** + * 新增新闻资讯 + */ + @PreAuthorize("@ss.hasPermi('news:news_content:add')" ) + @Log(title = "新闻资讯" , businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(UsernamePasswordAuthenticationToken token, @RequestBody NewsContent newsContent) { + newsContent.setDeptId(getDeptId(token)); + return toAjax(iNewsContentService.save(newsContent) ? 1 : 0); + } + + /** + * 修改新闻资讯 + */ + @PreAuthorize("@ss.hasPermi('news:news_content:edit')" ) + @Log(title = "新闻资讯" , businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody NewsContent newsContent) { + return toAjax(iNewsContentService.updateById(newsContent) ? 1 : 0); + } + + /** + * 删除新闻资讯 + */ + @PreAuthorize("@ss.hasPermi('news:news_content:remove')" ) + @Log(title = "新闻资讯" , businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}" ) + public AjaxResult remove(@PathVariable String[] ids) { + return toAjax(iNewsContentService.removeByIds(Arrays.asList(ids)) ? 1 : 0); + } +} diff --git a/hope-winery/src/main/java/com/ruoyi/winery/domain/NewsContent.java b/hope-winery/src/main/java/com/ruoyi/winery/domain/NewsContent.java new file mode 100644 index 000000000..6fa1d8a59 --- /dev/null +++ b/hope-winery/src/main/java/com/ruoyi/winery/domain/NewsContent.java @@ -0,0 +1,74 @@ +package com.ruoyi.winery.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; +import lombok.experimental.Accessors; +import com.ruoyi.common.annotation.Excel; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import java.io.Serializable; +import java.util.Date; +import java.math.BigDecimal; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 新闻资讯对象 news_content + * + * @author ruoyi + * @date 2020-12-31 + */ +@Data +@ToString +@EqualsAndHashCode +@NoArgsConstructor +@Accessors(chain = true) +@TableName("news_content") +public class NewsContent implements Serializable { + +private static final long serialVersionUID=1L; + + + /** 规格ID */ + @TableId(value = "id", type = IdType.ASSIGN_UUID) + private String id; + + /** 部门ID */ + @Excel(name = "部门ID") + private Long deptId; + + /** 创建者 */ + private String createBy; + + /** 创建时间 */ + private Date createTime; + + /** 更新者 */ + private String updateBy; + + /** 更新时间 */ + private Date updateTime; + + /** 新闻标题 */ + @Excel(name = "新闻标题") + private String newsTitle; + + /** 新闻详情 */ + @Excel(name = "新闻详情") + private String newsBody; + + /** 新闻封面图 */ + @Excel(name = "新闻封面图") + private String newsImage; + + /** 新闻类型 */ + @Excel(name = "新闻类型") + private Integer newsType; + + /** 状态 */ + @Excel(name = "状态") + private Integer state; +} diff --git a/hope-winery/src/main/java/com/ruoyi/winery/mapper/NewsContentMapper.java b/hope-winery/src/main/java/com/ruoyi/winery/mapper/NewsContentMapper.java new file mode 100644 index 000000000..b810dd910 --- /dev/null +++ b/hope-winery/src/main/java/com/ruoyi/winery/mapper/NewsContentMapper.java @@ -0,0 +1,14 @@ +package com.ruoyi.winery.mapper; + +import com.ruoyi.winery.domain.NewsContent; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * 新闻资讯Mapper接口 + * + * @author ruoyi + * @date 2020-12-31 + */ +public interface NewsContentMapper extends BaseMapper { + +} diff --git a/hope-winery/src/main/java/com/ruoyi/winery/service/INewsContentService.java b/hope-winery/src/main/java/com/ruoyi/winery/service/INewsContentService.java new file mode 100644 index 000000000..ed55d36a2 --- /dev/null +++ b/hope-winery/src/main/java/com/ruoyi/winery/service/INewsContentService.java @@ -0,0 +1,14 @@ +package com.ruoyi.winery.service; + +import com.ruoyi.winery.domain.NewsContent; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * 新闻资讯Service接口 + * + * @author ruoyi + * @date 2020-12-31 + */ +public interface INewsContentService extends IService { + +} diff --git a/hope-winery/src/main/java/com/ruoyi/winery/service/impl/NewsContentServiceImpl.java b/hope-winery/src/main/java/com/ruoyi/winery/service/impl/NewsContentServiceImpl.java new file mode 100644 index 000000000..77c561506 --- /dev/null +++ b/hope-winery/src/main/java/com/ruoyi/winery/service/impl/NewsContentServiceImpl.java @@ -0,0 +1,18 @@ +package com.ruoyi.winery.service.impl; + +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.winery.mapper.NewsContentMapper; +import com.ruoyi.winery.domain.NewsContent; +import com.ruoyi.winery.service.INewsContentService; + +/** + * 新闻资讯Service业务层处理 + * + * @author ruoyi + * @date 2020-12-31 + */ +@Service +public class NewsContentServiceImpl extends ServiceImpl implements INewsContentService { + +} diff --git a/hope-winery/src/main/resources/mapper/news/NewsContentMapper.xml b/hope-winery/src/main/resources/mapper/news/NewsContentMapper.xml new file mode 100644 index 000000000..dee69b08b --- /dev/null +++ b/hope-winery/src/main/resources/mapper/news/NewsContentMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java index a9118d2d1..fa8a08eab 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java @@ -102,12 +102,12 @@ public class BaseController * @param token * @return */ - public String getDeptId(UsernamePasswordAuthenticationToken token) { + public Long getDeptId(UsernamePasswordAuthenticationToken token) { JSONObject json = (JSONObject) JSONUtil.parse(token.getPrincipal()); - String deptId = json.getJSONObject("user") + Long deptId = json.getJSONObject("user") .getJSONObject("dept") - .getStr("deptId"); + .getLong("deptId"); return deptId; } diff --git a/ruoyi-ui/src/api/news/news_content.js b/ruoyi-ui/src/api/news/news_content.js new file mode 100644 index 000000000..c1635a348 --- /dev/null +++ b/ruoyi-ui/src/api/news/news_content.js @@ -0,0 +1,53 @@ +import request from '@/utils/request' + +// 查询新闻资讯列表 +export function listNews_content(query) { + return request({ + url: '/news/news_content/list', + method: 'get', + params: query + }) +} + +// 查询新闻资讯详细 +export function getNews_content(id) { + return request({ + url: '/news/news_content/' + id, + method: 'get' + }) +} + +// 新增新闻资讯 +export function addNews_content(data) { + return request({ + url: '/news/news_content', + method: 'post', + data: data + }) +} + +// 修改新闻资讯 +export function updateNews_content(data) { + return request({ + url: '/news/news_content', + method: 'put', + data: data + }) +} + +// 删除新闻资讯 +export function delNews_content(id) { + return request({ + url: '/news/news_content/' + id, + method: 'delete' + }) +} + +// 导出新闻资讯 +export function exportNews_content(query) { + return request({ + url: '/news/news_content/export', + method: 'get', + params: query + }) +} \ No newline at end of file diff --git a/ruoyi-ui/src/api/system/file.js b/ruoyi-ui/src/api/system/file.js new file mode 100644 index 000000000..39fb1a1d6 --- /dev/null +++ b/ruoyi-ui/src/api/system/file.js @@ -0,0 +1,15 @@ +import request from "@/utils/request"; + +export function uploadFile(file) { + + let data = new FormData(); + // 创建一个表单数据 + data.append("file",file); + + // 把图片或文件添加到data + return request({ + url: '/common/upload', + method: 'post', + data + }) +} diff --git a/ruoyi-ui/src/components/Editor/index.vue b/ruoyi-ui/src/components/Editor/index.vue index 77c3062f5..5ba17e891 100644 --- a/ruoyi-ui/src/components/Editor/index.vue +++ b/ruoyi-ui/src/components/Editor/index.vue @@ -1,5 +1,14 @@