Commit a384866b authored by 黎博's avatar 黎博

yxm接口

parent 00ef2a59
package cn.qg.qaplatform.controller.yxm;
import cn.qg.qaplatform.config.SwitchDataSource;
import cn.qg.qaplatform.mapper.zdata.KdspMapper;
import cn.qg.qaplatform.utils.JsonResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@CrossOrigin
@RestController
@RequestMapping("/kdsp")
public class KdspController {
@Autowired
KdspMapper kdspMapper;
@GetMapping("/sku/list")
public JsonResult getSkuList(String namespace, Integer skuSource, Double salePriceLimit) {
SwitchDataSource.dataSourceSwitch(namespace, "kdsp");
return JsonResult.success(kdspMapper.getSelfSupportSkuNoList(skuSource, salePriceLimit));
}
}
package cn.qg.qaplatform.controller.yxm;
import cn.qg.qaplatform.config.SwitchDataSource;
import cn.qg.qaplatform.entity.kdsp.TSkuInfo;
import cn.qg.qaplatform.process.Purchase;
import cn.qg.qaplatform.service.kdsp.TSkuInfoService;
import cn.qg.qaplatform.utils.Result;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.Map;
/**
* 羊小咩相关接口
*/
@CrossOrigin
@RestController
@RequestMapping("/yxm")
public class YxmController {
@Autowired
TSkuInfoService tSkuInfoService;
/**
* 获取sku列表
* @param namespace
* @param skuSource
* @param skuNo
* @param skuName
* @param pageNum
* @param pageSize
* @return
*/
@GetMapping("/sku/list")
public Result getSkuList(String namespace,
Integer skuSource,
String skuNo,
String skuName,
@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize) {
SwitchDataSource.dataSourceSwitch(namespace, "kdsp");
QueryWrapper<TSkuInfo> queryWrapper = new QueryWrapper<>();
if (skuSource != null) {
queryWrapper.eq("sku_source", skuSource);
}
if (!StringUtils.isEmpty(skuNo)) {
queryWrapper.eq("sku_no", skuNo);
}
if (!StringUtils.isEmpty(skuName)) {
queryWrapper.eq("sku_name", skuName);
}
IPage<TSkuInfo> iPage = new Page<>(pageNum, pageSize);
IPage<TSkuInfo> tSkuInfoIPage = tSkuInfoService.page(iPage, queryWrapper);
Map<String, Object> map = new HashMap<>();
map.put("total", tSkuInfoIPage.getTotal());
map.put("list", tSkuInfoIPage.getRecords());
return Result.buildSuccessResult(map);
}
@PostMapping("/shopping")
public Result yxmShopping(String namespace, String version, String phoneNo, String skuNo) {
try {
String token = Purchase.loginApp(namespace, version,phoneNo);
Integer addressId = Purchase.getAddressList(namespace, token);
Map<String, Object> submitParams = Purchase.confirmOrder(namespace, token, skuNo, addressId);
String orderNo = Purchase.submitOrder(namespace, version, token, submitParams);
String payStatus = Purchase.queryPayStatus(namespace, version, token, orderNo);
Purchase.openCheckout(namespace, version, token, orderNo);
Purchase.payReissueContract(namespace, version, token);
String flowOrderNo = Purchase.checkoutPrePay(namespace, version, token, orderNo);
String payPwdSalt = Purchase.vccAccountSalt(namespace, version, token);
Integer creditPayStatus = Purchase.checkoutPay(namespace, version, token, orderNo, flowOrderNo, payPwdSalt);
} catch (Exception e) {
e.printStackTrace();
return Result.buildErrorStateResult("购物失败!", false);
}
return null;
}
}
package cn.qg.qaplatform.entity.kdsp;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* sku基本信息表
*/
@Data
@TableName(value = "t_sku_info")
public class TSkuInfo {
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* sku编号
*/
private String skuNo;
/**
* 三方唯一编号
*/
private String uniqueNo;
/**
* spu编号
*/
private String spuNo;
/**
* 第三方sku编码
*/
private String thirdSkuNo;
/**
* 第三方spu编码
*/
private String thirdSpuNo;
/**
* 商品名称
*/
private String skuName;
/**
* 商品主图
*/
private String imageUrl;
/**
* 商品缩略图
*/
private String thumbnailUrl;
/**
* 分享图
*/
private String shareUrl;
/**
* 商品来源 1-自营 2-京东开普勒 3-京东联盟 4-众联 5-企业购 6-企业购直连
*/
private Integer skuSource;
/**
* 商品类型 1:普通商品 2;虚拟商品 3:电子卡卷
*/
private Integer productType;
/**
* 成本价格
*/
private BigDecimal costPrice;
/**
* 市场价格
*/
private BigDecimal marketPrice;
/**
* 供应链市场价格
*/
private BigDecimal scMarketPrice;
/**
* 销售价格
*/
private BigDecimal salePrice;
/**
* 库存
*/
private Integer stock;
/**
* 销售数量
*/
private Integer saleCount;
/**
* 前端显示销售数量
*/
private Integer showSaleCount;
/**
* 限制购买数量
*/
private Integer limitCount;
/**
* 商家名称
*/
private String venderName;
/**
* 店铺名称
*/
private String shopName;
/**
* 店铺id
*/
private Long shopId;
/**
* 品牌id
*/
private Long brandId;
/**
* 品牌名称
*/
private String brandName;
/**
* 商品产地
*/
private String placeOfProduction;
/**
* 商品型号
*/
private String productModel;
/**
* 商品颜色
*/
private String productColor;
/**
* 商品排序
*/
private Integer rank;
/**
* 后端一级类目id
*/
private Long cId1;
/**
* 后端二级类目id
*/
private Long cId2;
/**
* 后端三级类目id
*/
private Long cId3;
/**
* 发布时间
*/
private String pushedAt;
/**
* 下架时间
*/
private String offlineAt;
/**
* 商品状态 1-未上架 2-审核中 3-已上架 4-我方下架 5-三方下架
*/
private Integer status;
private String detailContentUrl;
/**
* 审核状态 0:待审核,1:审核中,2:审核拒绝,3:审核完成
*/
private Integer auditStatus;
/**
* 无理由退货类型 0-不支持无理由退货 1-支持7天无理由退货 2-支持15天无理由退货 3-支持30天无理由退货 4-支持60天无理由退货 5-支持90天无理由退货
*/
private Integer returnType;
/**
* 是否厂直商品 0-否 1-是
*/
private Integer isFactoryShip;
/**
* 0-无效 1-有效
*/
private Integer enable;
/**
* 创建时间
*/
private Date createdAt;
/**
* 更新时间
*/
private Date updatedAt;
/**
* 京东拉取价格的商品编号
*/
private String pullPriceSkuNo;
}
package cn.qg.qaplatform.mapper.kdsp;
import cn.qg.qaplatform.entity.kdsp.TSkuInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface TSkuInfoMapper extends BaseMapper<TSkuInfo> {
}
package cn.qg.qaplatform.mapper.zdata;
import java.util.List;
import java.util.Map;
public interface KdspMapper {
List<Map> getSelfSupportSkuNoList(Integer skuSource, Double salePriceLimit);
}
package cn.qg.qaplatform.mapper.zdata;
public interface RuleEngineMapper {
int addBlackList(String uuid);
}
......@@ -71,12 +71,12 @@ public class Purchase {
* @param phoneNo 手机号
* @return
*/
public static String loginApp(String namespace, String phoneNo) {
public static String loginApp(String namespace, String version, String phoneNo) {
String url = "http://sappbackend-" + namespace + ".liangkebang.net/auth/fast-login";
Map<String, Object> headers = new HashMap<>();
Map<String, Object> params = new HashMap<>();
headers.put("Content-Type", "application/x-www-form-urlencoded");
headers.put("version", "7.9.00");
headers.put("version", version);
headers.put("channel", 214);
headers.put("appName", "xinyongqianbao");
headers.put("idfa", "D69C97EC-AC7F-4C5D-AC14-50933E990795");
......@@ -189,7 +189,7 @@ public class Purchase {
* @return
* @throws Exception
*/
public static String submitOrder(String namespace, String token, Map<String, Object> params) throws Exception {
public static String submitOrder(String namespace, String version, String token, Map<String, Object> params) throws Exception {
String requestStr = JSON.toJSONString(params);
log.info("确认订单加密前的数据:" + requestStr);
String url = "http://talos-" + namespace + ".liangkebang.net/api/kdsp/order-info/e/submit";
......@@ -200,7 +200,7 @@ public class Purchase {
headers.put("x-auth-token", token);
headers.put("scDeviceId", "D69C97EC-AC7F-4C5D-AC14-50933E990795");
headers.put("vccChannel", 214);
headers.put("version", "7.9.00");
headers.put("version", version);
headers.put("appName", "xinyongqianbao");
EncryptRequest request = encryptOrderReq4IOS(requestStr);
......@@ -211,7 +211,7 @@ public class Purchase {
return JsonPath.read(response, "$.data.orderNo");
}
public static String queryPayStatus(String namespace, String token, String orderNo) {
public static String queryPayStatus(String namespace, String version, String token, String orderNo) {
String url = "http://talos-" + namespace + ".liangkebang.net/open/checkout/pay_status/query";
Map<String, Object> headers = new HashMap<>();
Map<String, Object> params = new HashMap<>();
......@@ -220,7 +220,7 @@ public class Purchase {
headers.put("x-auth-token", token);
headers.put("scDeviceId", "D69C97EC-AC7F-4C5D-AC14-50933E990795");
headers.put("vccChannel", 214);
headers.put("version", "7.9.00");
headers.put("version", version);
headers.put("appName", "xinyongqianbao");
params.put("orderNo", orderNo);
......@@ -230,7 +230,7 @@ public class Purchase {
return JsonPath.read(response, "$.data.payStatus");
}
public static void openCheckout(String namespace, String token, String orderNo) {
public static void openCheckout(String namespace, String version, String token, String orderNo) {
String url = "http://talos-" + namespace + ".liangkebang.net/open/checkout";
Map<String, Object> headers = new HashMap<>();
Map<String, Object> params = new HashMap<>();
......@@ -240,7 +240,7 @@ public class Purchase {
headers.put("x-auth-token", token);
headers.put("scDeviceId", "D69C97EC-AC7F-4C5D-AC14-50933E990795");
headers.put("vccChannel", 214);
headers.put("version", "7.9.00");
headers.put("version", version);
headers.put("appName", "xinyongqianbao");
params.put("orderNo", orderNo);
......@@ -249,7 +249,7 @@ public class Purchase {
log.info("/open/checkOut返回响应:" + response);
}
public static void payReissueContract(String namespace, String token) {
public static void payReissueContract(String namespace, String version, String token) {
String url = "http://talos-" + namespace + ".liangkebang.net/open/checkout/payReissueContract";
Map<String, Object> headers = new HashMap<>();
Map<String, Object> params = new HashMap<>();
......@@ -259,7 +259,7 @@ public class Purchase {
headers.put("x-auth-token", token);
headers.put("scDeviceId", "D69C97EC-AC7F-4C5D-AC14-50933E990795");
headers.put("vccChannel", 214);
headers.put("version", "7.9.00");
headers.put("version", version);
headers.put("appName", "xinyongqianbao");
List<String> templateIdList = new ArrayList<>();
......@@ -273,7 +273,7 @@ public class Purchase {
log.info("合同签署返回结果:" + response);
}
public static String checkoutPrePay(String namespace, String token, String orderNo) {
public static String checkoutPrePay(String namespace, String version, String token, String orderNo) {
String url = "http://talos-" +namespace + ".liangkebang.net/open/checkout/prepay";
Map<String, Object> headers = new HashMap<>();
Map<String, Object> params = new HashMap<>();
......@@ -283,7 +283,7 @@ public class Purchase {
headers.put("x-auth-token", token);
headers.put("scDeviceId", "D69C97EC-AC7F-4C5D-AC14-50933E990795");
headers.put("vccChannel", 214);
headers.put("version", "7.9.00");
headers.put("version", version);
headers.put("appName", "xinyongqianbao");
params.put("orderNo", orderNo);
......@@ -294,7 +294,7 @@ public class Purchase {
return JsonPath.read(response, "$.data.flowOrderNo");
}
public static String vccAccountSalt(String namespace, String token) throws URISyntaxException {
public static String vccAccountSalt(String namespace, String version, String token) throws URISyntaxException {
String url = "http://talos-" + namespace + ".liangkebang.net/vcc/account/salt";
Map<String, Object> headers = new HashMap<>();
......@@ -303,7 +303,7 @@ public class Purchase {
headers.put("x-auth-token", token);
headers.put("scDeviceId", "D69C97EC-AC7F-4C5D-AC14-50933E990795");
headers.put("vccChannel", 214);
headers.put("version", "7.9.00");
headers.put("version", version);
headers.put("appName", "xinyongqianbao");
JSONObject response = HttpClientUtils.doGetReturnJson(url, null, headers);
......@@ -311,7 +311,7 @@ public class Purchase {
return JsonPath.read(response, "$.data.payPwdSalt");
}
public static Integer checkoutPay(String namespace, String token, String orderNo, String flowOrderNo, String payPwdSalt) {
public static Integer checkoutPay(String namespace, String version, String token, String orderNo, String flowOrderNo, String payPwdSalt) {
String url = "http://talos-" + namespace + ".liangkebang.net/open/checkout/pay";
Map<String, Object> headers = new HashMap<>();
......@@ -320,7 +320,7 @@ public class Purchase {
headers.put("x-auth-token", token);
headers.put("scDeviceId", "D69C97EC-AC7F-4C5D-AC14-50933E990795");
headers.put("vccChannel", 214);
headers.put("version", "7.9.00");
headers.put("version", version);
headers.put("appName", "xinyongqianbao");
Map<String, Object> params = new HashMap<>();
......@@ -336,16 +336,17 @@ public class Purchase {
public static void main(String[] args) throws Exception {
String namespace = "test1";
String token = loginApp(namespace, "18300002000");
String version = "8.0.00";
String token = loginApp(namespace, version,"18300002001");
Integer addressId = getAddressList(namespace, token);
Map<String, Object> submitParams = confirmOrder(namespace, token, "26423184333313", addressId);
String orderNo = submitOrder(namespace, token, submitParams);
String payStatus = queryPayStatus(namespace, token, orderNo);
openCheckout(namespace, token, orderNo);
payReissueContract(namespace, token);
String flowOrderNo = checkoutPrePay(namespace, token, orderNo);
String payPwdSalt = vccAccountSalt(namespace, token);
Integer creditPayStatus = checkoutPay(namespace, token, orderNo, flowOrderNo, payPwdSalt);
String orderNo = submitOrder(namespace, version, token, submitParams);
String payStatus = queryPayStatus(namespace, version, token, orderNo);
openCheckout(namespace, version, token, orderNo);
payReissueContract(namespace, version, token);
String flowOrderNo = checkoutPrePay(namespace, version, token, orderNo);
String payPwdSalt = vccAccountSalt(namespace, version, token);
Integer creditPayStatus = checkoutPay(namespace, version, token, orderNo, flowOrderNo, payPwdSalt);
}
}
package cn.qg.qaplatform.service.kdsp;
import cn.qg.qaplatform.entity.kdsp.TSkuInfo;
import com.baomidou.mybatisplus.extension.service.IService;
public interface TSkuInfoService extends IService<TSkuInfo> {
}
package cn.qg.qaplatform.service.kdsp.impl;
import cn.qg.qaplatform.entity.kdsp.TSkuInfo;
import cn.qg.qaplatform.mapper.kdsp.TSkuInfoMapper;
import cn.qg.qaplatform.service.kdsp.TSkuInfoService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@Service
public class TSkuInfoServiceImpl extends ServiceImpl<TSkuInfoMapper, TSkuInfo> implements TSkuInfoService {
}
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.qg.qaplatform.mapper.zdata.KdspMapper">
<select id="getSelfSupportSkuNoList" resultType="java.util.Map">
SELECT
*
FROM t_sku_info
<where>
stock > 0
<if test="skuSource != null and skuSource != ''">
AND `sku_source` = #{skuSource}
</if>
<if test="salePriceLimit != null and salePriceLimit != ''">
AND `sale_price` &lt;= #{salePriceLimit}
</if>
</where>
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.qg.qaplatform.mapper.zdata.RuleEngineMapper">
<insert id="addBlackList">
INSERT INTO `black_list_config` (`uuid`, `expir_date`, `type`, `enable`) VALUES (#{uuid}, '14', '0', '1');
</insert>
</mapper>
\ No newline at end of file
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