订单业务功能开发v5

wxpay
LI-CCONG\李聪聪 8 months ago
parent 06ed8f422a
commit 5c72a4e6f8

@ -8,12 +8,9 @@ import cc.yunxi.common.utils.BeanUtils;
import cc.yunxi.common.utils.CommonUtil;
import cc.yunxi.domain.dto.LocationDTO;
import cc.yunxi.domain.dto.UserDTO;
import cc.yunxi.domain.vo.recycleorder.RecycleOrderCreateVO;
import cc.yunxi.domain.vo.recycleorder.*;
import cc.yunxi.domain.po.RecycleOrder;
import cc.yunxi.domain.query.RecycleOrderQuery;
import cc.yunxi.domain.vo.recycleorder.RecycleOrderRespVO;
import cc.yunxi.domain.vo.recycleorder.RecycleOrderTakingVO;
import cc.yunxi.domain.vo.recycleorder.RecycleOrderUpdateVO;
import cc.yunxi.enums.UserTypeEnum;
import cc.yunxi.service.IRecycleOrderService;
import cc.yunxi.utils.UserContext;
@ -109,4 +106,37 @@ public class RecycleOrderController {
}
@ApiOperation("回收员到达")
@PostMapping("/reach")
@UserTypeAnnotation(UserTypeEnum.CLIENT)
public CommonResult<Boolean> reachOrder(@RequestBody RecycleOrderReachVO orderReachVO) {
UserDTO userDTO = UserContext.getUser();
orderReachVO.setStaffsId(userDTO.getId());
recycleOrderService.reachOrder(orderReachVO);
return CommonResult.success(true);
}
@ApiOperation("确认完成订单")
@PostMapping("/complete")
@UserTypeAnnotation(UserTypeEnum.RECYCLER)
public CommonResult<Boolean> completeOrder(@RequestBody RecycleOrderFinishVO orderFinishVO) {
UserDTO userDTO = UserContext.getUser();
orderFinishVO.setStaffsId(userDTO.getId());
recycleOrderService.finishOrder(orderFinishVO);
return CommonResult.success(true);
}
@ApiOperation("散户取消订单")
@PostMapping ("/cancel")
@UserTypeAnnotation(UserTypeEnum.CLIENT)
public CommonResult<Boolean> cancelOrder(@RequestBody RecycleOrderCancelVO orderCancelVO) {
UserDTO userDTO = UserContext.getUser();
orderCancelVO.setClientId(userDTO.getId());
recycleOrderService.cancelOrder(orderCancelVO);
return CommonResult.success(true);
}
}

@ -56,7 +56,7 @@ public class Client {
@ApiModelProperty("生日")
@TableField("birthday")
private Date birthday;
private LocalDateTime birthday;
@ApiModelProperty("账户余额")
@TableField("banlance")

@ -43,7 +43,7 @@ public class ClientRespVO {
private Integer gender;
@ApiModelProperty("生日")
private Date birthday;
private LocalDateTime birthday;
@ApiModelProperty("账户余额")
private BigDecimal banlance;

@ -0,0 +1,20 @@
package cc.yunxi.domain.vo.recycleorder;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@ApiModel(description = "回收订单- 取消订单 Request VO")
@Data
public class RecycleOrderCancelVO {
@ApiModelProperty(value = "回收订单id", required = true, example = "1763736089053364225")
@NotBlank(message = "回收订单id不能为空")
private String id;
@ApiModelProperty(value = "散户id", hidden = true, example = "533242995646951684")
private String clientId;
}

@ -0,0 +1,23 @@
package cc.yunxi.domain.vo.recycleorder;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
@ApiModel(description = "回收订单- 订单完成 Request VO")
@Data
public class RecycleOrderFinishVO {
@ApiModelProperty(value = "回收订单id", required = true, example = "1763736089053364225")
@NotBlank(message = "回收订单id不能为空")
private String id;
@ApiModelProperty(value = "收货时间", required = true, example = "2024-03-09 14:59:00")
private LocalDateTime receiveTime;
@ApiModelProperty(value = "回收员id", hidden = true, example = "533242995646951684")
private String staffsId;
}

@ -0,0 +1,27 @@
package cc.yunxi.domain.vo.recycleorder;
import cc.yunxi.domain.dto.LocationDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@ApiModel(description = "回收订单- 订单到达 Request VO")
@Data
public class RecycleOrderReachVO {
@ApiModelProperty(value = "回收订单id", required = true, example = "1763736089053364225")
@NotBlank(message = "回收订单id不能为空")
private String id;
@ApiModelProperty(value = "回收员id", hidden = true, example = "533242995646951684")
private String staffsId;
@ApiModelProperty(value = "当前位置", required = true)
@NotNull(message = "位置定位信息未授权")
@Valid
private LocationDTO location;
}

@ -4,9 +4,7 @@ import cc.yunxi.domain.po.RecycleOrder;
import cc.yunxi.domain.po.Recycler;
import cc.yunxi.domain.query.RecycleOrderQuery;
import cc.yunxi.domain.query.RecyclerQuery;
import cc.yunxi.domain.vo.recycleorder.RecycleOrderCreateVO;
import cc.yunxi.domain.vo.recycleorder.RecycleOrderTakingVO;
import cc.yunxi.domain.vo.recycleorder.RecycleOrderUpdateVO;
import cc.yunxi.domain.vo.recycleorder.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
@ -57,4 +55,24 @@ public interface IRecycleOrderService extends IService<RecycleOrder> {
*/
void takingOrder(@Valid RecycleOrderTakingVO orderTakingVO);
/**
*
* @param orderCancelVO
*/
void cancelOrder(RecycleOrderCancelVO orderCancelVO);
/**
*
* @param orderReachVO
*/
void reachOrder(RecycleOrderReachVO orderReachVO);
/**
*
* @param orderFinishVO
*/
void finishOrder(RecycleOrderFinishVO orderFinishVO);
}

@ -9,9 +9,7 @@ import cc.yunxi.domain.po.Client;
import cc.yunxi.domain.po.RecycleOrder;
import cc.yunxi.domain.po.Recycler;
import cc.yunxi.domain.query.RecycleOrderQuery;
import cc.yunxi.domain.vo.recycleorder.RecycleOrderCreateVO;
import cc.yunxi.domain.vo.recycleorder.RecycleOrderTakingVO;
import cc.yunxi.domain.vo.recycleorder.RecycleOrderUpdateVO;
import cc.yunxi.domain.vo.recycleorder.*;
import cc.yunxi.enums.BusinessCodeEnum;
import cc.yunxi.enums.OrderStatusEnum;
import cc.yunxi.enums.OrderTypeEnum;
@ -124,7 +122,7 @@ public class RecycleOrderServiceImpl extends ServiceImpl<RecycleOrderMapper, Rec
@Override
@Transactional(rollbackFor = Exception.class)
public void takingOrder(RecycleOrderTakingVO orderTakingVO) {
public void takingOrder(RecycleOrderTakingVO orderTakingVO) {
validateOrderExists(orderTakingVO.getId());
RecycleOrder recycleOrder = BeanUtils.copyBean(orderTakingVO, RecycleOrder.class);
recycleOrder.setOrderStatus(OrderStatusEnum.UNPROCESSED);
@ -132,6 +130,48 @@ public class RecycleOrderServiceImpl extends ServiceImpl<RecycleOrderMapper, Rec
this.updateById(recycleOrder);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void cancelOrder(RecycleOrderCancelVO orderCancelVO) {
RecycleOrder recycleOrder = getOrderById(orderCancelVO.getId());
if (!recycleOrder.getClientId().equals(orderCancelVO.getClientId())) {
throw new BizIllegalException("非法操作!");
}
recycleOrder = BeanUtils.copyBean(orderCancelVO, RecycleOrder.class);;
recycleOrder.setOrderStatus(OrderStatusEnum.CANCELED);
log.info("recycleOrder cancelVO: {}", recycleOrder);
this.updateById(recycleOrder);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void reachOrder(RecycleOrderReachVO orderReachVO) {
RecycleOrder recycleOrder = getOrderById(orderReachVO.getId());
if (!recycleOrder.getStaffsId().equals(orderReachVO.getStaffsId())) {
throw new BizIllegalException("非法操作!");
}
recycleOrder = BeanUtils.copyBean(orderReachVO, RecycleOrder.class);;
recycleOrder.setOrderStatus(OrderStatusEnum.RECYCLING);
log.info("recycleOrder orderReachVO: {}", recycleOrder);
this.updateById(recycleOrder);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void finishOrder(RecycleOrderFinishVO orderFinishVO) {
RecycleOrder recycleOrder = getOrderById(orderFinishVO.getId());
if (!recycleOrder.getStaffsId().equals(orderFinishVO.getStaffsId())) {
throw new BizIllegalException("非法操作!");
}
recycleOrder = BeanUtils.copyBean(orderFinishVO, RecycleOrder.class);;
recycleOrder.setOrderStatus(OrderStatusEnum.FINISHED);
// 给散户加余额 todo
log.info("recycleOrder orderFinishVO: {}", recycleOrder);
this.updateById(recycleOrder);
}
// 校验订单是否存在
private void validateOrderExists(String id) {

Loading…
Cancel
Save