订单优化
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.common.exception.CustomException;
|
||||||
import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity;
|
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.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.PlayOrderInfoQueryVo;
|
||||||
import com.starry.admin.modules.order.module.vo.PlayOrderRefundAddVo;
|
import com.starry.admin.modules.order.module.vo.PlayOrderRefundAddVo;
|
||||||
import com.starry.admin.modules.order.service.IPlayOrderInfoService;
|
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查询订单
|
* 根据ID查询订单
|
||||||
*/
|
*/
|
||||||
@GetMapping(value = "/{id}")
|
@GetMapping(value = "/{id}")
|
||||||
public R getInfo(@PathVariable("id") String 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;
|
package com.starry.admin.modules.order.module.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.starry.admin.common.conf.StringTypeHandler;
|
||||||
import com.starry.common.domain.BaseEntity;
|
import com.starry.common.domain.BaseEntity;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@@ -9,6 +11,7 @@ import org.springframework.format.annotation.DateTimeFormat;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单对象 order_info
|
* 订单对象 order_info
|
||||||
@@ -115,6 +118,13 @@ public class PlayOrderInfoEntity extends BaseEntity<PlayOrderInfoEntity> {
|
|||||||
private String commodityNumber;
|
private String commodityNumber;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单要求
|
||||||
|
*/
|
||||||
|
@TableField(typeHandler = StringTypeHandler.class)
|
||||||
|
private List<String> labels;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否使用优惠券[0:未使用,1:已使用]
|
* 是否使用优惠券[0:未使用,1:已使用]
|
||||||
*/
|
*/
|
||||||
@@ -157,6 +167,11 @@ public class PlayOrderInfoEntity extends BaseEntity<PlayOrderInfoEntity> {
|
|||||||
*/
|
*/
|
||||||
private BigDecimal estimatedRevenue;
|
private BigDecimal estimatedRevenue;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 店员收入比例
|
||||||
|
*/
|
||||||
|
private Integer estimatedRevenueRatio;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 优惠金额
|
* 优惠金额
|
||||||
@@ -249,6 +264,12 @@ public class PlayOrderInfoEntity extends BaseEntity<PlayOrderInfoEntity> {
|
|||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 后台备注
|
||||||
|
*/
|
||||||
|
private String backendRemark;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单结算状态(0:未结算;1:已结算)
|
* 订单结算状态(0:未结算;1:已结算)
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import lombok.Data;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单查询返回对象
|
* 订单查询返回对象
|
||||||
@@ -152,6 +153,17 @@ public class PlayOrderDetailsReturnVo {
|
|||||||
*/
|
*/
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单要求
|
||||||
|
*/
|
||||||
|
private List<String> labels;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否是首单【0:不是,1:是】
|
||||||
|
*/
|
||||||
|
private String firstOrder;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否评价(1:已评价;0:未评价)
|
* 是否评价(1:已评价;0:未评价)
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
package com.starry.admin.modules.order.module.vo;
|
package com.starry.admin.modules.order.module.vo;
|
||||||
|
|
||||||
import com.starry.common.domain.BasePageEntity;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
|
||||||
|
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
@@ -13,8 +11,7 @@ import javax.validation.constraints.NotNull;
|
|||||||
* @since 2024-03-20
|
* @since 2024-03-20
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = false)
|
public class PlayOrderEditAcceptByVo {
|
||||||
public class PlayOrderEditAcceptByVo extends BasePageEntity {
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -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 BigDecimal estimatedRevenue = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 店员收入比例
|
||||||
|
*/
|
||||||
|
private Integer estimatedRevenueRatio;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 微信号码
|
||||||
|
*/
|
||||||
|
private String weiChatCode;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单备注
|
* 订单备注
|
||||||
*/
|
*/
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 后台备注
|
||||||
|
*/
|
||||||
|
private String backendRemark;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -74,6 +74,19 @@ public interface IPlayOrderInfoService extends IService<PlayOrderInfoEntity> {
|
|||||||
* @since 2024/6/3 11:12
|
* @since 2024/6/3 11:12
|
||||||
**/
|
**/
|
||||||
BigDecimal getEstimatedRevenue(String clerkId, String placeType, String firstOrder, BigDecimal finalAmount);
|
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)) {
|
if (StrUtil.isNotBlank(acceptBy)) {
|
||||||
entity.setAcceptBy(acceptBy);
|
entity.setAcceptBy(acceptBy);
|
||||||
entity.setEstimatedRevenue(getEstimatedRevenue(acceptBy, placeType, firstOrder, finalAmount));
|
entity.setEstimatedRevenue(getEstimatedRevenue(acceptBy, placeType, firstOrder, finalAmount));
|
||||||
|
entity.setEstimatedRevenueRatio(getEstimatedRevenueRatio(acceptBy, placeType, firstOrder));
|
||||||
}
|
}
|
||||||
// 如果订单是打赏单,订单直接完成
|
// 如果订单是打赏单,订单直接完成
|
||||||
if ("2".equals(placeType)) {
|
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(PlayCustomUserInfoEntity.class, PlayCustomUserInfoEntity::getId, PlayOrderInfoEntity::getPurchaserBy);
|
||||||
// 子表-店员表
|
// 子表-店员表
|
||||||
lambdaQueryWrapper.leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayOrderInfoEntity::getAcceptBy);
|
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())) {
|
if (StringUtils.isNotBlank(entity.getId())) {
|
||||||
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getId, entity.getId());
|
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getId, entity.getId());
|
||||||
}
|
}
|
||||||
@@ -578,6 +610,7 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
|
|||||||
entity.setAcceptBy(acceptBy);
|
entity.setAcceptBy(acceptBy);
|
||||||
entity.setAcceptTime(LocalDateTime.now());
|
entity.setAcceptTime(LocalDateTime.now());
|
||||||
entity.setEstimatedRevenue(this.getEstimatedRevenue(acceptBy, orderInfo.getPlaceType(), orderInfo.getFirstOrder(), orderInfo.getFinalAmount()));
|
entity.setEstimatedRevenue(this.getEstimatedRevenue(acceptBy, orderInfo.getPlaceType(), orderInfo.getFirstOrder(), orderInfo.getFinalAmount()));
|
||||||
|
entity.setEstimatedRevenueRatio(this.getEstimatedRevenueRatio(acceptBy, orderInfo.getPlaceType(), orderInfo.getFirstOrder()));
|
||||||
this.baseMapper.updateById(entity);
|
this.baseMapper.updateById(entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ public class PlayOrderRandomInfoServiceImpl extends ServiceImpl<PlayOrderRandomI
|
|||||||
|
|
||||||
PlayOrderInfoEntity orderInfo = playOrderInfoService.selectOrderInfoById(id);
|
PlayOrderInfoEntity orderInfo = playOrderInfoService.selectOrderInfoById(id);
|
||||||
vo.setEstimatedRevenue(playOrderInfoService.getEstimatedRevenue(clerkId, orderInfo.getPlaceType(), orderInfo.getFirstOrder(), orderInfo.getFinalAmount()));
|
vo.setEstimatedRevenue(playOrderInfoService.getEstimatedRevenue(clerkId, orderInfo.getPlaceType(), orderInfo.getFirstOrder(), orderInfo.getFinalAmount()));
|
||||||
|
vo.setEstimatedRevenueRatio(playOrderInfoService.getEstimatedRevenueRatio(clerkId, orderInfo.getPlaceType(), orderInfo.getFirstOrder()));
|
||||||
return vo;
|
return vo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -92,6 +92,12 @@ public class PlayClerkRandomOrderDetailReturnVo {
|
|||||||
*/
|
*/
|
||||||
private BigDecimal estimatedRevenue;
|
private BigDecimal estimatedRevenue;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 店员收入比例
|
||||||
|
*/
|
||||||
|
private Integer estimatedRevenueRatio;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 优惠金额
|
* 优惠金额
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user