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

Commit 246a812c authored by jiangxiulong's avatar jiangxiulong

快递

parent e5d4de86
...@@ -126,4 +126,23 @@ public class PerformancesExpressController extends BaseController { ...@@ -126,4 +126,23 @@ public class PerformancesExpressController extends BaseController {
} }
} }
/**
* 运费主动查询
*/
@RequiresPermissions("kylin:performancesExpress:getListFreight")
@PostMapping("/getListFreight")
@ResponseBody
public AjaxResult getListFreight(PerformanceExpressSearchAdminParam performanceExpressSearchAdminParam) {
ResponseDto res = performancesExpressServiceImpl.getListFreight(performanceExpressSearchAdminParam);
try {
if (res.isSuccess()) {
return success();
} else {
return error(res.getMessage());
}
} catch (Exception e) {
return error(e.getMessage());
}
}
} }
...@@ -71,6 +71,7 @@ ...@@ -71,6 +71,7 @@
var placeOrderFlag = [[${@permission.hasPermi('kylin:performancesExpress:placeOrder')}]]; var placeOrderFlag = [[${@permission.hasPermi('kylin:performancesExpress:placeOrder')}]];
var cancelOrderFlag = [[${@permission.hasPermi('kylin:performancesExpress:cancelOrder')}]]; var cancelOrderFlag = [[${@permission.hasPermi('kylin:performancesExpress:cancelOrder')}]];
var getResultFlag = [[${@permission.hasPermi('kylin:performancesExpress:getResult')}]]; var getResultFlag = [[${@permission.hasPermi('kylin:performancesExpress:getResult')}]];
var getListFreightFlag = [[${@permission.hasPermi('kylin:performancesExpress:getListFreight')}]];
var prefix = ctx + "kylin/performancesExpress"; var prefix = ctx + "kylin/performancesExpress";
...@@ -83,6 +84,7 @@ ...@@ -83,6 +84,7 @@
placeOrderUrl: prefix + "/placeOrder", placeOrderUrl: prefix + "/placeOrder",
cancelOrderUrl: prefix + "/cancelOrder", cancelOrderUrl: prefix + "/cancelOrder",
getResultUrl: prefix + "/getResult", getResultUrl: prefix + "/getResult",
getListFreightUrl: prefix + "/getListFreight",
columns: [{ columns: [{
checkbox: true checkbox: true
}, },
...@@ -142,6 +144,7 @@ ...@@ -142,6 +144,7 @@
actions.push('<a class="btn btn-success btn-xs ' + placeOrderFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.orderTicketsId + '\', \'确定下单吗?\', table.options.placeOrderUrl)"></i>下单</a> '); actions.push('<a class="btn btn-success btn-xs ' + placeOrderFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.orderTicketsId + '\', \'确定下单吗?\', table.options.placeOrderUrl)"></i>下单</a> ');
actions.push('<a class="btn btn-danger btn-xs ' + cancelOrderFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.orderTicketsId + '\', \'确定取消快递单吗?\', table.options.cancelOrderUrl)"></i>取消</a> '); actions.push('<a class="btn btn-danger btn-xs ' + cancelOrderFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.orderTicketsId + '\', \'确定取消快递单吗?\', table.options.cancelOrderUrl)"></i>取消</a> ');
actions.push('<a class="btn btn-default btn-xs ' + getResultFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.orderTicketsId + '\', \'确定获取快递信息吗?\', table.options.getResultUrl)"></i>主动获取下单信息</a> '); actions.push('<a class="btn btn-default btn-xs ' + getResultFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.orderTicketsId + '\', \'确定获取快递信息吗?\', table.options.getResultUrl)"></i>主动获取下单信息</a> ');
actions.push('<a class="btn btn-default btn-xs ' + getListFreightFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.orderTicketsId + '\', \'确定获取运费信息吗?\', table.options.getListFreightUrl)"></i>主动获取运费</a> ');
return actions.join(''); return actions.join('');
} }
}] }]
......
...@@ -3,12 +3,11 @@ package com.liquidnet.client.admin.zhengzai.kylin.service.impl; ...@@ -3,12 +3,11 @@ package com.liquidnet.client.admin.zhengzai.kylin.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.databind.JsonNode;
import com.liquidnet.client.admin.common.json.JSONObject;
import com.liquidnet.client.admin.common.utils.StringUtils; import com.liquidnet.client.admin.common.utils.StringUtils;
import com.liquidnet.client.admin.zhengzai.kylin.utils.ShunfengSignUtils; import com.liquidnet.client.admin.zhengzai.kylin.utils.ShunfengSignUtils;
import com.liquidnet.commons.lang.util.BeanUtil; import com.liquidnet.commons.lang.util.*;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst; import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dao.*; import com.liquidnet.service.kylin.dao.*;
...@@ -22,6 +21,7 @@ import org.springframework.beans.factory.annotation.Value; ...@@ -22,6 +21,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
...@@ -74,6 +74,9 @@ public class PerformancesExpressServiceImpl extends ServiceImpl<KylinOrderExpres ...@@ -74,6 +74,9 @@ public class PerformancesExpressServiceImpl extends ServiceImpl<KylinOrderExpres
@Autowired @Autowired
private KylinOrderExpressMapper kylinOrderExpressMapper; private KylinOrderExpressMapper kylinOrderExpressMapper;
@Autowired
private KylinOrderExpressFeeInfoMapper kylinOrderExpressFeeInfoMapper;
public List<PerformanceExpressPerformanceListAdminDao> getPerformancesList(PerformanceExpressSearchAdminParam performanceExpressSearchAdminParam) { public List<PerformanceExpressPerformanceListAdminDao> getPerformancesList(PerformanceExpressSearchAdminParam performanceExpressSearchAdminParam) {
List<PerformanceExpressPerformanceListAdminDao> voList = new ArrayList(); List<PerformanceExpressPerformanceListAdminDao> voList = new ArrayList();
try { try {
...@@ -98,9 +101,10 @@ public class PerformancesExpressServiceImpl extends ServiceImpl<KylinOrderExpres ...@@ -98,9 +101,10 @@ public class PerformancesExpressServiceImpl extends ServiceImpl<KylinOrderExpres
List<String> ids = performanceExpressSearchAdminParam.getIds(); List<String> ids = performanceExpressSearchAdminParam.getIds();
for (String orderTicketsId : ids) { for (String orderTicketsId : ids) {
// 已经存在未取消的下单数据过滤掉 // 已经存在未取消的下单数据过滤掉
Integer[] expressStatus = {KylinTableStatusConst.ORDER_EXPRESS_STATUS1, KylinTableStatusConst.ORDER_EXPRESS_STATUS3};
KylinOrderExpress orderExpressInfo = kylinOrderExpressMapper.selectOne( KylinOrderExpress orderExpressInfo = kylinOrderExpressMapper.selectOne(
new QueryWrapper<KylinOrderExpress>().eq("order_express_id", orderTicketsId) new QueryWrapper<KylinOrderExpress>().eq("order_tickets_id", orderTicketsId)
.ne("express_status", KylinTableStatusConst.ORDER_EXPRESS_STATUS3) .notIn("express_status", expressStatus)
); );
if (null != orderExpressInfo) { if (null != orderExpressInfo) {
continue; continue;
...@@ -149,11 +153,8 @@ public class PerformancesExpressServiceImpl extends ServiceImpl<KylinOrderExpres ...@@ -149,11 +153,8 @@ public class PerformancesExpressServiceImpl extends ServiceImpl<KylinOrderExpres
hBody.put("dMobile", orderInfo.getExpressPhone()); hBody.put("dMobile", orderInfo.getExpressPhone());
hBody.put("dAddress", orderInfo.getExpressAddress()); hBody.put("dAddress", orderInfo.getExpressAddress());
// 时间戳
long currentTimeMillis = System.currentTimeMillis();
// 生成签名并请求 // 生成签名并请求
String result = shunfengSignUtils.generateSignatureAndRequest(currentTimeMillis + "", hBody, "/public/order/v1/placeOrder"); String result = shunfengSignUtils.generateSignatureAndRequest(hBody, "/public/order/v1/placeOrder");
HashMap hashMap = JsonUtils.fromJson(result, HashMap.class); HashMap hashMap = JsonUtils.fromJson(result, HashMap.class);
System.out.println(result); System.out.println(result);
if (hashMap.get("succ").equals("fail")) { if (hashMap.get("succ").equals("fail")) {
...@@ -183,20 +184,18 @@ public class PerformancesExpressServiceImpl extends ServiceImpl<KylinOrderExpres ...@@ -183,20 +184,18 @@ public class PerformancesExpressServiceImpl extends ServiceImpl<KylinOrderExpres
public ResponseDto cancelOrder(PerformanceExpressSearchAdminParam performanceExpressSearchAdminParam) { public ResponseDto cancelOrder(PerformanceExpressSearchAdminParam performanceExpressSearchAdminParam) {
List<String> ids = performanceExpressSearchAdminParam.getIds(); List<String> ids = performanceExpressSearchAdminParam.getIds();
Integer[] expressStatus = {KylinTableStatusConst.ORDER_EXPRESS_STATUS1, KylinTableStatusConst.ORDER_EXPRESS_STATUS3};
for (String orderTicketsId : ids) { for (String orderTicketsId : ids) {
KylinOrderExpress orderExpressInfo = kylinOrderExpressMapper.selectOne( KylinOrderExpress orderExpressInfo = kylinOrderExpressMapper.selectOne(
new QueryWrapper<KylinOrderExpress>().eq("order_express_id", orderTicketsId) new QueryWrapper<KylinOrderExpress>().eq("order_tickets_id", orderTicketsId)
.ne("express_status", KylinTableStatusConst.ORDER_EXPRESS_STATUS3) .notIn("express_status", expressStatus)
); );
if (null != orderExpressInfo) { if (null != orderExpressInfo) {
HashMap<String, Object> hBody = new HashMap<>(); HashMap<String, Object> hBody = new HashMap<>();
hBody.put("orderId", orderExpressInfo.getOrderExpressCode()); hBody.put("orderId", orderExpressInfo.getOrderExpressCode());
// 时间戳
long currentTimeMillis = System.currentTimeMillis();
// 生成签名并请求 // 生成签名并请求
String result = shunfengSignUtils.generateSignatureAndRequest(currentTimeMillis + "", hBody, "/public/order/v1/cancelOrder"); String result = shunfengSignUtils.generateSignatureAndRequest(hBody, "/public/order/v1/cancelOrder");
HashMap hashMap = JsonUtils.fromJson(result, HashMap.class); HashMap hashMap = JsonUtils.fromJson(result, HashMap.class);
System.out.println(result); System.out.println(result);
if (hashMap.get("succ").equals("fail")) { if (hashMap.get("succ").equals("fail")) {
...@@ -218,24 +217,19 @@ public class PerformancesExpressServiceImpl extends ServiceImpl<KylinOrderExpres ...@@ -218,24 +217,19 @@ public class PerformancesExpressServiceImpl extends ServiceImpl<KylinOrderExpres
public ResponseDto getResult(PerformanceExpressSearchAdminParam performanceExpressSearchAdminParam) { public ResponseDto getResult(PerformanceExpressSearchAdminParam performanceExpressSearchAdminParam) {
List<String> ids = performanceExpressSearchAdminParam.getIds(); List<String> ids = performanceExpressSearchAdminParam.getIds();
Integer[] expressStatus = {KylinTableStatusConst.ORDER_EXPRESS_STATUS1, KylinTableStatusConst.ORDER_EXPRESS_STATUS3};
for (String orderTicketsId : ids) { for (String orderTicketsId : ids) {
KylinOrderExpress orderExpressInfo = kylinOrderExpressMapper.selectOne( KylinOrderExpress orderExpressInfo = kylinOrderExpressMapper.selectOne(
new QueryWrapper<KylinOrderExpress>().eq("order_tickets_id", orderTicketsId) new QueryWrapper<KylinOrderExpress>().eq("order_tickets_id", orderTicketsId)
.ne("express_status", KylinTableStatusConst.ORDER_EXPRESS_STATUS3) .notIn("express_status", expressStatus)
); );
if (null != orderExpressInfo) { if (null != orderExpressInfo) {
KylinOrderTickets orderInfo = kylinOrderTicketsMapper.selectOne(
new QueryWrapper<KylinOrderTickets>().eq("order_tickets_id", orderTicketsId)
);
HashMap<String, Object> hBody = new HashMap<>(); HashMap<String, Object> hBody = new HashMap<>();
hBody.put("orderId", orderExpressInfo.getOrderExpressCode()); hBody.put("orderId", orderExpressInfo.getOrderExpressCode());
hBody.put("searchType", 1); //查询类型:1,正向单查询,传入的orderid为正向定单号,2,退货单查询,传入的orderid为退货原始订单号 hBody.put("searchType", 1); //查询类型:1,正向单查询,传入的orderid为正向定单号,2,退货单查询,传入的orderid为退货原始订单号
// 时间戳
long currentTimeMillis = System.currentTimeMillis();
// 生成签名并请求 // 生成签名并请求
String result = shunfengSignUtils.generateSignatureAndRequest(currentTimeMillis + "", hBody, "/public/order/v1/getResult"); String result = shunfengSignUtils.generateSignatureAndRequest(hBody, "/public/order/v1/getResult");
HashMap hashMap = JsonUtils.fromJson(result, HashMap.class); HashMap hashMap = JsonUtils.fromJson(result, HashMap.class);
System.out.println(result); System.out.println(result);
if (hashMap.get("succ").equals("fail")) { if (hashMap.get("succ").equals("fail")) {
...@@ -263,4 +257,46 @@ public class PerformancesExpressServiceImpl extends ServiceImpl<KylinOrderExpres ...@@ -263,4 +257,46 @@ public class PerformancesExpressServiceImpl extends ServiceImpl<KylinOrderExpres
} }
return ResponseDto.success(); return ResponseDto.success();
} }
public ResponseDto getListFreight(PerformanceExpressSearchAdminParam performanceExpressSearchAdminParam) {
List<String> ids = performanceExpressSearchAdminParam.getIds();
Integer[] expressStatus = {KylinTableStatusConst.ORDER_EXPRESS_STATUS1, KylinTableStatusConst.ORDER_EXPRESS_STATUS3};
for (String orderTicketsId : ids) {
KylinOrderExpress orderExpressInfo = kylinOrderExpressMapper.selectOne(
new QueryWrapper<KylinOrderExpress>().eq("order_tickets_id", orderTicketsId)
.notIn("express_status", expressStatus)
);
if (null != orderExpressInfo) {
HashMap<String, Object> hBody = new HashMap<>();
hBody.put("orderId", orderExpressInfo.getOrderExpressCode());
// 生成签名并请求
String result = shunfengSignUtils.generateSignatureAndRequest(hBody, "/public/order/v1/getListFreight");
HashMap hashMap = JsonUtils.fromJson(result, HashMap.class);
System.out.println(result);
if (hashMap.get("succ").equals("fail")) {
String msg = (String) hashMap.get("msg");
return ResponseDto.failure(msg);
} else {
HashMap resultResult = (HashMap) hashMap.get("result");
List<HashMap> feeList = (List) resultResult.get("feeList");
if (!CollectionUtil.isEmpty(feeList)) {
for (HashMap feeInfo : feeList) {
KylinOrderExpressFeeInfo kylinOrderExpressFeeInfo = new KylinOrderExpressFeeInfo();
String orderExpressFeeInfoId = IDGenerator.nextSnowId();
kylinOrderExpressFeeInfo.setOrderExpressFeeInfoId(orderExpressFeeInfoId);
kylinOrderExpressFeeInfo.setOrderExpressId(orderExpressInfo.getOrderExpressId());
kylinOrderExpressFeeInfo.setType((String) feeInfo.get("type"));
kylinOrderExpressFeeInfo.setName((String) feeInfo.get("name"));
kylinOrderExpressFeeInfo.setValue(new BigDecimal(feeInfo.get("value").toString()));
kylinOrderExpressFeeInfo.setCreatedAt(DateUtil.getNowTime());
kylinOrderExpressFeeInfoMapper.insert(kylinOrderExpressFeeInfo);
}
}
}
}
}
return ResponseDto.success();
}
} }
package com.liquidnet.client.admin.zhengzai.kylin.utils; package com.liquidnet.client.admin.zhengzai.kylin.utils;
import com.liquidnet.client.admin.common.json.JSONObject;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.UserPathDto;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -28,6 +29,7 @@ import java.util.HashMap; ...@@ -28,6 +29,7 @@ import java.util.HashMap;
* @since 2021-06-24 8:00 下午 * @since 2021-06-24 8:00 下午
*/ */
@Component @Component
@Slf4j
public class ShunfengSignUtils { public class ShunfengSignUtils {
/** /**
* appId * appId
...@@ -51,11 +53,12 @@ public class ShunfengSignUtils { ...@@ -51,11 +53,12 @@ public class ShunfengSignUtils {
/** /**
* 生成签名并请求 * 生成签名并请求
* @param timestamp 时间戳
* @param hbody 请求body * @param hbody 请求body
* @return * @return
*/ */
public String generateSignatureAndRequest(String timestamp, HashMap<String, Object> hbody, String url) { public String generateSignatureAndRequest(HashMap<String, Object> hbody, String url) {
long currentTimeMillis = System.currentTimeMillis(); // 时间戳
String timestamp = currentTimeMillis + "";
hbody.put("companyId", APP_ID); hbody.put("companyId", APP_ID);
String body = JsonUtils.toJson(hbody); String body = JsonUtils.toJson(hbody);
// 生成签名 // 生成签名
...@@ -75,6 +78,9 @@ public class ShunfengSignUtils { ...@@ -75,6 +78,9 @@ public class ShunfengSignUtils {
// 请求body体需和获取验签时一致且编码UTF8!!! // 请求body体需和获取验签时一致且编码UTF8!!!
httpPost.setEntity(new StringEntity(body, "utf-8")); httpPost.setEntity(new StringEntity(body, "utf-8"));
CloseableHttpResponse response = null; CloseableHttpResponse response = null;
log.info(UserPathDto.setData("header", "", httpPost.getAllHeaders()));
log.info(UserPathDto.setData("body", "", body));
try { try {
response = client.execute(httpPost); response = client.execute(httpPost);
if (response.getStatusLine().getStatusCode() == 200) { if (response.getStatusLine().getStatusCode() == 200) {
......
package com.liquidnet.service.kylin.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* <p>
* 订单快递运费
* </p>
*
* @author jiangxiulong
* @since 2021-06-28
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class KylinOrderExpressFeeInfo implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Integer mid;
private String orderExpressFeeInfoId;
private String orderExpressId;
private String type;
private String name;
private BigDecimal value;
/**
* 创建时间
*/
private String createdAt;
/**
* 修改时间
*/
private String updatedAt;
}
package com.liquidnet.service.kylin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.kylin.entity.KylinOrderExpressFeeInfo;
/**
* <p>
* 订单快递运费信息 Mapper 接口 处理数据库
* </p>
*
* @author jiangxiulong
* @since 2021-06-28
*/
public interface KylinOrderExpressFeeInfoMapper extends BaseMapper<KylinOrderExpressFeeInfo> {
}
...@@ -9,7 +9,7 @@ import com.liquidnet.service.kylin.entity.KylinOrderExpress; ...@@ -9,7 +9,7 @@ import com.liquidnet.service.kylin.entity.KylinOrderExpress;
* </p> * </p>
* *
* @author jiangxiulong * @author jiangxiulong
* @since 2021-05-01 * @since 2021-06-27
*/ */
public interface KylinOrderExpressMapper extends BaseMapper<KylinOrderExpress> { public interface KylinOrderExpressMapper extends BaseMapper<KylinOrderExpress> {
......
...@@ -761,10 +761,25 @@ CREATE TABLE `kylin_order_express` ...@@ -761,10 +761,25 @@ CREATE TABLE `kylin_order_express`
`two_dimension_code` varchar(255) NOT NULL DEFAULT '' COMMENT '二维码', `two_dimension_code` varchar(255) NOT NULL DEFAULT '' COMMENT '二维码',
`created_at` timestamp NULL DEFAULT NULL, `created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL,
KEY `kylin_order_express_order_express_id_index` (`order_express_id`), KEY `order_express_id_index` (`order_express_id`),
PRIMARY KEY (`mid`) PRIMARY KEY (`mid`)
) ENGINE = InnoDB COMMENT '订单快递表'; ) ENGINE = InnoDB COMMENT '订单快递表';
drop TABLE if exists `kylin_order_express_fee_info`;
CREATE TABLE `kylin_order_express_fee_info`
(
`mid` int unsigned NOT NULL AUTO_INCREMENT,
`order_express_fee_info_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'order_express_fee_info_id',
`order_express_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'order_express_id',
`type` varchar(2) NOT NULL DEFAULT '0' COMMENT '费用类型',
`name` varchar(200) NOT NULL DEFAULT '' COMMENT '费用名称',
`value` decimal(11, 2) NOT NULL DEFAULT '0.00' COMMENT '金额',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
KEY `order_express_fee_info_id_index` (`order_express_fee_info_id`),
PRIMARY KEY (`mid`)
) ENGINE = InnoDB COMMENT '订单快递费用信息表';
drop TABLE if exists `kylin_order_refund_pic`; drop TABLE if exists `kylin_order_refund_pic`;
CREATE TABLE `kylin_order_refund_pic` CREATE TABLE `kylin_order_refund_pic`
( (
......
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