feat: harden phase one workflows

This commit is contained in:
王鹏
2026-07-14 16:04:51 +08:00
parent 47f4a24760
commit 767534df48
103 changed files with 4849 additions and 388 deletions

View File

@@ -1,6 +1,8 @@
package com.linhelp.groupbuy;
import com.linhelp.common.api.ApiResponse;
import com.linhelp.common.api.PageResponse;
import com.linhelp.common.enums.GroupBuyOrderStatus;
import com.linhelp.common.security.AuthService;
import com.linhelp.common.security.CurrentUser;
import com.linhelp.common.security.RequireRole;
@@ -9,6 +11,7 @@ import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
@@ -50,43 +53,68 @@ public class GroupBuyController {
CurrentUser user = authService.currentUser();
request.setTenantId(user.getTenantId());
request.setCommunityId(user.getCommunityId());
return ApiResponse.ok(groupBuyService.update(id, request));
return ApiResponse.ok(groupBuyService.updateAdmin(user.getCommunityId(), id, request));
}
@PutMapping("/api/admin/group-buys/{id}/start")
@RequireRole({"PLATFORM_ADMIN", "COMMUNITY_ADMIN", "MERCHANT"})
public ApiResponse<GroupBuyResponse> start(@PathVariable Long id) {
return ApiResponse.ok(groupBuyService.start(id));
CurrentUser user = authService.currentUser();
return ApiResponse.ok(groupBuyService.startAdmin(user.getCommunityId(), id));
}
@PutMapping("/api/admin/group-buys/{id}/close")
@RequireRole({"PLATFORM_ADMIN", "COMMUNITY_ADMIN", "MERCHANT"})
public ApiResponse<GroupBuyResponse> close(@PathVariable Long id) {
return ApiResponse.ok(groupBuyService.close(id));
CurrentUser user = authService.currentUser();
return ApiResponse.ok(groupBuyService.closeAdmin(user.getCommunityId(), id));
}
@PutMapping("/api/admin/group-buys/{id}/complete")
@RequireRole({"PLATFORM_ADMIN", "COMMUNITY_ADMIN", "MERCHANT"})
public ApiResponse<GroupBuyResponse> completeGroupBuy(@PathVariable Long id) {
return ApiResponse.ok(groupBuyService.complete(id));
CurrentUser user = authService.currentUser();
return ApiResponse.ok(groupBuyService.completeAdmin(user.getCommunityId(), id));
}
@GetMapping("/api/admin/group-buys/{id}/orders")
@RequireRole({"PLATFORM_ADMIN", "COMMUNITY_ADMIN", "MERCHANT"})
public ApiResponse<List<GroupBuyOrderResponse>> listOrders(@PathVariable Long id) {
return ApiResponse.ok(orderService.listByGroupBuy(id));
CurrentUser user = authService.currentUser();
return ApiResponse.ok(orderService.listByGroupBuyAdmin(user.getCommunityId(), id));
}
@GetMapping("/api/admin/group-buys/{id}/orders/page")
@RequireRole({"PLATFORM_ADMIN", "COMMUNITY_ADMIN", "MERCHANT"})
public ApiResponse<PageResponse<GroupBuyOrderResponse>> pageOrders(@PathVariable Long id,
@RequestParam(required = false) GroupBuyOrderStatus status,
@RequestParam(required = false) Integer pageNo,
@RequestParam(required = false) Integer pageSize) {
CurrentUser user = authService.currentUser();
return ApiResponse.ok(orderService.listByGroupBuyAdminPage(user.getCommunityId(), id, status, pageNo, pageSize));
}
@GetMapping("/api/admin/group-buy-orders/page")
@RequireRole({"PLATFORM_ADMIN", "COMMUNITY_ADMIN", "MERCHANT"})
public ApiResponse<PageResponse<GroupBuyOrderResponse>> pageAllOrders(@RequestParam(required = false) GroupBuyOrderStatus status,
@RequestParam(required = false) Integer pageNo,
@RequestParam(required = false) Integer pageSize) {
CurrentUser user = authService.currentUser();
return ApiResponse.ok(orderService.listAdminPage(user.getCommunityId(), status, pageNo, pageSize));
}
@PutMapping("/api/admin/group-buy-orders/{id}/confirm")
@RequireRole({"PLATFORM_ADMIN", "COMMUNITY_ADMIN", "MERCHANT"})
public ApiResponse<GroupBuyOrderResponse> confirmOrder(@PathVariable Long id) {
return ApiResponse.ok(orderService.confirm(id));
CurrentUser user = authService.currentUser();
return ApiResponse.ok(orderService.confirmAdmin(user.getCommunityId(), id, user.getUserId()));
}
@PutMapping("/api/admin/group-buy-orders/{id}/ready")
@RequireRole({"PLATFORM_ADMIN", "COMMUNITY_ADMIN", "MERCHANT"})
public ApiResponse<GroupBuyOrderResponse> markOrderReady(@PathVariable Long id) {
return ApiResponse.ok(orderService.markReady(id));
CurrentUser user = authService.currentUser();
return ApiResponse.ok(orderService.markReadyAdmin(user.getCommunityId(), id));
}
@GetMapping("/api/mini/group-buys")
@@ -97,7 +125,8 @@ public class GroupBuyController {
@GetMapping("/api/mini/group-buys/{id}")
public ApiResponse<GroupBuyResponse> detail(@PathVariable Long id) {
return ApiResponse.ok(groupBuyService.detail(id));
CurrentUser user = authService.currentUser();
return ApiResponse.ok(groupBuyService.detailMini(user.getCommunityId(), id));
}
@PostMapping("/api/mini/group-buy-orders")
@@ -116,16 +145,19 @@ public class GroupBuyController {
@GetMapping("/api/mini/group-buy-orders/{id}")
public ApiResponse<GroupBuyOrderResponse> orderDetail(@PathVariable Long id) {
return ApiResponse.ok(orderService.detail(id));
CurrentUser user = authService.currentUser();
return ApiResponse.ok(orderService.detailMine(user.getUserId(), id));
}
@PutMapping("/api/mini/group-buy-orders/{id}/cancel")
public ApiResponse<GroupBuyOrderResponse> cancel(@PathVariable Long id) {
return ApiResponse.ok(orderService.cancel(id));
CurrentUser user = authService.currentUser();
return ApiResponse.ok(orderService.cancelMine(user.getUserId(), id));
}
@PutMapping("/api/mini/group-buy-orders/{id}/complete")
public ApiResponse<GroupBuyOrderResponse> completeOrder(@PathVariable Long id) {
return ApiResponse.ok(orderService.complete(id));
CurrentUser user = authService.currentUser();
return ApiResponse.ok(orderService.completeMine(user.getUserId(), id));
}
}