Browse Source

feat(phase1): Product/ProductOrder/SysConfig/Admin 后端 Controller

User 3 tháng trước cách đây
mục cha
commit
2ef2152189

+ 33 - 0
zxyj-backend/src/main/java/com/zxyj/controller/admin/AdminController.java

@@ -847,4 +847,37 @@ public class AdminController {
         userMapper.updateById(user);
         return Result.success("审核完成");
     }
+
+    // ========== 商品/订单管理接口 ==========
+
+    @Resource
+    private com.zxyj.service.ProductService productService;
+
+    @Resource
+    private com.zxyj.service.ProductOrderService productOrderService;
+
+    @PostMapping("/product/pending")
+    public Result<java.util.List<com.zxyj.dto.ProductDTO>> productPending() {
+        return productService.pendingReview();
+    }
+
+    @PostMapping("/product/list")
+    public Result<java.util.List<com.zxyj.dto.ProductDTO>> productList(@RequestBody Map<String, Object> params) {
+        String status = (String) params.get("status");
+        return productService.adminList(status);
+    }
+
+    @PostMapping("/product/review")
+    public Result<String> productReview(@RequestBody Map<String, Object> params) {
+        Long productId = Long.parseLong(params.get("productId").toString());
+        String action = (String) params.get("action");
+        String rejectReason = (String) params.get("rejectReason");
+        return productService.review(productId, action, rejectReason);
+    }
+
+    @PostMapping("/order/list")
+    public Result<java.util.List<com.zxyj.dto.ProductOrderDTO>> orderList(@RequestBody Map<String, Object> params) {
+        String status = (String) params.get("status");
+        return productOrderService.adminList(status);
+    }
 }

+ 38 - 0
zxyj-backend/src/main/java/com/zxyj/controller/config/SysConfigController.java

@@ -0,0 +1,38 @@
+package com.zxyj.controller.config;
+
+import com.zxyj.common.Result;
+import com.zxyj.dto.SysConfigDTO;
+import com.zxyj.service.SysConfigService;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/api/admin/config")
+public class SysConfigController {
+
+    @Resource
+    private SysConfigService configService;
+
+    @PostMapping("/list")
+    public Result<List<SysConfigDTO>> list() {
+        return configService.listAll();
+    }
+
+    @PostMapping("/update")
+    public Result<String> update(@RequestBody Map<String, Object> params) {
+        String key = (String) params.get("configKey");
+        String value = (String) params.get("configValue");
+        return configService.update(key, value);
+    }
+
+    @PostMapping("/all")
+    public Result<Map<String, String>> getAllAsMap() {
+        return configService.getAllAsMap();
+    }
+}

+ 60 - 0
zxyj-backend/src/main/java/com/zxyj/controller/product/ProductController.java

@@ -0,0 +1,60 @@
+package com.zxyj.controller.product;
+
+import com.zxyj.common.Result;
+import com.zxyj.dto.ProductDTO;
+import com.zxyj.dto.ProductListQueryDTO;
+import com.zxyj.entity.Product;
+import com.zxyj.service.ProductService;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/api/product")
+public class ProductController {
+
+    @Resource
+    private ProductService productService;
+
+    @PostMapping("/list")
+    public Result<Map<String, Object>> list(@RequestBody ProductListQueryDTO query) {
+        return productService.list(query);
+    }
+
+    @PostMapping("/detail")
+    public Result<ProductDTO> detail(@RequestBody Map<String, Object> params) {
+        Long id = Long.parseLong(params.get("id").toString());
+        return productService.detail(id);
+    }
+
+    @PostMapping("/create")
+    public Result<ProductDTO> create(@RequestBody Product product,
+                                    @RequestHeader(value = "X-User-Id", required = false) Long userId) {
+        return productService.create(product, userId);
+    }
+
+    @PostMapping("/update")
+    public Result<ProductDTO> update(@RequestBody Product product,
+                                    @RequestHeader(value = "X-User-Id", required = false) Long userId) {
+        return productService.update(product, userId);
+    }
+
+    @PostMapping("/my")
+    public Result<List<ProductDTO>> myProducts(@RequestHeader(value = "X-User-Id", required = false) Long userId) {
+        return productService.myProducts(userId);
+    }
+
+    @PostMapping("/shelve")
+    public Result<String> shelve(@RequestBody Map<String, Object> params,
+                                @RequestHeader(value = "X-User-Id", required = false) Long userId) {
+        Long productId = Long.parseLong(params.get("productId").toString());
+        String action = (String) params.get("action");
+        return productService.shelve(productId, userId, action);
+    }
+}

+ 71 - 0
zxyj-backend/src/main/java/com/zxyj/controller/product/ProductOrderController.java

@@ -0,0 +1,71 @@
+package com.zxyj.controller.product;
+
+import com.zxyj.common.Result;
+import com.zxyj.dto.CreateProductOrderDTO;
+import com.zxyj.dto.ProductOrderDTO;
+import com.zxyj.service.ProductOrderService;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/api/product/order")
+public class ProductOrderController {
+
+    @Resource
+    private ProductOrderService orderService;
+
+    @PostMapping("/create")
+    public Result<ProductOrderDTO> create(@RequestBody CreateProductOrderDTO dto,
+                                         @RequestHeader(value = "X-User-Id", required = false) Long userId) {
+        return orderService.create(dto, userId);
+    }
+
+    @PostMapping("/pay")
+    public Result<ProductOrderDTO> pay(@RequestBody Map<String, Object> params,
+                                      @RequestHeader(value = "X-User-Id", required = false) Long userId) {
+        String orderNo = (String) params.get("orderNo");
+        return orderService.pay(orderNo, userId);
+    }
+
+    @PostMapping("/cancel")
+    public Result<String> cancel(@RequestBody Map<String, Object> params,
+                                @RequestHeader(value = "X-User-Id", required = false) Long userId) {
+        String orderNo = (String) params.get("orderNo");
+        return orderService.cancel(orderNo, userId);
+    }
+
+    @PostMapping("/my")
+    public Result<List<ProductOrderDTO>> myOrders(@RequestBody Map<String, Object> params,
+                                                 @RequestHeader(value = "X-User-Id", required = false) Long userId) {
+        String status = (String) params.get("status");
+        return orderService.myOrders(userId, status);
+    }
+
+    @PostMapping("/detail")
+    public Result<ProductOrderDTO> detail(@RequestBody Map<String, Object> params,
+                                        @RequestHeader(value = "X-User-Id", required = false) Long userId) {
+        String orderNo = (String) params.get("orderNo");
+        return orderService.detail(orderNo, userId);
+    }
+
+    @PostMapping("/vendor")
+    public Result<List<ProductOrderDTO>> vendorOrders(@RequestBody Map<String, Object> params,
+                                                     @RequestHeader(value = "X-User-Id", required = false) Long userId) {
+        String status = (String) params.get("status");
+        return orderService.vendorOrders(userId, status);
+    }
+
+    @PostMapping("/confirm")
+    public Result<String> confirm(@RequestBody Map<String, Object> params,
+                                 @RequestHeader(value = "X-User-Id", required = false) Long userId) {
+        String orderNo = (String) params.get("orderNo");
+        return orderService.confirm(orderNo, userId);
+    }
+}