Browse Source

添加日志、订单实体

master
Yen 3 years ago
parent
commit
b552ee6b99
  1. 24
      src/main/java/com/qs/cost/common/consts/ApiStatusConst.java
  2. 2
      src/main/java/com/qs/cost/common/consts/ApiUrlConst.java
  3. 23
      src/main/java/com/qs/cost/module/domain/GetListEntity.java
  4. 100
      src/main/java/com/qs/cost/module/domain/LzOrder.java
  5. 48
      src/main/java/com/qs/cost/module/domain/LzResponseLog.java
  6. 14
      src/main/java/com/qs/cost/module/mapper/LzOrderMapper.java
  7. 14
      src/main/java/com/qs/cost/module/mapper/LzResponseLogMapper.java
  8. 111
      src/main/java/com/qs/cost/module/service/JiaJinService.java
  9. 14
      src/main/java/com/qs/cost/module/service/LzOrderService.java
  10. 14
      src/main/java/com/qs/cost/module/service/LzResponseLogService.java
  11. 22
      src/main/java/com/qs/cost/module/service/impl/LzOrderServiceImpl.java
  12. 22
      src/main/java/com/qs/cost/module/service/impl/LzResponseLogServiceImpl.java
  13. 2
      src/test/java/boot/PrintDemo.java

24
src/main/java/com/qs/cost/common/consts/ApiStatusConst.java

@ -1,24 +0,0 @@
package com.qs.cost.common.consts;
/**
* @author YenHex
* @since 2022/2/28
*/
public class ApiStatusConst {
/** 无需回调 */
public static final int ApiRequest_Status_0 = 0;
/** 等待回调 */
public static final int ApiRequest_Status_1 = 1;
/** 请求U8失败 */
public static final int ApiRequest_Status_2 = 2;
/** 请求U8成功,但回调客户端失败 */
public static final int ApiRequest_Status_3 = 3;
/** 回调客户端成功 */
public static final int ApiRequest_Status_4 = 4;
}

2
src/main/java/com/qs/cost/common/consts/ApiUrlConst.java

@ -8,6 +8,8 @@ package com.qs.cost.common.consts;
**/ **/
public class ApiUrlConst { public class ApiUrlConst {
public static final String lzyunli = "lzyunli";
public static final String U8API = "/Service/13Service.asmx/U8API"; public static final String U8API = "/Service/13Service.asmx/U8API";
/** /**

23
src/main/java/com/qs/cost/module/domain/GetListEntity.java

@ -13,7 +13,7 @@ import java.util.List;
@Data @Data
public class GetListEntity { public class GetListEntity {
private List<Object> list; private List<OrderEntity> list;
private OtherEntity other; private OtherEntity other;
@ -34,11 +34,30 @@ public class GetListEntity {
@JsonProperty("page_size") @JsonProperty("page_size")
private Integer pageSize; private Integer pageSize;
@Data
public static class ItemEntity{
@JsonProperty("ERPCode")
private String invCode;
//数量
@JsonProperty("Qty")
private Integer qty;
//总支付金额
@JsonProperty("SellingPrice")
private BigDecimal saleAmount;
//销售单价
@JsonProperty("SellingPrice")
private BigDecimal salePrice;
}
@Data @Data
public static class OrderEntity{ public static class OrderEntity{
@JsonProperty("OrderNO") @JsonProperty("OrderNO")
private String orderNO; private String orderNo;
@JsonProperty("OrderAmount") @JsonProperty("OrderAmount")
private BigDecimal orderAmount; private BigDecimal orderAmount;

100
src/main/java/com/qs/cost/module/domain/LzOrder.java

@ -0,0 +1,100 @@
package com.qs.cost.module.domain;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 量子-订单 实体类
* @author YenHex
* @since 2022-07-07
*/
@Data
@TableName("lz_order")
public class LzOrder implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 订单编号 */
@NotBlank(message = "订单编号不能为空")
@Length(max = 20,message = "订单编号长度不能超过20字")
private String orderNo;
/** 订单金额 */
@NotNull(message = "订单金额不能为空")
private BigDecimal orderAmount;
/** 订单运费 */
private BigDecimal shippingFare;
/** 收件人 */
@Length(max = 255,message = "收件人长度不能超过255字")
private String consignee;
/** 收件人手机号 */
@Length(max = 255,message = "收件人手机号长度不能超过255字")
private String consigneeMobile;
/** 收件地址省市区 */
@Length(max = 255,message = "收件地址省市区长度不能超过255字")
private String provinces;
/** 详细地址 */
@Length(max = 255,message = "详细地址长度不能超过255字")
private String detailedAddress;
/** 销售类型 */
@Length(max = 255,message = "销售类型长度不能超过255字")
private String saleType;
/** 销售员 */
@Length(max = 255,message = "销售员长度不能超过255字")
private String saleMan;
/** 销售部门 */
@Length(max = 255,message = "销售部门长度不能超过255字")
private String saleDept;
/** 下单时间 */
@Length(max = 30,message = "下单时间长度不能超过30字")
private LocalDateTime orderCreateTime;
/** 状态:0-未处理;1-调用U8成功;2-回调成功;3-回调结果失败 */
private Integer status;
/** 检查item状态:0-正常;1-存货编码缺失;2-数据异常 */
private Integer checkStatus;
private Integer callBackStatus;
private String items;
/** */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
}

48
src/main/java/com/qs/cost/module/domain/LzResponseLog.java

@ -0,0 +1,48 @@
package com.qs.cost.module.domain;
import java.time.LocalDateTime;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 量子云-返回日志 实体类
* @author YenHex
* @since 2022-07-07
*/
@Data
@TableName("lz_response_log")
public class LzResponseLog implements Serializable {
private static final long serialVersionUID = 1L;
/** */
@TableId(type = IdType.AUTO)
private Long id;
/** */
private String json;
/** */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
}

14
src/main/java/com/qs/cost/module/mapper/LzOrderMapper.java

@ -0,0 +1,14 @@
package com.qs.cost.module.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.cost.module.domain.LzOrder;
/**
* 量子-订单 Mapper
* @author YenHex
* @date 2022-07-07
*/
public interface LzOrderMapper extends BaseMapper<LzOrder> {
}

14
src/main/java/com/qs/cost/module/mapper/LzResponseLogMapper.java

@ -0,0 +1,14 @@
package com.qs.cost.module.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.cost.module.domain.LzResponseLog;
/**
* 量子云-返回日志 Mapper
* @author YenHex
* @date 2022-07-07
*/
public interface LzResponseLogMapper extends BaseMapper<LzResponseLog> {
}

111
src/main/java/com/qs/cost/module/service/JiaJinService.java

@ -1,24 +1,39 @@
package com.qs.cost.module.service; package com.qs.cost.module.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.cost.common.consts.ApiUrlConst;
import com.qs.cost.common.dto.HttpResult; import com.qs.cost.common.dto.HttpResult;
import com.qs.cost.common.dto.R; import com.qs.cost.common.dto.R;
import com.qs.cost.common.utils.DateUtil; import com.qs.cost.common.utils.*;
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 com.qs.cost.module.domain.GetListEntity;
import com.qs.cost.module.domain.LzOrder;
import com.qs.cost.module.domain.LzResponseLog;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.List;
/** /**
* @author YenHex * @author YenHex
* @since 2022/7/6 * @since 2022/7/6
*/ */
@Slf4j
public class JiaJinService { public class JiaJinService {
public static final String lzyunli = "lzyunli"; @Autowired LzResponseLogService responseLogService;
@Autowired LzOrderService lzOrderService;
/**
* 请求量子app获取订单
* @param page
*/
public void query(Integer page){ public void query(Integer page){
if(page==null){ if(page==null){
page = 1; page = 1;
@ -28,7 +43,7 @@ public class JiaJinService {
String date = DateUtil.formatDate(now,DateUtil.FORMAT_SIMPLE_DATE2)+"-"+DateUtil.formatDate(lastMonth,DateUtil.FORMAT_SIMPLE_DATE2); String date = DateUtil.formatDate(now,DateUtil.FORMAT_SIMPLE_DATE2)+"-"+DateUtil.formatDate(lastMonth,DateUtil.FORMAT_SIMPLE_DATE2);
String pageSize = "10"; String pageSize = "10";
String params = "date="+date+"&page="+page+"&page_size="+pageSize; String params = "date="+date+"&page="+page+"&page_size="+pageSize;
String signParam = lzyunli + params + lzyunli; String signParam = ApiUrlConst.lzyunli + params + ApiUrlConst.lzyunli;
String sign = SecureUtil.md5(signParam); String sign = SecureUtil.md5(signParam);
params = params+"&sign="+sign; params = params+"&sign="+sign;
String url = "http://wsapp6.lzyunli.com/index.php/getOrder?"+params; String url = "http://wsapp6.lzyunli.com/index.php/getOrder?"+params;
@ -36,6 +51,50 @@ public class JiaJinService {
if(httpResult.getCode()==200){ if(httpResult.getCode()==200){
String json = httpResult.getData(); String json = httpResult.getData();
GetListEntity getListEntity = JsonUtil.jsonToPojo(json,GetListEntity.class); GetListEntity getListEntity = JsonUtil.jsonToPojo(json,GetListEntity.class);
if(getListEntity==null){
return;
}
//保存请求json
LzResponseLog responseLog = new LzResponseLog();
responseLog.setJson(json);
responseLogService.save(responseLog);
GetListEntity.OtherEntity otherEntity = getListEntity.getOther();
//解析请求json,并保存订单到数据库
for (GetListEntity.OrderEntity orderEntity : getListEntity.getList()) {
LzOrder lzOrder = new LzOrder();
lzOrder.setOrderNo(orderEntity.getOrderNo());
lzOrder.setOrderAmount(orderEntity.getOrderAmount());
lzOrder.setShippingFare(orderEntity.getShippingFare());
lzOrder.setConsignee(orderEntity.getConsignee());
lzOrder.setConsigneeMobile(orderEntity.getConsigneeMobile());
lzOrder.setProvinces(orderEntity.getProvinces());
lzOrder.setDetailedAddress(orderEntity.getDetailedAddress());
lzOrder.setSaleType(otherEntity.getSalesType());
lzOrder.setSaleDept(otherEntity.getSalesClass());
lzOrder.setSaleMan(otherEntity.getSalesMan());
String itemJson = orderEntity.getItems().toString();
lzOrder.setItems(itemJson);
lzOrder.setCheckStatus(0);
List<GetListEntity.ItemEntity> items = JsonUtil.jsonToList(itemJson,GetListEntity.ItemEntity.class);
if(items!=null&&items.size()>0){
for (GetListEntity.ItemEntity item : items) {
if(StringUtil.isEmpty(item.getInvCode())){
lzOrder.setCheckStatus(1);
break;
}
}
}else {
lzOrder.setCheckStatus(2);
}
try {
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime orderCreateTime = LocalDateTime.parse(orderEntity.getCreateTime(),df);
lzOrder.setOrderCreateTime(orderCreateTime);
} catch (Exception e) {
log.error(e.getMessage());
}
lzOrderService.save(lzOrder);
}
Integer pageCount = getListEntity.getPageCount(); Integer pageCount = getListEntity.getPageCount();
if(pageCount!=null&&pageCount.equals(page)){ if(pageCount!=null&&pageCount.equals(page)){
return; return;
@ -46,13 +105,49 @@ public class JiaJinService {
System.out.println(); System.out.println();
} }
public void task(){
//获取未同步订单,调用U8服务
LambdaQueryWrapper<LzOrder> lqw = new LambdaQueryWrapper<>();
lqw.eq(LzOrder::getStatus,0);
lqw.eq(LzOrder::getCheckStatus,0);
List<LzOrder> orders = lzOrderService.list(lqw);
for (LzOrder order : orders) {
//TODO 发起U8服务中台
order.setStatus(1);
order.setUpdateTime(LocalDateTime.now());
}
lzOrderService.updateBatchById(orders);
}
/** /**
* U8中台回调接口 * U8中台回调接口
* @param orderNos
* @return * @return
*/ */
public R<?> callback(String orderNos){ public R<?> callback(){
//
//接收U8请求
String orderNo = "";
LambdaQueryWrapper<LzOrder> lqw = new LambdaQueryWrapper<>();
lqw.eq(LzOrder::getOrderNo,orderNo);
LzOrder lzOrder = lzOrderService.getOne(lqw,false);
//发送量子App更新订单状态
String params = "orderNos="+orderNo;
String signParam = ApiUrlConst.lzyunli + params + ApiUrlConst.lzyunli;
String sign = SecureUtil.md5(signParam);
String url = "http://wsapp6.lzyunli.com/index.php/upOrder";
Map<String, Object> paramMap = new HashMap<>(10);
paramMap.put("orderNos",orderNo);
paramMap.put("sign",sign);
HttpResult httpResult = HttpUtil.post(url,paramMap);
lzOrder.setCallBackStatus(2);
if(httpResult.getCode()==200){
if(httpResult.getData().contains("true")){
lzOrder.setCheckStatus(1);
}
}
lzOrderService.updateById(lzOrder);
return R.ok(); return R.ok();
} }

14
src/main/java/com/qs/cost/module/service/LzOrderService.java

@ -0,0 +1,14 @@
package com.qs.cost.module.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.cost.module.domain.LzOrder;
/**
* 量子-订单 服务接口
* @author YenHex
* @date 2022-07-07
*/
public interface LzOrderService extends IService<LzOrder> {
}

14
src/main/java/com/qs/cost/module/service/LzResponseLogService.java

@ -0,0 +1,14 @@
package com.qs.cost.module.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.cost.module.domain.LzResponseLog;
/**
* 量子云-返回日志 服务接口
* @author YenHex
* @date 2022-07-07
*/
public interface LzResponseLogService extends IService<LzResponseLog> {
}

22
src/main/java/com/qs/cost/module/service/impl/LzOrderServiceImpl.java

@ -0,0 +1,22 @@
package com.qs.cost.module.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.cost.module.domain.LzOrder;
import com.qs.cost.module.mapper.LzOrderMapper;
import com.qs.cost.module.service.LzOrderService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* 量子-订单 服务实现类
* @author YenHex
* @since 2022-07-07
*/
@Slf4j
@Service
@AllArgsConstructor
public class LzOrderServiceImpl extends ServiceImpl<LzOrderMapper, LzOrder> implements LzOrderService {
}

22
src/main/java/com/qs/cost/module/service/impl/LzResponseLogServiceImpl.java

@ -0,0 +1,22 @@
package com.qs.cost.module.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.cost.module.domain.LzResponseLog;
import com.qs.cost.module.mapper.LzResponseLogMapper;
import com.qs.cost.module.service.LzResponseLogService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* 量子云-返回日志 服务实现类
* @author YenHex
* @since 2022-07-07
*/
@Slf4j
@Service
@AllArgsConstructor
public class LzResponseLogServiceImpl extends ServiceImpl<LzResponseLogMapper, LzResponseLog> implements LzResponseLogService {
}

2
src/test/java/boot/PrintDemo.java

@ -19,7 +19,7 @@ public class PrintDemo {
public static void main(String[] args) { public static void main(String[] args) {
String date = "2020/04/25-2022/07/26"; String date = "2020/04/25-2022/07/26";
String page = "2"; String page = "1";
String pageSize = "10"; String pageSize = "10";
String params = "date="+date+"&page="+page+"&page_size="+pageSize; String params = "date="+date+"&page="+page+"&page_size="+pageSize;
System.out.println(params); System.out.println(params);

Loading…
Cancel
Save