Commit d8f25d53 by 徐康

Merge branch 'feature/xukang_20210907_麦咖啡订单数据推送到麦当劳'

# Conflicts:
#	order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
#	order-application-service/src/main/java/cn/freemud/service/thirdparty/PaymentNewClient.java
parents 20f8c0cf 4d349f1e
...@@ -325,12 +325,12 @@ ...@@ -325,12 +325,12 @@
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
<artifactId>paymentcenter-sdk</artifactId> <artifactId>paymentcenter-sdk</artifactId>
<version>2.9.10.RELEASE</version> <version>2.9.17-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.sdk.api.assortment</groupId> <groupId>com.freemud.sdk.api.assortment</groupId>
<artifactId>assortment-payment-sdk</artifactId> <artifactId>assortment-payment-sdk</artifactId>
<version>2.6.7.RELEASE</version> <version>2.6.10.SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.rocketmq</groupId> <groupId>org.apache.rocketmq</groupId>
......
...@@ -108,5 +108,32 @@ public class OrderApplication { ...@@ -108,5 +108,32 @@ public class OrderApplication {
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
return executor; 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(16);
executor.setKeepAliveSeconds(60);
executor.setQueueCapacity(100);
executor.setWaitForTasksToCompleteOnShutdown(true);
executor.setAwaitTerminationSeconds(60);
executor.setThreadNamePrefix("mcCafePushOrderSubExecutor-");
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
return executor;
}
} }
} }
...@@ -120,6 +120,30 @@ public class McCafeController { ...@@ -120,6 +120,30 @@ public class McCafeController {
return mcCafeOrderService.mcCafeQueryRecentOrder(queryOrderVo); return mcCafeOrderService.mcCafeQueryRecentOrder(queryOrderVo);
} }
/**
* 麦咖啡推送订单数据到麦当劳
*/
@ApiAnnotation(logMessage = "mcCafePushOrder")
@PostMapping("/mcCafePushOrder")
public BaseResponse mcCafePushOrder(@Validated @LogParams @RequestBody McCafeQueryOrderVo queryOrderVo) {
return mcCafeOrderService.mcCafePushOrder(queryOrderVo);
}
/**
* 麦咖啡推送订单数据到麦当劳 -- 补偿/修正
*/
@ApiAnnotation(logMessage = "mcCafePushOrderMakeUp")
@PostMapping("/mcCafePushOrderMakeUp")
public BaseResponse mcCafePushOrderMakeUp(@Validated @LogParams @RequestBody McCafeQueryOrderVo queryOrderVo) {
return mcCafeOrderService.mcCafePushOrderMakeUp(queryOrderVo);
}
} }
package cn.freemud.entities.db;
import cn.freemud.comm.entity.BaseEntity;
import lombok.Data;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
import java.util.Date;
/**
* 商户
*
* @author liming.guo
* @date 2018/05/10
*/
@Data
public class PushMccafeOrder extends BaseEntity {
private Long id;
/**
* 订单编号
*/
private String orderCode;
/**
* 商户ID
*/
private String partnerId;
/**
* 门店id
*/
private String storeId;
private Integer status;
private String failReason;
private Date createTime;
private Date updateTime;
}
package cn.freemud.entities.dto;
import lombok.Data;
@Data
public class McCafePushOrderResponseDto {
private String code;
private String message;
private String data;
}
package cn.freemud.entities.dto.order;
import lombok.Data;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: FacePayRequestDto
* @Package cn.freemud.entities.dto.order
* @Description:
* @author: ping1.wu
* @date: 2019/12/25 19:28
* @Copyright: 2019 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class RefundQueryRequestDto {
private String partnerId;
private String storeId;
private String frontTransId;
private String stationId;
private String operatorId;
private String transId;
private String clientCode;
}
package cn.freemud.entities.dto.order;
import lombok.Data;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: FacePayResponseDto
* @Package cn.freemud.entities.dto.order
* @Description:
* @author: ping1.wu
* @date: 2019/12/25 19:23
* @Copyright: 2019 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class RefundQueryResponseDto {
private Integer resultCode;
private String resultMsg;
private String tradeNo;
private String thirdPartTradeNo;
private String totalAmount;
private String refundCount;
}
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: QueryOrderVo
* @Package cn.freemud.entities.vo
* @Description:
* @author: liming.guo
* @date: 2018/5/22 17:35
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package cn.freemud.entities.vo;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
public class McCafePushOrderVo {
@NotBlank
private String startDate;
@NotBlank
private String endDate;
}
package cn.freemud.manager;
import cn.freemud.entities.db.Partner;
import cn.freemud.entities.db.PushMccafeOrder;
import cn.freemud.manager.dao.PartnerDao;
import cn.freemud.manager.dao.PushMccafeOrderDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* 商户小程序manager
*
* @author liming.guo
* @date 2018/05/10
*/
@Component
public class PushMccafeOrderManager {
@Autowired
private PushMccafeOrderDao pushMccafeOrderDao;
public PushMccafeOrder selectOrder(String orderCode) {
return pushMccafeOrderDao.selectOrder(orderCode);
}
public List<PushMccafeOrder> selectOrderByStatus(Integer id) {
return pushMccafeOrderDao.selectOrderByStatus(id);
}
public Integer insertOrder(PushMccafeOrder pushMccafeOrder) {
return pushMccafeOrderDao.insertOrder(pushMccafeOrder);
}
public Integer updateOrder(PushMccafeOrder pushMccafeOrder) {
return pushMccafeOrderDao.updateOrder(pushMccafeOrder);
}
}
package cn.freemud.manager.dao;
import cn.freemud.entities.db.Partner;
import cn.freemud.entities.db.PushMccafeOrder;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface PushMccafeOrderDao {
PushMccafeOrder selectOrder(@Param("orderCode") String orderCode);
List<PushMccafeOrder> selectOrderByStatus(@Param("status") Integer status);
Integer insertOrder(PushMccafeOrder pushMccafeOrder);
Integer updateOrder(PushMccafeOrder pushMccafeOrder);
}
...@@ -56,4 +56,8 @@ public interface MCCafeOrderService { ...@@ -56,4 +56,8 @@ public interface MCCafeOrderService {
*/ */
BaseResponse mcCafeQueryRecentOrder(McCafeQueryOrderVo queryOrderVo); BaseResponse mcCafeQueryRecentOrder(McCafeQueryOrderVo queryOrderVo);
BaseResponse mcCafePushOrder(McCafeQueryOrderVo queryOrderVo);
BaseResponse mcCafePushOrderMakeUp(McCafeQueryOrderVo queryOrderVo);
} }
...@@ -43,12 +43,11 @@ public interface CustomerClient { ...@@ -43,12 +43,11 @@ public interface CustomerClient {
// @PostMapping(value = "/customerservice/updateMemberChannel") // @PostMapping(value = "/customerservice/updateMemberChannel")
// JSONObject updateUserUnionId(@RequestBody UpdateMemUnionIdRequestDto updateMemUnionIdRequestDto); // JSONObject updateUserUnionId(@RequestBody UpdateMemUnionIdRequestDto updateMemUnionIdRequestDto);
// //
// /** /**
// * 根据会员id获取会员信息 * 根据会员id获取会员信息
// */ */
// @PostMapping(value = "/customerservice/getMemberById") @PostMapping(value = "/customerservice/getMemberById")
// GetMemberInfoByIdResponseDto getMemberInfoById(@RequestBody GetMemberInfoByIdRequestDto GetMemberInfoByIdResponseDto getMemberInfoById(@RequestBody GetMemberInfoByIdRequestDto getMemberInfoByIdRequestDto);
// getMemberInfoByIdRequestDto);
// //
// /** // /**
// * 修改顾客信息 // * 修改顾客信息
......
package cn.freemud.service.thirdparty;
import cn.freemud.annotations.LogIgnoreFeign;
import cn.freemud.entities.dto.order.McCafePushOrderDto;
import cn.freemud.entities.dto.McCafePushOrderResponseDto;
import feign.Headers;
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(name = "MCD-ORDER-DATA-PUSH-SERVICE", url = "${mccafe.push.order.url}")
@RequestMapping(produces = {"application/json;charset=UTF-8"})
public interface McCafePushOrderClient {
@LogIgnoreFeign(logMessage="mcCafePushOrder")
@PostMapping(value="/mp/order",headers={"ContentType=application/json","Provider=WX","Version=1.0"})
@Headers(value={"ContentType=application/json","Provider=WX","Version=1.0"})
McCafePushOrderResponseDto mcCafePushOrder(@RequestBody McCafePushOrderDto mcCafePushOrderDto);
}
...@@ -5,6 +5,7 @@ import cn.freemud.constant.ResponseCodeKeyConstant; ...@@ -5,6 +5,7 @@ import cn.freemud.constant.ResponseCodeKeyConstant;
import cn.freemud.entities.dto.order.FacePayRequestDto; import cn.freemud.entities.dto.order.FacePayRequestDto;
import cn.freemud.entities.dto.order.FacePayResponseDto; import cn.freemud.entities.dto.order.FacePayResponseDto;
import cn.freemud.entities.dto.pay.UnifiedOrderRequestDto; import cn.freemud.entities.dto.pay.UnifiedOrderRequestDto;
import cn.freemud.entities.dto.order.RefundQueryResponseDto;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
...@@ -43,4 +44,8 @@ public interface PaymentNewClient { ...@@ -43,4 +44,8 @@ public interface PaymentNewClient {
@PostMapping("paymentcenter/unifiedOrder") @PostMapping("paymentcenter/unifiedOrder")
com.freemud.application.sdk.api.base.BaseResponse<FacePayResponseDto> unifiedOrder(@RequestBody UnifiedOrderRequestDto requestDto); com.freemud.application.sdk.api.base.BaseResponse<FacePayResponseDto> unifiedOrder(@RequestBody UnifiedOrderRequestDto requestDto);
@LogIgnoreFeign(logMessage="refundQuery")
@PostMapping("paymentcenter/refundQuery")
com.freemud.application.sdk.api.base.BaseResponse<RefundQueryResponseDto> refundQuery(@RequestBody FacePayRequestDto orderPayDto);
} }
...@@ -4,6 +4,7 @@ public class ExceptionUtils { ...@@ -4,6 +4,7 @@ public class ExceptionUtils {
public static String getExceptionInfo(Exception e) { public static String getExceptionInfo(Exception e) {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append(e);
StackTraceElement[] trace = e.getStackTrace(); StackTraceElement[] trace = e.getStackTrace();
for (StackTraceElement traceElement : trace) { for (StackTraceElement traceElement : trace) {
sb.append("\tat " + traceElement); sb.append("\tat " + traceElement);
......
<?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>
<select id="selectOrderByStatus" resultType="cn.freemud.entities.db.PushMccafeOrder">
SELECT
<include refid="all_column"/>
FROM push_mccafe_order WHERE status = 0
id > #{id}
limit 500;
</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,13 +65,13 @@ ...@@ -65,13 +65,13 @@
<dependency> <dependency>
<groupId>com.freemud.sdk.api.assortment</groupId> <groupId>com.freemud.sdk.api.assortment</groupId>
<artifactId>assortment-payment-sdk</artifactId> <artifactId>assortment-payment-sdk</artifactId>
<version>2.6.8.RELEASE</version> <version>2.6.10.SNAPSHOT</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
<artifactId>paymentcenter-sdk</artifactId> <artifactId>paymentcenter-sdk</artifactId>
<version>2.9.8.RELEASE</version> <version>2.9.17-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>structure-center-sdk</artifactId> <artifactId>structure-center-sdk</artifactId>
......
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