|
|
|
@ -84,95 +84,96 @@ public class GoodsServiceImpl implements GoodsService { |
|
|
|
Map<String, Object> hmap = new HashMap(); |
|
|
|
hmap.put("entrust_token", sign); |
|
|
|
// get 方式获取
|
|
|
|
JSONObject jsonObject = RequestUtils.GetData(apiurl, hmap); |
|
|
|
// json的data节点
|
|
|
|
JSONArray jsonArray = jsonObject.getJSONArray("data"); |
|
|
|
JSONObject jsonObject = RequestUtils.GetData(apiurl, hmap,true); |
|
|
|
// 产品详情地址
|
|
|
|
String gdurl = host + "/consign/exchange/v1/selectEntrustDetails"; |
|
|
|
// 循环查询商品的详情
|
|
|
|
for(int i=0;i<jsonArray.size();i++){ |
|
|
|
// 获取到sourceData字段信息
|
|
|
|
JSONObject sdjson = (JSONObject) jsonArray.get(i); |
|
|
|
String nsdstr = sdjson.getString("sourceData"); |
|
|
|
if(nsdstr==null){ |
|
|
|
continue; |
|
|
|
}else { |
|
|
|
JSONObject nsdjson = JSONObject.parseObject(nsdstr); |
|
|
|
// 从sourcedata节点中提取商品唯一编号
|
|
|
|
String goodsId = nsdjson.getString("identifier"); |
|
|
|
// 以identifier为主键查询详情
|
|
|
|
String gdetailUrl = gdurl + "/" + goodsId; |
|
|
|
// 请求商品的详情
|
|
|
|
JSONObject gdJson = RequestUtils.GetData(gdetailUrl, hmap); |
|
|
|
log.info(goodsId + "详情:" + gdJson); |
|
|
|
//处理返回的结果
|
|
|
|
JSONArray gdArr = gdJson.getJSONArray("data"); |
|
|
|
// 如果goods表中存在记录,不进行操作
|
|
|
|
Goods tgoods = goodsMapper.getGoodsByIsli(goodsId); |
|
|
|
if (tgoods != null) { |
|
|
|
if(jsonObject!=null && jsonObject.containsKey("data") ) { |
|
|
|
// json的data节点
|
|
|
|
JSONArray jsonArray = jsonObject.getJSONArray("data"); |
|
|
|
for (int i = 0; i < jsonArray.size(); i++) { |
|
|
|
// 获取到sourceData字段信息
|
|
|
|
JSONObject sdjson = (JSONObject) jsonArray.get(i); |
|
|
|
String nsdstr = sdjson.getString("sourceData"); |
|
|
|
if (nsdstr == null) { |
|
|
|
continue; |
|
|
|
} |
|
|
|
// add goodsSource,循环插入 商品资源
|
|
|
|
for (int x = 0; x < gdArr.size(); x++) { |
|
|
|
JSONObject gditem = (JSONObject) gdArr.get(x); |
|
|
|
GoodsSource goodsSource = ApiGoodsUtils.jsonToGoodsSource(gditem, goodsId); |
|
|
|
goodsSourceMapper.add(goodsSource); |
|
|
|
} |
|
|
|
// insertGoodsDetail
|
|
|
|
GoodsDetail goodsDetail = ApiGoodsUtils.jsonToGoodsDetail(nsdjson, sdjson); |
|
|
|
// 返回商品详情
|
|
|
|
int gdid = goodsDetailMapper.add(goodsDetail); |
|
|
|
|
|
|
|
//抽取target 字段中的json,转为jsonobject
|
|
|
|
JSONObject targetJson = nsdjson.getJSONObject("targetData"); |
|
|
|
//处理状态
|
|
|
|
int istatus = 0; |
|
|
|
if (sdjson.getInteger("status") == 1 || sdjson.getInteger("status") == 4 || |
|
|
|
sdjson.getInteger("status") == 5) { |
|
|
|
istatus = 1; |
|
|
|
} else if (sdjson.getInteger("status") == 2) { |
|
|
|
istatus = 2; |
|
|
|
} else { |
|
|
|
istatus = 4; |
|
|
|
JSONObject nsdjson = JSONObject.parseObject(nsdstr); |
|
|
|
// 从sourcedata节点中提取商品唯一编号
|
|
|
|
String goodsId = nsdjson.getString("identifier"); |
|
|
|
// 以identifier为主键查询详情
|
|
|
|
String gdetailUrl = gdurl + "/" + goodsId; |
|
|
|
// 请求商品的详情
|
|
|
|
JSONObject gdJson = RequestUtils.GetData(gdetailUrl, hmap,true); |
|
|
|
log.info(goodsId + "详情:" + gdJson); |
|
|
|
//处理返回的结果
|
|
|
|
JSONArray gdArr = gdJson.getJSONArray("data"); |
|
|
|
// 如果goods表中存在记录,不进行操作
|
|
|
|
Goods tgoods = goodsMapper.getGoodsByIsli(goodsId); |
|
|
|
if (tgoods != null) { |
|
|
|
continue; |
|
|
|
} |
|
|
|
// add goodsSource,循环插入 商品资源
|
|
|
|
for (int x = 0; x < gdArr.size(); x++) { |
|
|
|
JSONObject gditem = (JSONObject) gdArr.get(x); |
|
|
|
GoodsSource goodsSource = ApiGoodsUtils.jsonToGoodsSource(gditem, goodsId); |
|
|
|
goodsSourceMapper.add(goodsSource); |
|
|
|
} |
|
|
|
// insertGoodsDetail
|
|
|
|
GoodsDetail goodsDetail = ApiGoodsUtils.jsonToGoodsDetail(nsdjson, sdjson); |
|
|
|
// 返回商品详情
|
|
|
|
int gdid = goodsDetailMapper.add(goodsDetail); |
|
|
|
|
|
|
|
//抽取target 字段中的json,转为jsonobject
|
|
|
|
JSONObject targetJson = nsdjson.getJSONObject("targetData"); |
|
|
|
//处理状态
|
|
|
|
int istatus = 0; |
|
|
|
if (sdjson.getInteger("status") == 1 || sdjson.getInteger("status") == 4 || |
|
|
|
sdjson.getInteger("status") == 5) { |
|
|
|
istatus = 1; |
|
|
|
} else if (sdjson.getInteger("status") == 2) { |
|
|
|
istatus = 2; |
|
|
|
} else { |
|
|
|
istatus = 4; |
|
|
|
} |
|
|
|
//商品起止时间
|
|
|
|
String cstart = sdjson.getString("contractualPeriodStart"); |
|
|
|
String curTime = new SimpleDateFormat("HH:mm:ss").format(new Date()); |
|
|
|
String ncstart = cstart + " " + curTime; |
|
|
|
//
|
|
|
|
String cend = nsdjson.getString("contractualPeriodEnd"); |
|
|
|
String ncend = cend + " 23:59:59"; |
|
|
|
Goods goods = new Goods(); |
|
|
|
//起止时间转为timestamp
|
|
|
|
goods.setContractualStartTime(Timestamp.valueOf(ncstart)); |
|
|
|
goods.setContractualtimeEndTime(Timestamp.valueOf(ncend)); |
|
|
|
goods.setGoodsDetailId(gdid); |
|
|
|
goods.setContractStatus(nsdjson.getInteger("contractStatus")); |
|
|
|
goods.setGoodsStatus(istatus); |
|
|
|
goods.setOldStatus(0); // 默认为0
|
|
|
|
goods.setEntrustStatus(sdjson.getInteger("status")); |
|
|
|
//
|
|
|
|
goods.setUserIslicode(targetJson.getString("identifier")); |
|
|
|
goods.setUsername(targetJson.getString("titleName")); |
|
|
|
goods.setIsLicode(sdjson.getString("isliCode")); |
|
|
|
goods.setGoodsIslicode(nsdjson.getString("identifier")); |
|
|
|
goods.setRecommendSort(1); // 默认排序1
|
|
|
|
// 添加,返回当前的编号
|
|
|
|
int ret_gid = goodsMapper.addGoods(goods); |
|
|
|
//添加操作日志
|
|
|
|
OperationLog oplog = new OperationLog(); |
|
|
|
oplog.setLogid(goods.getId()); |
|
|
|
String nowStr = sdf.format(new Date()); |
|
|
|
String message = nowStr + " 发布标的成功"; |
|
|
|
oplog.setMessage(message); |
|
|
|
oplog.setType("goods"); |
|
|
|
// 日志入库
|
|
|
|
operationLogMapper.addLog(oplog); |
|
|
|
} |
|
|
|
//商品起止时间
|
|
|
|
String cstart = sdjson.getString("contractualPeriodStart"); |
|
|
|
String curTime = new SimpleDateFormat("HH:mm:ss").format(new Date()); |
|
|
|
String ncstart = cstart + " " + curTime; |
|
|
|
//
|
|
|
|
String cend = nsdjson.getString("contractualPeriodEnd"); |
|
|
|
String ncend = cend + " 23:59:59"; |
|
|
|
Goods goods = new Goods(); |
|
|
|
//起止时间转为timestamp
|
|
|
|
goods.setContractualStartTime(Timestamp.valueOf(ncstart)); |
|
|
|
goods.setContractualtimeEndTime(Timestamp.valueOf(ncend)); |
|
|
|
goods.setGoodsDetailId(gdid); |
|
|
|
goods.setContractStatus(nsdjson.getInteger("contractStatus")); |
|
|
|
goods.setGoodsStatus(istatus); |
|
|
|
goods.setOldStatus(0); // 默认为0
|
|
|
|
goods.setEntrustStatus(sdjson.getInteger("status")); |
|
|
|
//
|
|
|
|
goods.setUserIslicode(targetJson.getString("identifier")); |
|
|
|
goods.setUsername(targetJson.getString("titleName")); |
|
|
|
goods.setIsLicode(sdjson.getString("isliCode")); |
|
|
|
goods.setGoodsIslicode(nsdjson.getString("identifier")); |
|
|
|
goods.setRecommendSort(1); // 默认排序1
|
|
|
|
// 添加,返回当前的编号
|
|
|
|
int ret_gid = goodsMapper.addGoods(goods); |
|
|
|
//添加操作日志
|
|
|
|
OperationLog oplog = new OperationLog(); |
|
|
|
oplog.setLogid(goods.getId()); |
|
|
|
String nowStr = sdf.format(new Date()); |
|
|
|
String message = nowStr + " 发布标的成功"; |
|
|
|
oplog.setMessage(message); |
|
|
|
oplog.setType("goods"); |
|
|
|
// 日志入库
|
|
|
|
operationLogMapper.addLog(oplog); |
|
|
|
// 计算器增加1
|
|
|
|
count++; |
|
|
|
} |
|
|
|
// 计算器增加1
|
|
|
|
count++; |
|
|
|
} |
|
|
|
|
|
|
|
return count; |
|
|
|
} |
|
|
|
|
|
|
|
|