ab
2024-11-04 09d882262f530ded672f1c01fb65a1fefa00d52d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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;
    }
 
 
}