订单优化
This commit is contained in:
@@ -3,6 +3,7 @@ package com.starry.admin.modules.order.controller;
|
||||
import com.starry.admin.common.exception.CustomException;
|
||||
import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity;
|
||||
import com.starry.admin.modules.order.module.vo.PlayOrderEditAcceptByVo;
|
||||
import com.starry.admin.modules.order.module.vo.PlayOrderEditBackendRemarkByVo;
|
||||
import com.starry.admin.modules.order.module.vo.PlayOrderInfoQueryVo;
|
||||
import com.starry.admin.modules.order.module.vo.PlayOrderRefundAddVo;
|
||||
import com.starry.admin.modules.order.service.IPlayOrderInfoService;
|
||||
@@ -69,12 +70,25 @@ public class PlayOrderInfoController {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 跟换店员
|
||||
*/
|
||||
@PostMapping("/orderEditBackendRemark")
|
||||
public R orderEditBackendRemark(@Validated @RequestBody PlayOrderEditBackendRemarkByVo vo) {
|
||||
PlayOrderInfoEntity orderInfo = orderInfoService.selectOrderInfoById(vo.getOrderId());
|
||||
PlayOrderInfoEntity updateOrderInfo = new PlayOrderInfoEntity();
|
||||
updateOrderInfo.setId(orderInfo.getId());
|
||||
updateOrderInfo.setBackendRemark(vo.getBackendRemark());
|
||||
return R.ok(orderInfoService.update(updateOrderInfo));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据ID查询订单
|
||||
*/
|
||||
@GetMapping(value = "/{id}")
|
||||
public R getInfo(@PathVariable("id") String id) {
|
||||
return R.ok(orderInfoService.selectOrderInfoById(id));
|
||||
return R.ok(orderInfoService.selectById(id));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package com.starry.admin.modules.order.module.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.starry.admin.common.conf.StringTypeHandler;
|
||||
import com.starry.common.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@@ -9,6 +11,7 @@ import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 订单对象 order_info
|
||||
@@ -115,6 +118,13 @@ public class PlayOrderInfoEntity extends BaseEntity<PlayOrderInfoEntity> {
|
||||
private String commodityNumber;
|
||||
|
||||
|
||||
/**
|
||||
* 订单要求
|
||||
*/
|
||||
@TableField(typeHandler = StringTypeHandler.class)
|
||||
private List<String> labels;
|
||||
|
||||
|
||||
/**
|
||||
* 是否使用优惠券[0:未使用,1:已使用]
|
||||
*/
|
||||
@@ -157,6 +167,11 @@ public class PlayOrderInfoEntity extends BaseEntity<PlayOrderInfoEntity> {
|
||||
*/
|
||||
private BigDecimal estimatedRevenue;
|
||||
|
||||
/**
|
||||
* 店员收入比例
|
||||
*/
|
||||
private Integer estimatedRevenueRatio;
|
||||
|
||||
|
||||
/**
|
||||
* 优惠金额
|
||||
@@ -249,6 +264,12 @@ public class PlayOrderInfoEntity extends BaseEntity<PlayOrderInfoEntity> {
|
||||
private String remark;
|
||||
|
||||
|
||||
/**
|
||||
* 后台备注
|
||||
*/
|
||||
private String backendRemark;
|
||||
|
||||
|
||||
/**
|
||||
* 订单结算状态(0:未结算;1:已结算)
|
||||
*/
|
||||
|
||||
@@ -5,6 +5,7 @@ import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 订单查询返回对象
|
||||
@@ -152,6 +153,17 @@ public class PlayOrderDetailsReturnVo {
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 订单要求
|
||||
*/
|
||||
private List<String> labels;
|
||||
|
||||
|
||||
/**
|
||||
* 是否是首单【0:不是,1:是】
|
||||
*/
|
||||
private String firstOrder;
|
||||
|
||||
|
||||
/**
|
||||
* 是否评价(1:已评价;0:未评价)
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
package com.starry.admin.modules.order.module.vo;
|
||||
|
||||
import com.starry.common.domain.BasePageEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
@@ -13,8 +11,7 @@ import javax.validation.constraints.NotNull;
|
||||
* @since 2024-03-20
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class PlayOrderEditAcceptByVo extends BasePageEntity {
|
||||
public class PlayOrderEditAcceptByVo {
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.starry.admin.modules.order.module.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import org.hibernate.validator.constraints.Length;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 订单查询对象
|
||||
*
|
||||
* @author admin
|
||||
* @since 2024-03-20
|
||||
*/
|
||||
@Data
|
||||
public class PlayOrderEditBackendRemarkByVo {
|
||||
|
||||
|
||||
/**
|
||||
* uuid
|
||||
*/
|
||||
@NotNull(message = "orderId不能为空")
|
||||
private String orderId;
|
||||
|
||||
|
||||
/**
|
||||
* 后台备注不能为空
|
||||
*/
|
||||
@NotNull(message = "后台备注不能为空")
|
||||
@Length(min = 1, max = 100, message = "后台备注字符长度在1-100个字符之间")
|
||||
private String backendRemark;
|
||||
|
||||
|
||||
}
|
||||
@@ -159,11 +159,28 @@ public class PlayOrderInfoReturnVo {
|
||||
*/
|
||||
private BigDecimal estimatedRevenue = BigDecimal.ZERO;
|
||||
|
||||
/**
|
||||
* 店员收入比例
|
||||
*/
|
||||
private Integer estimatedRevenueRatio;
|
||||
|
||||
|
||||
/**
|
||||
* 微信号码
|
||||
*/
|
||||
private String weiChatCode;
|
||||
|
||||
|
||||
/**
|
||||
* 订单备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 后台备注
|
||||
*/
|
||||
private String backendRemark;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -74,6 +74,19 @@ public interface IPlayOrderInfoService extends IService<PlayOrderInfoEntity> {
|
||||
* @since 2024/6/3 11:12
|
||||
**/
|
||||
BigDecimal getEstimatedRevenue(String clerkId, String placeType, String firstOrder, BigDecimal finalAmount);
|
||||
|
||||
|
||||
/**
|
||||
* 根据店员等级,获取店员提成比例
|
||||
*
|
||||
* @param clerkId 店员ID
|
||||
* @param placeType 下单类型(-1:其他类型;0:指定单;1:随机单;2:打赏单)
|
||||
* @param firstOrder 是否是首单【0:不是,1:是】
|
||||
* @return math.BigDecimal 店员预计收入
|
||||
* @author admin
|
||||
* @since 2024/6/3 11:12
|
||||
**/
|
||||
Integer getEstimatedRevenueRatio(String clerkId, String placeType, String firstOrder);
|
||||
/**
|
||||
* 新增打赏单
|
||||
*
|
||||
|
||||
@@ -101,6 +101,7 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
|
||||
if (StrUtil.isNotBlank(acceptBy)) {
|
||||
entity.setAcceptBy(acceptBy);
|
||||
entity.setEstimatedRevenue(getEstimatedRevenue(acceptBy, placeType, firstOrder, finalAmount));
|
||||
entity.setEstimatedRevenueRatio(getEstimatedRevenueRatio(acceptBy, placeType, firstOrder));
|
||||
}
|
||||
// 如果订单是打赏单,订单直接完成
|
||||
if ("2".equals(placeType)) {
|
||||
@@ -160,6 +161,42 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer getEstimatedRevenueRatio(String clerkId, String placeType, String firstOrder) {
|
||||
PlayClerkLevelInfoEntity entity = playClerkUserInfoService.queryLevelCommission(clerkId);
|
||||
switch (placeType) {
|
||||
case "0": {
|
||||
if ("1".equals(firstOrder)) {
|
||||
return entity.getFirstRegularRatio();
|
||||
} else {
|
||||
return entity.getNotFirstRegularRatio();
|
||||
}
|
||||
}
|
||||
case "1": {
|
||||
if ("1".equals(firstOrder)) {
|
||||
return entity.getFirstRandomRadio();
|
||||
} else {
|
||||
return entity.getNotFirstRandomRadio();
|
||||
}
|
||||
}
|
||||
case "2": {
|
||||
if ("1".equals(firstOrder)) {
|
||||
return entity.getFirstRewardRatio();
|
||||
} else {
|
||||
return entity.getNotFirstRewardRatio();
|
||||
}
|
||||
}
|
||||
case "-1": {
|
||||
log.error("下单类型异常,placeType={}", placeType);
|
||||
return 100;
|
||||
}
|
||||
default: {
|
||||
log.error("下单类型错误,placeType={}", placeType);
|
||||
return 100;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增打赏单
|
||||
* 打赏订单直接完成
|
||||
@@ -530,11 +567,6 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
|
||||
lambdaQueryWrapper.leftJoin(PlayCustomUserInfoEntity.class, PlayCustomUserInfoEntity::getId, PlayOrderInfoEntity::getPurchaserBy);
|
||||
// 子表-店员表
|
||||
lambdaQueryWrapper.leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayOrderInfoEntity::getAcceptBy);
|
||||
// 子表-店员服务项目表
|
||||
// 商品表
|
||||
// lambdaQueryWrapper.selectAs(PlayCommodityInfoEntity::getId, "commodityId").selectAs(PlayCommodityInfoEntity::getItemType, "commodityName").selectAs(PlayCommodityInfoEntity::getItemName, "serviceDuration").selectAs(PlayCommodityInfoEntity::getPrice, "commodityPrice");
|
||||
// lambdaQueryWrapper.leftJoin(PlayCommodityInfoEntity.class, PlayCommodityInfoEntity::getId, PlayOrderInfoEntity::getCommodityId);
|
||||
|
||||
if (StringUtils.isNotBlank(entity.getId())) {
|
||||
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getId, entity.getId());
|
||||
}
|
||||
@@ -578,6 +610,7 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
|
||||
entity.setAcceptBy(acceptBy);
|
||||
entity.setAcceptTime(LocalDateTime.now());
|
||||
entity.setEstimatedRevenue(this.getEstimatedRevenue(acceptBy, orderInfo.getPlaceType(), orderInfo.getFirstOrder(), orderInfo.getFinalAmount()));
|
||||
entity.setEstimatedRevenueRatio(this.getEstimatedRevenueRatio(acceptBy, orderInfo.getPlaceType(), orderInfo.getFirstOrder()));
|
||||
this.baseMapper.updateById(entity);
|
||||
}
|
||||
|
||||
|
||||
@@ -69,6 +69,7 @@ public class PlayOrderRandomInfoServiceImpl extends ServiceImpl<PlayOrderRandomI
|
||||
|
||||
PlayOrderInfoEntity orderInfo = playOrderInfoService.selectOrderInfoById(id);
|
||||
vo.setEstimatedRevenue(playOrderInfoService.getEstimatedRevenue(clerkId, orderInfo.getPlaceType(), orderInfo.getFirstOrder(), orderInfo.getFinalAmount()));
|
||||
vo.setEstimatedRevenueRatio(playOrderInfoService.getEstimatedRevenueRatio(clerkId, orderInfo.getPlaceType(), orderInfo.getFirstOrder()));
|
||||
return vo;
|
||||
}
|
||||
|
||||
|
||||
@@ -92,6 +92,12 @@ public class PlayClerkRandomOrderDetailReturnVo {
|
||||
*/
|
||||
private BigDecimal estimatedRevenue;
|
||||
|
||||
/**
|
||||
* 店员收入比例
|
||||
*/
|
||||
private Integer estimatedRevenueRatio;
|
||||
|
||||
|
||||
/**
|
||||
* 优惠金额
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user