diff --git a/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/MemberFeedbackController.java b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/MemberFeedbackController.java new file mode 100644 index 000000000..50ce737ea --- /dev/null +++ b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/MemberFeedbackController.java @@ -0,0 +1,72 @@ +package com.jsowell.web.controller.pile; + +import com.jsowell.common.annotation.Log; +import com.jsowell.common.core.controller.BaseController; +import com.jsowell.common.core.domain.AjaxResult; +import com.jsowell.common.core.page.TableDataInfo; +import com.jsowell.common.enums.BusinessType; +import com.jsowell.pile.dto.MemberFeedbackDTO; +import com.jsowell.pile.dto.QueryMemberFeedbackDTO; +import com.jsowell.pile.service.MemberFeedbackService; +import com.jsowell.pile.vo.uniapp.customer.MemberFeedbackVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 会员反馈信息Controller + * + * @author jsowell + * @date 2023-10-12 + */ +@RestController +@RequestMapping("/member/feedback") +public class MemberFeedbackController extends BaseController { + + @Autowired + private MemberFeedbackService memberFeedbackService; + + /** + * 分页查询会员反馈列表 + */ + @PreAuthorize("@ss.hasPermi('member:feedback:list')") + @PostMapping("/list") + public TableDataInfo list(@RequestBody QueryMemberFeedbackDTO dto) { + List list = memberFeedbackService.selectFeedbackList(dto); + return getDataTable(list); + } + + /** + * 根据ID获取反馈详情 + */ + @PreAuthorize("@ss.hasPermi('member:feedback:query')") + @GetMapping("/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + MemberFeedbackVO feedback = memberFeedbackService.getFeedbackById(id); + return AjaxResult.success(feedback); + } + + /** + * 修改反馈内容(回复) + */ + @PreAuthorize("@ss.hasPermi('member:feedback:edit')") + @Log(title = "修改会员反馈", businessType = BusinessType.UPDATE) + @PutMapping("/edit") + public AjaxResult edit(@RequestBody QueryMemberFeedbackDTO dto) { + memberFeedbackService.updateFeedback(dto); + return AjaxResult.success(); + } + + /** + * 删除反馈信息 + */ + @PreAuthorize("@ss.hasPermi('member:feedback:remove')") + @Log(title = "删除会员反馈", businessType = BusinessType.DELETE) + @DeleteMapping + public AjaxResult remove(@RequestParam List ids) { + memberFeedbackService.deleteFeedbackByIds(ids); + return AjaxResult.success(); + } +} diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryMemberFeedbackDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryMemberFeedbackDTO.java new file mode 100644 index 000000000..66a58ab44 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryMemberFeedbackDTO.java @@ -0,0 +1,55 @@ +package com.jsowell.pile.dto; + +import lombok.Data; + +import java.util.Date; + +/** + * 查询会员反馈DTO + */ +@Data +public class QueryMemberFeedbackDTO { + + private Integer pageSize; + private Integer pageNum; + + + private Long id; + + /** + * 会员id + */ + private String memberId; + + /** + * 会员姓名 + */ + private String memberName; + + /** + * 联系方式 + */ + private String contactInfo; + + /** + * 反馈类型 1=功能建议,2=系统BUG,3=服务投诉,4=站点问题,5=电桩问题,6=其他) + */ + private String feedbackType; + + /** + * 处理状态(0=未处理,1=处理中,2=已处理,3=待跟进) + */ + private String status; + + + /** + * 管理员回复内容 + */ + private String replyContent; + + /** + * 管理员回复时间 + */ + private Date replyTime; + +} diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberFeedbackMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberFeedbackMapper.java index 8a408f56a..1f9fac755 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberFeedbackMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberFeedbackMapper.java @@ -1,9 +1,11 @@ package com.jsowell.pile.mapper; import com.jsowell.pile.domain.MemberFeedback; +import com.jsowell.pile.dto.QueryMemberFeedbackDTO; import com.jsowell.pile.vo.uniapp.customer.MemberFeedbackVO; import org.apache.ibatis.annotations.Mapper; +import java.util.Date; import java.util.List; @Mapper @@ -22,4 +24,30 @@ public interface MemberFeedbackMapper { * @return */ List selectMemberFeedbackList(String memberId); + + /** + * 根据条件查询会员反馈信息列表 + * @param dto + * @return + */ + List getFeedbackList(QueryMemberFeedbackDTO dto); + + /** + * 根据会员ID查询会员反馈信息 + * @param id + * @return + */ + MemberFeedbackVO getFeedbackById(Long id); + + /** + * 根据ID更新会员反馈信息 + * @param dto + */ + void updateFeedback(QueryMemberFeedbackDTO dto); + + /** + * 根据ID删除会员反馈信息 + * @param id + */ + void deleteMemberFeedbackById(Long id); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/MemberFeedbackService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/MemberFeedbackService.java index 2d80c55e0..1f03faa3d 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/MemberFeedbackService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/MemberFeedbackService.java @@ -1,6 +1,7 @@ package com.jsowell.pile.service; import com.jsowell.pile.dto.MemberFeedbackDTO; +import com.jsowell.pile.dto.QueryMemberFeedbackDTO; import com.jsowell.pile.vo.uniapp.customer.MemberFeedbackVO; import java.util.List; @@ -19,4 +20,30 @@ public interface MemberFeedbackService { * @return */ List getFeedbackList(String memberId); + + /** + * 条件查询用户反馈信息列表 (管理后台使用) + * @param dto + * @return + */ + List selectFeedbackList(QueryMemberFeedbackDTO dto); + + /** + * 根据memberId获取用户反馈信息 + * @param id + * @return + */ + MemberFeedbackVO getFeedbackById(Long id); + + /** + * 根据memberId删除用户反馈信息 + * @param dto + */ + void updateFeedback(QueryMemberFeedbackDTO dto); + + /** + * 根据ids删除用户反馈信息 + * @param ids + */ + void deleteFeedbackByIds(List ids); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberFeedbackServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberFeedbackServiceImpl.java index a9fd81eae..ffe13644a 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberFeedbackServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberFeedbackServiceImpl.java @@ -1,10 +1,13 @@ package com.jsowell.pile.service.impl; +import com.github.pagehelper.PageHelper; import com.jsowell.common.constant.Constants; +import com.jsowell.common.core.redis.RedisCache; import com.jsowell.common.util.DateUtils; import com.jsowell.pile.domain.MemberBasicInfo; import com.jsowell.pile.domain.MemberFeedback; import com.jsowell.pile.dto.MemberFeedbackDTO; +import com.jsowell.pile.dto.QueryMemberFeedbackDTO; import com.jsowell.pile.mapper.MemberBasicInfoMapper; import com.jsowell.pile.mapper.MemberFeedbackMapper; import com.jsowell.pile.service.MemberFeedbackService; @@ -59,4 +62,49 @@ public class MemberFeedbackServiceImpl implements MemberFeedbackService { public List getFeedbackList(String memberId) { return memberFeedbackMapper.selectMemberFeedbackList(memberId); } + + /** + * 条件查询用户反馈列表 (后管) + * @param dto + * @return + */ + @Override + public List selectFeedbackList(QueryMemberFeedbackDTO dto) { + //分页 + dto.setPageNum(dto.getPageNum() == null? 1 : dto.getPageNum()); + dto.setPageSize(dto.getPageSize() == null? 10 : dto.getPageSize()); + PageHelper.startPage(dto.getPageNum(), dto.getPageSize()); + return memberFeedbackMapper.getFeedbackList(dto); + } + + + /** + * 根据id获取用户反馈信息 + * @param id + * @return + */ + @Override + public MemberFeedbackVO getFeedbackById(Long id) { + return memberFeedbackMapper.getFeedbackById(id); + } + + /** + * 根据id更新用户反馈信息 + * @param dto + */ + @Override + public void updateFeedback(QueryMemberFeedbackDTO dto) { + memberFeedbackMapper.updateFeedback(dto); + } + + /** + * 根据id删除用户反馈信息 + * @param ids + */ + @Override + public void deleteFeedbackByIds(List ids) { + for (Long id : ids) { + memberFeedbackMapper.deleteMemberFeedbackById(id); + } + } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/customer/MemberFeedbackVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/customer/MemberFeedbackVO.java index 13538b298..f41990f65 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/customer/MemberFeedbackVO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/customer/MemberFeedbackVO.java @@ -9,6 +9,8 @@ import java.util.Date; @Builder public class MemberFeedbackVO { + private Long id; + /** * 会员id */ diff --git a/jsowell-pile/src/main/resources/mapper/pile/MemberFeedbackMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/MemberFeedbackMapper.xml index 020fd6b94..1dc0acfe3 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/MemberFeedbackMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/MemberFeedbackMapper.xml @@ -5,22 +5,34 @@ - - - - - - - - - - - - + + + + + + + + + + + + - select id, member_id, member_name, contact_info, feedback_type, feedback_content, status, create_time, update_time, reply_content, reply_time, del_flag from member_feedback + select id, + member_id, + member_name, + contact_info, + feedback_type, + feedback_content, + status, + create_time, + update_time, + reply_content, + reply_time, + del_flag + from member_feedback @@ -102,11 +114,93 @@ + + UPDATE member_feedback + + + status = #{status}, + + + reply_content = #{replyContent}, + + + reply_time = #{replyTime}, + + + WHERE id = #{id} + + + + DELETE + FROM member_feedback + WHERE id = #{id} + + - \ No newline at end of file + + + + +