| | |
| | | package com.doumee.api.web; |
| | | |
| | | import com.azure.core.annotation.Post; |
| | | import com.doumee.core.annotation.LoginRequired; |
| | | import com.doumee.core.annotation.trace.Trace; |
| | | import com.doumee.core.model.ApiResponse; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.dao.business.model.IdentityInfo; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.business.model.Orders; |
| | | import com.doumee.dao.dto.*; |
| | | import com.doumee.dao.vo.OrderReleaseVO; |
| | | import com.doumee.service.business.IdentityInfoService; |
| | | import com.doumee.service.business.MemberService; |
| | | import com.doumee.dao.business.model.Areas; |
| | | import com.doumee.dao.business.model.Banner; |
| | | import com.doumee.dao.business.model.Category; |
| | | import com.doumee.dao.dto.CalculateLocalPriceDTO; |
| | | import com.doumee.dao.dto.CalculateRemotePriceDTO; |
| | | import com.doumee.dao.vo.AccountResponse; |
| | | import com.doumee.dao.vo.PriceCalculateVO; |
| | | import com.doumee.service.business.AreasService; |
| | | import com.doumee.service.business.BannerService; |
| | | import com.doumee.service.business.CategoryService; |
| | | import com.doumee.service.business.OrdersService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.shiro.authz.annotation.RequiresPermissions; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.validation.Valid; |
| | | import java.math.BigDecimal; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2025/7/10 9:29 |
| | | * @create 2025/7/15 15:49 |
| | | */ |
| | | @Api(tags = "订单业务") |
| | | @Api(tags = "配置类接口") |
| | | @Trace(exclude = true) |
| | | @RestController |
| | | @RequestMapping("/web/orders") |
| | | @RequestMapping("/web/config") |
| | | @Slf4j |
| | | public class OrdersApi extends ApiController{ |
| | | |
| | | public class ConfigApi extends ApiController{ |
| | | |
| | | @Autowired |
| | | private MemberService memberService; |
| | | private CategoryService categoryService; |
| | | |
| | | @Autowired |
| | | private AreasService areasService; |
| | | |
| | | @Autowired |
| | | private BannerService bannerService; |
| | | |
| | | @Autowired |
| | | private OrdersService ordersService; |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "发布订单 - 发单方", notes = "小程序端") |
| | | @PostMapping("/release") |
| | | @ApiOperation(value = "获取分类列表", notes = "小程序端") |
| | | @GetMapping("/getCategoryList") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), |
| | | @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "type", value = "类型:1=车辆类型;2=物品分类;3=物品等级;4=物品尺寸;", required = true) |
| | | }) |
| | | public ApiResponse<OrderReleaseVO> release(@RequestBody Orders orders) { |
| | | orders.setMember(this.getMemberResponse()); |
| | | return ApiResponse.success("操作成功",ordersService.create(orders)); |
| | | public ApiResponse<List<Category>> getCategoryList(@RequestParam Integer type) { |
| | | return ApiResponse.success("操作成功",categoryService.getCategoryList(type)); |
| | | } |
| | | |
| | | @ApiOperation(value = "获取开放城市列表", notes = "返回已开放城市,含首字母,按首字母排序") |
| | | @GetMapping("/getOpenCityList") |
| | | public ApiResponse<List<Areas>> getOpenCityList() { |
| | | return ApiResponse.success("操作成功", areasService.getOpenCityList()); |
| | | } |
| | | |
| | | @ApiOperation(value = "获取轮播图列表", notes = "根据位置返回轮播图,含图片全路径") |
| | | @GetMapping("/getBannerList") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "position", value = "位置:0=会员端首页轮播;1=司机APP引导页;", required = true) |
| | | }) |
| | | public ApiResponse<List<Banner>> getBannerList(@RequestParam Integer position) { |
| | | return ApiResponse.success("操作成功", bannerService.findListByPosition(position)); |
| | | } |
| | | |
| | | @ApiOperation(value = "获取城市已开通物品尺寸", notes = "根据城市主键查询已开通的物品尺寸(category type=4)") |
| | | @GetMapping("/getCitySizeList") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "cityId", value = "城市主键", required = true) |
| | | }) |
| | | public ApiResponse<List<Category>> getCitySizeList(@RequestParam Integer cityId) { |
| | | return ApiResponse.success("操作成功", categoryService.getCitySizeList(cityId)); |
| | | } |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "修改订单 - 发单方", notes = "小程序端") |
| | | @PostMapping("/updateOrder") |
| | | @ApiOperation(value = "计算保价费用", notes = "根据报价金额计算保价费用") |
| | | @GetMapping("/calculateInsuranceFee") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), |
| | | @ApiImplicitParam(paramType = "query", dataType = "BigDecimal", name = "declaredValue", value = "报价金额", required = true), |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true) |
| | | }) |
| | | public ApiResponse updateOrder(@RequestBody Orders orders) { |
| | | orders.setMember(this.getMemberResponse()); |
| | | ordersService.update(orders); |
| | | return ApiResponse.success("操作成功"); |
| | | public ApiResponse<BigDecimal> calculateInsuranceFee(@RequestParam BigDecimal declaredValue) { |
| | | return ApiResponse.success("操作成功", ordersService.calculateInsuranceFee(declaredValue)); |
| | | } |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "接单方确认订单费用 - 接单方", notes = "小程序端") |
| | | @PostMapping("/confirmFee") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), |
| | | }) |
| | | public ApiResponse confirmFee(@RequestBody ConfirmFeeOrderDTO orders) { |
| | | orders.setMember(this.getMemberResponse()); |
| | | ordersService.confirmFee(orders); |
| | | return ApiResponse.success("操作成功"); |
| | | } |
| | | |
| | | |
| | | // @LoginRequired |
| | | // @ApiOperation(value = "修改订单日期 - 发单方", notes = "小程序端") |
| | | // @PostMapping("/updOrderData") |
| | | // @ApiImplicitParams({ |
| | | // @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), |
| | | // }) |
| | | // public ApiResponse updOrderData(@RequestBody UpdOrderDataDTO updOrderDataDTO) { |
| | | // updOrderDataDTO.setMember(this.getMemberResponse()); |
| | | // ordersService.updOrderData(updOrderDataDTO); |
| | | // return ApiResponse.success("操作成功"); |
| | | // } |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "手动接单 - 接单方", notes = "小程序端") |
| | | @GetMapping("/accept") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), |
| | | }) |
| | | public ApiResponse accept(@RequestParam Integer orderId) { |
| | | ordersService.accept(orderId,this.getMemberResponse()); |
| | | return ApiResponse.success("操作成功"); |
| | | @ApiOperation(value = "计算就地存取预估费用", notes = "根据城市、天数、物品类型和数量计算就地存取预估费用") |
| | | @PostMapping("/calculateLocalPrice") |
| | | public ApiResponse<PriceCalculateVO> calculateLocalPrice(@RequestBody @Valid CalculateLocalPriceDTO dto) { |
| | | return ApiResponse.success("操作成功", ordersService.calculateLocalPrice(dto)); |
| | | } |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "开始作业 - 发单方", notes = "小程序端") |
| | | @GetMapping("/begin") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), |
| | | }) |
| | | public ApiResponse begin(@RequestParam Integer orderId) { |
| | | ordersService.begin(orderId,this.getMemberResponse()); |
| | | return ApiResponse.success("操作成功"); |
| | | } |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "取消订单 - 发单方", notes = "小程序端") |
| | | @GetMapping("/cancelOrder") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), |
| | | }) |
| | | public ApiResponse cancelOrder(@RequestParam Integer orderId) { |
| | | ordersService.cancelOrder(orderId,this.getMemberResponse()); |
| | | return ApiResponse.success("操作成功"); |
| | | } |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "取消前提示语 - 发单方", notes = "小程序端") |
| | | @GetMapping("/cancelTips") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), |
| | | }) |
| | | public ApiResponse cancelTips(@RequestParam Integer orderId) { |
| | | ordersService.cancelTips(orderId,this.getMemberResponse()); |
| | | return ApiResponse.success("操作成功"); |
| | | } |
| | | |
| | | |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "确认订单修改 - 接单方", notes = "小程序端") |
| | | @PostMapping("/confirmUpd") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), |
| | | }) |
| | | public ApiResponse confirmUpd(@RequestBody ConfirmUpdOrderDTO confirmUpdOrderDTO) { |
| | | confirmUpdOrderDTO.setMember(this.getMemberResponse()); |
| | | ordersService.confirmUpd(confirmUpdOrderDTO); |
| | | return ApiResponse.success("操作成功"); |
| | | } |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "完成订单 - 发单方", notes = "小程序端") |
| | | @PostMapping("/doneOrder") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), |
| | | }) |
| | | public ApiResponse<OrderReleaseVO> doneOrder(@RequestBody DoneOrderDTO doneOrderDTO) { |
| | | doneOrderDTO.setMember(getMemberResponse()); |
| | | return ApiResponse.success("操作成功",ordersService.doneOrder(doneOrderDTO)); |
| | | } |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "订单重新支付 - 发单方", notes = "小程序端") |
| | | @PostMapping("/reusePay") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), |
| | | }) |
| | | public ApiResponse<OrderReleaseVO> reusePay(@RequestBody ReusePayDTO reusePayDTO) { |
| | | reusePayDTO.setMember(getMemberResponse()); |
| | | return ApiResponse.success("操作成功",ordersService.reusePay(reusePayDTO)); |
| | | } |
| | | |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "订单评价 - 发单方", notes = "小程序端") |
| | | @PostMapping("/comment") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), |
| | | }) |
| | | public ApiResponse comment(@RequestBody CommentDTO commentDTO) { |
| | | commentDTO.setMember(this.getMemberResponse()); |
| | | ordersService.comment(commentDTO); |
| | | return ApiResponse.success("操作成功"); |
| | | } |
| | | |
| | | |
| | | |
| | | @LoginRequired |
| | | @ApiOperation("分页查询") |
| | | @PostMapping("/page") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), |
| | | }) |
| | | public ApiResponse<PageData<Orders>> findPage (@RequestBody PageWrap<Orders> pageWrap) { |
| | | pageWrap.getModel().setMember(this.getMemberResponse()); |
| | | return ApiResponse.success(ordersService.findPageForMini(pageWrap)); |
| | | } |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "订单详情", notes = "小程序端") |
| | | @GetMapping("/getDetail") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), |
| | | }) |
| | | public ApiResponse<Orders> getDetail(@RequestParam Integer orderId) { |
| | | return ApiResponse.success("操作成功",ordersService.getDetail(orderId,this.getMemberResponse())); |
| | | } |
| | | |
| | | @LoginRequired |
| | | @ApiOperation("获取预计金额(分)") |
| | | @PostMapping("/getTotal") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), |
| | | }) |
| | | public ApiResponse<Long> getTotal(@RequestBody Orders orders) { |
| | | return ApiResponse.success(ordersService.getTotal(orders)); |
| | | @ApiOperation(value = "计算异地存取预估费用", notes = "根据距离、物品类型和数量计算异地存取预估费用") |
| | | @PostMapping("/calculateRemotePrice") |
| | | public ApiResponse<PriceCalculateVO> calculateRemotePrice(@RequestBody @Valid CalculateRemotePriceDTO dto) { |
| | | return ApiResponse.success("操作成功", ordersService.calculateRemotePrice(dto)); |
| | | } |
| | | |
| | | |