zoujiajian 3 роки тому
батько
коміт
ac4a07ee42

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/mapper/UserComplaintMapper.java

@@ -0,0 +1,13 @@
+package com.cyksj.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.UserComplaint;
+
+/*
+ *项目名: netflix
+ *文件名: UserComplaintMapper
+ *创建者: JavaZou
+ *创建时间:2023/6/16 11:25
+ */
+public interface UserComplaintMapper extends BaseMapper<UserComplaint> {
+}

+ 67 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/UserComplaint.java

@@ -0,0 +1,67 @@
+package com.cyksj.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotNull;
+
+/*
+ *项目名: netflix
+ *文件名: UserComplaint
+ *创建者: JavaZou
+ *创建时间:2023/6/16 11:23
+ */
+@Getter
+@Setter
+public class  UserComplaint extends BaseEntity{
+	private Long userId;
+
+	/**
+	 * 投诉类型
+	 * 1、客服,2、平台
+	 */
+	@NotNull
+	private Integer type;
+
+	/**
+	 * 投诉平台id
+	 */
+	private Long goodsId;
+
+
+	/**
+	 * 投诉客服凭证
+	 */
+	private String csCard;
+
+	/**
+	 * 投诉内容
+	 */
+	@NotNull
+	@Length(max = 255)
+	private String content;
+
+	/**
+	 * 投诉截图凭证
+	 */
+	@Length(max = 1000, message = "图片过多")
+	private String img;
+
+	/**
+	 * 投诉状态
+	 */
+	private Status status;
+
+	@Getter
+	public enum Status{
+		processing("处理中"),
+		success("已处理"),
+		;
+		String desc;
+
+		Status(String desc) {
+			this.desc = desc;
+		}
+	}
+}

+ 1 - 0
netflix-dao/src/main/java/com/cyksj/model/manage/views/OrderDonView.java

@@ -66,6 +66,7 @@ public class OrderDonView {
     private Integer months;
 
     @DbField("o.user_id")
+    @JsonIgnore
     private Long userId;
 
     @DbField("o.money")

+ 1 - 0
netflix-dao/src/main/java/com/cyksj/model/views/RenewalView.java

@@ -67,6 +67,7 @@ public class RenewalView {
     private Integer secondType;
 
     @DbField("gr.user_id")
+    @JsonIgnore
     private Long userId;
 
     @DbField("gr.expiry_time")

+ 43 - 0
netflix-dao/src/main/java/com/cyksj/model/views/UserComplaintFrontView.java

@@ -0,0 +1,43 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/*
+ *项目名: netflix
+ *文件名: UserComplaintFrontView
+ *创建者: JavaZou
+ *创建时间:2023/6/16 11:50
+ */
+@Getter
+@Setter
+@SearchBean(tables = "user_complaint uc left join goods_don g on g.id = uc.goods_id")
+public class UserComplaintFrontView {
+
+	@DbField("uc.type")
+	private Integer type;
+
+	@DbField("uc.user_id")
+	@JsonIgnore
+	private Long userId;
+
+	@DbField("uc.title")
+	private String title;
+
+	@DbField("uc.cs_card")
+	private String csCard;
+
+	@DbField("uc.content")
+	private String content;
+
+	@DbField("uc.img")
+	private String img;
+
+	@DbField("uc.created_time")
+	private Date createdTime;
+}

+ 49 - 0
netflix-dao/src/main/java/com/cyksj/model/views/UserComplaintView.java

@@ -0,0 +1,49 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/*
+ *项目名: netflix
+ *文件名: UserComplaintView
+ *创建者: JavaZou
+ *创建时间:2023/6/16 11:36
+ */
+@Getter
+@Setter
+@SearchBean(tables = "user_complaint uc left join goods_don g on g.id = uc.goods_id")
+public class UserComplaintView {
+	@DbField("uc.id")
+	private Long id;
+
+	@DbField("uc.user_id")
+	private Long userId;
+
+	@DbField("uc.nickname")
+	private String nickname;
+
+	@DbField("uc.type")
+	private Integer type;
+
+	@DbField("uc.goods_id")
+	private Long goodsId;
+
+	@DbField("uc.title")
+	private String title;
+
+	@DbField("uc.cs_card")
+	private String csCard;
+
+	@DbField("uc.content")
+	private String content;
+
+	@DbField("uc.img")
+	private String img;
+
+	@DbField("uc.created_time")
+	private Date createdTime;
+}

+ 14 - 0
netflix-service/src/main/java/com/cyksj/service/user/UserComplaintService.java

@@ -0,0 +1,14 @@
+package com.cyksj.service.user;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.cyksj.model.entity.UserComplaint;
+
+/*
+ *项目名: netflix
+ *文件名: UserComplaintService
+ *创建者: JavaZou
+ *创建时间:2023/6/16 11:28
+ */
+public interface UserComplaintService extends IService<UserComplaint> {
+	void insertUserComplaint(UserComplaint userComplaint);
+}

+ 24 - 0
netflix-service/src/main/java/com/cyksj/service/user/impl/UserComplaintServiceImpl.java

@@ -0,0 +1,24 @@
+package com.cyksj.service.user.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.cyksj.mapper.UserComplaintMapper;
+import com.cyksj.model.entity.UserComplaint;
+import com.cyksj.service.user.UserComplaintService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+/*
+ *项目名: netflix
+ *文件名: UserComplaintServiceImpl
+ *创建者: JavaZou
+ *创建时间:2023/6/16 11:28
+ */
+@Service
+@RequiredArgsConstructor
+public class UserComplaintServiceImpl extends ServiceImpl<UserComplaintMapper,UserComplaint> implements UserComplaintService {
+
+	@Override
+	public void insertUserComplaint(UserComplaint userComplaint) {
+		save(userComplaint);
+	}
+}

+ 54 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/CmsUserComplaintController.java

@@ -0,0 +1,54 @@
+package com.cyksj.web.controller.manage;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.cyksj.dto.Result;
+import com.cyksj.enums.GatewayResponse;
+import com.cyksj.model.entity.UserComplaint;
+import com.cyksj.model.views.UserComplaintView;
+import com.cyksj.service.user.UserComplaintService;
+import com.ejlchina.searcher.BeanSearcher;
+import com.ejlchina.searcher.SearchResult;
+import com.ejlchina.searcher.util.MapUtils;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+
+/*
+ *项目名: netflix
+ *文件名: CmsUserComplaintController
+ *创建者: JavaZou
+ *创建时间:2023/6/16 11:34
+ */
+@RestController
+@RequestMapping("/manage/user/complaint")
+@RequiredArgsConstructor
+public class CmsUserComplaintController {
+	private final UserComplaintService userComplaintService;
+
+	private final BeanSearcher beanSearcher;
+
+	private final HttpServletRequest request;
+
+	/**
+	 * 投诉列表
+	 */
+	@GetMapping("/get")
+	public Result<SearchResult<UserComplaintView>> get() {
+		SearchResult<UserComplaintView> search = beanSearcher.search(UserComplaintView.class, MapUtils.flatBuilder(request.getParameterMap()).build());
+		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
+	}
+
+	/**
+	 * 修改投诉状态
+	 */
+	@PutMapping("/put")
+	public Result<String> updateUserComplaintStatus(@RequestBody UserComplaint userComplaint) {
+		Long id = userComplaint.getId();
+		UserComplaint.Status status = userComplaint.getStatus();
+		userComplaintService.update(null, Wrappers.lambdaUpdate(UserComplaint.class)
+				.set(UserComplaint::getStatus, status)
+				.eq(UserComplaint::getId, id));
+		return GatewayResponse.SUCCESS.newBuilder().toResult();
+	}
+}

+ 58 - 0
netflix-web/src/main/java/com/cyksj/web/controller/user/UserComplaintController.java

@@ -0,0 +1,58 @@
+package com.cyksj.web.controller.user;
+
+import com.cyksj.common.annotation.NoSubmit;
+import com.cyksj.dto.Result;
+import com.cyksj.enums.GatewayResponse;
+import com.cyksj.model.entity.UserComplaint;
+import com.cyksj.model.views.UserComplaintFrontView;
+import com.cyksj.service.user.UserComplaintService;
+import com.cyksj.web.util.StpUserUtil;
+import com.ejlchina.searcher.BeanSearcher;
+import com.ejlchina.searcher.SearchResult;
+import com.ejlchina.searcher.util.MapUtils;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+
+/*
+ *项目名: netflix
+ *文件名: UserComplaintController
+ *创建者: JavaZou
+ *创建时间:2023/6/16 11:26
+ */
+@RestController
+@RequestMapping("/applets/user/complaint")
+@RequiredArgsConstructor
+public class UserComplaintController {
+	private final UserComplaintService userComplaintService;
+
+	private final BeanSearcher beanSearcher;
+
+	private final HttpServletRequest request;
+
+	/**
+	 * 用户投诉
+	 */
+	@PostMapping
+	@NoSubmit
+	public Result<String> insert(@RequestBody @Validated UserComplaint userComplaint) {
+		long userId = StpUserUtil.getLoginIdAsLong();
+		userComplaint.setUserId(userId);
+		userComplaintService.insertUserComplaint(userComplaint);
+		return GatewayResponse.SUCCESS.newBuilder().toResult("投诉成功");
+	}
+
+	/**
+	 * 我的投诉列表
+	 */
+	@GetMapping("/get")
+	public Result<SearchResult<UserComplaintFrontView>> get() {
+		long userId = StpUserUtil.getLoginIdAsLong();
+		SearchResult<UserComplaintFrontView> search = beanSearcher.search(UserComplaintFrontView.class, MapUtils.flatBuilder(request.getParameterMap())
+				.field(UserComplaintFrontView::getUserId, userId)
+				.build());
+		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
+	}
+}