diff --git a/hope-winery/src/main/java/com/ruoyi/winery/controller/appdiscuss/AppDiscussController.java b/hope-winery/src/main/java/com/ruoyi/winery/controller/appdiscuss/AppDiscussController.java new file mode 100644 index 000000000..df84cd22e --- /dev/null +++ b/hope-winery/src/main/java/com/ruoyi/winery/controller/appdiscuss/AppDiscussController.java @@ -0,0 +1,149 @@ +package com.ruoyi.winery.controller.appdiscuss; + +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.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.appdiscuss.AppDiscuss; +import com.ruoyi.winery.service.IAppDiscussService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * app评论Controller + * + * @author ruoyi + * @date 2021-01-08 + */ +@RequiredArgsConstructor(onConstructor_ = @Autowired) +@RestController +@RequestMapping("/app/discuss" ) +public class AppDiscussController extends BaseController { + + private final IAppDiscussService iAppDiscussService; + + /** + * 查询app评论列表 + */ + @PreAuthorize("@ss.hasPermi('app:discuss:list')") + @GetMapping("/list") + public TableDataInfo list(AppDiscuss appDiscuss) + { + startPage(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(appDiscuss); + if (appDiscuss.getDeptId() != null){ + lqw.eq(AppDiscuss::getDeptId ,appDiscuss.getDeptId()); + } + if (appDiscuss.getState() != null){ + lqw.eq(AppDiscuss::getState ,appDiscuss.getState()); + } + if (StringUtils.isNotBlank(appDiscuss.getCreateUser())){ + lqw.eq(AppDiscuss::getCreateUser ,appDiscuss.getCreateUser()); + } + if (StringUtils.isNotBlank(appDiscuss.getUpdateUser())){ + lqw.eq(AppDiscuss::getUpdateUser ,appDiscuss.getUpdateUser()); + } + if (StringUtils.isNotBlank(appDiscuss.getAppDiscussReplyId())){ + lqw.eq(AppDiscuss::getAppDiscussReplyId ,appDiscuss.getAppDiscussReplyId()); + } + if (StringUtils.isNotBlank(appDiscuss.getAppDiscussText())){ + lqw.eq(AppDiscuss::getAppDiscussText ,appDiscuss.getAppDiscussText()); + } + if (StringUtils.isNotBlank(appDiscuss.getAppAssociationId())){ + lqw.eq(AppDiscuss::getAppAssociationId ,appDiscuss.getAppAssociationId()); + } + if (StringUtils.isNotBlank(appDiscuss.getAppDiscussImage())){ + lqw.eq(AppDiscuss::getAppDiscussImage ,appDiscuss.getAppDiscussImage()); + } +// if (StringUtils.isNotBlank(appDiscuss.getAppDiscussVideo())){ +// lqw.eq(AppDiscuss::getAppDiscussVideo ,appDiscuss.getAppDiscussVideo()); +// } + if (StringUtils.isNotBlank(appDiscuss.getAppDiscussExtraUsername())){ + lqw.like(AppDiscuss::getAppDiscussExtraUsername ,appDiscuss.getAppDiscussExtraUsername()); + } + if (StringUtils.isNotBlank(appDiscuss.getAppDiscussExtraMobile())){ + lqw.eq(AppDiscuss::getAppDiscussExtraMobile ,appDiscuss.getAppDiscussExtraMobile()); + } + if (appDiscuss.getAppDiscussRecommend() != null){ + lqw.eq(AppDiscuss::getAppDiscussRecommend ,appDiscuss.getAppDiscussRecommend()); + } + if (appDiscuss.getAppDiscussType() != null){ + lqw.eq(AppDiscuss::getAppDiscussType ,appDiscuss.getAppDiscussType()); + } + if (StringUtils.isNotBlank(appDiscuss.getAppDiscussReplyUser())){ + lqw.eq(AppDiscuss::getAppDiscussReplyUser ,appDiscuss.getAppDiscussReplyUser()); + } + List list = iAppDiscussService.list(lqw); + return getDataTable(list); + } + + /** + * 导出app评论列表 + */ + @PreAuthorize("@ss.hasPermi('app:discuss:export')" ) + @Log(title = "app评论" , businessType = BusinessType.EXPORT) + @GetMapping("/export" ) + public AjaxResult export(AppDiscuss appDiscuss) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper(appDiscuss); + List list = iAppDiscussService.list(lqw); + ExcelUtil util = new ExcelUtil(AppDiscuss. class); + return util.exportExcel(list, "discuss" ); + } + + /** + * 获取app评论详细信息 + */ + @PreAuthorize("@ss.hasPermi('app:discuss:query')" ) + @GetMapping(value = "/{id}" ) + public AjaxResult getInfo(@PathVariable("id" ) String id) { + return AjaxResult.success(iAppDiscussService.getById(id)); + } + + /** + * 新增app评论 + */ + @PreAuthorize("@ss.hasPermi('app:discuss:add')" ) + @Log(title = "app评论" , businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody AppDiscuss appDiscuss) { + return toAjax(iAppDiscussService.save(appDiscuss) ? 1 : 0); + } + + /** + * 修改app评论 + */ + @PreAuthorize("@ss.hasPermi('app:discuss:edit')" ) + @Log(title = "app评论" , businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody AppDiscuss appDiscuss) { + return toAjax(iAppDiscussService.updateById(appDiscuss) ? 1 : 0); + } + + /** + * 删除app评论 + */ + @PreAuthorize("@ss.hasPermi('app:discuss:remove')" ) + @Log(title = "app评论" , businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}" ) + public AjaxResult remove(@PathVariable String[] ids) { + return toAjax(iAppDiscussService.removeByIds(Arrays.asList(ids)) ? 1 : 0); + } +} diff --git a/hope-winery/src/main/java/com/ruoyi/winery/controller/mini/TestController.java b/hope-winery/src/main/java/com/ruoyi/winery/controller/mini/TestController.java index 30194ebb0..06b09d933 100644 --- a/hope-winery/src/main/java/com/ruoyi/winery/controller/mini/TestController.java +++ b/hope-winery/src/main/java/com/ruoyi/winery/controller/mini/TestController.java @@ -1,97 +1,97 @@ -package com.ruoyi.winery.controller.mini; - -import com.itextpdf.io.font.FontProgram; -import com.itextpdf.io.font.FontProgramFactory; -import com.itextpdf.io.font.PdfEncodings; -import com.itextpdf.io.image.ImageDataFactory; -import com.itextpdf.kernel.font.PdfFont; -import com.itextpdf.kernel.font.PdfFontFactory; -import com.itextpdf.kernel.geom.PageSize; -import com.itextpdf.kernel.geom.Rectangle; -import com.itextpdf.kernel.pdf.PdfDocument; -import com.itextpdf.kernel.pdf.PdfWriter; -import com.itextpdf.kernel.pdf.xobject.PdfImageXObject; -import com.itextpdf.layout.Document; -import com.itextpdf.layout.element.Paragraph; -import com.itextpdf.layout.element.Text; -import com.itextpdf.layout.property.BackgroundImage; -import com.itextpdf.layout.property.TextAlignment; -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.io.File; -import java.io.FileOutputStream; - -/** - * @author tottimctj - * @since 2020-11-10 - */ -@RestController -@RequestMapping("/winery/test") -@Slf4j -public class TestController { - - public static final String REGULAR = - "classpath:/fonts/PingFang_Heavy.ttf"; - - - public static void main(String[] args) throws Exception { - - FontProgram fontProgram = - FontProgramFactory.createFont(REGULAR); - - - String path = "/Users/tottimctj/Downloads/temp.pdf"; - - PdfFont font = PdfFontFactory.createFont("STSongStd-Light", "UniGB-UCS2-H", false); - PdfFont font2 = PdfFontFactory.createFont( - fontProgram, PdfEncodings.IDENTITY_H, true); - - PdfWriter writer = new PdfWriter(new FileOutputStream(new File(path))); - PdfDocument pdf = new PdfDocument(writer); - Document document = new Document(pdf, new PageSize(500f,505f)); - document.setMargins(0, 0, 0, 0); - Paragraph p = new Paragraph(); - p.setMarginTop(0); - p.setHeight(500); - p.setWidth(500); - p.setFontSize(25); -// Text text1 = new Text("字体1希望软件!").setFont(font); +//package com.ruoyi.winery.controller.mini; // -// text1.setTextAlignment(TextAlignment.CENTER); -// text1.setRelativePosition(200, 200, 200, 200); -// p.add(text1); - - Text text2 = new Text("字体2希望软件!").setFont(font2); - text2.setTextAlignment(TextAlignment.CENTER); - text2.setRelativePosition(0, 200, 0, 0); - p.add(text2); - -// p.setBorder(new SolidBorder(DeviceGray.BLACK,0.5f));//边框 -// p.setBackgroundColor(ColorConstants.GREEN);//绿色你懂的 - - -// Image image = new Image(ImageDataFactory.create("https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=28918940,1444141489&fm=26&gp=0.jpg")); -// image.setHeight(300); -// image.setWidth(200); -// BackgroundSize backgroundSize = new BackgroundSize(); - - - PdfImageXObject imageXObject = new PdfImageXObject(ImageDataFactory.create("https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=28918940,1444141489&fm=26&gp=0.jpg")); - - BackgroundImage backgroundImage = new BackgroundImage(imageXObject); - p.setBackgroundImage(backgroundImage); - - - document.add(p); - - - document.close(); - writer.close(); - pdf.close(); - - - } - -} +//import com.itextpdf.io.font.FontProgram; +//import com.itextpdf.io.font.FontProgramFactory; +//import com.itextpdf.io.font.PdfEncodings; +//import com.itextpdf.io.image.ImageDataFactory; +//import com.itextpdf.kernel.font.PdfFont; +//import com.itextpdf.kernel.font.PdfFontFactory; +//import com.itextpdf.kernel.geom.PageSize; +//import com.itextpdf.kernel.geom.Rectangle; +//import com.itextpdf.kernel.pdf.PdfDocument; +//import com.itextpdf.kernel.pdf.PdfWriter; +//import com.itextpdf.kernel.pdf.xobject.PdfImageXObject; +//import com.itextpdf.layout.Document; +//import com.itextpdf.layout.element.Paragraph; +//import com.itextpdf.layout.element.Text; +//import com.itextpdf.layout.property.BackgroundImage; +//import com.itextpdf.layout.property.TextAlignment; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.web.bind.annotation.RequestMapping; +//import org.springframework.web.bind.annotation.RestController; +// +//import java.io.File; +//import java.io.FileOutputStream; +// +///** +// * @author tottimctj +// * @since 2020-11-10 +// */ +//@RestController +//@RequestMapping("/winery/test") +//@Slf4j +//public class TestController { +// +// public static final String REGULAR = +// "classpath:/fonts/PingFang_Heavy.ttf"; +// +// +// public static void main(String[] args) throws Exception { +// +// FontProgram fontProgram = +// FontProgramFactory.createFont(REGULAR); +// +// +// String path = "/Users/tottimctj/Downloads/temp.pdf"; +// +// PdfFont font = PdfFontFactory.createFont("STSongStd-Light", "UniGB-UCS2-H", false); +// PdfFont font2 = PdfFontFactory.createFont( +// fontProgram, PdfEncodings.IDENTITY_H, true); +// +// PdfWriter writer = new PdfWriter(new FileOutputStream(new File(path))); +// PdfDocument pdf = new PdfDocument(writer); +// Document document = new Document(pdf, new PageSize(500f,505f)); +// document.setMargins(0, 0, 0, 0); +// Paragraph p = new Paragraph(); +// p.setMarginTop(0); +// p.setHeight(500); +// p.setWidth(500); +// p.setFontSize(25); +//// Text text1 = new Text("字体1希望软件!").setFont(font); +//// +//// text1.setTextAlignment(TextAlignment.CENTER); +//// text1.setRelativePosition(200, 200, 200, 200); +//// p.add(text1); +// +// Text text2 = new Text("字体2希望软件!").setFont(font2); +// text2.setTextAlignment(TextAlignment.CENTER); +// text2.setRelativePosition(0, 200, 0, 0); +// p.add(text2); +// +//// p.setBorder(new SolidBorder(DeviceGray.BLACK,0.5f));//边框 +//// p.setBackgroundColor(ColorConstants.GREEN);//绿色你懂的 +// +// +//// Image image = new Image(ImageDataFactory.create("https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=28918940,1444141489&fm=26&gp=0.jpg")); +//// image.setHeight(300); +//// image.setWidth(200); +//// BackgroundSize backgroundSize = new BackgroundSize(); +// +// +// PdfImageXObject imageXObject = new PdfImageXObject(ImageDataFactory.create("https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=28918940,1444141489&fm=26&gp=0.jpg")); +// +// BackgroundImage backgroundImage = new BackgroundImage(imageXObject); +// p.setBackgroundImage(backgroundImage); +// +// +// document.add(p); +// +// +// document.close(); +// writer.close(); +// pdf.close(); +// +// +// } +// +//} diff --git a/hope-winery/src/main/java/com/ruoyi/winery/domain/appdiscuss/AppDiscuss.java b/hope-winery/src/main/java/com/ruoyi/winery/domain/appdiscuss/AppDiscuss.java new file mode 100644 index 000000000..d89eb0b88 --- /dev/null +++ b/hope-winery/src/main/java/com/ruoyi/winery/domain/appdiscuss/AppDiscuss.java @@ -0,0 +1,104 @@ +package com.ruoyi.winery.domain.appdiscuss; + +import com.baomidou.mybatisplus.annotation.IdType; +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 java.io.Serializable; +import java.util.Date; + +/** + * app评论对象 app_discuss + * + * @author ruoyi + * @date 2021-01-08 + */ +@Data +@ToString +@EqualsAndHashCode +@NoArgsConstructor +@Accessors(chain = true) +@TableName("app_discuss") +public class AppDiscuss implements Serializable { + +private static final long serialVersionUID=1L; + + + /** 表主键 */ + @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; + + /** 数据状态,ON为数据启用,OFF为数据停用但仍在前端显示,DEL对数据用户来说已经删除 */ + @Excel(name = "数据状态,ON为数据启用,OFF为数据停用但仍在前端显示,DEL对数据用户来说已经删除") + private Integer state; + + /** 创建数据的用户id */ + @Excel(name = "创建数据的用户id") + private String createUser; + + /** 修改数据的用户id */ + @Excel(name = "修改数据的用户id") + private String updateUser; + + /** 回复评论的id */ + @Excel(name = "回复评论的id") + private String appDiscussReplyId; + + /** 评论内容 */ + @Excel(name = "评论内容") + private String appDiscussText; + + /** 评论的内容id */ + @Excel(name = "评论的内容id") + private String appAssociationId; + + /** 评论的图片 */ + @Excel(name = "评论的图片") + private String appDiscussImage; + +// /** 评论视频 */ +// @Excel(name = "评论视频") +// private String appDiscussVideo; + + /** 评论人姓名 */ + @Excel(name = "评论人姓名") + private String appDiscussExtraUsername; + + /** 评论人手机号码 */ + @Excel(name = "评论人手机号码") + private String appDiscussExtraMobile; + + /** 评论推荐 */ + @Excel(name = "评论推荐") + private Integer appDiscussRecommend; + + /** 评论类型 */ + @Excel(name = "评论类型") + private Integer appDiscussType; + + /** 评论回复人 */ + @Excel(name = "评论回复人") + private String appDiscussReplyUser; +} diff --git a/hope-winery/src/main/java/com/ruoyi/winery/mapper/AppDiscussMapper.java b/hope-winery/src/main/java/com/ruoyi/winery/mapper/AppDiscussMapper.java new file mode 100644 index 000000000..03a26f204 --- /dev/null +++ b/hope-winery/src/main/java/com/ruoyi/winery/mapper/AppDiscussMapper.java @@ -0,0 +1,14 @@ +package com.ruoyi.winery.mapper; + +import com.ruoyi.winery.domain.appdiscuss.AppDiscuss; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * app评论Mapper接口 + * + * @author ruoyi + * @date 2021-01-08 + */ +public interface AppDiscussMapper extends BaseMapper { + +} diff --git a/hope-winery/src/main/java/com/ruoyi/winery/service/IAppDiscussService.java b/hope-winery/src/main/java/com/ruoyi/winery/service/IAppDiscussService.java new file mode 100644 index 000000000..dd4fe141f --- /dev/null +++ b/hope-winery/src/main/java/com/ruoyi/winery/service/IAppDiscussService.java @@ -0,0 +1,14 @@ +package com.ruoyi.winery.service; + +import com.ruoyi.winery.domain.appdiscuss.AppDiscuss; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * app评论Service接口 + * + * @author ruoyi + * @date 2021-01-08 + */ +public interface IAppDiscussService extends IService { + +} diff --git a/hope-winery/src/main/java/com/ruoyi/winery/service/impl/AppDiscussServiceImpl.java b/hope-winery/src/main/java/com/ruoyi/winery/service/impl/AppDiscussServiceImpl.java new file mode 100644 index 000000000..01a435f27 --- /dev/null +++ b/hope-winery/src/main/java/com/ruoyi/winery/service/impl/AppDiscussServiceImpl.java @@ -0,0 +1,18 @@ +package com.ruoyi.winery.service.impl; + +import com.ruoyi.winery.service.IAppDiscussService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.winery.mapper.AppDiscussMapper; +import com.ruoyi.winery.domain.appdiscuss.AppDiscuss; + +/** + * app评论Service业务层处理 + * + * @author ruoyi + * @date 2021-01-08 + */ +@Service +public class AppDiscussServiceImpl extends ServiceImpl implements IAppDiscussService { + +} diff --git a/hope-winery/src/main/resources/mapper/appdiscuss/AppDiscussMapper.xml b/hope-winery/src/main/resources/mapper/appdiscuss/AppDiscussMapper.xml new file mode 100644 index 000000000..47692f6c6 --- /dev/null +++ b/hope-winery/src/main/resources/mapper/appdiscuss/AppDiscussMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ruoyi-ui/src/api/app/discuss.js b/ruoyi-ui/src/api/app/discuss.js new file mode 100644 index 000000000..947deaae1 --- /dev/null +++ b/ruoyi-ui/src/api/app/discuss.js @@ -0,0 +1,53 @@ +import request from '@/utils/request' + +// 查询app评论列表 +export function listDiscuss(query) { + return request({ + url: '/app/discuss/list', + method: 'get', + params: query + }) +} + +// 查询app评论详细 +export function getDiscuss(id) { + return request({ + url: '/app/discuss/' + id, + method: 'get' + }) +} + +// 新增app评论 +export function addDiscuss(data) { + return request({ + url: '/app/discuss', + method: 'post', + data: data + }) +} + +// 修改app评论 +export function updateDiscuss(data) { + return request({ + url: '/app/discuss', + method: 'put', + data: data + }) +} + +// 删除app评论 +export function delDiscuss(id) { + return request({ + url: '/app/discuss/' + id, + method: 'delete' + }) +} + +// 导出app评论 +export function exportDiscuss(query) { + return request({ + url: '/app/discuss/export', + method: 'get', + params: query + }) +} diff --git a/ruoyi-ui/src/views/app/discuss/index.vue b/ruoyi-ui/src/views/app/discuss/index.vue new file mode 100644 index 000000000..58cdd19c1 --- /dev/null +++ b/ruoyi-ui/src/views/app/discuss/index.vue @@ -0,0 +1,484 @@ + + +