订单评价和投诉
This commit is contained in:
@@ -1,11 +1,14 @@
|
|||||||
package com.starry.admin.modules.custom.module.entity;
|
package com.starry.admin.modules.custom.module.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
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;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 顾客留言对象 play_custom_leave_msg
|
* 顾客留言对象 play_custom_leave_msg
|
||||||
@@ -15,7 +18,7 @@ import java.util.Date;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = false)
|
@EqualsAndHashCode(callSuper = false)
|
||||||
@TableName("play_custom_leave_msg")
|
@TableName(value = "play_custom_leave_msg", autoResultMap = true)
|
||||||
public class PlayCustomLeaveMsgEntity extends BaseEntity<PlayCustomLeaveMsgEntity> {
|
public class PlayCustomLeaveMsgEntity extends BaseEntity<PlayCustomLeaveMsgEntity> {
|
||||||
|
|
||||||
|
|
||||||
@@ -42,7 +45,8 @@ public class PlayCustomLeaveMsgEntity extends BaseEntity<PlayCustomLeaveMsgEntit
|
|||||||
/**
|
/**
|
||||||
* 图片
|
* 图片
|
||||||
*/
|
*/
|
||||||
private String images;
|
@TableField(typeHandler = StringTypeHandler.class)
|
||||||
|
private List<String> images;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 留言时间
|
* 留言时间
|
||||||
|
|||||||
@@ -22,6 +22,15 @@ public interface IPlayCustomLeaveMsgService extends IService<PlayCustomLeaveMsgE
|
|||||||
PlayCustomLeaveMsgEntity selectPlayCustomLeaveMsgById(String id);
|
PlayCustomLeaveMsgEntity selectPlayCustomLeaveMsgById(String id);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询当前用户不允许留言的原因
|
||||||
|
*
|
||||||
|
* @param customId 顾客ID
|
||||||
|
* @return 没有权限原因
|
||||||
|
*/
|
||||||
|
String queryNoMessagesAllowedReason(String customId);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询顾客留言列表
|
* 分页查询顾客留言列表
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -7,15 +7,20 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||||
|
import com.starry.admin.common.conf.ThreadLocalRequestDetail;
|
||||||
|
import com.starry.admin.common.exception.CustomException;
|
||||||
import com.starry.admin.modules.custom.mapper.PlayCustomLeaveMsgMapper;
|
import com.starry.admin.modules.custom.mapper.PlayCustomLeaveMsgMapper;
|
||||||
import com.starry.admin.modules.custom.module.entity.PlayCustomLeaveMsgEntity;
|
import com.starry.admin.modules.custom.module.entity.PlayCustomLeaveMsgEntity;
|
||||||
import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity;
|
import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity;
|
||||||
import com.starry.admin.modules.custom.module.vo.PlayCustomLeaveMsgQueryVo;
|
import com.starry.admin.modules.custom.module.vo.PlayCustomLeaveMsgQueryVo;
|
||||||
import com.starry.admin.modules.custom.module.vo.PlayCustomLeaveMsgReturnVo;
|
import com.starry.admin.modules.custom.module.vo.PlayCustomLeaveMsgReturnVo;
|
||||||
import com.starry.admin.modules.custom.service.IPlayCustomLeaveMsgService;
|
import com.starry.admin.modules.custom.service.IPlayCustomLeaveMsgService;
|
||||||
|
import com.starry.common.utils.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalTime;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -61,7 +66,31 @@ public class PlayCustomLeaveMsgServiceImpl extends ServiceImpl<PlayCustomLeaveMs
|
|||||||
@Override
|
@Override
|
||||||
public IPage<PlayCustomLeaveMsgEntity> selectPlayCustomLeaveMsgByPage(PlayCustomLeaveMsgEntity playCustomLeaveMsg) {
|
public IPage<PlayCustomLeaveMsgEntity> selectPlayCustomLeaveMsgByPage(PlayCustomLeaveMsgEntity playCustomLeaveMsg) {
|
||||||
Page<PlayCustomLeaveMsgEntity> page = new Page<>(1, 10);
|
Page<PlayCustomLeaveMsgEntity> page = new Page<>(1, 10);
|
||||||
return this.baseMapper.selectPage(page, new LambdaQueryWrapper<PlayCustomLeaveMsgEntity>());
|
return this.baseMapper.selectPage(page, new LambdaQueryWrapper<>());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询当前用户不允许留言的原因
|
||||||
|
* 1、一个人在同一天只能留言一次
|
||||||
|
*
|
||||||
|
* @param customId 顾客ID
|
||||||
|
* @return 当前用户不允许留言的原因
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String queryNoMessagesAllowedReason(String customId) {
|
||||||
|
// 1、一个人在同一天只能留言一次
|
||||||
|
LocalDateTime now = LocalDateTime.now();
|
||||||
|
LocalDateTime start = LocalDateTime.of(now.toLocalDate(), LocalTime.MIN);
|
||||||
|
LocalDateTime end = LocalDateTime.of(now.toLocalDate(), LocalTime.MAX);
|
||||||
|
LambdaQueryWrapper<PlayCustomLeaveMsgEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
lambdaQueryWrapper.eq(PlayCustomLeaveMsgEntity::getCustomId, customId);
|
||||||
|
lambdaQueryWrapper.between(PlayCustomLeaveMsgEntity::getMsgTime, start, end);
|
||||||
|
if (this.baseMapper.selectOne(lambdaQueryWrapper) != null) {
|
||||||
|
return "一天只能留言一次";
|
||||||
|
}
|
||||||
|
// 2、
|
||||||
|
// 3、
|
||||||
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -72,6 +101,10 @@ public class PlayCustomLeaveMsgServiceImpl extends ServiceImpl<PlayCustomLeaveMs
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean create(PlayCustomLeaveMsgEntity playCustomLeaveMsg) {
|
public boolean create(PlayCustomLeaveMsgEntity playCustomLeaveMsg) {
|
||||||
|
String noMessagesAllowedReason = this.queryNoMessagesAllowedReason(ThreadLocalRequestDetail.getCustomUserInfo().getId());
|
||||||
|
if (StringUtils.isNotEmpty(noMessagesAllowedReason)) {
|
||||||
|
throw new CustomException(noMessagesAllowedReason);
|
||||||
|
}
|
||||||
if (StrUtil.isBlankIfStr(playCustomLeaveMsg.getId())) {
|
if (StrUtil.isBlankIfStr(playCustomLeaveMsg.getId())) {
|
||||||
playCustomLeaveMsg.setId(IdUtil.fastSimpleUUID());
|
playCustomLeaveMsg.setId(IdUtil.fastSimpleUUID());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.starry.admin.modules.order.module.constant;
|
package com.starry.admin.modules.order.module.constant;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author 杭州世平信息科技有限公司-xuhq
|
* @author admin
|
||||||
* @since 2024/5/8 15:41
|
* @since 2024/5/8 15:41
|
||||||
**/
|
**/
|
||||||
public class OrderConstant {
|
public class OrderConstant {
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
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.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;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单投诉信息对象 play_order_complaint_info
|
* 订单投诉信息对象 play_order_complaint_info
|
||||||
@@ -15,7 +18,7 @@ import java.util.Date;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = false)
|
@EqualsAndHashCode(callSuper = false)
|
||||||
@TableName("play_order_complaint_info")
|
@TableName(value = "play_order_complaint_info", autoResultMap = true)
|
||||||
public class PlayOrderComplaintInfoEntity extends BaseEntity<PlayOrderComplaintInfoEntity> {
|
public class PlayOrderComplaintInfoEntity extends BaseEntity<PlayOrderComplaintInfoEntity> {
|
||||||
|
|
||||||
|
|
||||||
@@ -62,7 +65,8 @@ public class PlayOrderComplaintInfoEntity extends BaseEntity<PlayOrderComplaintI
|
|||||||
/**
|
/**
|
||||||
* 图片列表
|
* 图片列表
|
||||||
*/
|
*/
|
||||||
private String images;
|
@TableField(typeHandler = StringTypeHandler.class)
|
||||||
|
private List<String> images;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 数据是否隐藏(0:未隐藏,1:隐藏)
|
* 数据是否隐藏(0:未隐藏,1:隐藏)
|
||||||
|
|||||||
@@ -0,0 +1,135 @@
|
|||||||
|
package com.starry.admin.modules.order.module.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单查询返回对象
|
||||||
|
*
|
||||||
|
* @author admin
|
||||||
|
* @since 2024-03-20
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
public class PlayOrderDetailsReturnVo {
|
||||||
|
|
||||||
|
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户ID
|
||||||
|
*/
|
||||||
|
private String customId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户昵称
|
||||||
|
*/
|
||||||
|
private String customNickname;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户头像
|
||||||
|
*/
|
||||||
|
private String customAvatar;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 店员ID
|
||||||
|
*/
|
||||||
|
private String clerkId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 店员昵称
|
||||||
|
*/
|
||||||
|
private String clerkNickname;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 店员头像
|
||||||
|
*/
|
||||||
|
private String clerkAvatar;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 下单时间
|
||||||
|
*/
|
||||||
|
private Date purchaserTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单金额
|
||||||
|
*/
|
||||||
|
private BigDecimal orderMoney;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单最终金额
|
||||||
|
*/
|
||||||
|
private BigDecimal finalAmount;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商品ID
|
||||||
|
*/
|
||||||
|
private String commodityId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商品类型[0:礼物,1:服务]
|
||||||
|
*/
|
||||||
|
private String commodityType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商品类型[0:礼物,1:服务]
|
||||||
|
*/
|
||||||
|
private String commodityName;
|
||||||
|
/**
|
||||||
|
* 商品单价
|
||||||
|
*/
|
||||||
|
private BigDecimal commodityPrice;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 服务市场
|
||||||
|
*
|
||||||
|
* @since 2024/5/8 16:44
|
||||||
|
**/
|
||||||
|
private String serviceDuration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商品数量
|
||||||
|
*/
|
||||||
|
private int commodityNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单状态【0:1:2:3:4】
|
||||||
|
* 0:已下单(待接单)
|
||||||
|
* 1:已接单(待开始)
|
||||||
|
* 2:已开始(服务中)
|
||||||
|
* 3:已完成
|
||||||
|
* 4:已取消
|
||||||
|
*/
|
||||||
|
private String orderStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 下单类型(0:指定单,1:随机单。2:打赏单)
|
||||||
|
*/
|
||||||
|
private String placeType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 微信号码
|
||||||
|
*/
|
||||||
|
private String weiChatCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付方式,0:余额支付,1:微信支付,2:支付宝支付
|
||||||
|
*/
|
||||||
|
private String payMethod;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -3,10 +3,7 @@ package com.starry.admin.modules.order.service;
|
|||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
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.PlayOrderInfoQueryVo;
|
import com.starry.admin.modules.order.module.vo.*;
|
||||||
import com.starry.admin.modules.order.module.vo.PlayOrderInfoReturnVo;
|
|
||||||
import com.starry.admin.modules.order.module.vo.PlayOrderRewardQueryVo;
|
|
||||||
import com.starry.admin.modules.order.module.vo.PlayOrderRewardReturnVo;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
@@ -84,6 +81,14 @@ public interface IPlayOrderInfoService extends IService<PlayOrderInfoEntity> {
|
|||||||
*/
|
*/
|
||||||
IPage<PlayOrderRewardReturnVo> selectRewardOrderInfoByPage(PlayOrderRewardQueryVo vo);
|
IPage<PlayOrderRewardReturnVo> selectRewardOrderInfoByPage(PlayOrderRewardQueryVo vo);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据订单ID查询订单信息
|
||||||
|
*
|
||||||
|
* @param orderId 订单ID
|
||||||
|
* @return 订单信息
|
||||||
|
*/
|
||||||
|
PlayOrderDetailsReturnVo selectById(String orderId);
|
||||||
/**
|
/**
|
||||||
* 查询订单
|
* 查询订单
|
||||||
*
|
*
|
||||||
@@ -137,7 +142,7 @@ public interface IPlayOrderInfoService extends IService<PlayOrderInfoEntity> {
|
|||||||
* 顾客取消订单
|
* 顾客取消订单
|
||||||
*
|
*
|
||||||
* @param orderId 订单ID
|
* @param orderId 订单ID
|
||||||
* @author 杭州世平信息科技有限公司-xuhq
|
* @author admin
|
||||||
* @since 2024/5/8 16:56
|
* @since 2024/5/8 16:56
|
||||||
**/
|
**/
|
||||||
void customCancellationOrder(String orderId);
|
void customCancellationOrder(String orderId);
|
||||||
|
|||||||
@@ -7,12 +7,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||||
|
import com.starry.admin.common.exception.CustomException;
|
||||||
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity;
|
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity;
|
||||||
import com.starry.admin.modules.commodity.module.entity.PlayClerkServiceEntity;
|
|
||||||
import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity;
|
import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity;
|
||||||
import com.starry.admin.modules.order.mapper.PlayOrderComplaintInfoMapper;
|
import com.starry.admin.modules.order.mapper.PlayOrderComplaintInfoMapper;
|
||||||
import com.starry.admin.modules.order.module.entity.PlayOrderComplaintInfoEntity;
|
import com.starry.admin.modules.order.module.entity.PlayOrderComplaintInfoEntity;
|
||||||
import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity;
|
|
||||||
import com.starry.admin.modules.order.module.vo.PlayOrderComplaintQueryVo;
|
import com.starry.admin.modules.order.module.vo.PlayOrderComplaintQueryVo;
|
||||||
import com.starry.admin.modules.order.module.vo.PlayOrderComplaintReturnVo;
|
import com.starry.admin.modules.order.module.vo.PlayOrderComplaintReturnVo;
|
||||||
import com.starry.admin.modules.order.service.IPlayOrderComplaintInfoService;
|
import com.starry.admin.modules.order.service.IPlayOrderComplaintInfoService;
|
||||||
@@ -80,12 +79,31 @@ public class PlayOrderComplaintInfoServiceImpl extends ServiceImpl<PlayOrderComp
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean create(PlayOrderComplaintInfoEntity playOrderComplaintInfo) {
|
public boolean create(PlayOrderComplaintInfoEntity playOrderComplaintInfo) {
|
||||||
|
if (allowComplaint(playOrderComplaintInfo.getCustomId(), playOrderComplaintInfo.getOrderId())) {
|
||||||
|
throw new CustomException("一个订单只能投诉一次");
|
||||||
|
}
|
||||||
if (StrUtil.isBlankIfStr(playOrderComplaintInfo.getId())) {
|
if (StrUtil.isBlankIfStr(playOrderComplaintInfo.getId())) {
|
||||||
playOrderComplaintInfo.setId(IdUtil.fastSimpleUUID());
|
playOrderComplaintInfo.setId(IdUtil.fastSimpleUUID());
|
||||||
}
|
}
|
||||||
return save(playOrderComplaintInfo);
|
return save(playOrderComplaintInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 当前订单是否已投诉
|
||||||
|
*
|
||||||
|
* @param customerId 顾客ID
|
||||||
|
* @param orderId 订单ID
|
||||||
|
* @return true:订单已评价,false:订单未评价
|
||||||
|
*/
|
||||||
|
public boolean allowComplaint(String customerId, String orderId) {
|
||||||
|
LambdaQueryWrapper<PlayOrderComplaintInfoEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
lambdaQueryWrapper.eq(PlayOrderComplaintInfoEntity::getCustomId, customerId);
|
||||||
|
lambdaQueryWrapper.eq(PlayOrderComplaintInfoEntity::getOrderId, orderId);
|
||||||
|
return this.baseMapper.selectOne(lambdaQueryWrapper) != null;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改订单投诉信息
|
* 修改订单投诉信息
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||||
|
import com.starry.admin.common.exception.CustomException;
|
||||||
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity;
|
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity;
|
||||||
import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity;
|
import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity;
|
||||||
import com.starry.admin.modules.order.mapper.PlayOrderEvaluateInfoMapper;
|
import com.starry.admin.modules.order.mapper.PlayOrderEvaluateInfoMapper;
|
||||||
import com.starry.admin.modules.order.module.entity.PlayOrderComplaintInfoEntity;
|
|
||||||
import com.starry.admin.modules.order.module.entity.PlayOrderEvaluateInfoEntity;
|
import com.starry.admin.modules.order.module.entity.PlayOrderEvaluateInfoEntity;
|
||||||
import com.starry.admin.modules.order.module.vo.PlayOrderEvaluateQueryVo;
|
import com.starry.admin.modules.order.module.vo.PlayOrderEvaluateQueryVo;
|
||||||
import com.starry.admin.modules.order.module.vo.PlayOrderEvaluateReturnVo;
|
import com.starry.admin.modules.order.module.vo.PlayOrderEvaluateReturnVo;
|
||||||
@@ -39,6 +39,10 @@ public class PlayOrderEvaluateInfoServiceImpl extends ServiceImpl<PlayOrderEvalu
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public PlayOrderEvaluateInfoEntity selectPlayOrderEvaluateInfoById(String id) {
|
public PlayOrderEvaluateInfoEntity selectPlayOrderEvaluateInfoById(String id) {
|
||||||
|
PlayOrderEvaluateInfoEntity entity = this.baseMapper.selectById(id);
|
||||||
|
if (entity == null) {
|
||||||
|
throw new CustomException("评价信息不存在");
|
||||||
|
}
|
||||||
return this.baseMapper.selectById(id);
|
return this.baseMapper.selectById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -73,17 +77,36 @@ public class PlayOrderEvaluateInfoServiceImpl extends ServiceImpl<PlayOrderEvalu
|
|||||||
/**
|
/**
|
||||||
* 新增订单评价信息
|
* 新增订单评价信息
|
||||||
*
|
*
|
||||||
|
*
|
||||||
* @param playOrderEvaluateInfo 订单评价信息
|
* @param playOrderEvaluateInfo 订单评价信息
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean create(PlayOrderEvaluateInfoEntity playOrderEvaluateInfo) {
|
public boolean create(PlayOrderEvaluateInfoEntity playOrderEvaluateInfo) {
|
||||||
|
if (allowComplaint(playOrderEvaluateInfo.getCustomId(), playOrderEvaluateInfo.getOrderId())) {
|
||||||
|
throw new CustomException("一个订单只能评价一次");
|
||||||
|
}
|
||||||
if (StrUtil.isBlankIfStr(playOrderEvaluateInfo.getId())) {
|
if (StrUtil.isBlankIfStr(playOrderEvaluateInfo.getId())) {
|
||||||
playOrderEvaluateInfo.setId(IdUtil.fastSimpleUUID());
|
playOrderEvaluateInfo.setId(IdUtil.fastSimpleUUID());
|
||||||
}
|
}
|
||||||
return save(playOrderEvaluateInfo);
|
return save(playOrderEvaluateInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 当前订单是否已评价
|
||||||
|
*
|
||||||
|
* @param customerId 顾客ID
|
||||||
|
* @param orderId 订单ID
|
||||||
|
* @return true:订单已评价,false:订单未评价
|
||||||
|
*/
|
||||||
|
public boolean allowComplaint(String customerId, String orderId) {
|
||||||
|
LambdaQueryWrapper<PlayOrderEvaluateInfoEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
lambdaQueryWrapper.eq(PlayOrderEvaluateInfoEntity::getCustomId, customerId);
|
||||||
|
lambdaQueryWrapper.eq(PlayOrderEvaluateInfoEntity::getOrderId, orderId);
|
||||||
|
return this.baseMapper.selectOne(lambdaQueryWrapper) != null;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改订单评价信息
|
* 修改订单评价信息
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -14,10 +14,7 @@ import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity;
|
|||||||
import com.starry.admin.modules.order.mapper.PlayOrderInfoMapper;
|
import com.starry.admin.modules.order.mapper.PlayOrderInfoMapper;
|
||||||
import com.starry.admin.modules.order.module.constant.OrderConstant;
|
import com.starry.admin.modules.order.module.constant.OrderConstant;
|
||||||
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.PlayOrderInfoQueryVo;
|
import com.starry.admin.modules.order.module.vo.*;
|
||||||
import com.starry.admin.modules.order.module.vo.PlayOrderInfoReturnVo;
|
|
||||||
import com.starry.admin.modules.order.module.vo.PlayOrderRewardQueryVo;
|
|
||||||
import com.starry.admin.modules.order.module.vo.PlayOrderRewardReturnVo;
|
|
||||||
import com.starry.admin.modules.order.service.IPlayOrderInfoService;
|
import com.starry.admin.modules.order.service.IPlayOrderInfoService;
|
||||||
import com.starry.common.utils.StringUtils;
|
import com.starry.common.utils.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -152,6 +149,7 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询订单
|
* 查询订单
|
||||||
*
|
*
|
||||||
@@ -167,6 +165,24 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
|
|||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PlayOrderDetailsReturnVo selectById(String orderId) {
|
||||||
|
MPJLambdaWrapper<PlayOrderInfoEntity> lambdaQueryWrapper = new MPJLambdaWrapper<PlayOrderInfoEntity>()
|
||||||
|
// 查询主表全部字段
|
||||||
|
.selectAll(PlayOrderInfoEntity.class)
|
||||||
|
// 查询顾客表
|
||||||
|
.selectAs(PlayCustomUserInfoEntity::getId, "customUserId").selectAs(PlayCustomUserInfoEntity::getAvatar, "customAvatar").selectAs(PlayCustomUserInfoEntity::getNickname, "customUserNickname")
|
||||||
|
// 查询陪聊表
|
||||||
|
.selectAs(PlayClerkUserInfoEntity::getId, "clerkUserId").selectAs(PlayClerkUserInfoEntity::getAvatar, "clerkUserAvatar").selectAs(PlayClerkUserInfoEntity::getNickname, "clerkUserNickname")
|
||||||
|
// 子表
|
||||||
|
.leftJoin(PlayCustomUserInfoEntity.class, PlayCustomUserInfoEntity::getId, PlayOrderInfoEntity::getPurchaserBy).leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayOrderInfoEntity::getAcceptBy);
|
||||||
|
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getPlaceType, "2");
|
||||||
|
lambdaQueryWrapper.orderByDesc(PlayOrderInfoEntity::getPurchaserTime);
|
||||||
|
return this.baseMapper.selectJoinOne(PlayOrderDetailsReturnVo.class, lambdaQueryWrapper);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询订单信息
|
* 分页查询订单信息
|
||||||
*
|
*
|
||||||
@@ -185,7 +201,6 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
|
|||||||
.selectAs(PlayClerkUserInfoEntity::getId, "clerkUserId").selectAs(PlayClerkUserInfoEntity::getAvatar, "clerkUserAvatar").selectAs(PlayClerkUserInfoEntity::getNickname, "clerkUserNickname")
|
.selectAs(PlayClerkUserInfoEntity::getId, "clerkUserId").selectAs(PlayClerkUserInfoEntity::getAvatar, "clerkUserAvatar").selectAs(PlayClerkUserInfoEntity::getNickname, "clerkUserNickname")
|
||||||
// 商品表
|
// 商品表
|
||||||
.selectAs(PlayClerkCommodityEntity::getId, "commodityId").selectAs(PlayClerkCommodityEntity::getCommodityName, "commodityName").selectAs(PlayClerkCommodityEntity::getServiceDuration, "serviceDuration")
|
.selectAs(PlayClerkCommodityEntity::getId, "commodityId").selectAs(PlayClerkCommodityEntity::getCommodityName, "commodityName").selectAs(PlayClerkCommodityEntity::getServiceDuration, "serviceDuration")
|
||||||
|
|
||||||
// 子表-顾客表
|
// 子表-顾客表
|
||||||
.leftJoin(PlayCustomUserInfoEntity.class, PlayCustomUserInfoEntity::getId, PlayOrderInfoEntity::getPurchaserBy)
|
.leftJoin(PlayCustomUserInfoEntity.class, PlayCustomUserInfoEntity::getId, PlayOrderInfoEntity::getPurchaserBy)
|
||||||
// 子表-店员表
|
// 子表-店员表
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.starry.admin.modules.weichat.controller;
|
package com.starry.admin.modules.weichat.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.starry.admin.common.aspect.CustomUserLogin;
|
import com.starry.admin.common.aspect.CustomUserLogin;
|
||||||
import com.starry.admin.common.conf.ThreadLocalRequestDetail;
|
import com.starry.admin.common.conf.ThreadLocalRequestDetail;
|
||||||
@@ -11,14 +12,21 @@ import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity;
|
|||||||
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserListResultVo;
|
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserListResultVo;
|
||||||
import com.starry.admin.modules.clerk.service.IPlayClerkCommodityService;
|
import com.starry.admin.modules.clerk.service.IPlayClerkCommodityService;
|
||||||
import com.starry.admin.modules.clerk.service.IPlayClerkUserInfoService;
|
import com.starry.admin.modules.clerk.service.IPlayClerkUserInfoService;
|
||||||
|
import com.starry.admin.modules.custom.module.entity.PlayCustomLeaveMsgEntity;
|
||||||
import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity;
|
import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity;
|
||||||
|
import com.starry.admin.modules.custom.service.IPlayCustomLeaveMsgService;
|
||||||
import com.starry.admin.modules.custom.service.IPlayCustomUserInfoService;
|
import com.starry.admin.modules.custom.service.IPlayCustomUserInfoService;
|
||||||
import com.starry.admin.modules.follow.service.IPlayCustomFollowInfoService;
|
import com.starry.admin.modules.follow.service.IPlayCustomFollowInfoService;
|
||||||
import com.starry.admin.modules.gift.module.entity.PlayGiftInfoEntity;
|
import com.starry.admin.modules.gift.module.entity.PlayGiftInfoEntity;
|
||||||
import com.starry.admin.modules.gift.service.IPlayGiftInfoService;
|
import com.starry.admin.modules.gift.service.IPlayGiftInfoService;
|
||||||
|
import com.starry.admin.modules.order.module.entity.PlayOrderComplaintInfoEntity;
|
||||||
|
import com.starry.admin.modules.order.module.entity.PlayOrderEvaluateInfoEntity;
|
||||||
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.PlayOrderDetailsReturnVo;
|
||||||
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.PlayOrderInfoReturnVo;
|
import com.starry.admin.modules.order.module.vo.PlayOrderInfoReturnVo;
|
||||||
|
import com.starry.admin.modules.order.service.IPlayOrderComplaintInfoService;
|
||||||
|
import com.starry.admin.modules.order.service.IPlayOrderEvaluateInfoService;
|
||||||
import com.starry.admin.modules.order.service.IPlayOrderInfoService;
|
import com.starry.admin.modules.order.service.IPlayOrderInfoService;
|
||||||
import com.starry.admin.modules.weichat.entity.*;
|
import com.starry.admin.modules.weichat.entity.*;
|
||||||
import com.starry.admin.modules.weichat.service.WxCustomUserService;
|
import com.starry.admin.modules.weichat.service.WxCustomUserService;
|
||||||
@@ -32,6 +40,7 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author admin
|
* @author admin
|
||||||
@@ -66,7 +75,16 @@ public class WxCustomController {
|
|||||||
private WxCustomUserService customUserService;
|
private WxCustomUserService customUserService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IPlayOrderInfoService orderInfoService;
|
private IPlayOrderInfoService playOrderInfoService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IPlayCustomLeaveMsgService playCustomLeaveMsgService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IPlayOrderComplaintInfoService playOrderComplaintInfoService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IPlayOrderEvaluateInfoService playOrderEvaluateInfoService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据店员ID查询店员详细信息
|
* 根据店员ID查询店员详细信息
|
||||||
@@ -115,7 +133,7 @@ public class WxCustomController {
|
|||||||
throw new CustomException("余额不足");
|
throw new CustomException("余额不足");
|
||||||
}
|
}
|
||||||
// 记录订单信息
|
// 记录订单信息
|
||||||
orderInfoService.createRewardOrder(new BigDecimal(vo.getMoney()), new BigDecimal(vo.getMoney()), userId);
|
playOrderInfoService.createRewardOrder(new BigDecimal(vo.getMoney()), new BigDecimal(vo.getMoney()), userId);
|
||||||
// 顾客减少余额
|
// 顾客减少余额
|
||||||
customUserInfoService.updateAccountBalanceById(customUserInfo.getId(), customUserInfo.getAccountBalance().subtract(new BigDecimal(vo.getMoney())));
|
customUserInfoService.updateAccountBalanceById(customUserInfo.getId(), customUserInfo.getAccountBalance().subtract(new BigDecimal(vo.getMoney())));
|
||||||
playBalanceDetailsInfoService.create("0", customUserInfo.getId(), customUserInfo.getAccountBalance(), customUserInfo.getAccountBalance().subtract(new BigDecimal(vo.getMoney())), "打赏", new BigDecimal(vo.getMoney()).multiply(new BigDecimal("-1")));
|
playBalanceDetailsInfoService.create("0", customUserInfo.getId(), customUserInfo.getAccountBalance(), customUserInfo.getAccountBalance().subtract(new BigDecimal(vo.getMoney())), "打赏", new BigDecimal(vo.getMoney()).multiply(new BigDecimal("-1")));
|
||||||
@@ -141,7 +159,7 @@ public class WxCustomController {
|
|||||||
throw new CustomException("账号余额不足");
|
throw new CustomException("账号余额不足");
|
||||||
}
|
}
|
||||||
// 记录订单信息
|
// 记录订单信息
|
||||||
orderInfoService.createGiftOrder(vo.getGiftId(), giftInfo.getPrice(), vo.getGiftQuantity(), money, money, userId);
|
playOrderInfoService.createGiftOrder(vo.getGiftId(), giftInfo.getPrice(), vo.getGiftQuantity(), money, money, userId);
|
||||||
// 顾客减少余额
|
// 顾客减少余额
|
||||||
customUserInfoService.updateAccountBalanceById(customUserInfo.getId(), customUserInfo.getAccountBalance().subtract(money));
|
customUserInfoService.updateAccountBalanceById(customUserInfo.getId(), customUserInfo.getAccountBalance().subtract(money));
|
||||||
playBalanceDetailsInfoService.create("0", customUserInfo.getId(), customUserInfo.getAccountBalance(), customUserInfo.getAccountBalance().subtract(money), "赠送礼物", money.multiply(new BigDecimal("-1")));
|
playBalanceDetailsInfoService.create("0", customUserInfo.getId(), customUserInfo.getAccountBalance(), customUserInfo.getAccountBalance().subtract(money), "赠送礼物", money.multiply(new BigDecimal("-1")));
|
||||||
@@ -157,7 +175,7 @@ public class WxCustomController {
|
|||||||
*
|
*
|
||||||
* @param vo 指定订单查询对象
|
* @param vo 指定订单查询对象
|
||||||
* @return com.starry.common.result.R
|
* @return com.starry.common.result.R
|
||||||
* @author 杭州世平信息科技有限公司-xuhq
|
* @author admin
|
||||||
* @since 2024/5/8 16:31
|
* @since 2024/5/8 16:31
|
||||||
**/
|
**/
|
||||||
@CustomUserLogin
|
@CustomUserLogin
|
||||||
@@ -174,7 +192,7 @@ public class WxCustomController {
|
|||||||
throw new CustomException("余额不足");
|
throw new CustomException("余额不足");
|
||||||
}
|
}
|
||||||
// 记录订单信息
|
// 记录订单信息
|
||||||
orderInfoService.createOrdinaryOrder("2", "0", clerkCommodity.getCommodityId(), clerkCommodity.getCommodityPrice(), vo.getCommodityQuantity(), money, money, customId);
|
playOrderInfoService.createOrdinaryOrder("2", "0", clerkCommodity.getCommodityId(), clerkCommodity.getCommodityPrice(), vo.getCommodityQuantity(), money, money, customId);
|
||||||
// 顾客减少余额
|
// 顾客减少余额
|
||||||
customUserInfoService.updateAccountBalanceById(customUserInfo.getId(), customUserInfo.getAccountBalance().subtract(money));
|
customUserInfoService.updateAccountBalanceById(customUserInfo.getId(), customUserInfo.getAccountBalance().subtract(money));
|
||||||
playBalanceDetailsInfoService.create("0", customUserInfo.getId(), customUserInfo.getAccountBalance(), customUserInfo.getAccountBalance().subtract(money), "打赏", money.multiply(new BigDecimal("-1")));
|
playBalanceDetailsInfoService.create("0", customUserInfo.getId(), customUserInfo.getAccountBalance(), customUserInfo.getAccountBalance().subtract(money), "打赏", money.multiply(new BigDecimal("-1")));
|
||||||
@@ -197,7 +215,7 @@ public class WxCustomController {
|
|||||||
*
|
*
|
||||||
* @param vo 订单列表分页查询对象
|
* @param vo 订单列表分页查询对象
|
||||||
* @return com.starry.common.result.R
|
* @return com.starry.common.result.R
|
||||||
* @author 杭州世平信息科技有限公司-xuhq
|
* @author admin
|
||||||
* @since 2024/5/8 15:57
|
* @since 2024/5/8 15:57
|
||||||
**/
|
**/
|
||||||
@CustomUserLogin
|
@CustomUserLogin
|
||||||
@@ -205,7 +223,7 @@ public class WxCustomController {
|
|||||||
public R queryOrderByPage(@Validated @RequestBody PlayOrderInfoQueryVo vo) {
|
public R queryOrderByPage(@Validated @RequestBody PlayOrderInfoQueryVo vo) {
|
||||||
vo.setPurchaserBy(ThreadLocalRequestDetail.getCustomUserInfo().getId());
|
vo.setPurchaserBy(ThreadLocalRequestDetail.getCustomUserInfo().getId());
|
||||||
vo.setOrderType("2");
|
vo.setOrderType("2");
|
||||||
IPage<PlayOrderInfoReturnVo> iPage = orderInfoService.selectOrderInfoPage(vo);
|
IPage<PlayOrderInfoReturnVo> iPage = playOrderInfoService.selectOrderInfoPage(vo);
|
||||||
return R.ok(iPage);
|
return R.ok(iPage);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -214,13 +232,13 @@ public class WxCustomController {
|
|||||||
*
|
*
|
||||||
* @param id 订单ID
|
* @param id 订单ID
|
||||||
* @return com.starry.common.result.R
|
* @return com.starry.common.result.R
|
||||||
* @author 杭州世平信息科技有限公司-xuhq
|
* @author admin
|
||||||
* @since 2024/5/8 15:57
|
* @since 2024/5/8 15:57
|
||||||
**/
|
**/
|
||||||
@CustomUserLogin
|
@CustomUserLogin
|
||||||
@GetMapping("/order/queryById")
|
@GetMapping("/order/queryById")
|
||||||
public R queryById(@RequestParam("id") String id) {
|
public R queryById(@RequestParam("id") String id) {
|
||||||
PlayOrderInfoEntity orderInfo = orderInfoService.selectOrderInfoById(id);
|
PlayOrderDetailsReturnVo orderInfo = playOrderInfoService.selectById(id);
|
||||||
return R.ok(orderInfo);
|
return R.ok(orderInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -229,22 +247,119 @@ public class WxCustomController {
|
|||||||
*
|
*
|
||||||
* @param id 订单ID
|
* @param id 订单ID
|
||||||
* @return com.starry.common.result.R
|
* @return com.starry.common.result.R
|
||||||
* @author 杭州世平信息科技有限公司-xuhq
|
* @author admin
|
||||||
* @since 2024/5/8 15:57
|
* @since 2024/5/8 15:57
|
||||||
**/
|
**/
|
||||||
@CustomUserLogin
|
@CustomUserLogin
|
||||||
@GetMapping("/order/cancellation")
|
@GetMapping("/order/cancellation")
|
||||||
public R cancellationOrder(@RequestParam("id") String id) {
|
public R cancellationOrder(@RequestParam("id") String id) {
|
||||||
orderInfoService.customCancellationOrder(id);
|
playOrderInfoService.customCancellationOrder(id);
|
||||||
return R.ok("取消成功");
|
return R.ok("取消成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增订单评价信息
|
||||||
|
*
|
||||||
|
* @param vo 订单评价信息实体
|
||||||
|
* @return com.starry.common.result.R
|
||||||
|
* @author admin
|
||||||
|
* @since 2024/5/8 15:57
|
||||||
|
**/
|
||||||
|
@CustomUserLogin
|
||||||
|
@PostMapping("/order/evaluate/add")
|
||||||
|
public R addOrderEvaluate(@Validated @RequestBody PlayOrderEvaluateAddVo vo) {
|
||||||
|
vo.setCustomId(ThreadLocalRequestDetail.getCustomUserInfo().getId());
|
||||||
|
PlayOrderInfoEntity orderInfo = playOrderInfoService.selectOrderInfoById(vo.getOrderId());
|
||||||
|
if (!orderInfo.getPurchaserBy().equals(vo.getCustomId())) {
|
||||||
|
throw new CustomException("只有下单人才能评价");
|
||||||
|
}
|
||||||
|
PlayOrderEvaluateInfoEntity entity = ConvertUtil.entityToVo(vo, PlayOrderEvaluateInfoEntity.class);
|
||||||
|
playOrderEvaluateInfoService.create(entity);
|
||||||
|
return R.ok("评价成功");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增订单投诉信息
|
||||||
|
*
|
||||||
|
* @param vo 订单评价信息实体
|
||||||
|
* @return com.starry.common.result.R
|
||||||
|
* @author admin
|
||||||
|
* @since 2024/5/8 15:57
|
||||||
|
**/
|
||||||
|
@CustomUserLogin
|
||||||
|
@PostMapping("/order/complaint/add")
|
||||||
|
public R addOrderComplaint(@Validated @RequestBody PlayOrderComplaintAddVo vo) {
|
||||||
|
vo.setCustomId(ThreadLocalRequestDetail.getCustomUserInfo().getId());
|
||||||
|
PlayOrderInfoEntity orderInfo = playOrderInfoService.selectOrderInfoById(vo.getOrderId());
|
||||||
|
if (!orderInfo.getPurchaserBy().equals(vo.getCustomId())) {
|
||||||
|
throw new CustomException("只有下单人才能投诉");
|
||||||
|
}
|
||||||
|
PlayOrderComplaintInfoEntity entity = ConvertUtil.entityToVo(vo, PlayOrderComplaintInfoEntity.class);
|
||||||
|
playOrderComplaintInfoService.create(entity);
|
||||||
|
return R.ok("新增成功");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 顾客新增留言
|
||||||
|
*
|
||||||
|
* @param vo 顾客新增留言对象
|
||||||
|
* @return com.starry.common.result.R
|
||||||
|
* @author admin
|
||||||
|
* @since 2024/5/8 15:57
|
||||||
|
**/
|
||||||
|
@CustomUserLogin
|
||||||
|
@PostMapping("/leave/add")
|
||||||
|
public R cancellationOrder(@Validated @RequestBody PlayCustomLeaveAddVo vo) {
|
||||||
|
vo.setCustomId(ThreadLocalRequestDetail.getCustomUserInfo().getId());
|
||||||
|
PlayCustomLeaveMsgEntity entity = ConvertUtil.entityToVo(vo, PlayCustomLeaveMsgEntity.class);
|
||||||
|
entity.setMsgTime(new Date());
|
||||||
|
playCustomLeaveMsgService.create(entity);
|
||||||
|
return R.ok("取消成功");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询当前顾客是否允许留言
|
||||||
|
*
|
||||||
|
* @return com.starry.common.result.R
|
||||||
|
* @author admin
|
||||||
|
* @since 2024/5/8 15:57
|
||||||
|
**/
|
||||||
|
@CustomUserLogin
|
||||||
|
@GetMapping("/leave/queryPermission")
|
||||||
|
public R queryLeavePermission() {
|
||||||
|
// 不允许留言的原因,如果原因为空,说明允许留言
|
||||||
|
String noMessagesAllowedReason = playCustomLeaveMsgService.queryNoMessagesAllowedReason(ThreadLocalRequestDetail.getCustomUserInfo().getId());
|
||||||
|
if (StringUtils.isEmpty(noMessagesAllowedReason)) {
|
||||||
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
jsonObject.put("permission", true);
|
||||||
|
jsonObject.put("msg", "");
|
||||||
|
return R.ok(jsonObject);
|
||||||
|
} else {
|
||||||
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
jsonObject.put("permission", false);
|
||||||
|
jsonObject.put("msg", noMessagesAllowedReason);
|
||||||
|
return R.ok(jsonObject);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 顾客修改对陪玩的关注状态
|
* 顾客修改对陪玩的关注状态
|
||||||
*
|
*
|
||||||
* @param vo 陪玩的关注状态对象
|
* @param vo 陪玩的关注状态对象
|
||||||
* @return com.starry.common.result.R
|
* @return com.starry.common.result.R
|
||||||
* @author 杭州世平信息科技有限公司-xuhq
|
* @author admin
|
||||||
* @since 2024/5/8 15:57
|
* @since 2024/5/8 15:57
|
||||||
**/
|
**/
|
||||||
@CustomUserLogin
|
@CustomUserLogin
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ public class WxPlayController {
|
|||||||
/**
|
/**
|
||||||
* 微信支付-微信回调地址(https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_7&index=8)
|
* 微信支付-微信回调地址(https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_7&index=8)
|
||||||
*
|
*
|
||||||
* @author 杭州世平信息科技有限公司-xuhq
|
* @author admin
|
||||||
* @since 2024/5/8 11:25
|
* @since 2024/5/8 11:25
|
||||||
**/
|
**/
|
||||||
@GetMapping("/jsCallback")
|
@GetMapping("/jsCallback")
|
||||||
@@ -74,15 +74,15 @@ public class WxPlayController {
|
|||||||
log.error("*********未查询到对应的支付记录,订单号:{}", outTradeNo);
|
log.error("*********未查询到对应的支付记录,订单号:{}", outTradeNo);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// TODO如果支付状态不是待支付
|
// // TODO如果支付状态不是待支付
|
||||||
if (!orderInfoEntity.getOrderStatus().equals(RepairStatusEnum.NOT_PAY.name())) {
|
// if (!orderInfoEntity.getOrderStatus().equals(RepairStatusEnum.NOT_PAY.name())) {
|
||||||
log.error("*********支付记录状态异常,支付记录:{}", JSONObject.toJSONString(repair));
|
// log.error("*********支付记录状态异常,支付记录:{}", JSONObject.toJSONString(repair));
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
Date nowDate = new Date();
|
// Date nowDate = new Date();
|
||||||
repair.setPaySuccessTime(nowDate);
|
// repair.setPaySuccessTime(nowDate);
|
||||||
repair.setPayStatus(RepairStatusEnum.PAID.name());
|
// repair.setPayStatus(RepairStatusEnum.PAID.name());
|
||||||
repair.setStatus(RepairStatusEnum.REPAIRING.name());
|
// repair.setStatus(RepairStatusEnum.REPAIRING.name());
|
||||||
orderInfoService.updateById(orderInfoEntity);
|
orderInfoService.updateById(orderInfoEntity);
|
||||||
|
|
||||||
log.info("*********支付处理完成");
|
log.info("*********支付处理完成");
|
||||||
@@ -134,8 +134,8 @@ public class WxPlayController {
|
|||||||
PlayCustomUserInfoEntity customUserInfo = customUserInfoService.selectById(ThreadLocalRequestDetail.getCustomUserInfo().getId());
|
PlayCustomUserInfoEntity customUserInfo = customUserInfoService.selectById(ThreadLocalRequestDetail.getCustomUserInfo().getId());
|
||||||
// 租户信息
|
// 租户信息
|
||||||
SysTenantEntity entity = tenantService.selectSysTenantByTenantId(tenantId);
|
SysTenantEntity entity = tenantService.selectSysTenantByTenantId(tenantId);
|
||||||
// 订单总金额,单位为分(开发阶段固定设置为支付1分钱)
|
// 订单总金额,单位为分
|
||||||
long totalFee = 1;
|
long totalFee = getTotalFee(money);
|
||||||
// 创建订单信息
|
// 创建订单信息
|
||||||
String orderId = IdUtil.fastSimpleUUID();
|
String orderId = IdUtil.fastSimpleUUID();
|
||||||
orderInfoService.createRechargeOrder(orderId, new BigDecimal(totalFee * 1.0 / 100), new BigDecimal(totalFee * 1.0 / 100), customUserInfo.getId());
|
orderInfoService.createRechargeOrder(orderId, new BigDecimal(totalFee * 1.0 / 100), new BigDecimal(totalFee * 1.0 / 100), customUserInfo.getId());
|
||||||
@@ -184,7 +184,7 @@ public class WxPlayController {
|
|||||||
public long getTotalFee(String money) {
|
public long getTotalFee(String money) {
|
||||||
long totalFee;
|
long totalFee;
|
||||||
try {
|
try {
|
||||||
totalFee = (long) Float.parseFloat(money) * 100;
|
totalFee = (long) (Float.parseFloat(money) * 100);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new CustomException("请求参数错误,money类型异常");
|
throw new CustomException("请求参数错误,money类型异常");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,44 @@
|
|||||||
|
package com.starry.admin.modules.weichat.entity;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import org.hibernate.validator.constraints.Length;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
import javax.validation.constraints.Size;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 顾客新增留言对象
|
||||||
|
*
|
||||||
|
* @author admin
|
||||||
|
* @since 2024/5/8 下午10:03
|
||||||
|
**/
|
||||||
|
@Data
|
||||||
|
public class PlayCustomLeaveAddVo {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 顾客ID
|
||||||
|
*/
|
||||||
|
private String customId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 留言内容
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "留言内容不能为空")
|
||||||
|
@Length(max = 255, message = "留言内容不能超过255个字符")
|
||||||
|
private String content;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 图片
|
||||||
|
*/
|
||||||
|
|
||||||
|
@NotNull(message = "images不能为空")
|
||||||
|
@Size(max = 3, message = "照片不能超过3张")
|
||||||
|
private List<String> images;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
package com.starry.admin.modules.weichat.entity;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import org.hibernate.validator.constraints.Length;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单投诉新增VO
|
||||||
|
*
|
||||||
|
* @author admin
|
||||||
|
* @since 2024/5/8 下午10:49
|
||||||
|
**/
|
||||||
|
@Data
|
||||||
|
public class PlayOrderComplaintAddVo {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单ID
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "订单ID不能为空")
|
||||||
|
private String orderId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 顾客ID
|
||||||
|
*/
|
||||||
|
private String customId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 投诉人微信号码
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "微信号码不能为空")
|
||||||
|
private String wxChatCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 投诉内容
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "投诉内容不能为空")
|
||||||
|
@Length(max = 255, message = "投诉内容最多255个字符")
|
||||||
|
private String complaintCon;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 投诉时间
|
||||||
|
*/
|
||||||
|
private Date complaintTime = new Date();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 图片列表
|
||||||
|
*/
|
||||||
|
private List<String> images;
|
||||||
|
}
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
package com.starry.admin.modules.weichat.entity;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import org.hibernate.validator.constraints.Length;
|
||||||
|
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单评价新增VO
|
||||||
|
*
|
||||||
|
* @author admin
|
||||||
|
* @since 2024/5/8 下午10:49
|
||||||
|
**/
|
||||||
|
@Data
|
||||||
|
public class PlayOrderEvaluateAddVo {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单ID
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "订单ID不能为空")
|
||||||
|
private String orderId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 顾客ID
|
||||||
|
*/
|
||||||
|
private String customId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 匿名评价(0:匿名,1:非匿名)
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "是否匿名不能为空")
|
||||||
|
@Pattern(regexp = "[01]", message = "匿名评价只能位0或1")
|
||||||
|
private String anonymous;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 评价类型(0:好评,1差评)
|
||||||
|
*/
|
||||||
|
private String evaluateType = "0";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 评价等级【1-5星,最低1星,最高5星】
|
||||||
|
*/
|
||||||
|
@NotNull(message = "评价等级不能为空")
|
||||||
|
@Min(value = 1, message = "评价等级最低位1星")
|
||||||
|
@Max(value = 5, message = "评价等级最高5星")
|
||||||
|
private int evaluateLevel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 评价内容
|
||||||
|
*/
|
||||||
|
@NotNull(message = "评价内容不能为空")
|
||||||
|
@Length(max = 255, message = "评价内容最多255个字符")
|
||||||
|
private String evaluateCon;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 评价时间
|
||||||
|
*/
|
||||||
|
private Date evaluateTime = new Date();
|
||||||
|
}
|
||||||
@@ -5,7 +5,7 @@ import lombok.Data;
|
|||||||
/**
|
/**
|
||||||
* 微信预支付接口返回信息
|
* 微信预支付接口返回信息
|
||||||
*
|
*
|
||||||
* @author 杭州世平信息科技有限公司-xuhq
|
* @author admin
|
||||||
* @since 2024/5/8 10:43
|
* @since 2024/5/8 10:43
|
||||||
**/
|
**/
|
||||||
@Data
|
@Data
|
||||||
|
|||||||
@@ -17,6 +17,9 @@ import org.springframework.stereotype.Service;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author admin
|
||||||
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
public class WxCustomMpService {
|
public class WxCustomMpService {
|
||||||
@@ -53,7 +56,9 @@ public class WxCustomMpService {
|
|||||||
if (entity == null) {
|
if (entity == null) {
|
||||||
throw new CustomException("系统错误,租户ID不能为空");
|
throw new CustomException("系统错误,租户ID不能为空");
|
||||||
}
|
}
|
||||||
if (StringUtils.isEmpty(entity.getMchId())) throw new CustomException("商户号不能为空,请联系平台方进行配置");
|
if (StringUtils.isEmpty(entity.getMchId())) {
|
||||||
|
throw new CustomException("商户号不能为空,请联系平台方进行配置");
|
||||||
|
}
|
||||||
WxPayConfig payConfig = new WxPayConfig();
|
WxPayConfig payConfig = new WxPayConfig();
|
||||||
payConfig.setAppId(StringUtils.trimToNull(entity.getAppId()));
|
payConfig.setAppId(StringUtils.trimToNull(entity.getAppId()));
|
||||||
payConfig.setMchId(StringUtils.trimToNull(entity.getMchId()));
|
payConfig.setMchId(StringUtils.trimToNull(entity.getMchId()));
|
||||||
|
|||||||
Reference in New Issue
Block a user