package io.controller; import io.annotation.Login; import io.common.constant.Constant; import io.common.page.PageData; import io.common.utils.Result; import io.common.validator.AssertUtils; import io.common.validator.ValidatorUtils; import io.common.validator.group.AddGroup; import io.common.validator.group.DefaultGroup; import io.common.validator.group.UpdateGroup; import io.modules.item.dto.ItemDTO; import io.modules.item.dto.OrderDTO; import io.modules.item.service.ItemService; import io.modules.item.service.OrderService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.enums.ParameterIn; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameters; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * 订单表 */ @RestController @RequestMapping("/api/order") @Tag(name="订单表") @CrossOrigin public class OrderController { @Autowired private OrderService orderService; @Autowired private ItemService itemService; @Value("${upload.url}") private String uploadUrl; @GetMapping("page") @Operation(summary = "分页") @Parameters({ @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", in = ParameterIn.QUERY, required = true, ref="int") , @Parameter(name = Constant.LIMIT, description = "每页显示记录数", in = ParameterIn.QUERY,required = true, ref="int") , @Parameter(name = Constant.ORDER_FIELD, description = "排序字段", in = ParameterIn.QUERY, ref="String") , @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)", in = ParameterIn.QUERY, ref="String") }) @Login public Result> page(@Parameter(hidden = true) @RequestParam Map params,@Parameter(hidden = true) @RequestAttribute("userId") Long userId){ params.put("userId",userId.toString()); PageData page = orderService.page(params); List collect = page.getList().stream().map(e -> { ItemDTO item = itemService.get(e.getItemId()); if(item != null){ item.setImage(uploadUrl + item.getImage()); } e.setItem(item); return e; }).collect(Collectors.toList()); page.setList(collect); return new Result>().ok(page); } @GetMapping("{id}") @Operation(summary = "信息") public Result get(@PathVariable("id") Long id){ OrderDTO data = orderService.get(id); return new Result().ok(data); } @PostMapping @Operation(summary = "保存") @Login public Result save(@RequestBody OrderDTO dto,@Parameter(hidden = true) @RequestAttribute("userId") Long userId){ dto.setUserId(userId); orderService.save(dto); return new Result(); } @PutMapping @Operation(summary = "修改") public Result update(@RequestBody OrderDTO dto){ orderService.update(dto); return new Result(); } @DeleteMapping("{id}") @Operation(summary = "删除") public Result delete(@PathVariable Long id) { Long[] ids = new Long[]{id}; //效验数据 AssertUtils.isArrayEmpty(ids, "id"); orderService.delete(ids); return new Result(); } }