记得上下班打卡 | git大法好,push需谨慎

Commit 3f820ba6 authored by 张国柄's avatar 张国柄

fix:callback.test;

parent b45ecf51
package com.liquidnet.service.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.entity.AdamDeviceToken;
/**
* <p>
* TOKEN 服务类
* </p>
*
* @author liquidnet
* @since 2021-05-11
*/
public interface IAdamDeviceTokenService extends IService<AdamDeviceToken> {
}
...@@ -7,16 +7,14 @@ import com.github.xiaoymin.knife4j.annotations.ApiSupport; ...@@ -7,16 +7,14 @@ import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.commons.lang.util.CurrentUtil; import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.HttpUtil; import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.dto.AdamMemberOrderCallbackParam; import com.liquidnet.commons.lang.util.ServletUtils;
import com.liquidnet.service.adam.dto.AdamMemberOrderCodeParam; import com.liquidnet.service.adam.dto.AdamMemberOrderCodeParam;
import com.liquidnet.service.adam.dto.AdamMemberOrderParam; import com.liquidnet.service.adam.dto.AdamMemberOrderParam;
import com.liquidnet.service.adam.dto.AdamMemberOrderResult; import com.liquidnet.service.adam.dto.AdamMemberOrderResult;
import com.liquidnet.service.adam.dto.vo.*; import com.liquidnet.service.adam.dto.vo.*;
import com.liquidnet.service.adam.service.IAdamMemberOrderService; import com.liquidnet.service.adam.service.IAdamMemberOrderService;
import com.liquidnet.service.adam.service.IAdamRdmService; import com.liquidnet.service.adam.service.IAdamRdmService;
import com.liquidnet.service.adam.service.IAdamRealNameService;
import com.liquidnet.service.adam.service.IAdamUserService; import com.liquidnet.service.adam.service.IAdamUserService;
import com.liquidnet.service.adam.service.admin.IAdamMemberPriceAdminService;
import com.liquidnet.service.base.ErrorMapping; import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -30,6 +28,7 @@ import org.springframework.web.bind.annotation.*; ...@@ -30,6 +28,7 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import javax.validation.Valid;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import java.util.Map;
@ApiSupport(order = 10031) @ApiSupport(order = 10031)
@Api(tags = "购买会员") @Api(tags = "购买会员")
...@@ -98,28 +97,66 @@ public class AdamMemberOrderController { ...@@ -98,28 +97,66 @@ public class AdamMemberOrderController {
} }
} }
/**
* 当订单支付成功后,会立即通知Server一次,若未能响应成功,之后的24小时内会多次通知
* 通知头:
* {
* "token":"eyJpdiI6IlJuTDFpOVBFOVBReUJ6OTd5ankzVVE9PSIsInZhbHVlIjoiMzhxWW52Um1lWVNYOEJ4OVh6OEdzUT09IiwibWFjIjoiM2Q4OWNkNWVkMjJkNzY0OGVjNmE5YTA3ODUwMTI5YWFlN2U5NDgwZmE0YmVmZWE4MTE1NmY1NWZjMGI2YmNiZCJ9"
* }
* 通知参数:
* {
* "status":"1",
* "type":"MBEANS",
* "code":"201807201217135B516249085EC",
* "order_code":"00001TESTORDER",
* "price":"0.01",
* "payment_type":"APPIAP",
* "payment_at":"2018-07-20 12:17:13",
* "payment_id":"1032334083425793457349875"
* }
* 通知说明:已支付订单status为1,code为交易支付订单号,建议保存code,type为支付种类,payment_type为支付类型,以上参数是必传。
* 通知响应:'success',响应成功,将不再通知客户端
* 通知响应:'fail',响应失败,将不再通知客户端,建议在订单异常的状态下响应失败
*
* @param parameter
* @return
*/
@ApiOperationSupport(order = 2) @ApiOperationSupport(order = 2)
@ApiOperation(value = "会员支付回调") @ApiOperation(value = "会员支付回调")
@PostMapping("callback") @PostMapping("callback")
public String paymentNotifyCallBack(@ModelAttribute AdamMemberOrderCallbackParam parameter) { public String paymentNotifyCallBack(Map<String, Object> parameter) {
log.debug("/member/callback.parameter:{}", JsonUtils.toJson(parameter)); log.debug("/member/callback.request:{}", ServletUtils.getRequest().getMethod());
if (1 != parameter.getStatus() || log.debug("/member/callback.request:{}", ServletUtils.getRequest().getContentType());
!parameter.getType().equals("VIP") || log.debug("/member/callback.parameterMap:{}", ServletUtils.getRequest().getParameterMap());
null == parameter.getOrderCode() || log.debug("/member/callback.headerNames:{}", ServletUtils.getRequest().getHeaderNames());
null == parameter.getCode()) { log.debug("/member/callback.parameter:{}, token:{}", JsonUtils.toJson(parameter), ServletUtils.getRequest().getHeader("token"));
int status = (int) parameter.get("status");
String type = (String) parameter.get("type");
String code = (String) parameter.get("code");
String orderCode = (String) parameter.get("order_code");
String price = (String) parameter.get("price");
String paymentType = (String) parameter.get("payment_type");
String paymentAt = (String) parameter.get("payment_at");
String paymentId = (String) parameter.get("payment_id");
if (1 != status ||
!type.equals("VIP") ||
null == orderCode ||
null == code) {
log.error("会员支付回调参数有误:{}", JsonUtils.toJson(parameter)); log.error("会员支付回调参数有误:{}", JsonUtils.toJson(parameter));
return "fail"; return "fail";
} }
ResponseDto<Object> dto = adamMemberOrderService.paymentNotifyCallBack(parameter); // ResponseDto<Object> dto = adamMemberOrderService.paymentNotifyCallBack(parameter);
//
if (!dto.isSuccess()) { // if (!dto.isSuccess()) {
log.warn("###会员支付回调处理失败:handleDto:{},CallbackParam:{}", JsonUtils.toJson(dto), JsonUtils.toJson(parameter)); // log.warn("###会员支付回调处理失败:handleDto:{},CallbackParam:{}", JsonUtils.toJson(dto), JsonUtils.toJson(parameter));
//
return "fail"; // return "fail";
} // }
return "success"; return "fail";
} }
@ApiOperationSupport(order = 3) @ApiOperationSupport(order = 3)
......
...@@ -2,6 +2,7 @@ package com.liquidnet.service.adam.service.impl; ...@@ -2,6 +2,7 @@ package com.liquidnet.service.adam.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.adam.dto.vo.AdamCollectBaseVo; import com.liquidnet.service.adam.dto.vo.AdamCollectBaseVo;
import com.liquidnet.service.adam.dto.vo.AdamCollectInfoVo; import com.liquidnet.service.adam.dto.vo.AdamCollectInfoVo;
...@@ -12,6 +13,7 @@ import com.liquidnet.service.adam.mapper.AdamCollectionMapper; ...@@ -12,6 +13,7 @@ import com.liquidnet.service.adam.mapper.AdamCollectionMapper;
import com.liquidnet.service.adam.service.IAdamCollectionService; import com.liquidnet.service.adam.service.IAdamCollectionService;
import com.liquidnet.service.adam.service.IAdamRdmService; import com.liquidnet.service.adam.service.IAdamRdmService;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.feign.kylin.api.FeignKylinPerformanceClient; import com.liquidnet.service.feign.kylin.api.FeignKylinPerformanceClient;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo; import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.mongodb.BasicDBObject; import com.mongodb.BasicDBObject;
...@@ -57,22 +59,19 @@ public class AdamCollectionServiceImpl extends ServiceImpl<AdamCollectionMapper, ...@@ -57,22 +59,19 @@ public class AdamCollectionServiceImpl extends ServiceImpl<AdamCollectionMapper,
FeignKylinPerformanceClient feignKylinPerformanceClient; FeignKylinPerformanceClient feignKylinPerformanceClient;
@Override @Override
public void add(AdamCollectBaseVo collectionVo) { public void add(AdamCollectBaseVo vo) {
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
String nowStr = DateUtil.format(now, DateUtil.Formatter.yyyyMMddHHmmss);
collectionVo.setState(1); vo.setState(1);
collectionVo.setCreatedAt(nowStr); vo.setCreatedAt(DateUtil.format(now, DateUtil.Formatter.yyyyMMddHHmmss));
AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(collectionVo.getUid()); mongoTemplate.insert(vo, AdamCollectBaseVo.class.getSimpleName());
collectionVo.setAvatar(userInfoVo.getAvatar());
collectionVo.setNickname(userInfoVo.getNickname());
collectionVo.setSex(userInfoVo.getSex());
mongoTemplate.insert(collectionVo, AdamCollectBaseVo.class.getSimpleName());
// TODO: 2021/5/19 sql to mq
rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
SqlMapping.get("adam_collection.add",
vo.getUid(), vo.getContentId(), vo.getType(), vo.getState(), now
)
);
} }
@Override @Override
......
package com.liquidnet.service.adam.service.impl;
import com.liquidnet.service.adam.entity.AdamDeviceToken;
import com.liquidnet.service.adam.mapper.AdamDeviceTokenMapper;
import com.liquidnet.service.adam.service.IAdamDeviceTokenService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* TOKEN 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-05-11
*/
@Service
public class AdamDeviceTokenServiceImpl extends ServiceImpl<AdamDeviceTokenMapper, AdamDeviceToken> implements IAdamDeviceTokenService {
}
package com.liquidnet.service.adam.service.impl; package com.liquidnet.service.adam.service.impl;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.adam.dto.vo.*; import com.liquidnet.service.adam.dto.vo.*;
import com.liquidnet.service.adam.service.IAdamDisposedService; import com.liquidnet.service.adam.service.IAdamDisposedService;
import com.liquidnet.service.adam.service.IAdamRdmService; import com.liquidnet.service.adam.service.IAdamRdmService;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.feign.kylin.api.FeignKylinPerformanceClient; import com.liquidnet.service.feign.kylin.api.FeignKylinPerformanceClient;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo; import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.mongodb.BasicDBObject; import com.mongodb.BasicDBObject;
...@@ -51,22 +53,19 @@ public class AdamDisposedServiceImpl implements IAdamDisposedService { ...@@ -51,22 +53,19 @@ public class AdamDisposedServiceImpl implements IAdamDisposedService {
FeignKylinPerformanceClient kylinPerformanceClient; FeignKylinPerformanceClient kylinPerformanceClient;
@Override @Override
public void add(AdamDisposedBaseVo disposedBaseVo) { public void add(AdamDisposedBaseVo vo) {
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
String nowStr = DateUtil.format(now, DateUtil.Formatter.yyyyMMddHHmmss);
disposedBaseVo.setState(1); vo.setState(1);
disposedBaseVo.setCreatedAt(nowStr); vo.setCreatedAt(DateUtil.Formatter.yyyyMMddHHmmss.format(now));
AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(disposedBaseVo.getUid()); mongoTemplate.insert(vo, AdamDisposedBaseVo.class.getSimpleName());
disposedBaseVo.setAvatar(userInfoVo.getAvatar());
disposedBaseVo.setNickname(userInfoVo.getNickname());
disposedBaseVo.setSex(userInfoVo.getSex());
mongoTemplate.insert(disposedBaseVo, AdamDisposedBaseVo.class.getSimpleName());
// TODO: 2021/5/19 sql to mq
rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
SqlMapping.get("adam_disposed.add",
vo.getUid(), vo.getContentId(), vo.getType(), vo.getState(), now
)
);
} }
@Override @Override
......
...@@ -28,6 +28,12 @@ adam_enters.update.is_default=UPDATE adam_enters set is_default=?, updated_at=? ...@@ -28,6 +28,12 @@ adam_enters.update.is_default=UPDATE adam_enters set is_default=?, updated_at=?
adam_enters.remove=UPDATE adam_enters SET `state`=2, updated_at=?, deleted_at=? where enters_id=? adam_enters.remove=UPDATE adam_enters SET `state`=2, updated_at=?, deleted_at=? where enters_id=?
adam_enters.close=UPDATE adam_enters SET `state`=2, updated_at=?, deleted_at=?, comment='close' where uid=? adam_enters.close=UPDATE adam_enters SET `state`=2, updated_at=?, deleted_at=?, comment='close' where uid=?
# ----------------------------------------------------
adam_collection.add=INSERT INTO adam_collection (`uid`, content_id, `type`, `state`, created_at) VALUES (?,?,?,?,?)
# ----------------------------------------------------
adam_disposed.add=INSERT into adam_disposed (`uid`, content_id, `type`, `state`, created_at) VALUES ()
# ---------------------------------------------------- # ----------------------------------------------------
adam_member.add=INSERT INTO adam_member ( `name`, `title`, `sub_title`, `icon`, `avatar`, `start_no`, `type`, `interests_detail`, `notes`, `is_notice`, `notice_info`, `notice_title`, `need_question`, `display_agreement`, `agreement`, `member_id`, `limitation`) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?); adam_member.add=INSERT INTO adam_member ( `name`, `title`, `sub_title`, `icon`, `avatar`, `start_no`, `type`, `interests_detail`, `notes`, `is_notice`, `notice_info`, `notice_title`, `need_question`, `display_agreement`, `agreement`, `member_id`, `limitation`) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);
......
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