src/main/java/cc/mrbird/febs/common/enumerates/StateUpDownEnum.java
@@ -84,6 +84,8 @@ * 是否是核销员 0-否 1-是 * 匿名状态 1:匿名 0:不匿名 * 展示状态 1:显示 0:隐藏 * 是否是自提订单核销员 0-否 1-是 * 商品状态 0-待自提 1-已自提 */ DOWN(0), UP(1); src/main/java/cc/mrbird/febs/mall/controller/teamLeader/ApiMallTeamLeaderController.java
@@ -3,8 +3,10 @@ import cc.mrbird.febs.common.annotation.ControllerEndpoint; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.mall.dto.*; import cc.mrbird.febs.mall.dto.activity.ApiCheckOrderDto; import cc.mrbird.febs.mall.service.IApiMallTeamLeaderService; import cc.mrbird.febs.mall.vo.*; import cc.mrbird.febs.mall.vo.activity.ApiCheckOrderVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; @@ -40,6 +42,23 @@ return iApiMallTeamLeaderService.happyLeaderList(); } @ApiOperation(value = "自提点核销", notes = "自提点核销") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = ApiHappyOrderLeaderVo.class) }) @PostMapping(value = "/checkOrder") public FebsResponse checkOrder(@RequestBody @Validated ApiHappyOrderLeaderDto dto) { return iApiMallTeamLeaderService.checkOrder(dto); } @ApiOperation(value = "自提点核销-确认核销", notes = "自提点核销-确认核销") @PostMapping(value = "/insureOrder") public FebsResponse insureOrder(@RequestBody @Validated ApiHappyOrderLeaderInsureDto dto) { return iApiMallTeamLeaderService.insureOrder(dto); } /** * 申请团长 */ src/main/java/cc/mrbird/febs/mall/dto/ApiHappyOrderLeaderDto.java
New file @@ -0,0 +1,17 @@ package cc.mrbird.febs.mall.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotBlank; @Data @ApiModel(value = "ApiHappyOrderLeaderDto", description = "参数接收类") public class ApiHappyOrderLeaderDto { @NotBlank(message = "自提码") @ApiModelProperty(value = "自提码(手动输入,或者扫码)", example = "1") private String takeCode; } src/main/java/cc/mrbird/febs/mall/dto/ApiHappyOrderLeaderInsureDto.java
New file @@ -0,0 +1,25 @@ package cc.mrbird.febs.mall.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; @Data @ApiModel(value = "ApiHappyOrderLeaderInsureDto", description = "参数接收类") public class ApiHappyOrderLeaderInsureDto { @NotBlank(message = "自提码不能为空") @ApiModelProperty(value = "自提码(手动输入,或者扫码)", example = "1") private String takeCode; @NotNull(message = "订单不能为空") @ApiModelProperty(value = "订单ID") private Long orderId; @NotNull(message = "订单不能为空") @ApiModelProperty(value = "订单子表ID") private String itemId; } src/main/java/cc/mrbird/febs/mall/entity/MallMember.java
@@ -193,4 +193,6 @@ private Integer checkOrder; //是否领取新人礼 0-否 1-是 private Integer newGift; //是否是订单核销员 0-否 1-是 private Integer checkLeader; } src/main/java/cc/mrbird/febs/mall/entity/MallOrderItem.java
@@ -48,6 +48,9 @@ private Integer isNormal; //商品状态 0-待自提 1-已自提 private Integer leaderState; /** * 是否结清 */ src/main/java/cc/mrbird/febs/mall/service/IApiMallTeamLeaderService.java
@@ -41,4 +41,8 @@ FebsResponse noLoginLeaderTitle(ApiLeaderTitleDto apiLeaderTitleDto); FebsResponse happyLeaderList(); FebsResponse checkOrder(ApiHappyOrderLeaderDto dto); FebsResponse insureOrder(ApiHappyOrderLeaderInsureDto dto); } src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java
@@ -16,6 +16,7 @@ import cc.mrbird.febs.mall.service.IApiMallTeamLeaderService; import cc.mrbird.febs.mall.service.IMallMoneyFlowService; import cc.mrbird.febs.mall.vo.*; import cc.mrbird.febs.mall.vo.activity.ApiCheckOrderVo; import cc.mrbird.febs.pay.model.OrderStateDto; import cc.mrbird.febs.pay.service.IXcxPayService; import cc.mrbird.febs.pay.util.WeixinServiceUtil; @@ -697,4 +698,99 @@ return new FebsResponse().success().data(apiHappyLeaderInfoVos); } @Override public FebsResponse checkOrder(ApiHappyOrderLeaderDto dto) { // 获取当前登录用户的ID Long memberId = LoginUserUtil.getLoginUser().getId(); MallMember mallMember = mallMemberMapper.selectById(memberId); if(StateUpDownEnum.UP.getCode() != mallMember.getCheckLeader()){ throw new FebsException("您不是订单核销员!"); } String takeCode = dto.getTakeCode(); MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectOne( new LambdaQueryWrapper<MallOrderInfo>() .eq(MallOrderInfo::getTakeCode, takeCode) .last("limit 1") ); if(mallOrderInfo == null){ throw new FebsException("自提码不存在!"); } MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(mallOrderInfo.getTakeUniqueCode()); if(mallTeamLeader==null){ throw new FebsException("自提点不存在!"); } ArrayList<ApiHappyOrderLeaderVo> apiHappyOrderLeaderVos = new ArrayList<>(); List<MallOrderItem> mallOrderItems = mallOrderItemMapper.selectList( new LambdaQueryWrapper<MallOrderItem>() .eq(MallOrderItem::getOrderId, mallOrderInfo.getId()) .eq(MallOrderItem::getLeaderState, StateUpDownEnum.DOWN.getCode()) ); if(CollUtil.isNotEmpty(mallOrderItems)){ for(MallOrderItem item : mallOrderItems){ ApiHappyOrderLeaderVo apiHappyOrderLeaderVo = new ApiHappyOrderLeaderVo(); apiHappyOrderLeaderVo.setAddressArea(mallTeamLeader.getAddressArea()); apiHappyOrderLeaderVo.setName(mallTeamLeader.getName()); apiHappyOrderLeaderVo.setPhone(mallTeamLeader.getPhone()); apiHappyOrderLeaderVo.setOrderId(mallOrderInfo.getId()); apiHappyOrderLeaderVo.setOrderState(mallOrderInfo.getStatus()); apiHappyOrderLeaderVo.setTakeCode(takeCode); apiHappyOrderLeaderVo.setGoodsName(item.getGoodsName()); apiHappyOrderLeaderVo.setGoodsSku(item.getSkuName()); apiHappyOrderLeaderVo.setGoodsCnt(item.getCnt()); apiHappyOrderLeaderVo.setGoodsPrice(item.getPrice()); apiHappyOrderLeaderVo.setLeaderState(item.getLeaderState()); apiHappyOrderLeaderVos.add(apiHappyOrderLeaderVo); } } return new FebsResponse().success().data(apiHappyOrderLeaderVos); } @Override public FebsResponse insureOrder(ApiHappyOrderLeaderInsureDto dto) { // 获取当前登录用户的ID Long memberId = LoginUserUtil.getLoginUser().getId(); MallMember mallMember = mallMemberMapper.selectById(memberId); if(StateUpDownEnum.UP.getCode() != mallMember.getCheckLeader()){ throw new FebsException("您不是订单核销员!"); } MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(dto.getOrderId()); if(mallOrderInfo == null){ throw new FebsException("订单不存在!"); } MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(mallOrderInfo.getTakeUniqueCode()); if(mallTeamLeader==null){ throw new FebsException("自提点不存在!"); } MallOrderItem mallOrderItem = mallOrderItemMapper.selectById(dto.getItemId()); if(mallOrderItem==null){ throw new FebsException("订单不存在!"); } if(mallOrderItem.getLeaderState()==1){ throw new FebsException("订单已自提!"); } mallOrderItem.setLeaderState(1); mallOrderItemMapper.updateById(mallOrderItem); return new FebsResponse().success().message("操作成功"); } } src/main/java/cc/mrbird/febs/mall/vo/ApiHappyOrderLeaderItemVo.java
New file @@ -0,0 +1,24 @@ package cc.mrbird.febs.mall.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; @Data @ApiModel(value = "ApiHappyOrderLeaderItemVo", description = "信息返回类") public class ApiHappyOrderLeaderItemVo { @ApiModelProperty(value = "商品名称") private String goodsName; @ApiModelProperty(value = "商品规格") private String goodsSku; @ApiModelProperty(value = "商品数量") private Integer goodsCnt; @ApiModelProperty(value = "商品单价") private BigDecimal goodsPrice; } src/main/java/cc/mrbird/febs/mall/vo/ApiHappyOrderLeaderVo.java
New file @@ -0,0 +1,54 @@ package cc.mrbird.febs.mall.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.util.List; @Data @ApiModel(value = "ApiHappyOrderLeaderVo", description = "信息返回类") public class ApiHappyOrderLeaderVo { @ApiModelProperty(value = "自提点名称") private String addressArea; @ApiModelProperty(value = "自提点联系人") private String name; @ApiModelProperty(value = "自提点联系电话") private String phone; @ApiModelProperty(value = "提货码", example = "1") private String takeCode; @ApiModelProperty(value = "订单ID") private Long orderId; @ApiModelProperty(value = "订单状态 1-待支付2-待发货3-待收货4-已完成") private Integer orderState; // @ApiModelProperty(value = "订单详情") // private List<ApiHappyOrderLeaderItemVo> items; @ApiModelProperty(value = "订单子表ID") private String itemId; @ApiModelProperty(value = "商品名称") private String goodsName; @ApiModelProperty(value = "商品规格") private String goodsSku; @ApiModelProperty(value = "商品数量") private Integer goodsCnt; @ApiModelProperty(value = "商品单价") private BigDecimal goodsPrice; @ApiModelProperty(value = "商品状态 0-待自提 1-已自提") private Integer leaderState; } src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java
@@ -119,6 +119,9 @@ @ApiModelProperty(value = "是否是核销员 0-否 1-是") private Integer checkOrder; @ApiModelProperty(value = "是否是自提核销员 0-否 1-是") private Integer checkLeader; @ApiModelProperty(value = "是否领取新人礼 0-否 1-是") private Integer newGift; }