zhuyifan

feat(clientcustomerorderservice): 将在线支付字段改为枚举类型- 在 ClientCustomerOrderService.pr…

…oto 中定义 OnlinePayEnum 枚举类型
......@@ -7,15 +7,14 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.JsonNode;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.apache.ibatis.type.JdbcType;
import java.io.Serializable;
import java.time.LocalDateTime;
import org.apache.ibatis.type.JdbcType;
/**
* order DB
......@@ -100,9 +99,9 @@ public class OrderDb extends Model<OrderDb> implements Serializable {
*/
private Integer payPrice;
/**
* 是否在线付费;0=未付费,1=付费
* 支付方式
*/
private Boolean onlinePay;
private Integer onlinePay;
/**
* 支付时间
*/
......
......@@ -10,7 +10,6 @@ import com.infoloop.tianting.clientcustomerorderservice.BatchCreateClientCustome
import com.infoloop.tianting.clientcustomerorderservice.BatchUpdateClientCustomerOrdersRpcRequest;
import com.infoloop.tianting.clientcustomerorderservice.ClientCustomerOrderCreation;
import com.infoloop.tianting.clientcustomerorderservice.CreateClientCustomerOrderRpcRequest;
import com.infoloop.tianting.clientcustomerorderservice.PayStatusEnum;
import com.infoloop.tianting.clientcustomerorderservice.ServeStatusEnum;
import com.infoloop.tianting.clientcustomerorderservice.UpdateClientCustomerOrderRpcRequest;
import com.tianting.infoloop.mapper.OrderDbMapper;
......@@ -19,13 +18,13 @@ import com.tianting.infoloop.model.db.OrderDetailDb;
import com.tianting.infoloop.model.dto.CustomerNoticeDto;
import com.tianting.infoloop.model.dto.MealDetailJson;
import com.tianting.infoloop.service.OrderDbService;
import com.tianting.infoloop.service.OrderDetailDbService;
import com.tianting.infoloop.utils.exception.ErrorCodeConstants;
import com.tianting.infoloop.utils.exception.ServiceExceptionUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.Instant;
import java.time.LocalDateTime;
......@@ -41,9 +40,9 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor(onConstructor_ = @Autowired)
public class OrderDbServiceImpl extends ServiceImpl<OrderDbMapper, OrderDb> implements OrderDbService {
private final OrderDbMapper orderDbMapper;
private final OrderDetailDbService orderDetailDbService;
@Override
@Transactional(rollbackFor = Exception.class)
public OrderDb createOrderDb(CreateClientCustomerOrderRpcRequest createOrderRpcRequest) {
OrderDb orderDb = new OrderDb();
//生成分布式唯一值
......@@ -68,12 +67,10 @@ public class OrderDbServiceImpl extends ServiceImpl<OrderDbMapper, OrderDb> impl
orderDb.setPayPrice(createOrderRpcRequest.getCreation().getPayPrice());
}
if (createOrderRpcRequest.getCreation().getShouldCreatePayTime()) {
orderDb.setPayTime(Instant.ofEpochMilli(createOrderRpcRequest.getCreation().getPayTime())
.atZone(ZoneId.systemDefault())
.toLocalDateTime());
orderDb.setPayTime(Instant.ofEpochMilli(createOrderRpcRequest.getCreation().getPayTime()).atZone(ZoneId.systemDefault()).toLocalDateTime());
}
if (createOrderRpcRequest.getCreation().getShouldCreateOnlinePay()) {
orderDb.setOnlinePay(createOrderRpcRequest.getCreation().getOnlinePay());
orderDb.setOnlinePay(createOrderRpcRequest.getCreation().getOnlinePayValue());
}
if (createOrderRpcRequest.getCreation().getShouldCreatePayStatus()) {
orderDb.setPayStatus(createOrderRpcRequest.getCreation().getPayStatusValue());
......@@ -110,12 +107,9 @@ public class OrderDbServiceImpl extends ServiceImpl<OrderDbMapper, OrderDb> impl
.build());
orderDb.setCustomerNoticeJson(notice);
}
LocalDateTime mealTime = Instant.ofEpochMilli(createOrderRpcRequest.getCreation().getMealTime())
// .atZone(ZoneId.systemDefault())
.atOffset(ZoneOffset.UTC)
.toLocalDateTime();
LocalDateTime mealTime = Instant.ofEpochMilli(createOrderRpcRequest.getCreation().getMealTime()).atOffset(ZoneOffset.UTC).toLocalDateTime();
orderDb.setMealTime(mealTime);
orderDb.setPayStatus(createOrderRpcRequest.getCreation().getOnlinePay() ? PayStatusEnum.TO_PAY_VALUE : PayStatusEnum.SUCCEED_VALUE);
orderDb.setPayStatus(createOrderRpcRequest.getCreation().getPayStatusValue());
orderDb.setCreatedBy(createOrderRpcRequest.getCreatedBy());
orderDb.setCreationSource(createOrderRpcRequest.getCreationSourceValue());
orderDb.setUpdatedBy(createOrderRpcRequest.getCreatedBy());
......@@ -125,7 +119,6 @@ public class OrderDbServiceImpl extends ServiceImpl<OrderDbMapper, OrderDb> impl
orderDb.setIsDeleted(false);
orderDb.setIsConfirm(false);
orderDb.setIsAllocation(false);
boolean res = this.save(orderDb);
if (!res) {
throw ServiceExceptionUtil.exception(ErrorCodeConstants.ORDER_GEN_FAIL);
......@@ -169,14 +162,12 @@ public class OrderDbServiceImpl extends ServiceImpl<OrderDbMapper, OrderDb> impl
.protein(detailCreation.getMealDetailJson().getProtein())
.skus(detailCreation.getMealDetailJson().getSkusList())
.tastes(detailCreation.getMealDetailJson().getTastesList())
.build()));//detailCreation.getMealDetailJson()
.build()));
}
return orderDetailDb;
})
.collect(Collectors.toList());
List<OrderDetailDb> resOrderDetails = SpringUtil.getBean(OrderDetailDbServiceImpl.class)
.saveBatch(detailList) ? detailList : Collections.emptyList();
List<OrderDetailDb> resOrderDetails = SpringUtil.getBean(OrderDetailDbServiceImpl.class).saveBatch(detailList) ? detailList : Collections.emptyList();
if (resOrderDetails.size() != createOrderRpcRequest.getCreation().getOrderDetailsCount()) {
throw ServiceExceptionUtil.exception(ErrorCodeConstants.ORDER_DETAIL_GEN_FAIL);
}
......@@ -272,7 +263,7 @@ public class OrderDbServiceImpl extends ServiceImpl<OrderDbMapper, OrderDb> impl
// throw ServiceExceptionUtil.exception(ErrorCodeConstants.ORDER_GEN_FAIL);
// }
List<OrderDb> resOrders = new ArrayList<>();
for(ClientCustomerOrderCreation creation: batchCreateOrdersRequest.getCreationsList()){
for (ClientCustomerOrderCreation creation : batchCreateOrdersRequest.getCreationsList()) {
OrderDb orderDb = new OrderDb();
String orderCode = IdUtil.getSnowflake(0, 0).nextIdStr();
orderDb.setOrderCode(orderCode);
......@@ -282,8 +273,7 @@ public class OrderDbServiceImpl extends ServiceImpl<OrderDbMapper, OrderDb> impl
if (creation.getShouldCreateOpenId()) {
orderDb.setOpenId(creation.getOpenId());
}
if (creation.getShouldCreateCustomerNoticeJson())
{
if (creation.getShouldCreateCustomerNoticeJson()) {
orderDb.setCustomerId(creation.getCustomerId());
}
orderDb.setStatus(creation.getStatusValue());
......@@ -298,7 +288,7 @@ public class OrderDbServiceImpl extends ServiceImpl<OrderDbMapper, OrderDb> impl
.toLocalDateTime());
}
if (creation.getShouldCreateOnlinePay()) {
orderDb.setOnlinePay(creation.getOnlinePay());
orderDb.setOnlinePay(creation.getOnlinePayValue());
}
if (creation.getShouldCreatePayStatus()) {
orderDb.setPayStatus(creation.getPayStatusValue());
......@@ -454,9 +444,8 @@ public class OrderDbServiceImpl extends ServiceImpl<OrderDbMapper, OrderDb> impl
if (updateOrderRequest.getModification().getShouldUpdatePayPrice()) {
orderDb.setPayPrice(updateOrderRequest.getModification().getPayPrice());
}
if (updateOrderRequest.getModification().
getShouldUpdateOnlinePay()) {
orderDb.setOnlinePay(updateOrderRequest.getModification().getOnlinePay());
if (updateOrderRequest.getModification().getShouldUpdateOnlinePay()) {
orderDb.setOnlinePay(updateOrderRequest.getModification().getOnlinePayValue());
}
if (updateOrderRequest.getModification().getShouldUpdatePayTime()) {
orderDb.setPayTime(Instant.ofEpochMilli(updateOrderRequest.getModification().getPayTime())
......@@ -555,7 +544,7 @@ public class OrderDbServiceImpl extends ServiceImpl<OrderDbMapper, OrderDb> impl
orderDb.setPayPrice(modification.getPayPrice());
}
if (modification.getShouldUpdateOnlinePay()) {
orderDb.setOnlinePay(modification.getOnlinePay());
orderDb.setOnlinePay(modification.getOnlinePayValue());
}
if (modification.getShouldUpdatePayTime()) {
orderDb.setPayTime(Instant.ofEpochMilli(modification.getPayTime())
......
......@@ -2,10 +2,10 @@ package com.tianting.infoloop.utils;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.protobuf.GeneratedMessageV3;
import com.infoloop.tianting.clientcustomerorderservice.CloseTimeType;
import com.infoloop.tianting.clientcustomerorderservice.CustomerNotice;
import com.infoloop.tianting.clientcustomerorderservice.MealDetail;
import com.infoloop.tianting.clientcustomerorderservice.OnlinePayEnum;
import com.infoloop.tianting.clientcustomerorderservice.OrderSourceEnum;
import com.infoloop.tianting.clientcustomerorderservice.OrderStatusEnum;
import com.infoloop.tianting.clientcustomerorderservice.OrderTypeEnum;
......@@ -15,7 +15,7 @@ import com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrde
import com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrderRpcResponse;
import com.tianting.infoloop.model.db.OrderDb;
import com.tianting.infoloop.model.db.OrderDetailDb;
import java.lang.reflect.Constructor;
import java.time.ZoneOffset;
import java.util.ArrayList;
import java.util.List;
......@@ -56,7 +56,7 @@ public class DbToProtoUtil {
}
if (orderDb.getOnlinePay()!= null) {
protoBuilder.setOnlinePay(orderDb.getOnlinePay());
protoBuilder.setOnlinePay(OnlinePayEnum.forNumber(orderDb.getOnlinePay()));
}
if (orderDb.getPayStatus()!= null) {
......
......@@ -81,6 +81,15 @@ enum CloseTimeType {
RESERVATION = 1;
}
enum OnlinePayEnum {
UNKNOWN = 0;
ONLINE = 1; //在线
OFFLINE = 2; //线下
LEAVE_HOSPITAL = 3;//出院
EMPLOYEE_CARD = 4; //员工卡
PAPER_VERIFICATION = 5; //纸质核销
}
enum ServeStatusEnum {
UNKNOWN_SERVE_STATUS = 0;
SERVE_NOT_START = 1;
......@@ -106,7 +115,7 @@ message SingleClientCustomerOrderRpcResponse {
CloseTimeType closeTimeType = 10;
int32 totalNum = 11;
int32 payPrice = 12;
bool onlinePay = 13;
OnlinePayEnum onlinePay = 13;
int64 payTime = 14;
PayStatusEnum payStatus = 15;
string errorMsg = 16;
......@@ -205,7 +214,7 @@ message QueryClientCustomerOrdersByConditionRpcRequest {
bool shouldFilterCloseTimeType = 16;
CloseTimeType closeTimeType = 17;
bool shouldFilterOnlinePay = 18;
bool onlinePay = 19;
OnlinePayEnum onlinePay = 19;
bool shouldFilterPayTimeStart = 20;
int64 payTimeStart = 21;
bool shouldFilterPayTimeEnd = 22;
......@@ -254,7 +263,7 @@ message ClientCustomerOrderCreation{
bool shouldCreatePayPrice = 12;
int32 payPrice = 13;
bool shouldCreateOnlinePay = 14;
bool onlinePay = 15;
OnlinePayEnum onlinePay = 15;
bool shouldCreatePayTime = 16;
int64 payTime = 17;
bool shouldCreatePayStatus = 18;
......@@ -330,7 +339,7 @@ message ClientCustomerOrderModification {
bool shouldUpdatePayPrice = 20;
int32 payPrice = 21;
bool shouldUpdateOnlinePay = 22;
bool onlinePay = 23;
OnlinePayEnum onlinePay = 23;
bool shouldUpdatePayTime = 24;
int64 payTime = 25;
bool shouldUpdatePayStatus = 26;
......