Commit dfe6de12 by 徐康

麦咖啡数据迁移

parent 6d0ad710
......@@ -330,7 +330,7 @@
<dependency>
<groupId>com.freemud.sdk.api.assortment</groupId>
<artifactId>assortment-payment-sdk</artifactId>
<version>2.6.7.RELEASE</version>
<version>2.6.8.SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.rocketmq</groupId>
......
......@@ -112,15 +112,30 @@ public class OrderApplication {
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
return executor;
}
@Bean("mcCafePushOrderExecutor")
public Executor mcCafePushOrderExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(1);
executor.setMaxPoolSize(1);
executor.setKeepAliveSeconds(60);
executor.setQueueCapacity(100);
executor.setWaitForTasksToCompleteOnShutdown(true);
executor.setAwaitTerminationSeconds(60);
executor.setThreadNamePrefix("mcCafePushOrderExecutor-");
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
return executor;
}
@Bean("mcCafePushOrderSubExecutor")
public Executor mcCafePushOrderSubExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(8);
executor.setMaxPoolSize(10);
executor.setQueueCapacity(20000);
executor.setMaxPoolSize(16);
executor.setKeepAliveSeconds(60);
executor.setThreadNamePrefix("McCafePushOrderExecutor-");
executor.setQueueCapacity(100);
executor.setWaitForTasksToCompleteOnShutdown(true);
executor.setAwaitTerminationSeconds(60);
executor.setThreadNamePrefix("mcCafePushOrderSubExecutor-");
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
return executor;
}
......
package cn.freemud.entities.dto;
import lombok.Data;
@Data
public class McCafePushOrderResponseDto {
private String code;
private String message;
private String data;
}
......@@ -19,6 +19,10 @@ public class PushMccafeOrderManager {
@Autowired
private PushMccafeOrderDao pushMccafeOrderDao;
public PushMccafeOrder selectOrder(String orderCode) {
return pushMccafeOrderDao.selectOrder(orderCode);
}
public Integer insertOrder(PushMccafeOrder pushMccafeOrder) {
return pushMccafeOrderDao.insertOrder(pushMccafeOrder);
}
......
......@@ -8,6 +8,8 @@ import org.springframework.stereotype.Repository;
@Repository
public interface PushMccafeOrderDao {
PushMccafeOrder selectOrder(@Param("orderCode") String orderCode);
Integer insertOrder(PushMccafeOrder pushMccafeOrder);
Integer updateOrder(PushMccafeOrder pushMccafeOrder);
......
......@@ -22,7 +22,8 @@ import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.util.DateUtil;
import cn.freemud.constant.RedisKeyConstant;
import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.dto.Evaluation.McCafePushOrderDto;
import cn.freemud.entities.db.PushMccafeOrder;
import cn.freemud.entities.dto.order.McCafePushOrderDto;
import cn.freemud.entities.dto.MCCafeDeliveryBaseResponse;
import cn.freemud.entities.dto.PayAccessResponse;
import cn.freemud.entities.dto.*;
......@@ -30,7 +31,6 @@ import cn.freemud.entities.dto.QueryOrdersResponseDto.DataBean.OrderBean;
import cn.freemud.entities.dto.delivery.*;
import cn.freemud.entities.dto.order.CreateOrderOperateDto;
import cn.freemud.entities.dto.order.CreatePrepayRequestDto;
import cn.freemud.entities.dto.order.RefundQueryRequestDto;
import cn.freemud.entities.dto.pay.PaymentMqMessageDto;
import cn.freemud.entities.dto.product.AttributeValue;
import cn.freemud.entities.dto.product.GroupDetail;
......@@ -53,6 +53,7 @@ import cn.freemud.management.entities.dto.request.order.MCCafeCouponVo;
import cn.freemud.management.entities.dto.response.coupon.McdNetBatchQueryResponse;
import cn.freemud.management.enums.OrderSource;
import cn.freemud.management.service.OrderBaseService;
import cn.freemud.manager.PushMccafeOrderManager;
import cn.freemud.redis.RedisCache;
import cn.freemud.service.*;
import cn.freemud.service.mccafe.thirdparty.DeliveryFeiginMCCafeClient;
......@@ -110,9 +111,12 @@ import cn.freemud.service.mccafe.CouponClientService;
import cn.freemud.service.mccafe.MCCafeOrderCenterSdkService;
import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService;
import com.freemud.sdk.api.assortment.order.vo.ProductGroupVo;
import com.freemud.sdk.api.assortment.payment.request.OrderRefundQueryRequest;
import com.freemud.sdk.api.assortment.payment.request.UnifiedOrderRequest;
import com.freemud.sdk.api.assortment.payment.response.OrderRefundQueryResponse;
import com.freemud.sdk.api.assortment.payment.response.OrderRefundResponse;
import com.freemud.sdk.api.assortment.payment.response.UnifiedOrderResponse;
import com.freemud.sdk.api.assortment.payment.service.PaymentCenterService;
import com.freemud.sdk.api.assortment.payment.service.StandardPaymentService;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
......@@ -133,7 +137,6 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
import java.util.concurrent.Executor;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
......@@ -234,12 +237,20 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
private AssortmentOpenPlatformPartnerConfigManager openPlatformPartnerConfigManager;
@Resource(name = "mcCafePushOrderExecutor")
private ThreadPoolTaskExecutor executor;
@Resource(name = "mcCafePushOrderSubExecutor")
private ThreadPoolTaskExecutor subExecutor;
@Autowired
private OrderDownLoadSdkService orderDownLoadSdkService;
@Autowired
private CustomerClient customerClient;
@Autowired
private MemberCenterService memberCenterService;
@Autowired
private McCafePushOrderClient mcCafePushOrderClient;
@Autowired
private PushMccafeOrderManager pushMccafeOrderManager;
@Autowired
private PaymentCenterService paymentCenterService;
private static MapperFacade mapper = new DefaultMapperFactory.Builder().build().getMapperFacade();
......@@ -2508,7 +2519,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
for(int i=1;;i++) {
OrderConditionsReq orderConditionsReq = new OrderConditionsReq();
orderConditionsReq.setPartnerId(mcCafePartnerId);
orderConditionsReq.setOrderStatuses(Arrays.asList(6, 7));
orderConditionsReq.setOrderStatuses(Arrays.asList(6,7));
orderConditionsReq.setPayStatuses(Arrays.asList(2,3,5));
orderConditionsReq.setOrderTypes(Arrays.asList(1,3,5));
orderConditionsReq.setStartTimestamp(DateUtil.convert2Date(queryOrderVo.getStartDate(), "yyyy-MM-dd HH:mm:ss").getTime()/1000);
......@@ -2521,14 +2532,35 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
break;
}
List<McCafePushOrderDto> mcCafePushOrderDtoList = new ArrayList<>();
for(OrderInfoReqs orderInfoReqs : response.getResult()) {
McCafePushOrderDto mcCafePushOrderDto = convert2McCafePushOrderInfo(orderInfoReqs);
try {
McCafePushOrderDto mcCafePushOrderDto = convert2McCafePushOrderInfo(orderInfoReqs);
System.out.println(JSON.toJSONString(mcCafePushOrderDto));
McCafePushOrderResponseDto responseDto = mcCafePushOrderClient.mcCafePushOrder(mcCafePushOrderDto);
PushMccafeOrder pushMccafeOrder = new PushMccafeOrder();
pushMccafeOrder.setOrderCode(orderInfoReqs.getOrderCode());
pushMccafeOrder.setPartnerId(orderInfoReqs.getPartnerId());
pushMccafeOrder.setStoreId(orderInfoReqs.getStoreId());
if(!"100".equals(responseDto.getCode())) {
pushMccafeOrder.setStatus(0);
pushMccafeOrder.setFailReason(responseDto.getMessage());
} else {
pushMccafeOrder.setStatus(1);
}
pushMccafeOrderManager.insertOrder(pushMccafeOrder);
} catch (Exception e) {
AppLogUtil.errorLog("麦咖啡历史订单推送失败: "+JSON.toJSONString(orderInfoReqs)
+" 异常信息: "+ExceptionUtils.getExceptionInfo(e),null,null,e);
PushMccafeOrder pushMccafeOrder = new PushMccafeOrder();
pushMccafeOrder.setOrderCode(orderInfoReqs.getOrderCode());
pushMccafeOrder.setPartnerId(orderInfoReqs.getPartnerId());
pushMccafeOrder.setStoreId(orderInfoReqs.getStoreId());
pushMccafeOrder.setStatus(0);
pushMccafeOrder.setFailReason(ExceptionUtils.getExceptionInfo(e));
pushMccafeOrderManager.insertOrder(pushMccafeOrder);
}
}
}
......@@ -2618,7 +2650,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
McCafePushOrderDto.OrderItem orderItem = new McCafePushOrderDto.OrderItem();
orderItem.setMpItemId(orderItemResp.getProductId());
orderItem.setSequenceId(orderItemResp.getProductSeq().toString());
orderItem.setRound();
orderItem.setRound(orderItemResp.getProductSeq().toString());
if(!"0".equals(orderItemResp.getParentProductId())) {
orderItem.setMpParentItemId(orderItemResp.getParentProductId().split("_")[0]);
}
......@@ -2681,13 +2713,23 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
orderItem.setSubtotal(orderItemResp.getProductPrice().multiply(new BigDecimal(orderItemResp.getProductQuantity())).toPlainString());
orderItem.setDiscountAmount((orderItemResp.getProductPrice().subtract(orderItemResp.getSalePrice())).multiply(new BigDecimal(orderItemResp.getProductQuantity())).toPlainString());
orderItem.setRealAmount(orderItemResp.getSalePrice().multiply(new BigDecimal(orderItemResp.getProductQuantity())).toPlainString());
orderItem.setTaxId(orderProductAddInfoDto.getTaxId());
Integer taxRate = getTaxRateByTaxId(orderProductAddInfoDto.getTaxId());
orderItem.setTaxRate(taxRate.toString());
String taxId = "10";
orderItem.setTaxId(taxId);
Integer taxRate = Double.valueOf(orderProductAddInfoDto.getTax()*100).intValue();
orderItem.setTaxRate(String.valueOf(taxRate));
orderItem.setTaxAmount(String.valueOf(new BigDecimal(taxRate).multiply(orderItemResp.getSalePrice())
.multiply(new BigDecimal(orderItemResp.getProductQuantity())).intValue()/100));
taxTotalAmount += Integer.parseInt(orderItem.getTaxAmount());
orderItem.setTaxAmountDetail();
McCafePushOrderDto.TaxAmountDetail taxAmountDetail = new McCafePushOrderDto.TaxAmountDetail();
taxAmountDetail.setUniqueCode(orderItemResp.getProductCode());
McCafePushOrderDto.TaxItem taxItem = new McCafePushOrderDto.TaxItem();
taxItem.setRealAmount(orderItemResp.getSalePrice().multiply(new BigDecimal(orderItemResp.getProductQuantity())).intValue());
taxItem.setTaxAmount(new BigDecimal(taxRate).multiply(orderItemResp.getSalePrice())
.multiply(new BigDecimal(orderItemResp.getProductQuantity())).intValue()/100);
taxItem.setTaxId(taxId);
taxItem.setTaxRate(getTaxRateByTaxId(taxId).toString());
taxAmountDetail.setTaxItems(Arrays.asList(taxItem));
orderItem.setTaxAmountDetail(Arrays.asList(taxAmountDetail));
if(StringUtils.isBlank(orderItemResp.getParentProductId()) && "0".equals(orderItemResp.getParentProductId())) {
orderItem.setCostInclusive(null);
} else {
......@@ -2715,16 +2757,16 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
orderPayment.setRefundReason(afterSalesOrderRespOptional.get().getAfterSalesReason());
}
orderPayment.setRefundStatus("REFUNDED");
// RefundQueryRequestDto refundQueryRequestDto = new RefundQueryRequestDto();
// refundQueryRequestDto.setPartnerId(mcCafePartnerId);
// refundQueryRequestDto.setStoreId(orderInfoReqs.getStoreId());
// refundQueryRequestDto.setFrontTransId(orderExtInfoDto.getEndTransId());
// refundQueryRequestDto.setStationId("1");
// refundQueryRequestDto.setOperatorId("sys");
// refundQueryRequestDto.setTransId(orderInfoReqs.getOrderCode());
// refundQueryRequestDto.setClientCode();
orderPayment.setChannelRefundTransactionId(" ");
OrderRefundQueryRequest orderRefundQueryRequest = new OrderRefundQueryRequest();
orderRefundQueryRequest.setOrgTransId(orderInfoReqs.getOrderCode());
orderRefundQueryRequest.setOrgPayFmId(orderExtInfoDto.getFmId());
com.freemud.application.sdk.api.base.BaseResponse<OrderRefundQueryResponse> refundQueryResponseBaseResponse =
paymentCenterService.orderRefundQuery(orderRefundQueryRequest, LogThreadLocal.getTrackingNo());
if(ResponseConstant.SUCCESS_RESPONSE_CODE_STR.equals(refundQueryResponseBaseResponse.getCode())
&& null != refundQueryResponseBaseResponse.getData()
&& ResponseConstant.SUCCESS_RESPONSE_CODE.equals(refundQueryResponseBaseResponse.getData().getStatusCode())) {
orderPayment.setChannelRefundTransactionId(refundQueryResponseBaseResponse.getData().getRefundDetail().get(0).getEndTransId());
}
}
orderPayment.setSignType("0");
......@@ -2828,7 +2870,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
private Integer getTaxRateByTaxId(String taxId) {
switch (taxId) {
default:return 0;
default:return 6;
}
}
......
package cn.freemud.service.thirdparty;
import cn.freemud.annotations.LogIgnoreFeign;
import cn.freemud.entities.dto.order.McCafePushOrderDto;
import cn.freemud.entities.dto.McCafePushOrderResponseDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@FeignClient(url = "http://")
@RequestMapping(produces = {"application/json;charset=UTF-8"})
public interface McCafePushOrderClient {
@LogIgnoreFeign(logMessage="mcCafePushOrder")
@PostMapping("/mp/order")
McCafePushOrderResponseDto mcCafePushOrder(@RequestBody McCafePushOrderDto mcCafePushOrderDto);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.freemud.manager.dao.PushMccafeOrderDao">
<sql id="all_column">
id,
order_code as orderCode
partner_id as partnerId,
store_id as storeId,
status as status,
fail_reason as failReason,
create_time as createTime,
update_time as updateTime
</sql>
<select id="selectOrder" resultType="cn.freemud.entities.db.PushMccafeOrder">
SELECT
<include refid="all_column"/>
FROM push_mccafe_order WHERE order_code=#{orderCode}
</select>
<insert id="insertOrder" parameterType="cn.freemud.entities.db.PushMccafeOrder">
INSERT INTO push_mccafe_order ( order_code, partner_id,store_id,status,fail_reason)
VALUES
( #{orderCode},#{partnerId},#{storeId},#{status},#{failReason} );
</insert>
<update id="updateOrder" parameterType="cn.freemud.entities.db.PushMccafeOrder">
updatee push_mccafe_order
set
status = #{status}
where order_code = #{orderCode}
</update>
</mapper>
\ No newline at end of file
......@@ -65,7 +65,7 @@
<dependency>
<groupId>com.freemud.sdk.api.assortment</groupId>
<artifactId>assortment-payment-sdk</artifactId>
<version>2.6.8.RELEASE</version>
<version>2.6.8.SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment