Przeglądaj źródła

feat: 投诉接口

xdd 3 tygodni temu
rodzic
commit
d29a464c95

+ 0 - 1
fs-admin/src/main/java/com/fs/FSApplication.java

@@ -14,7 +14,6 @@ import org.springframework.transaction.annotation.Transactional;
  * 启动程序
  */
 @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
-@Transactional
 @EnableAsync
 @EnableScheduling
 public class FSApplication

+ 106 - 0
fs-admin/src/main/java/com/fs/his/controller/FsComplaintController.java

@@ -0,0 +1,106 @@
+package com.fs.his.controller;
+
+import com.fs.common.annotation.Log;
+import com.fs.common.core.controller.BaseController;
+import com.fs.common.core.domain.R;
+import com.fs.common.core.page.TableDataInfo;
+import com.fs.common.enums.BusinessType;
+import com.fs.complaint.domain.FsComplaintCategory;
+import com.fs.complaint.dto.SubmitComplaintDTO;
+import com.fs.complaint.mapper.FsComplaintCategoryMapper;
+import com.fs.complaint.param.FsComplaintCategoryParam;
+import com.fs.complaint.service.FsComplaintCategoryService;
+import com.fs.complaint.service.FsComplaintService;
+import com.fs.complaint.vo.FsComplaintCategoryListVO;
+import io.swagger.annotations.Api;
+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.*;
+
+import java.util.List;
+
+@Slf4j
+@Api("投诉接口")
+@RestController
+@RequestMapping(value="/complaint")
+public class FsComplaintController extends BaseController {
+
+    @Autowired
+    private FsComplaintCategoryMapper fsComplaintCategoryMapper;
+
+    @Autowired
+    private FsComplaintCategoryService fsComplaintCategoryService;
+
+
+    /**
+     * 查询投诉分类列表
+     */
+    @ApiOperation("查询投诉分类列表")
+    @PreAuthorize("@ss.hasPermi('complaint:category:list')")
+    @GetMapping("/category/list")
+    public TableDataInfo list(FsComplaintCategoryParam param)
+    {
+        startPage();
+        List<FsComplaintCategoryListVO> list = fsComplaintCategoryMapper.selectFsComplaintCategoryListVO(param);
+        return getDataTable(list);
+    }
+    /**
+     * 根据ID查询投诉分类详情
+     */
+    @ApiOperation("查询投诉分类详情")
+    @PreAuthorize("@ss.hasPermi('complaint:category:query')")
+    @GetMapping("/category/{id}")
+    public R getInfo(@PathVariable("id") Long id)
+    {
+        return R.ok().put("data",fsComplaintCategoryService.selectFsComplaintCategoryById(id));
+    }
+
+    /**
+     * 新增投诉分类
+     */
+    @ApiOperation("新增投诉分类")
+    @PreAuthorize("@ss.hasPermi('complaint:category:add')")
+    @Log(title = "投诉分类", businessType = BusinessType.INSERT)
+    @PostMapping("/category")
+    public R add(@RequestBody FsComplaintCategory fsComplaintCategory)
+    {
+        fsComplaintCategoryService.insertFsComplaintCategory(fsComplaintCategory);
+        return R.ok();
+    }
+    @ApiOperation("修改投诉分类")
+    @PreAuthorize("@ss.hasPermi('complaint:category:edit')")
+    @Log(title = "投诉分类", businessType = BusinessType.UPDATE)
+    @PutMapping("/category")
+    public R edit(@RequestBody FsComplaintCategory fsComplaintCategory)
+    {
+        fsComplaintCategoryService.updateFsComplaintCategory(fsComplaintCategory);
+        return R.ok();
+    }
+    /**
+     * 删除投诉分类
+     */
+    @ApiOperation("删除投诉分类")
+    @PreAuthorize("@ss.hasPermi('complaint:category:remove')")
+    @Log(title = "投诉分类", businessType = BusinessType.DELETE)
+    @DeleteMapping("/category/{ids}")
+    public R remove(@PathVariable Long[] ids)
+    {
+        fsComplaintCategoryService.deleteFsComplaintCategoryByIds(ids);
+        return R.ok();
+    }
+    /**
+     * 修改投诉分类状态
+     */
+    @ApiOperation("修改投诉分类状态")
+    @PreAuthorize("@ss.hasPermi('complaint:category:edit')")
+    @Log(title = "投诉分类状态", businessType = BusinessType.UPDATE)
+    @PutMapping("/category/status")
+    public R changeStatus(@RequestBody FsComplaintCategory fsComplaintCategory)
+    {
+        fsComplaintCategoryService.updateFsComplaintCategoryStatus(fsComplaintCategory);
+        return R.ok();
+    }
+
+}

+ 10 - 0
fs-service/src/main/java/com/fs/complaint/mapper/FsComplaintCategoryMapper.java

@@ -1,6 +1,8 @@
 package com.fs.complaint.mapper;
 
 import com.fs.complaint.domain.FsComplaintCategory;
+import com.fs.complaint.param.FsComplaintCategoryParam;
+import com.fs.complaint.vo.FsComplaintCategoryListVO;
 import org.apache.ibatis.annotations.*;
 
 import java.util.List;
@@ -49,4 +51,12 @@ public interface FsComplaintCategoryMapper {
      */
     @Update("DELETE FROM fs_complaint_category WHERE id = #{id}")
     int deleteById(Long id);
+
+    List<FsComplaintCategoryListVO> selectFsComplaintCategoryListVO(FsComplaintCategoryParam param);
+
+
+    @Select("select * from fs_complaint_category where id=#{id}")
+    FsComplaintCategory selectFsComplaintCategoryById(@Param("id") Long id);
+
+
 }

+ 3 - 0
fs-service/src/main/java/com/fs/complaint/mapper/FsComplaintMapper.java

@@ -1,6 +1,8 @@
 package com.fs.complaint.mapper;
 
 import com.fs.complaint.domain.FsComplaint;
+import com.fs.complaint.param.FsComplaintCategoryParam;
+import com.fs.complaint.vo.FsComplaintCategoryListVO;
 import org.apache.ibatis.annotations.*;
 
 import java.util.List;
@@ -50,4 +52,5 @@ public interface FsComplaintMapper {
      */
     @Update("DELETE FROM fs_complaint WHERE id = #{id}")
     int deleteById(Long id);
+
 }

+ 28 - 0
fs-service/src/main/java/com/fs/complaint/param/FsComplaintCategoryParam.java

@@ -0,0 +1,28 @@
+package com.fs.complaint.param;
+
+import com.fs.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 投诉分类查询参数
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class FsComplaintCategoryParam extends BaseEntity {
+
+    /**
+     * 分类名称
+     */
+    private String categoryName;
+
+    /**
+     * 分类编码
+     */
+    private String categoryCode;
+
+    /**
+     * 状态:1-启用,0-禁用
+     */
+    private Integer status;
+}

+ 47 - 0
fs-service/src/main/java/com/fs/complaint/service/FsComplaintCategoryService.java

@@ -0,0 +1,47 @@
+package com.fs.complaint.service;
+
+import com.fs.complaint.domain.FsComplaintCategory;
+import com.fs.complaint.param.FsComplaintCategoryParam;
+import com.fs.complaint.vo.FsComplaintCategoryListVO;
+
+import java.util.List;
+
+public interface FsComplaintCategoryService {
+    List<FsComplaintCategoryListVO> selectFsComplaintCategoryListVO(FsComplaintCategoryParam param);
+    /**
+     * 根据ID查询投诉分类
+     *
+     * @param id 投诉分类ID
+     * @return 投诉分类
+     */
+    FsComplaintCategory selectFsComplaintCategoryById(Long id);
+    /**
+     * 新增投诉分类
+     *
+     * @param fsComplaintCategory 投诉分类
+     * @return 结果
+     */
+    int insertFsComplaintCategory(FsComplaintCategory fsComplaintCategory);
+    /**
+     * 修改投诉分类
+     *
+     * @param fsComplaintCategory 投诉分类
+     * @return 结果
+     */
+    int updateFsComplaintCategory(FsComplaintCategory fsComplaintCategory);
+    /**
+     * 批量删除投诉分类
+     *
+     * @param ids 需要删除的投诉分类ID
+     * @return 结果
+     */
+    void deleteFsComplaintCategoryByIds(Long[] ids);
+    /**
+     * 修改投诉分类状态
+     *
+     * @param fsComplaintCategory 投诉分类
+     * @return 结果
+     */
+    int updateFsComplaintCategoryStatus(FsComplaintCategory fsComplaintCategory);
+
+}

+ 7 - 0
fs-service/src/main/java/com/fs/complaint/service/FsComplaintService.java

@@ -1,7 +1,14 @@
 package com.fs.complaint.service;
 
+import com.fs.complaint.domain.FsComplaintCategory;
 import com.fs.complaint.dto.SubmitComplaintDTO;
+import com.fs.complaint.param.FsComplaintCategoryParam;
+import com.fs.complaint.vo.FsComplaintCategoryListVO;
+
+import java.util.List;
 
 public interface FsComplaintService {
     void submitComplaint(SubmitComplaintDTO dto);
+
+
 }

+ 63 - 0
fs-service/src/main/java/com/fs/complaint/service/impl/FsComplaintCategoryServiceImpl.java

@@ -0,0 +1,63 @@
+package com.fs.complaint.service.impl;
+
+import com.fs.common.exception.ServiceException;
+import com.fs.common.utils.StringUtils;
+import com.fs.complaint.domain.FsComplaintCategory;
+import com.fs.complaint.mapper.FsComplaintCategoryMapper;
+import com.fs.complaint.param.FsComplaintCategoryParam;
+import com.fs.complaint.service.FsComplaintCategoryService;
+import com.fs.complaint.vo.FsComplaintCategoryListVO;
+import com.tencentcloudapi.tiems.v20190416.models.Runtime;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.Collections;
+import java.util.List;
+@Slf4j
+@Service
+public class FsComplaintCategoryServiceImpl implements FsComplaintCategoryService {
+    @Autowired
+    private FsComplaintCategoryMapper fsComplaintCategoryMapper;
+
+    @Override
+    public List<FsComplaintCategoryListVO> selectFsComplaintCategoryListVO(FsComplaintCategoryParam param) {
+        return fsComplaintCategoryMapper.selectFsComplaintCategoryListVO(param);
+    }
+
+    @Override
+    public FsComplaintCategory selectFsComplaintCategoryById(Long id) {
+        return fsComplaintCategoryMapper.selectFsComplaintCategoryById(id);
+    }
+
+    @Override
+    public int insertFsComplaintCategory(FsComplaintCategory fsComplaintCategory) {
+
+        fsComplaintCategory.setCreateTime(LocalDateTime.now());
+        fsComplaintCategory.setUpdateTime(LocalDateTime.now());
+        return fsComplaintCategoryMapper.insert(fsComplaintCategory);
+    }
+
+    @Override
+    public int updateFsComplaintCategory(FsComplaintCategory fsComplaintCategory) {
+
+        fsComplaintCategory.setUpdateTime(LocalDateTime.now());
+        return fsComplaintCategoryMapper.update(fsComplaintCategory);
+
+    }
+
+    @Override
+    public void deleteFsComplaintCategoryByIds(Long[] ids) {
+        for(Long id : ids) {
+            fsComplaintCategoryMapper.deleteById(id);
+        }
+    }
+
+    @Override
+    public int updateFsComplaintCategoryStatus(FsComplaintCategory fsComplaintCategory) {
+        fsComplaintCategory.setUpdateTime(LocalDateTime.now());
+        return fsComplaintCategoryMapper.update(fsComplaintCategory);
+    }
+
+}

+ 5 - 0
fs-service/src/main/java/com/fs/complaint/service/impl/FsComplaintServiceImpl.java

@@ -8,7 +8,9 @@ import com.fs.complaint.domain.FsComplaintAttachment;
 import com.fs.complaint.dto.SubmitComplaintDTO;
 import com.fs.complaint.mapper.FsComplaintAttachmentMapper;
 import com.fs.complaint.mapper.FsComplaintMapper;
+import com.fs.complaint.param.FsComplaintCategoryParam;
 import com.fs.complaint.service.FsComplaintService;
+import com.fs.complaint.vo.FsComplaintCategoryListVO;
 import org.bouncycastle.oer.its.etsi102941.Url;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -17,6 +19,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 @Service
@@ -58,4 +61,6 @@ public class FsComplaintServiceImpl implements FsComplaintService {
         }
         fsComplaintAttachmentMapper.batchInsert(attachments);
     }
+
+
 }

+ 50 - 0
fs-service/src/main/java/com/fs/complaint/vo/FsComplaintCategoryListVO.java

@@ -0,0 +1,50 @@
+package com.fs.complaint.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 投诉分类列表VO
+ */
+@Data
+public class FsComplaintCategoryListVO {
+
+    /**
+     * 主键ID
+     */
+    private Long id;
+
+    /**
+     * 分类名称
+     */
+    private String categoryName;
+
+    /**
+     * 分类编码
+     */
+    private String categoryCode;
+
+    /**
+     * 排序
+     */
+    private Integer sortOrder;
+
+    /**
+     * 状态:1-启用,0-禁用
+     */
+    private Integer status;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    /**
+     * 更新时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+}

+ 1 - 0
fs-service/src/main/java/com/fs/recharge/service/impl/RechargeTemplateServiceImpl.java

@@ -140,6 +140,7 @@ public class RechargeTemplateServiceImpl extends ServiceImpl<RechargeTemplateMap
     private FsUserRechargeRecordService fsUserRechargeRecordService;
 
     @Override
+    @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
     public R payment(RechargeParam param) {
 
         // 1. 验证充值参数

+ 44 - 0
fs-service/src/main/resources/mapper/complaint/FsComplaintCategoryMapper.xml

@@ -0,0 +1,44 @@
+<?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.fs.complaint.mapper.FsComplaintCategoryMapper">
+
+    <resultMap type="com.fs.complaint.vo.FsComplaintCategoryListVO" id="FsComplaintCategoryListVOResult">
+        <result property="id"           column="id"           />
+        <result property="categoryName" column="category_name" />
+        <result property="categoryCode" column="category_code" />
+        <result property="sortOrder"    column="sort_order"    />
+        <result property="status"       column="status"        />
+        <result property="createTime"   column="create_time"   />
+        <result property="updateTime"   column="update_time"   />
+    </resultMap>
+
+    <sql id="selectFsComplaintCategoryVo">
+        select id, category_name, category_code, sort_order, status, create_time, update_time
+        from fs_complaint_category
+    </sql>
+
+    <select id="selectFsComplaintCategoryListVO" parameterType="com.fs.complaint.param.FsComplaintCategoryParam" resultMap="FsComplaintCategoryListVOResult">
+        <include refid="selectFsComplaintCategoryVo"/>
+        <where>
+            <if test="categoryName != null and categoryName != ''">
+                AND category_name LIKE CONCAT('%', #{categoryName}, '%')
+            </if>
+            <if test="categoryCode != null and categoryCode != ''">
+                AND category_code = #{categoryCode}
+            </if>
+            <if test="status != null">
+                AND status = #{status}
+            </if>
+            <if test="params.beginTime != null and params.beginTime != ''">
+                AND create_time >= #{params.beginTime}
+            </if>
+            <if test="params.endTime != null and params.endTime != ''">
+                AND create_time &lt;= #{params.endTime}
+            </if>
+        </where>
+        ORDER BY sort_order ASC, create_time DESC
+    </select>
+
+</mapper>