Browse Source

增加手动维护商品模式

master
xyiege 4 years ago
parent
commit
73a42608c3
  1. 24
      src/main/java/cn/chjyj/szwh/controller/api/GoodsController.java
  2. 9
      src/main/java/cn/chjyj/szwh/service/GoodsService.java
  3. 123
      src/main/java/cn/chjyj/szwh/service/impl/GoodsServiceImpl.java

24
src/main/java/cn/chjyj/szwh/controller/api/GoodsController.java

@ -1,13 +1,12 @@
package cn.chjyj.szwh.controller.api;
import cn.chjyj.szwh.controller.BaseController;
import cn.chjyj.szwh.service.GoodsService;
import com.alibaba.fastjson2.JSONObject;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* API端产品信息
@ -17,6 +16,9 @@ import org.springframework.web.bind.annotation.RestController;
public class GoodsController extends BaseController {
private static Log log = LogFactory.getLog(GoodsController.class);
@Autowired
private GoodsService goodsService;
/**
* 添加到购物车
* only support POST method
@ -37,4 +39,18 @@ public class GoodsController extends BaseController {
jsonObject.put("msg","成功");
return jsonObject;
}
/**
* 手工导入商品信息
* post 方式提价
* @return
*/
@PostMapping("/manuimport")
public JSONObject manuImport(@RequestBody String jsonStr){
JSONObject request =JSONObject.parseObject(jsonStr);
int icount = goodsService.manuImportGoods(request);
jsonObject.put("count",icount);
jsonObject.put("msg","成功");
return jsonObject;
}
}

9
src/main/java/cn/chjyj/szwh/service/GoodsService.java

@ -1,7 +1,9 @@
package cn.chjyj.szwh.service;
import cn.chjyj.szwh.bean.Goods;
import com.alibaba.fastjson2.JSONObject;
import javax.xml.bind.util.JAXBSource;
import java.util.List;
import java.util.Map;
@ -86,4 +88,11 @@ public interface GoodsService {
* @return
*/
int ranksort(String goodsIsli,int type);
/**
* 手工导入商品信息
* @param json
* @return
*/
int manuImportGoods(JSONObject jsonObject);
}

123
src/main/java/cn/chjyj/szwh/service/impl/GoodsServiceImpl.java

@ -144,6 +144,7 @@ public class GoodsServiceImpl implements GoodsService {
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";
@ -554,4 +555,126 @@ public class GoodsServiceImpl implements GoodsService {
}
return ret;
}
/**
* 手动导入商品信息
* @param jsonObject
* @return
*/
@Override
public int manuImportGoods(JSONObject jsonObject) {
// 日期时间格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
int count = 0; //统计更新数量
String host = ProperUtils.getSzwhProp("ENTRUST_URL");
//创建签名
String sign = SignUtils.createSign("entrust");
// 请求头
Map<String, Object> hmap = new HashMap();
hmap.put("entrust_token", sign);
// 产品详情地址
String gdurl = host + "/consign/exchange/v1/selectEntrustDetails";
// 循环查询商品的详情
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;
} else {
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 = gdJson.getJSONObject("data");
// 商品详情json非空时候
if(gditem!=null){
GoodsSource goodsSource = ApiGoodsUtils.jsonToGoodsSource(gditem, goodsId);
goodsSourceMapper.add(goodsSource);
}
// }
// insertGoodsDetail
GoodsDetail goodsDetail = ApiGoodsUtils.jsonToGoodsDetail(nsdjson, sdjson);
// 返回商品详情
int gdid = goodsDetailMapper.addGoodsDetail(goodsDetail);
//抽取target 字段中的json,转为jsonobject
JSONObject targetJson = sdjson.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;
}
Goods goods = new Goods();
//商品起止时间
String cstart = sdjson.getString("contractualPeriodStart");
String curTime = new SimpleDateFormat("HH:mm:ss").format(new Date());
String ncstart = cstart + " " + curTime;
//转换为date
String cend = nsdjson.getString("contractualPeriodEnd");
String ncend = cend + " 23:59:59";
try {
//起止时间转为timestamp
SimpleDateFormat tsdf = new SimpleDateFormat("yyyyMMddHHmmss");
//开始
Timestamp ncst = new Timestamp(tsdf.parse(ncstart).getTime());
//截至
Timestamp ncet = new Timestamp(tsdf.parse(ncend).getTime());
goods.setContractualStartTime(ncst);
goods.setContractualtimeEndTime(ncet);
}catch (Exception ex){
// do nothing
}
goods.setGoodsDetailId(goodsDetail.getId());
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++;
}
}
return count;
}
}

Loading…
Cancel
Save