package com.nova.sankuai.infra.utils.weike;
|
|
import cn.hutool.core.util.IdUtil;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.nova.sankuai.domain.api.zcy.ZcyResponse;
|
import com.nova.sankuai.domain.dto.zcy.CustomerZcyDto;
|
import com.nova.sankuai.domain.entity.CustomerZcy;
|
import com.nova.sankuai.service.ICustomerZcyService;
|
import lombok.RequiredArgsConstructor;
|
import org.jetbrains.annotations.NotNull;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.stereotype.Component;
|
|
import java.util.Objects;
|
|
@Component
|
@RequiredArgsConstructor
|
public class WeikeUtil {
|
|
private static final Logger log = LoggerFactory.getLogger("capitalLogger");
|
private final ICustomerZcyService customerZcyService;
|
|
public ZcyResponse callback(CustomerZcyDto body) {
|
String logNumber = IdUtil.randomUUID();
|
try {
|
if (Objects.isNull(body)) {
|
ZcyResponse resp = getZcyResponse(400, "请求体为空");
|
log.error("日志编号:{} 微客数据入库失败,错误原因:随易花资方回调请求体为空!", logNumber);
|
return resp;
|
}
|
// 获取电话
|
String phone = body.getPhone();
|
|
// 判断数据库是否有数据,有数据,则说明以前有推送过来过
|
CustomerZcy customer = customerZcyService.getOne(new LambdaQueryWrapper<CustomerZcy>().eq(CustomerZcy::getPhone, phone));
|
if (!Objects.isNull(customer)) {
|
ZcyResponse resp = getZcyResponse(400, "电话号码为" + phone + " 已推送过数据!");
|
log.error("日志编号:{} 手机号为:{} 微客数据入库失败,传入参数:{} 错误原因:已推送过数据!", logNumber, phone, body);
|
return resp;
|
}
|
|
// 开始录入数据
|
CustomerZcy customerZcy = new CustomerZcy();
|
BeanUtils.copyProperties(body, customerZcy);
|
customerZcy.setMark(1);
|
customerZcyService.save(customerZcy);
|
|
ZcyResponse resp = getZcyResponse(200, "成功!");
|
log.info("日志编号:{} 手机号为:{} 微客数据入库成功", logNumber, phone);
|
return resp;
|
} catch (Exception e) {
|
ZcyResponse resp = getZcyResponse(500, e.getMessage());
|
log.error("日志编号:{} 微客数据入库失败,传入参数:{} 错误原因:{}", logNumber, body, e);
|
return resp;
|
}
|
}
|
|
@NotNull
|
private ZcyResponse getZcyResponse(Integer code, String msg) {
|
ZcyResponse resp = new ZcyResponse();
|
resp.setCode(code);
|
resp.setMsg(msg);
|
return resp;
|
}
|
|
|
}
|