diff --git a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminFeedbackController.java b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminFeedbackController.java new file mode 100644 index 00000000..03ee4287 --- /dev/null +++ b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminFeedbackController.java @@ -0,0 +1,102 @@ +package org.linlinjava.litemall.admin.web; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.linlinjava.litemall.admin.annotation.LoginAdmin; +import org.linlinjava.litemall.core.util.RegexUtil; +import org.linlinjava.litemall.core.util.ResponseUtil; +import org.linlinjava.litemall.core.validator.Order; +import org.linlinjava.litemall.core.validator.Sort; +import org.linlinjava.litemall.db.domain.LitemallFeedback; +import org.linlinjava.litemall.db.service.LitemallFeedbackService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author Yogeek + * @date 2018/8/26 1:11 + */ +@RestController +@RequestMapping("/admin/feedback") +@Validated +public class AdminFeedbackController { + private final Log logger = LogFactory.getLog(AdminFeedbackController.class); + + @Autowired + private LitemallFeedbackService feedbackService; + + @GetMapping("/list") + public Object list(@LoginAdmin Integer adminId, + Integer userId, String username, + @RequestParam(defaultValue = "1") Integer page, + @RequestParam(defaultValue = "10") Integer limit, + @Sort @RequestParam(defaultValue = "add_time") String sort, + @Order @RequestParam(defaultValue = "desc") String order) { + if(adminId == null){ + return ResponseUtil.unlogin(); + } + List feedbackList = feedbackService.querySelective(userId, username, page, limit, sort, order); + int total = feedbackService.countSelective(userId, username, page, limit, sort, order); + Map data = new HashMap<>(); + data.put("total", total); + data.put("items", feedbackList); + + return ResponseUtil.ok(data); + } + + @PostMapping("/create") + public Object create(@LoginAdmin Integer adminId, @RequestBody LitemallFeedback feedback) { + if(adminId == null){ + return ResponseUtil.unlogin(); + } + + String mobile = feedback.getMobile(); + if(!RegexUtil.isMobileExact(mobile)){ + return ResponseUtil.fail(403, "手机号格式不正确"); + } + + feedback.setAddTime(LocalDateTime.now()); + feedbackService.add(feedback); + + return ResponseUtil.ok(feedback); + } + + @GetMapping("/read") + public Object read(@LoginAdmin Integer adminId, @NotNull Integer id){ + if(adminId == null){ + return ResponseUtil.unlogin(); + } + + if(id == null){ + return ResponseUtil.badArgument(); + } + + LitemallFeedback feedback = feedbackService.findById(id); + return ResponseUtil.ok(feedback); + } + + @PostMapping("/update") + public Object update(@LoginAdmin Integer adminId, @RequestBody LitemallFeedback feedback) { + if(adminId == null){ + return ResponseUtil.unlogin(); + } + feedbackService.updateById(feedback); + return ResponseUtil.ok(feedback); + } + + @PostMapping("/delete") + public Object delete(@LoginAdmin Integer adminId, @RequestBody LitemallFeedback feedback){ + if(adminId == null){ + return ResponseUtil.unlogin(); + } + feedbackService.delete(feedback.getId()); + return ResponseUtil.ok(); + } +}