添加订单接口

This commit is contained in:
2025-10-28 09:34:17 +08:00
parent 90e28f056a
commit 4ebe4f9ac6
16 changed files with 146 additions and 97 deletions

View File

@@ -16,6 +16,7 @@ public interface ErrorCodeConstants {
ErrorCode ORDER_ITEM_NOT_FOUND = new ErrorCode(1_011_000_010, "交易订单项不存在");
ErrorCode ORDER_NOT_FOUND = new ErrorCode(1_011_000_011, "交易订单不存在");
ErrorCode ORDER_ITEM_UPDATE_AFTER_SALE_STATUS_FAIL = new ErrorCode(1_011_000_012, "交易订单项更新售后状态失败,请重试");
ErrorCode ORDER_UPDATE_UNWAITACCEPT_FAIL = new ErrorCode(1_011_000_012, "交易订单更新状态失败,当前订单不处于待验收状态");
ErrorCode ORDER_UPDATE_PAID_STATUS_NOT_UNPAID = new ErrorCode(1_011_000_013, "交易订单更新支付状态失败,订单不是【未支付】状态");
ErrorCode ORDER_UPDATE_PAID_FAIL_PAY_ORDER_ID_ERROR = new ErrorCode(1_011_000_014, "交易订单更新支付状态失败,支付单编号不匹配");
ErrorCode ORDER_UPDATE_PAID_FAIL_PAY_ORDER_STATUS_NOT_SUCCESS = new ErrorCode(1_011_000_015, "交易订单更新支付状态失败,支付单状态不是【支付成功】状态");

View File

@@ -55,6 +55,15 @@ public enum TradeOrderStatusEnum implements ArrayValuable<Integer> {
public static boolean isUnpaid(Integer status) {
return ObjectUtil.equal(WAITPAID.getStatus(), status);
}
/**
* 判断指定状态,是否正处于【待验收】状态
*
* @param status 指定状态
* @return 是否
*/
public static boolean isWaitAccept(Integer status) {
return ObjectUtil.equal(WAITACCEPT.getStatus(), status);
}
/**
* 判断指定状态,是否正处于【待发货】状态

View File

@@ -195,6 +195,11 @@ public class AiDialogServiceImpl extends ServiceImpl<AiDialogMapper, AiDialogDO>
//解析翻译结果
JSONObject intentResult = translateResult.getJSONObject("intent_result");
//宠物档案 todo
messageDO.setPetId(1l);
messageDO.setPetName(petName.get(speciesLabels));
messageDO.setPetAvatar(petAvatars.get(speciesLabels));
messageDO.setPetType(speciesLabels);
//识别物种,无法翻译音频
if (intentResult.getDouble("confidence")<0.7){
messageDO.setTransStatus(0);
@@ -205,7 +210,6 @@ public class AiDialogServiceImpl extends ServiceImpl<AiDialogMapper, AiDialogDO>
messageDO.setTransResult(petFailResult.get(RandomUtil.randomInt(petFailResult.size())));
return messageDO;
}
//都识别成功后 也有不同的翻译结果
JSONObject probabilities = intentResult.getJSONObject("probabilities");
String resultKey = probabilities.entrySet().stream()
@@ -217,11 +221,7 @@ public class AiDialogServiceImpl extends ServiceImpl<AiDialogMapper, AiDialogDO>
List<String> emoList = successMap.get(emo);
messageDO.setTransStatus(1);
messageDO.setTransResult(emoList.get(RandomUtil.randomInt(emoList.size())));
//宠物档案 todo
messageDO.setPetId(1l);
messageDO.setPetName(petName.get(speciesLabels));
messageDO.setPetAvatar(petAvatars.get(speciesLabels));
messageDO.setPetType(speciesLabels);
return messageDO;
}

View File

@@ -11,6 +11,7 @@ import com.tashow.cloud.trade.convert.order.TradeOrderConvert;
import com.tashow.cloud.trade.dal.dataobject.order.TradeOrderDO;
import com.tashow.cloud.trade.dal.dataobject.order.TradeOrderItemDO;
import com.tashow.cloud.trade.dal.dataobject.order.TradeOrderLogDO;
import com.tashow.cloud.trade.dal.dataobject.order.TradeOrderSubLogDO;
import com.tashow.cloud.trade.service.order.TradeOrderLogService;
import com.tashow.cloud.trade.service.order.TradeOrderQueryService;
import com.tashow.cloud.trade.service.order.TradeOrderUpdateService;
@@ -116,6 +117,32 @@ public class TradeOrderController {
return success(tradeOrderUpdateService.cancelOrderByAdmin(id));
}
/**
* 接单确认
*
* @return
*/
@PutMapping("/acceptConfirm")
@PermitAll
// @PreAuthorize("@ss.hasPermission('trade:order:query')")
public CommonResult<Boolean> acceptConfirm(@RequestParam("id") Long id) {
tradeOrderUpdateService.acceptConfirmOrderByAdmin(id);
return success(true);
}
/**
* 服务上报
*
* @return
*/
@PutMapping("/reportServe")
@PermitAll
// @PreAuthorize("@ss.hasPermission('trade:order:query')")
public CommonResult<Boolean> reportServe(@RequestParam("id") Long id) {
tradeOrderUpdateService.reportServeOrderByAdmin(id);
return success(true);
}
// 订单备注
@PutMapping("/update-remark")
@PermitAll
@@ -127,7 +154,6 @@ public class TradeOrderController {
/**
* 交易快照
*
* @return
*/
@GetMapping("/fastPhoto")
@@ -146,15 +172,13 @@ public class TradeOrderController {
*
* @return
*/
@GetMapping("/subTimeLog")
@GetMapping("/subTimeLog/{id}")
@PermitAll
// @PreAuthorize("@ss.hasPermission('trade:order:query')")
public CommonResult<TradeOrderFastPhotoRespVo> subTimeLog(TradeOrderFastPhotoReqVo reqVo) {
//获取交易订单详情
TradeOrderItemDO orderItem = tradeOrderQueryService.getOrderItem(reqVo.getItemId());
//获取产品详情
return success(TradeOrderConvert.INSTANCE.convert(orderItem,null));
public CommonResult<TradeOrderSubTimeListRespVo> subTimeLog(@PathVariable("id") Long id) {
//获取订单预约时间修改列表
List<TradeOrderSubLogDO> subLogDO = tradeOrderQueryService.getSubTimeLogList(id);
return success(TradeOrderConvert.INSTANCE.convertToSubTimeList(subLogDO));
}
}

View File

@@ -0,0 +1,10 @@
package com.tashow.cloud.trade.controller.admin.order.vo;
import com.tashow.cloud.trade.dal.dataobject.order.TradeOrderSubLogDO;
import java.util.List;
public class TradeOrderSubTimeListRespVo {
private List<TradeOrderSubLogDO> subTimeList;
}

View File

@@ -26,6 +26,7 @@ import com.tashow.cloud.trade.dal.dataobject.delivery.DeliveryExpressDO;
import com.tashow.cloud.trade.dal.dataobject.order.TradeOrderDO;
import com.tashow.cloud.trade.dal.dataobject.order.TradeOrderItemDO;
import com.tashow.cloud.trade.dal.dataobject.order.TradeOrderLogDO;
import com.tashow.cloud.trade.dal.dataobject.order.TradeOrderSubLogDO;
import com.tashow.cloud.trade.framework.delivery.core.client.dto.ExpressTrackRespDTO;
import com.tashow.cloud.trade.framework.order.config.TradeOrderProperties;
import com.tashow.cloud.trade.service.brokerage.bo.BrokerageAddReqBO;
@@ -119,6 +120,11 @@ public interface TradeOrderConvert {
TradeOrderFastPhotoRespVo convert(TradeOrderItemDO itemDO, ProdDO prodDO);
//endregion
//region 订单预约时间修改列表
TradeOrderSubTimeListRespVo convertToSubTimeList(List<TradeOrderSubLogDO> subTimeList);
//endregion
@Mappings({
@Mapping(target = "id", ignore = true),
@Mapping(source = "userId", target = "userId"),

View File

@@ -21,7 +21,7 @@ import java.time.LocalDateTime;
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TradeSubLogDO extends BaseDO {
public class TradeOrderSubLogDO extends BaseDO {
/**
* 编号

View File

@@ -1,7 +1,7 @@
package com.tashow.cloud.trade.dal.mysql.order;
import com.tashow.cloud.mybatis.mybatis.core.mapper.BaseMapperX;
import com.tashow.cloud.trade.dal.dataobject.order.TradeSubLogDO;
import com.tashow.cloud.trade.dal.dataobject.order.TradeOrderSubLogDO;
import org.apache.ibatis.annotations.Mapper;
/**
@@ -10,6 +10,6 @@ import org.apache.ibatis.annotations.Mapper;
* @author 芋道源码
*/
@Mapper
public interface TradeSubLogMapper extends BaseMapperX<TradeSubLogDO> {
public interface TradeOrderSubLogMapper extends BaseMapperX<TradeOrderSubLogDO> {
}

View File

@@ -2,12 +2,12 @@ package com.tashow.cloud.trade.service.order;
import com.tashow.cloud.common.pojo.PageResult;
import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderFastPhotoReqVo;
import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderPageReqVO;
import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderSummaryRespVO;
import com.tashow.cloud.trade.controller.app.order.vo.AppTradeOrderPageReqVO;
import com.tashow.cloud.trade.dal.dataobject.order.TradeOrderDO;
import com.tashow.cloud.trade.dal.dataobject.order.TradeOrderItemDO;
import com.tashow.cloud.trade.dal.dataobject.order.TradeOrderSubLogDO;
import com.tashow.cloud.trade.framework.delivery.core.client.dto.ExpressTrackRespDTO;
import com.tashow.cloud.tradeapi.enums.order.TradeOrderTypeEnum;
@@ -159,9 +159,9 @@ public interface TradeOrderQueryService {
List<TradeOrderItemDO> getOrderItemListByOrderId(Collection<Long> orderIds);
/**
* 获取订单交易快照
* @param reqVo
* 获取订单预约时间修改列表
* @param id
* @return
*/
TradeOrderItemDO getFastPhoto(TradeOrderFastPhotoReqVo reqVo);
List<TradeOrderSubLogDO> getSubTimeLogList(Long id);
}

View File

@@ -1,25 +1,25 @@
package com.tashow.cloud.trade.service.order;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.extra.spring.SpringUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.tashow.cloud.common.pojo.PageResult;
import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderFastPhotoReqVo;
import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderPageReqVO;
import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderSummaryRespVO;
import com.tashow.cloud.trade.controller.app.order.vo.AppTradeOrderPageReqVO;
import com.tashow.cloud.trade.dal.dataobject.delivery.DeliveryExpressDO;
import com.tashow.cloud.trade.dal.dataobject.order.TradeOrderDO;
import com.tashow.cloud.trade.dal.dataobject.order.TradeOrderItemDO;
import com.tashow.cloud.trade.dal.dataobject.order.TradeOrderSubLogDO;
import com.tashow.cloud.trade.dal.mysql.order.TradeOrderItemMapper;
import com.tashow.cloud.trade.dal.mysql.order.TradeOrderMapper;
import com.tashow.cloud.trade.dal.mysql.order.TradeOrderSubLogMapper;
import com.tashow.cloud.trade.dal.redis.RedisKeyConstants;
import com.tashow.cloud.trade.framework.delivery.core.client.ExpressClientFactory;
import com.tashow.cloud.trade.framework.delivery.core.client.dto.ExpressTrackQueryReqDTO;
import com.tashow.cloud.trade.framework.delivery.core.client.dto.ExpressTrackRespDTO;
import com.tashow.cloud.trade.service.delivery.DeliveryExpressService;
import com.tashow.cloud.tradeapi.enums.order.TradeOrderRefundStatusEnum;
import com.tashow.cloud.tradeapi.enums.order.TradeOrderStatusEnum;
import com.tashow.cloud.tradeapi.enums.order.TradeOrderTypeEnum;
import jakarta.annotation.Resource;
@@ -49,6 +49,8 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
private TradeOrderMapper tradeOrderMapper;
@Resource
private TradeOrderItemMapper tradeOrderItemMapper;
@Resource
private TradeOrderSubLogMapper tradeOrderSubLogMapper;
@Resource
private DeliveryExpressService deliveryExpressService;
@@ -242,9 +244,7 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
}
@Override
public TradeOrderItemDO getFastPhoto(TradeOrderFastPhotoReqVo reqVo) {
return null;
public List<TradeOrderSubLogDO> getSubTimeLogList(Long id) {
return tradeOrderSubLogMapper.selectList(new LambdaQueryWrapper<TradeOrderSubLogDO>().eq(TradeOrderSubLogDO::getOrderId,id));
}
}

View File

@@ -0,0 +1,14 @@
package com.tashow.cloud.trade.service.order;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tashow.cloud.trade.dal.dataobject.order.TradeOrderSubLogDO;
/**
* 订单预约时间修改记录 Service 接口
*
* @author 芋道源码
*/
public interface TradeOrderSubLogService extends IService<TradeOrderSubLogDO> {
}

View File

@@ -0,0 +1,20 @@
package com.tashow.cloud.trade.service.order;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.tashow.cloud.trade.dal.dataobject.order.TradeOrderSubLogDO;
import com.tashow.cloud.trade.dal.mysql.order.TradeOrderSubLogMapper;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
/**
* 订单预约时间修改记录 Service 实现类
*
* @author 芋道源码
*/
@Service
@Validated
public class TradeOrderSubLogServiceImpl extends ServiceImpl<TradeOrderSubLogMapper, TradeOrderSubLogDO> implements TradeOrderSubLogService {
}

View File

@@ -41,6 +41,19 @@ public interface TradeOrderUpdateService {
*/
TradeOrderDO createOrder(Long userId, AppTradeOrderCreateReqVO createReqVO);
/**
* 确认接单
* @param id
*/
void acceptConfirmOrderByAdmin(Long id);
/**
* 服务上报
* @param id
*/
void reportServeOrderByAdmin(Long id);
/**
* 更新交易订单已支付
*
@@ -224,4 +237,5 @@ public interface TradeOrderUpdateService {
*/
void updateOrderGiveCouponIds(Long userId, Long orderId, List<Long> giveCouponIds);
}

View File

@@ -246,6 +246,26 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
order.setPayOrderId(payOrderId);
}
@Override
public void acceptConfirmOrderByAdmin(Long id) {
// 1.1 校验订单是否存在
TradeOrderDO order = validateOrderExists(id);
order.setOrderStatus(TradeOrderStatusEnum.WAITSERVE.getStatus());
tradeOrderMapper.updateById(order);
}
@Override
public void reportServeOrderByAdmin(Long id) {
// 1.1 校验订单是否存在
TradeOrderDO order = validateOrderExists(id);
if (!TradeOrderStatusEnum.isWaitAccept(order.getOrderStatus())){
throw exception(ORDER_UPDATE_UNWAITACCEPT_FAIL);
}
order.setFinishTime(LocalDateTime.now());
tradeOrderMapper.updateById(order);
}
@Override
@Transactional(rollbackFor = Exception.class)
@TradeOrderLog(operateType = TradeOrderOperateTypeEnum.MEMBER_PAY)

View File

@@ -1,28 +0,0 @@
package com.tashow.cloud.trade.service.order;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tashow.cloud.trade.dal.dataobject.order.TradeSubLogDO;
/**
* 订单预约时间修改记录 Service 接口
*
* @author 芋道源码
*/
public interface TradeSubLogService extends IService<TradeSubLogDO> {
/**
* 删除订单预约时间修改记录
*
* @param id 编号
*/
void deleteTradeSubLog(Long id);
/**
* 获得订单预约时间修改记录
*
* @param id 编号
* @return 订单预约时间修改记录
*/
TradeSubLogDO getTradeSubLog(Long id);
}

View File

@@ -1,41 +0,0 @@
package com.tashow.cloud.trade.service.order;
import com.tashow.cloud.trade.dal.dataobject.order.TradeSubLogDO;
import com.tashow.cloud.trade.dal.mysql.order.TradeSubLogMapper;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
/**
* 订单预约时间修改记录 Service 实现类
*
* @author 芋道源码
*/
@Service
@Validated
public class TradeSubLogServiceImpl implements TradeSubLogService {
@Resource
private TradeSubLogMapper tradeSubLogMapper;
@Override
public void deleteTradeSubLog(Long id) {
// 校验存在
validateTradeSubLogExists(id);
// 删除
tradeSubLogMapper.deleteById(id);
}
private void validateTradeSubLogExists(Long id) {
if (tradeSubLogMapper.selectById(id) == null) {
// throw exception(TRADE_SUB_LOG_NOT_EXISTS);
}
}
@Override
public TradeSubLogDO getTradeSubLog(Long id) {
return tradeSubLogMapper.selectById(id);
}
}