订单优化

This commit is contained in:
admin
2024-06-09 21:56:17 +08:00
parent 05f97ef606
commit ce83c0e973
17 changed files with 189 additions and 67 deletions

View File

@@ -118,6 +118,21 @@ public class PlayClerkUserInfoServiceImpl extends ServiceImpl<PlayClerkUserInfoM
if (map.containsKey("3")) {
result.setAudioAllowEdit(false);
}
//是店员之后,判断是否可以登录
if (result.getClerkState().equals("1")) {
//设置店员是否运行登录
if ("0".equals(userInfo.getOnboardingState())) {
result.setAllowLogin("1");
result.setDisableLoginReason("你已离职,需要复职请联系店铺管理员");
}
if ("0".equals(userInfo.getListingState())) {
result.setAllowLogin("1");
result.setDisableLoginReason("你已被下架,没有权限访问");
}
}
//如果存在未审批的申请,或者当前已经是店员-可以申请陪聊
PlayClerkUserReviewInfoEntity entity = playClerkUserReviewInfoService.queryByClerkId(userInfo.getId(), "0");
if (entity != null || "1".equals(result.getClerkState())) {
@@ -132,16 +147,6 @@ public class PlayClerkUserInfoServiceImpl extends ServiceImpl<PlayClerkUserInfoM
}
result.setCommodity(playClerkCommodityQueryVos);
result.setArea(userInfo.getProvince() + "-" + userInfo.getCity());
//设置店员是否运行登录
if ("0".equals(userInfo.getOnboardingState())) {
result.setAllowLogin("1");
result.setDisableLoginReason("你已离职,需要复职请联系店铺管理员");
}
if ("0".equals(userInfo.getListingState())) {
result.setAllowLogin("1");
result.setDisableLoginReason("你已被下架,没有权限访问");
}
return result;
}

View File

@@ -1,7 +1,10 @@
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.PlayOrderInfoQueryVo;
import com.starry.admin.modules.order.module.vo.PlayOrderRefundAddVo;
import com.starry.admin.modules.order.service.IPlayOrderInfoService;
import com.starry.common.annotation.Log;
import com.starry.common.enums.BusinessType;
@@ -29,11 +32,43 @@ public class PlayOrderInfoController {
* 分页查询订单列表
*/
@PostMapping("/listByPage")
public R list(@Validated @RequestBody PlayOrderInfoQueryVo vo) {
public R listByPage(@Validated @RequestBody PlayOrderInfoQueryVo vo) {
return R.ok(orderInfoService.selectOrderInfoPage(vo));
}
/**
* 订单退款
*/
@PostMapping("/orderRefund")
public R orderRefund(@Validated @RequestBody PlayOrderRefundAddVo vo) {
PlayOrderInfoEntity orderInfo = orderInfoService.selectOrderInfoById(vo.getOrderId());
if (orderInfo.getFinalAmount().compareTo(vo.getRefundAmount()) < 0) {
throw new CustomException("退款金额不能大于支付金额");
}
PlayOrderInfoEntity updateOrderInfo = new PlayOrderInfoEntity();
updateOrderInfo.setId(orderInfo.getId());
updateOrderInfo.setRefundType("1");
updateOrderInfo.setRefundAmount(vo.getRefundAmount());
updateOrderInfo.setRefundReason(vo.getRefundReason());
updateOrderInfo.setOrderStatus("5");
return R.ok(orderInfoService.update(updateOrderInfo));
}
/**
* 跟换店员
*/
@PostMapping("/orderEditAcceptBy")
public R orderEditAcceptBy(@Validated @RequestBody PlayOrderEditAcceptByVo vo) {
PlayOrderInfoEntity orderInfo = orderInfoService.selectOrderInfoById(vo.getOrderId());
PlayOrderInfoEntity updateOrderInfo = new PlayOrderInfoEntity();
updateOrderInfo.setId(orderInfo.getId());
updateOrderInfo.setAcceptBy(vo.getAcceptBy());
return R.ok(orderInfoService.update(updateOrderInfo));
}
/**
* 根据ID查询订单
*/

View File

@@ -74,7 +74,7 @@ public class PlayOrderComplaintInfoEntity extends BaseEntity<PlayOrderComplaintI
private List<String> images;
/**
* 数据是否隐藏0:未隐藏1:隐藏)
* 数据是否隐藏0:显示1:隐藏)
*/
private String hidden;

View File

@@ -75,7 +75,7 @@ public class PlayOrderEvaluateInfoEntity extends BaseEntity<PlayOrderEvaluateInf
private Date evaluateTime;
/**
* 数据是否隐藏0:未隐藏1:隐藏)
* 数据是否隐藏0:显示1:隐藏)
*/
private String hidden;

View File

@@ -46,6 +46,7 @@ public class PlayOrderInfoEntity extends BaseEntity<PlayOrderInfoEntity> {
* 2已开始服务中
* 3已完成
* 4已取消
* 5已退款
*/
private String orderStatus;
@@ -70,10 +71,20 @@ public class PlayOrderInfoEntity extends BaseEntity<PlayOrderInfoEntity> {
private String firstOrder;
/**
* 退款类型【0未退款1部分退款2全部退款】
* 退款类型【0未退款1退款】
*/
private String refundType;
/**
* 退款金额
*/
private BigDecimal refundAmount;
/**
* 退款原因
*/
private String refundReason;
/**
* 商品ID
*/

View File

@@ -7,6 +7,7 @@ import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* 订单投诉查询返回对象
@@ -76,10 +77,10 @@ public class PlayOrderComplaintReturnVo {
* 图片列表
*/
@TableField(typeHandler = StringTypeHandler.class)
private String images;
private List<String> images;
/**
* 数据是否隐藏0:未隐藏1:隐藏)
* 数据是否隐藏0:显示1:隐藏)
*/
private String hidden;

View File

@@ -0,0 +1,39 @@
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;
/**
* 订单查询对象
*
* @author admin
* @since 2024-03-20
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class PlayOrderEditAcceptByVo extends BasePageEntity {
/**
* uuid
*/
@NotNull(message = "orderId不能为空")
private String orderId;
/**
* 店员ID
*/
@NotNull(message = "店员不能为空")
private String acceptBy;
/**
* 备注
*/
private String remark;
}

View File

@@ -21,7 +21,7 @@ public class PlayOrderEvaluateEditStateVo {
private String id;
/**
* 数据是否隐藏0:未隐藏1:隐藏)
* 数据是否隐藏0:显示1:隐藏)
*/
@NotBlank(message = "是否隐藏不能为空")
@Pattern(regexp = "[01]", message = "是否隐藏数据错误,只能位0或者1")

View File

@@ -47,7 +47,7 @@ public class PlayOrderEvaluateQueryVo extends BasePageEntity {
private List<String> evaluateTime;
/**
* 数据是否隐藏0:未隐藏1:隐藏)
* 数据是否隐藏0:显示1:隐藏)
*/
private String hidden;
}

View File

@@ -52,7 +52,7 @@ public class PlayOrderEvaluateReturnVo {
private Date evaluateTime;
/**
* 数据是否隐藏0:未隐藏1:隐藏)
* 数据是否隐藏0:显示1:隐藏)
*/
private String hidden;

View File

@@ -88,7 +88,7 @@ public class PlayOrderInfoReturnVo {
private BigDecimal orderMoney;
/**
* 退款类型【0未退款1部分退款2全部退款】
* 退款类型【0未退款1退款】
*/
private String refundType;
@@ -154,6 +154,11 @@ public class PlayOrderInfoReturnVo {
*/
private BigDecimal finalAmount;
/**
* 店员收入
*/
private BigDecimal estimatedRevenue = BigDecimal.ZERO;
/**
* 订单备注

View File

@@ -0,0 +1,43 @@
package com.starry.admin.modules.order.module.vo;
import com.starry.common.domain.BasePageEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
/**
* 订单查询对象
*
* @author admin
* @since 2024-03-20
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class PlayOrderRefundAddVo extends BasePageEntity {
/**
* uuid
*/
@NotNull(message = "orderId不能为空")
private String orderId;
/**
* 退款金额
*/
@NotNull(message = "退款金额不能为空")
private BigDecimal refundAmount;
/**
* 退款原因
*/
@NotNull(message = "退款原因不能为空")
@Length(min = 1, max = 100, message = "退款原因必须在1-100个字符之间")
private String refundReason;
}

View File

@@ -51,7 +51,7 @@ public class PlayOrderRewardQueryVo extends BasePageEntity {
private List<String> purchaserTime;
/**
* 数据是否隐藏0:未隐藏1:隐藏)
* 数据是否隐藏0:显示1:隐藏)
*/
private String hidden;

View File

@@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.starry.admin.common.exception.CustomException;
import com.starry.admin.modules.clerk.module.entity.PlayClerkCommodityEntity;
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity;
import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity;
import com.starry.admin.modules.order.mapper.PlayOrderComplaintInfoMapper;
@@ -53,25 +52,18 @@ public class PlayOrderComplaintInfoServiceImpl extends ServiceImpl<PlayOrderComp
@Override
public IPage<PlayOrderComplaintReturnVo> selectByPage(PlayOrderComplaintQueryVo vo) {
MPJLambdaWrapper<PlayOrderComplaintInfoEntity> lambdaQueryWrapper = new MPJLambdaWrapper<PlayOrderComplaintInfoEntity>()
// 查询主表全部字段
.selectAll(PlayOrderComplaintInfoEntity.class)
// 查询顾客表字段
.selectAs(PlayCustomUserInfoEntity::getId, "customId").selectAs(PlayCustomUserInfoEntity::getAvatar, "customAvatar").selectAs(PlayCustomUserInfoEntity::getNickname, "customNickname")
// 查询陪聊表字典
.selectAs(PlayClerkUserInfoEntity::getId, "clerkId").selectAs(PlayClerkUserInfoEntity::getAvatar, "clerkAvatar").selectAs(PlayClerkUserInfoEntity::getNickname, "clerkNickname")
//查询订单表
.selectAs(PlayOrderInfoEntity::getOrderNo, "orderNo").selectAs(PlayOrderInfoEntity::getPlaceType, "placeType").selectAs(PlayOrderInfoEntity::getFinalAmount, "finalAmount").selectAs(PlayOrderInfoEntity::getCommodityNumber, "commodityNumber")
//查询商品
.selectAll(PlayClerkCommodityEntity.class)
// 顾客表
.leftJoin(PlayCustomUserInfoEntity.class, PlayCustomUserInfoEntity::getId, PlayOrderComplaintInfoEntity::getCustomId)
//店员表
.leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayOrderComplaintInfoEntity::getClerkId)
// 商品表
.leftJoin(PlayClerkCommodityEntity.class, PlayClerkCommodityEntity::getId, PlayOrderEvaluateInfoEntity::getCommodityId)
//订单表
.leftJoin(PlayOrderInfoEntity.class, PlayOrderInfoEntity::getId, PlayOrderEvaluateInfoEntity::getOrderId);
MPJLambdaWrapper<PlayOrderComplaintInfoEntity> lambdaQueryWrapper = new MPJLambdaWrapper<PlayOrderComplaintInfoEntity>();
// 查询主表全部字段
lambdaQueryWrapper.selectAll(PlayOrderComplaintInfoEntity.class);
//查询订单表
lambdaQueryWrapper.selectAs(PlayOrderInfoEntity::getOrderNo, "orderNo").selectAs(PlayOrderInfoEntity::getPlaceType, "placeType").selectAs(PlayOrderInfoEntity::getFinalAmount, "finalAmount").selectAs(PlayOrderInfoEntity::getCommodityPrice, "commodityPrice").selectAs(PlayOrderInfoEntity::getServiceDuration, "serviceDuration").selectAs(PlayOrderInfoEntity::getCommodityName, "commodityName").selectAs(PlayOrderInfoEntity::getCommodityType, "commodityType").selectAs(PlayOrderInfoEntity::getCommodityId, "commodityId").selectAs(PlayOrderInfoEntity::getCommodityNumber, "commodityNumber");
lambdaQueryWrapper.leftJoin(PlayOrderInfoEntity.class, PlayOrderInfoEntity::getId, PlayOrderEvaluateInfoEntity::getOrderId);
// 查询顾客表字段
lambdaQueryWrapper.selectAs(PlayCustomUserInfoEntity::getId, "customId").selectAs(PlayCustomUserInfoEntity::getAvatar, "customAvatar").selectAs(PlayCustomUserInfoEntity::getNickname, "customNickname");
lambdaQueryWrapper.leftJoin(PlayCustomUserInfoEntity.class, PlayCustomUserInfoEntity::getId, PlayOrderComplaintInfoEntity::getCustomId);
// 查询陪聊
lambdaQueryWrapper.selectAs(PlayClerkUserInfoEntity::getId, "clerkId").selectAs(PlayClerkUserInfoEntity::getAvatar, "clerkAvatar").selectAs(PlayClerkUserInfoEntity::getNickname, "clerkNickname");
lambdaQueryWrapper.leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayOrderComplaintInfoEntity::getClerkId);
if (StrUtil.isNotBlank(vo.getClerkId())) {
lambdaQueryWrapper.eq(PlayOrderComplaintInfoEntity::getClerkId, vo.getClerkId());
}
@@ -82,7 +74,7 @@ public class PlayOrderComplaintInfoServiceImpl extends ServiceImpl<PlayOrderComp
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getOrderNo, vo.getOrderNo());
}
if (StrUtil.isNotBlank(vo.getWeiChatCode())) {
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getWeiChatCode, vo.getWeiChatCode());
lambdaQueryWrapper.eq(PlayOrderComplaintInfoEntity::getWxChatCode, vo.getWeiChatCode());
}
if (vo.getComplaintTime() != null && vo.getComplaintTime().size() == 2) {
lambdaQueryWrapper.between(PlayOrderComplaintInfoEntity::getComplaintTime, vo.getComplaintTime().get(0), vo.getComplaintTime().get(1));

View File

@@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.starry.admin.common.exception.CustomException;
import com.starry.admin.modules.clerk.module.entity.PlayClerkCommodityEntity;
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity;
import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity;
import com.starry.admin.modules.order.mapper.PlayOrderEvaluateInfoMapper;
@@ -78,25 +77,21 @@ public class PlayOrderEvaluateInfoServiceImpl extends ServiceImpl<PlayOrderEvalu
@Override
public IPage<PlayOrderEvaluateReturnVo> selectByPage(PlayOrderEvaluateQueryVo vo) {
MPJLambdaWrapper<PlayOrderEvaluateInfoEntity> lambdaQueryWrapper = new MPJLambdaWrapper<PlayOrderEvaluateInfoEntity>()
// 查询主表全部字段
.selectAll(PlayOrderEvaluateInfoEntity.class)
// 查询顾客表字段
.selectAs(PlayCustomUserInfoEntity::getId, "customId").selectAs(PlayCustomUserInfoEntity::getAvatar, "customAvatar").selectAs(PlayCustomUserInfoEntity::getNickname, "customNickname")
// 查询陪聊表字典
.selectAs(PlayClerkUserInfoEntity::getId, "clerkId").selectAs(PlayClerkUserInfoEntity::getAvatar, "clerkAvatar").selectAs(PlayClerkUserInfoEntity::getNickname, "clerkNickname")
//查询订单表
.selectAs(PlayOrderInfoEntity::getOrderNo, "orderNo").selectAs(PlayOrderInfoEntity::getPlaceType, "placeType").selectAs(PlayOrderInfoEntity::getFinalAmount, "finalAmount").selectAs(PlayOrderInfoEntity::getCommodityNumber, "commodityNumber")
// 查询商品表全部字段(陪聊服务项目表)
.selectAll(PlayClerkCommodityEntity.class)
// 顾客表
.leftJoin(PlayCustomUserInfoEntity.class, PlayCustomUserInfoEntity::getId, PlayOrderEvaluateInfoEntity::getCustomId)
// 店员表
.leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayOrderEvaluateInfoEntity::getClerkId)
// 商品表
.leftJoin(PlayClerkCommodityEntity.class, PlayClerkCommodityEntity::getId, PlayOrderEvaluateInfoEntity::getCommodityId)
//订单表
.leftJoin(PlayOrderInfoEntity.class, PlayOrderInfoEntity::getId, PlayOrderEvaluateInfoEntity::getOrderId);
MPJLambdaWrapper<PlayOrderEvaluateInfoEntity> lambdaQueryWrapper = new MPJLambdaWrapper<PlayOrderEvaluateInfoEntity>();
// 查询主表全部字段
lambdaQueryWrapper.selectAll(PlayOrderEvaluateInfoEntity.class);
// 查询顾客表字段
lambdaQueryWrapper.selectAs(PlayCustomUserInfoEntity::getId, "customId").selectAs(PlayCustomUserInfoEntity::getAvatar, "customAvatar").selectAs(PlayCustomUserInfoEntity::getNickname, "customNickname");
lambdaQueryWrapper.leftJoin(PlayCustomUserInfoEntity.class, PlayCustomUserInfoEntity::getId, PlayOrderEvaluateInfoEntity::getCustomId);
// 查询店员表字典
lambdaQueryWrapper.selectAs(PlayClerkUserInfoEntity::getId, "clerkId").selectAs(PlayClerkUserInfoEntity::getAvatar, "clerkAvatar").selectAs(PlayClerkUserInfoEntity::getNickname, "clerkNickname");
lambdaQueryWrapper.leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayOrderEvaluateInfoEntity::getClerkId);
//查询订单表
lambdaQueryWrapper.selectAs(PlayOrderInfoEntity::getOrderNo, "orderNo").selectAs(PlayOrderInfoEntity::getPlaceType, "placeType").selectAs(PlayOrderInfoEntity::getFinalAmount, "finalAmount").selectAs(PlayOrderInfoEntity::getCommodityPrice, "commodityPrice").selectAs(PlayOrderInfoEntity::getServiceDuration, "serviceDuration").selectAs(PlayOrderInfoEntity::getCommodityName, "commodityName").selectAs(PlayOrderInfoEntity::getCommodityType, "commodityType").selectAs(PlayOrderInfoEntity::getCommodityId, "commodityId").selectAs(PlayOrderInfoEntity::getCommodityNumber, "commodityNumber");
lambdaQueryWrapper.leftJoin(PlayOrderInfoEntity.class, PlayOrderInfoEntity::getId, PlayOrderEvaluateInfoEntity::getOrderId);
if (StrUtil.isNotBlank(vo.getClerkId())) {
lambdaQueryWrapper.eq(PlayOrderEvaluateInfoEntity::getClerkId, vo.getClerkId());
}

View File

@@ -553,6 +553,7 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
if (StringUtils.isNotBlank(entity.getOrderType())) {
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getOrderType, entity.getOrderType());
}
lambdaQueryWrapper.orderByDesc(PlayOrderInfoEntity::getPurchaserTime);
return lambdaQueryWrapper;
}

View File

@@ -125,11 +125,6 @@ public class PlayClerkUserLoginResponseVo {
*/
private boolean clerkAllowEdit = true;
/**
* 在职状态1在职0离职
*/
private String onboardingState = "1";
/**
* 服务项目
*/