From 66f706f5c742dd448e7f70610a6f4b0692cc4040 Mon Sep 17 00:00:00 2001 From: Yen Date: Wed, 6 Jul 2022 17:54:27 +0800 Subject: [PATCH] update --- .../java/com/qs/cost/common/dto/U8APIBo.java | 44 ------ .../com/qs/cost/common/utils/DateUtil.java | 1 + .../com/qs/cost/common/utils/HttpUtil.java | 1 + .../cost/module/controller/ApiController.java | 138 ------------------ .../com/qs/cost/module/domain/ApiBook.java | 54 ------- .../com/qs/cost/module/domain/ApiRequest.java | 97 ------------ .../qs/cost/module/domain/GetListEntity.java | 125 ++++++++++++++++ .../module/domain/dto/JobCallbackParam.java | 26 ---- .../module/domain/dto/JobDataBaseParam.java | 22 --- .../cost/module/domain/dto/JobErpParam.java | 16 -- .../module/domain/dto/JobRequestParam.java | 50 ------- .../qs/cost/module/mapper/ApiBookMapper.java | 13 -- .../cost/module/mapper/ApiRequestMapper.java | 13 -- .../qs/cost/module/service/ApiService.java | 99 ------------- .../qs/cost/module/service/JiaJinService.java | 59 ++++++++ src/test/java/boot/PrintDemo.java | 48 +----- 16 files changed, 190 insertions(+), 616 deletions(-) delete mode 100644 src/main/java/com/qs/cost/common/dto/U8APIBo.java delete mode 100644 src/main/java/com/qs/cost/module/controller/ApiController.java delete mode 100644 src/main/java/com/qs/cost/module/domain/ApiBook.java delete mode 100644 src/main/java/com/qs/cost/module/domain/ApiRequest.java create mode 100644 src/main/java/com/qs/cost/module/domain/GetListEntity.java delete mode 100644 src/main/java/com/qs/cost/module/domain/dto/JobCallbackParam.java delete mode 100644 src/main/java/com/qs/cost/module/domain/dto/JobDataBaseParam.java delete mode 100644 src/main/java/com/qs/cost/module/domain/dto/JobErpParam.java delete mode 100644 src/main/java/com/qs/cost/module/domain/dto/JobRequestParam.java delete mode 100644 src/main/java/com/qs/cost/module/mapper/ApiBookMapper.java delete mode 100644 src/main/java/com/qs/cost/module/mapper/ApiRequestMapper.java delete mode 100644 src/main/java/com/qs/cost/module/service/ApiService.java create mode 100644 src/main/java/com/qs/cost/module/service/JiaJinService.java diff --git a/src/main/java/com/qs/cost/common/dto/U8APIBo.java b/src/main/java/com/qs/cost/common/dto/U8APIBo.java deleted file mode 100644 index c378f48..0000000 --- a/src/main/java/com/qs/cost/common/dto/U8APIBo.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.qs.cost.common.dto; - -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.qs.cost.module.domain.dto.JobDataBaseParam; -import com.qs.cost.module.domain.dto.JobErpParam; -import lombok.Builder; -import lombok.Getter; -import lombok.Setter; - -/** - * @author YenHex - */ -@Builder -@Getter -@Setter -@JsonAutoDetect(fieldVisibility= JsonAutoDetect.Visibility.ANY,getterVisibility= JsonAutoDetect.Visibility.NONE) -public class U8APIBo { - - @JsonProperty("Cmd") - private String cmd; - - @JsonProperty("Params") - private BeanParams params; - - @JsonProperty("SetYear") - private String setYear; - - @JsonProperty("SetBook") - private String setBook; - - @JsonProperty("RequestId") - private String requestId; - - //@JsonProperty("CallbackEnable") - //private String callbackEnable; - - @JsonProperty("ErpUser") - private JobErpParam erpUser; - - @JsonProperty("DataBase") - private JobDataBaseParam dataBase; - -} diff --git a/src/main/java/com/qs/cost/common/utils/DateUtil.java b/src/main/java/com/qs/cost/common/utils/DateUtil.java index bbe5b29..838d024 100644 --- a/src/main/java/com/qs/cost/common/utils/DateUtil.java +++ b/src/main/java/com/qs/cost/common/utils/DateUtil.java @@ -24,6 +24,7 @@ public class DateUtil { public static final String FORMAT_SIMPLE_DATE = "yyyy-MM-dd"; + public static final String FORMAT_SIMPLE_DATE2 = "yyyy/MM/dd"; public static final String FORMAT_SIMPLE_MONTH = "yyyy-MM"; public static final String FORMAT_SIMPLE_YEAR = "yyyy"; diff --git a/src/main/java/com/qs/cost/common/utils/HttpUtil.java b/src/main/java/com/qs/cost/common/utils/HttpUtil.java index fc76bff..bcf2f2e 100644 --- a/src/main/java/com/qs/cost/common/utils/HttpUtil.java +++ b/src/main/java/com/qs/cost/common/utils/HttpUtil.java @@ -65,6 +65,7 @@ public class HttpUtil { public static HttpResult get(String url){ HttpGet httpGet = new HttpGet(url); + httpGet.setHeader("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"); return getHttpResult(httpGet); } diff --git a/src/main/java/com/qs/cost/module/controller/ApiController.java b/src/main/java/com/qs/cost/module/controller/ApiController.java deleted file mode 100644 index 9506a81..0000000 --- a/src/main/java/com/qs/cost/module/controller/ApiController.java +++ /dev/null @@ -1,138 +0,0 @@ -package com.qs.cost.module.controller; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.qs.cost.common.consts.ApiStatusConst; -import com.qs.cost.common.consts.ApiUrlConst; -import com.qs.cost.common.dto.BeanParams; -import com.qs.cost.common.dto.R; -import com.qs.cost.common.dto.U8APIBo; -import com.qs.cost.common.enums.HttpCode; -import com.qs.cost.common.utils.*; -import com.qs.cost.module.domain.ApiBook; -import com.qs.cost.module.domain.ApiRequest; -import com.qs.cost.module.domain.dto.JobDataBaseParam; -import com.qs.cost.module.domain.dto.JobErpParam; -import com.qs.cost.module.domain.dto.JobRequestParam; -import com.qs.cost.module.mapper.ApiRequestMapper; -import com.qs.cost.module.service.ApiService; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; -import javax.validation.Valid; -import java.util.List; - -/** - * @author YenHex - * @since 2022/2/25 - */ -@RestController -@RequestMapping("/api") -public class ApiController { - - @Value("${server.secret-key}") - private String secretKey; - - @Resource - private ApiService apiService; - - @Resource - private ApiRequestMapper apiRequestMapper; - - /** - * 核销系统请求,保存任务队列 - * @param request - * @param jobParam - * @return - */ - @PostMapping("/jobRequest") - public R jobRequest(HttpServletRequest request,@RequestBody @Valid JobRequestParam jobParam){ - boolean callback = jobParam.getCallbackState()!=null&&jobParam.getCallbackState().equals(1); - String tenant = jobParam.getBook(); - String token = request.getHeader("Authorization"); - if(token==null||!token.equals(secretKey)){Assert.throwEx(HttpCode.FORBIDDEN_403);} - ApiBook bookConf = apiService.getBook(tenant); - if(bookConf==null){Assert.throwEx(HttpCode.FORBIDDEN_403_1);} - if(callback&&StringUtil.isEmpty(jobParam.getCallbackHost())){Assert.throwEx(HttpCode.ERROR_CALLBACK_URL_EMPTY);} - String pk = IdUtil.getLong()+""; - JobErpParam erpParam = new JobErpParam(); - erpParam.setPassword(bookConf.getErpPwd()); - erpParam.setUsername(bookConf.getErpUser()); - JobDataBaseParam dataBaseParam = new JobDataBaseParam(); - dataBaseParam.setDbname(bookConf.getDbName()); - dataBaseParam.setHost(bookConf.getDbHost()); - dataBaseParam.setUsername(bookConf.getDbUser()); - dataBaseParam.setPassword(bookConf.getDbPwd()); - dataBaseParam.setPort(bookConf.getDbPort()); - //拼装请求参数 - U8APIBo u8APIBo = U8APIBo.builder() - .cmd(jobParam.getCmd()) - .setBook(jobParam.getBook()) - .setYear(jobParam.getYear()) - .params(new BeanParams(jobParam.getJsonBody(),jobParam.getKeyId())) - .erpUser(erpParam) - .dataBase(dataBaseParam) - .requestId(pk) - .build(); - String params = JsonUtil.objectToJson(u8APIBo); - String reqUrl = bookConf.getU8Host().concat(ApiUrlConst.U8API); - ApiRequest apiRequestLog = new ApiRequest(); - apiRequestLog.setId(pk); - apiRequestLog.setTenant(jobParam.getBook()); - apiRequestLog.setClientHost(jobParam.getCallbackHost()); - apiRequestLog.setApiPk(jobParam.getPk()); - apiRequestLog.setApiCmd(jobParam.getCmd()); - apiRequestLog.setApiYear(jobParam.getYear()); - apiRequestLog.setApiKeyId(jobParam.getKeyId()); - apiRequestLog.setReqParams(params); - apiRequestLog.setReqUrl(reqUrl); - apiRequestLog.setReqParams(JsonUtil.objectToJson(u8APIBo)); - apiRequestLog.setRetryTimes(0); - apiRequestLog.setSettingRetryTimes(jobParam.getSettingRetryTimes()); - apiRequestLog.setNeedCallback(callback?1:0); - apiRequestMapper.insert(apiRequestLog); - return R.ok(); - } - - - /** - * 轮询任务(定时任务触发) - * @return - */ - @PostMapping("/doJob") - public R pollingJob(){ - LambdaQueryWrapper wrapper4U8 = new LambdaQueryWrapper<>(); - wrapper4U8.lt(ApiRequest::getStatus,3); - wrapper4U8.eq(ApiRequest::getInterruptStatus,0); - //请求U8 - List sendU8List = apiRequestMapper.selectList(wrapper4U8); - for (ApiRequest apiRequest : sendU8List) { - apiService.reqU8Service(apiRequest); - } - //执行回调 - LambdaQueryWrapper wrapper4Client = new LambdaQueryWrapper<>(); - wrapper4Client.eq(ApiRequest::getStatus,3); - wrapper4Client.eq(ApiRequest::getInterruptStatus,0); - //请求客户端 - List callbackList = apiRequestMapper.selectList(wrapper4Client); - for (ApiRequest apiRequest : callbackList) { - if(apiRequest.getRetryTimes()<=0){ - apiRequest.setInterruptStatus(1); - apiRequestMapper.updateById(apiRequest); - continue; - } - boolean callbackSuccess = apiService.callback(apiRequest); - if(callbackSuccess){ - //判断是否成功 - int retryTime = apiRequest.getRetryTimes()==null?0:apiRequest.getRetryTimes(); - apiRequest.setRetryTimes(retryTime+1); - apiRequest.setStatus(ApiStatusConst.ApiRequest_Status_4); - } - apiRequestMapper.updateById(apiRequest); - } - return R.ok(); - } - - -} diff --git a/src/main/java/com/qs/cost/module/domain/ApiBook.java b/src/main/java/com/qs/cost/module/domain/ApiBook.java deleted file mode 100644 index 3fed1a6..0000000 --- a/src/main/java/com/qs/cost/module/domain/ApiBook.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.qs.cost.module.domain; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; - -import java.io.Serializable; - -/** - * 账套信息 实体类 - * @author JcYen - * @since 2021-10-12 - */ -@Data -@TableName("api_book") -public class ApiBook implements Serializable { - - private static final long serialVersionUID = 1L; - - @TableId(type = IdType.AUTO) - private Long id; - - /** 租户 */ - private String tenant; - - /** 账套名称 */ - private String name; - - /** 主题 */ - private String topic; - - /** 对应品牌 */ - private String brand; - - /** 账套 */ - private String book; - - /** 年份 */ - private Integer year; - - /** 请求地址 */ - private String u8Host; - private String erpUser; - private String erpPwd; - private String dbName; - private String dbHost; - private String dbPort; - private String dbUser; - private String dbPwd; - -} - diff --git a/src/main/java/com/qs/cost/module/domain/ApiRequest.java b/src/main/java/com/qs/cost/module/domain/ApiRequest.java deleted file mode 100644 index 1969889..0000000 --- a/src/main/java/com/qs/cost/module/domain/ApiRequest.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.qs.cost.module.domain; - -import java.time.LocalDateTime; -import java.util.Date; -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.fasterxml.jackson.annotation.JsonFormat; -import lombok.Data; -import org.springframework.format.annotation.DateTimeFormat; - -import javax.validation.constraints.NotNull; - -/** - * 请求记录历史 实体类 - * @author YenHex - * @since 2022-02-28 - */ -@Data -@TableName("api_request") -public class ApiRequest implements Serializable { - - private static final long serialVersionUID = 1L; - - /** id */ - @TableId(type = IdType.INPUT) - private String id; - - /** 账套、租户 */ - @NotNull(message = "账套、租户不能为空") - private String tenant; - - /** 客户端IP */ - @NotNull(message = "客户端IP不能为空") - private String clientHost; - - /** 接口名称 */ - @NotNull(message = "接口名称不能为空") - private String apiCmd; - - /** 接口数据主键 */ - @NotNull(message = "接口数据主键不能为空") - private String apiPk; - - /** 接口年份 */ - @NotNull(message = "接口年份不能为空") - private String apiYear; - - /** 接口keyId */ - @NotNull(message = "接口keyId不能为空") - private String apiKeyId; - - /** 请求地址 */ - @NotNull(message = "请求地址不能为空") - private String reqUrl; - - /** 请求参数 */ - @NotNull(message = "请求参数不能为空") - private String reqParams; - - /** 请求时间 */ - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") - private LocalDateTime reqTime; - - /** HTTP返回的状态码 */ - private Integer respCode; - - /** 请求耗时(单位秒) */ - private Double respTimes; - - /** 数据返回结果 */ - private String respContext; - - /** 重试次数 */ - private Integer retryTimes; - - /** 设置重试次数 */ - private Integer settingRetryTimes; - - private Integer needCallback; - - /** 状态【0->无需回调;1->;未回调等待回调;2->请求U8失败;3->请求U8成功,但回调客户端失败;4->回调客户端成功】*/ - private Integer status; - - /** 是否中断 */ - private Integer interruptStatus; - - /** 创建时间 */ - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") - private LocalDateTime createTime; - -} - diff --git a/src/main/java/com/qs/cost/module/domain/GetListEntity.java b/src/main/java/com/qs/cost/module/domain/GetListEntity.java new file mode 100644 index 0000000..09c2897 --- /dev/null +++ b/src/main/java/com/qs/cost/module/domain/GetListEntity.java @@ -0,0 +1,125 @@ +package com.qs.cost.module.domain; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +/** + * @author YenHex + * @since 2022/7/6 + */ +@Data +public class GetListEntity { + + private List list; + + private OtherEntity other; + + @JsonProperty("Status") + private Boolean status; + + @JsonProperty("Msg") + private String msg; + + private Integer page; + + @JsonProperty("total_count") + private Integer totalCount; + + @JsonProperty("page_count") + private Integer pageCount; + + @JsonProperty("page_size") + private Integer pageSize; + + @Data + public static class OrderEntity{ + + @JsonProperty("OrderNO") + private String orderNO; + + @JsonProperty("OrderAmount") + private BigDecimal orderAmount; + + @JsonProperty("ShippingFare") + private BigDecimal shippingFare; + + @JsonProperty("Consignee") + private String consignee; + + @JsonProperty("ConsigneeMobile") + private String consigneeMobile; + + @JsonProperty("Provinces") + private String provinces; + + @JsonProperty("DetailedAddress") + private String detailedAddress; + + @JsonProperty("CreateTime") + private String createTime; + + private Object items; + + } + + @Data + public static class OtherEntity{ + + @JsonProperty("sales_class") + private String salesClass; + + @JsonProperty("sales_man") + private String salesMan; + + @JsonProperty("sales_type") + private String salesType; + + } + + /** + +{ + "list": [ 订单列表 + { + "OrderNO": "2022062920761",//订单编号 + "OrderAmount": "1200.00", //订单总额 + "ShippingFare": "0.00", //订单运费 + "Consignee": "付华", //收件人 + "ConsigneeMobile": "13537305956", //收件人手机号 + "Provinces": "广东省,东莞市,黄江镇", //收件地址省市区 + "DetailedAddress": "东莞市黄江镇星光村亿东洋建材有限公司喻付华13537305956", //详细地址 + "CreateTime": "2022-06-29 10:43:28", //下单时间 + "Items": [ //订单明细 + { + "ProductId": 97, //商品ID + "ProductSkuId": 0, //商品skuid + "ERPCode": "erpjdsg", //erp商品编号 + "ProductCode": "202201", //商品编号 + "ProductName": "815.秋实(一箱装)", //商品名称 + "Qty": 1, //订购数量 + "SellingPrice": "1200.00", //商品金额 + "TaxIncluded": true, //订单编号是否含税 + "TaxPrice": "625.20", //税额 + "TaxPercent": 52.1 //税率 + } + ] + } + ], + "other": { + "sales_class": "技术部", //销售部门 + "sales_man": "乐乐", //销售员 + "sales_type": "高质量" //销售类型 + }, + "Status": true, //请求成功状态码 + "Msg": "获取成功", //信息 + "page": 2, //页数 + "total_count": 3, //总数 + "page_count": 3, //总页数 + "page_size": 1 //每页多少条数 +} + */ + +} diff --git a/src/main/java/com/qs/cost/module/domain/dto/JobCallbackParam.java b/src/main/java/com/qs/cost/module/domain/dto/JobCallbackParam.java deleted file mode 100644 index 0973e04..0000000 --- a/src/main/java/com/qs/cost/module/domain/dto/JobCallbackParam.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.qs.cost.module.domain.dto; - -import lombok.Data; - -import javax.validation.constraints.NotNull; - -/** - * @author YenHex - * @since 2022/2/25 - */ -@Data -public class JobCallbackParam { - - /** - * 回调参数 - */ - @NotNull - private String jsonBody; - - /** - * 回调ID - */ - @NotNull - private String keyId; - -} diff --git a/src/main/java/com/qs/cost/module/domain/dto/JobDataBaseParam.java b/src/main/java/com/qs/cost/module/domain/dto/JobDataBaseParam.java deleted file mode 100644 index 436adb4..0000000 --- a/src/main/java/com/qs/cost/module/domain/dto/JobDataBaseParam.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.qs.cost.module.domain.dto; - -import lombok.Data; - -/** - * @author YenHex - * @since 2022/6/20 - */ -@Data -public class JobDataBaseParam { - - private String host; - - private String port; - - private String username; - - private String password; - - private String dbname; - -} diff --git a/src/main/java/com/qs/cost/module/domain/dto/JobErpParam.java b/src/main/java/com/qs/cost/module/domain/dto/JobErpParam.java deleted file mode 100644 index c11a297..0000000 --- a/src/main/java/com/qs/cost/module/domain/dto/JobErpParam.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.qs.cost.module.domain.dto; - -import lombok.Data; - -/** - * @author YenHex - * @since 2022/6/20 - */ -@Data -public class JobErpParam { - - private String username; - - private String password; - -} diff --git a/src/main/java/com/qs/cost/module/domain/dto/JobRequestParam.java b/src/main/java/com/qs/cost/module/domain/dto/JobRequestParam.java deleted file mode 100644 index 9f18a48..0000000 --- a/src/main/java/com/qs/cost/module/domain/dto/JobRequestParam.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.qs.cost.module.domain.dto; - -import lombok.Data; - -import javax.validation.constraints.Max; -import javax.validation.constraints.NotNull; - -/** - * @author YenHex - * @since 2022/2/25 - */ -@Data -public class JobRequestParam { - - /** - * 拓展:存储单号 - */ - private String pk; - - @NotNull - private String cmd; - - @NotNull - private String year; - - @NotNull - private String book; - - @NotNull - private String jsonBody; - - private String keyId; - - /** - * 是否需要回调(不需要回调,只触发一次) - */ - private Integer callbackState; - - /** - * 设置失败重连次数 - */ - @Max(value = 10,message = "尝试次数不能超过10次") - private Integer settingRetryTimes; - - /** - * 回调地址 - */ - private String callbackHost; - -} diff --git a/src/main/java/com/qs/cost/module/mapper/ApiBookMapper.java b/src/main/java/com/qs/cost/module/mapper/ApiBookMapper.java deleted file mode 100644 index 6feaa09..0000000 --- a/src/main/java/com/qs/cost/module/mapper/ApiBookMapper.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.qs.cost.module.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.qs.cost.module.domain.ApiBook; - -/** -* 账套信息 Mapper -* @Author JcYen -* @Date 2021-10-12 -*/ -public interface ApiBookMapper extends BaseMapper { - -} diff --git a/src/main/java/com/qs/cost/module/mapper/ApiRequestMapper.java b/src/main/java/com/qs/cost/module/mapper/ApiRequestMapper.java deleted file mode 100644 index e68035c..0000000 --- a/src/main/java/com/qs/cost/module/mapper/ApiRequestMapper.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.qs.cost.module.mapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.qs.cost.module.domain.ApiRequest; - -/** - * 请求记录历史 Mapper - * @author YenHex - * @date 2022-02-25 - */ -public interface ApiRequestMapper extends BaseMapper { - -} - diff --git a/src/main/java/com/qs/cost/module/service/ApiService.java b/src/main/java/com/qs/cost/module/service/ApiService.java deleted file mode 100644 index 3378b28..0000000 --- a/src/main/java/com/qs/cost/module/service/ApiService.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.qs.cost.module.service; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.qs.cost.common.consts.ApiStatusConst; -import com.qs.cost.common.dto.HttpResult; -import com.qs.cost.common.utils.DateUtil; -import com.qs.cost.common.utils.HttpUtil; -import com.qs.cost.common.utils.JsonUtil; -import com.qs.cost.module.domain.ApiBook; -import com.qs.cost.module.domain.ApiRequest; -import com.qs.cost.module.mapper.ApiBookMapper; -import com.qs.cost.module.mapper.ApiRequestMapper; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * @author YenHex - * @since 2022/2/25 - */ -@Slf4j -@Service -@AllArgsConstructor -public class ApiService { - - private final ApiRequestMapper apiRequestMapper; - private final ApiBookMapper bookConfMapper; - - public ApiBook getBook(String tenant){ - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(ApiBook::getTenant,tenant); - List list = bookConfMapper.selectList(wrapper); - return list.size()>0?list.get(0):null; - } - - - /** - * 请求U8服务 - * @param apiRequestLog - */ - public void reqU8Service(ApiRequest apiRequestLog){ - //超过失败次数 - int retryTimes = apiRequestLog.getSettingRetryTimes() - apiRequestLog.getRetryTimes(); - if(apiRequestLog.getStatus().equals(ApiStatusConst.ApiRequest_Status_2)&&retryTimes<=0){ - apiRequestLog.setInterruptStatus(1); - apiRequestMapper.updateById(apiRequestLog); - return; - } - Map maps = new HashMap<>(); - maps.put("json",apiRequestLog.getReqParams()); - //请求U8接口 - long startTime = System.currentTimeMillis(); - HttpResult httpResult = HttpUtil.post(apiRequestLog.getReqUrl(),maps); - long endTime = System.currentTimeMillis(); - //回调保存基本信息 - apiRequestLog.setRespContext(JsonUtil.objectToJson(httpResult)); - apiRequestLog.setRespTimes(DateUtil.printRunTime(startTime,endTime)); - apiRequestLog.setRespCode(httpResult.getCode()); - //判断是否成功 - int retryTime = apiRequestLog.getRetryTimes()==null?0:apiRequestLog.getRetryTimes(); - if(httpResult.getCode().equals(200)){ - if(httpResult.getData()!=null&&httpResult.getData().contains("code\":200")){ - apiRequestLog.setStatus(ApiStatusConst.ApiRequest_Status_4); - //请求客户端 - if(apiRequestLog.getNeedCallback().equals(1)){ - boolean callbackResult = callback(apiRequestLog); - if(!callbackResult){ - apiRequestLog.setStatus(ApiStatusConst.ApiRequest_Status_3); - } - } - }else { - apiRequestLog.setStatus(ApiStatusConst.ApiRequest_Status_2); - } - }else { - apiRequestLog.setStatus(ApiStatusConst.ApiRequest_Status_1); - } - apiRequestLog.setRetryTimes(retryTime+1); - apiRequestMapper.updateById(apiRequestLog); - } - - /** - * 请求回调 - * @param apiRequestLog - * @return - */ - public boolean callback(ApiRequest apiRequestLog){ - HttpResult callback = HttpUtil.post(apiRequestLog.getClientHost(),JsonUtil.jsonToMap(apiRequestLog.getRespContext())); - if(callback.getCode().equals(200)){ - return true; - } - return false; - } - -} diff --git a/src/main/java/com/qs/cost/module/service/JiaJinService.java b/src/main/java/com/qs/cost/module/service/JiaJinService.java new file mode 100644 index 0000000..5d0773f --- /dev/null +++ b/src/main/java/com/qs/cost/module/service/JiaJinService.java @@ -0,0 +1,59 @@ +package com.qs.cost.module.service; + +import com.qs.cost.common.dto.HttpResult; +import com.qs.cost.common.dto.R; +import com.qs.cost.common.utils.DateUtil; +import com.qs.cost.common.utils.HttpUtil; +import com.qs.cost.common.utils.JsonUtil; +import com.qs.cost.common.utils.SecureUtil; +import com.qs.cost.module.domain.GetListEntity; + +import java.util.Calendar; +import java.util.Date; + +/** + * @author YenHex + * @since 2022/7/6 + */ +public class JiaJinService { + + public static final String lzyunli = "lzyunli"; + + public void query(Integer page){ + if(page==null){ + page = 1; + } + Date now = new Date(); + Date lastMonth = DateUtil.getAfterSomedate(now,-1, Calendar.MONTH); + String date = DateUtil.formatDate(now,DateUtil.FORMAT_SIMPLE_DATE2)+"-"+DateUtil.formatDate(lastMonth,DateUtil.FORMAT_SIMPLE_DATE2); + String pageSize = "10"; + String params = "date="+date+"&page="+page+"&page_size="+pageSize; + String signParam = lzyunli + params + lzyunli; + String sign = SecureUtil.md5(signParam); + params = params+"&sign="+sign; + String url = "http://wsapp6.lzyunli.com/index.php/getOrder?"+params; + HttpResult httpResult = HttpUtil.get(url); + if(httpResult.getCode()==200){ + String json = httpResult.getData(); + GetListEntity getListEntity = JsonUtil.jsonToPojo(json,GetListEntity.class); + Integer pageCount = getListEntity.getPageCount(); + if(pageCount!=null&&pageCount.equals(page)){ + return; + }else { + query(page+1); + } + } + System.out.println(); + } + + /** + * U8中台回调接口 + * @param orderNos + * @return + */ + public R callback(String orderNos){ + + return R.ok(); + } + +} diff --git a/src/test/java/boot/PrintDemo.java b/src/test/java/boot/PrintDemo.java index d09f834..a9f2eb2 100644 --- a/src/test/java/boot/PrintDemo.java +++ b/src/test/java/boot/PrintDemo.java @@ -19,60 +19,20 @@ public class PrintDemo { public static void main(String[] args) { String date = "2020/04/25-2022/07/26"; - String page = "1"; + String page = "2"; String pageSize = "10"; - String params = "date="+date+"&page="+page+"&page_size="+pageSize; System.out.println(params); - String signParam = lzyunli + params + lzyunli; System.out.println("加密前:"+signParam); String sign = SecureUtil.md5(signParam); params = params+"&sign="+sign; - HttpResult httpResult = HttpUtil.get("http://wsapp6.lzyunli.com/getOrder?"+params); + String url = "http://wsapp6.lzyunli.com/index.php/getOrder?"+params; + System.out.println(url); + HttpResult httpResult = HttpUtil.get(url); System.out.println(httpResult.getData()); } - /** - * @param paraMap 请求参数 - * @param urlEncode 是否utf-8编码 - * @return - */ - public static String formatUrlMap(Map paraMap, boolean urlEncode) { - String buff = ""; - Map tmpMap = paraMap; - try { - List> infoIds = new ArrayList>(tmpMap.entrySet()); - // 对所有传入参数按照字段名的 ASCII 码从小到大排序(字典序) - Collections.sort(infoIds, new Comparator>() { - @Override - public int compare(Map.Entry o1, Map.Entry o2) { - return (o1.getKey()).toString().compareTo(o2.getKey()); - } - }); - // 构造返回字符串键值对的格式 - StringBuilder buf = new StringBuilder(); - for (Map.Entry item : infoIds) { - if (StringUtils.isNotBlank(item.getKey())) { - String key = item.getKey(); - String val = item.getValue(); - if (urlEncode) { - val = URLEncoder.encode(val, "utf-8"); - } - buf.append(key + "=" + val); - buf.append("&"); - } - - } - buff = buf.toString(); - if (buff.isEmpty() == false) { - buff = buff.substring(0, buff.length() - 1); - } - } catch (Exception e) { - return null; - } - return buff; - } }