@RequestMapping(value = "/edit", method = RequestMethod.POST)
public ResponseEntity<?> edit(HttpServletRequest request, Goods record) {
Map params = ParameteUtil.getParameterMap(request);
// 用户Id
Integer memberId = Integer.parseInt(request.getAttribute("memberId").toString());
params.put("memberId", memberId);
if (record.getGoodsId() == null) {
return FtResonseEntity.ok(RetCodeEnum.SAVE_FAILURE, "参数有误!goodsId is null");
}
//类别修改
record.setCreatedTime(null);
if (params.get("cid") != null) {
Category c = categoryService.selectByPrimaryKey(Integer.valueOf(params.get("cid").toString()));
record.setCId(c.getCategoryId());
record.setCName(c.getName());
}
Integer result = null;
if (params.get("fileName") != null) {
result = goodsImgItemService.editGoods(params);
if (result == 1) {
logger.error("修改goods_store_relation表is_update属性成功!");
result = goodsService.updateByPrimaryKeySelective(record);
if (result != 1) {
logger.warn("result:" + result + ". 更新数据失改:" + JSON.toJSONString(record));
return FtResonseEntity.ok(RetCodeEnum.SAVE_FAILURE, "保存失败");
}
} else {
logger.error("修改goods_store_relation表is_update属性失败!");
return FtResonseEntity.ok(RetCodeEnum.SAVE_FAILURE, "保存失败");
}
} else {
result = goodsService.updateByPrimaryKeySelective(record);
params.put("memberId", memberId);
if (result != 1) {
logger.warn("result:" + result + ". 更新数据失改:" + JSON.toJSONString(record));
return FtResonseEntity.ok(RetCodeEnum.SAVE_FAILURE, "保存失败");
}
}
// 修改ES
Map<String, Object> esMap = new HashMap();
esMap.put("goodsName", record.getGoodsName());
esMap.put("efficiency", record.getEfficiency());
esMap.put("barcode", record.getBarcode());
esMap.put("instructions", record.getInstructions());
esMap.put("effect", record.getEffect());
// try {
// EsIndex.updateRequest("goods", "text", record.getGoodsId().toString(), esMap);
// } catch (Exception e) {
// logger.error("goodsId【" + record.getGoodsId().toString() + "】更新商品信息至ES出错", e);
// }
return FtResonseEntity.ok(result);
}
@Override
public Integer editGoods(Map map) {
// 把参数注入goodsImgItem
try {
QueryWrapper goodsQuery = new QueryWrapper();
goodsQuery.eq("goods_id", map.get("goodsId"));
goodsQuery.eq("is_deleted", false);
goodsQuery.eq("group_type", map.get("groupType").toString());
// 查找数据存不存在
GoodsImgItem goodsImgItem = goodsImgItemMapper.selectOne(goodsQuery);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("goods_id", map.get("goodsId"));
Goods goods = goodsMapper.selectOne(queryWrapper);
String barcode = null;
//goods_img_item没数据
int temp = 0;
if (goodsImgItem == null) {
temp = 1;
goodsImgItem = new GoodsImgItem();
barcode = goods.getBarcode();
goodsImgItem.setBarcode(goods.getBarcode());
goodsImgItem.setCreatedTime(new Date());
goodsImgItem.setGoodsId(goods.getGoodsId());
goodsImgItem.setGroupType(map.get("groupType").toString());
goodsImgItem.setIsDeleted(false);
goodsImgItem.setCreatorId(Integer.valueOf(map.get("memberId").toString()));
}
barcode = goods.getBarcode();
goodsImgItem.setFileName(map.get("fileName").toString());
goodsImgItem.setName(map.get("name").toString());
goodsImgItem.setPath(map.get("path").toString());
goodsImgItem.setSort(Integer.valueOf(map.get("sort").toString()));
//如果商品表中找不到mecharId就去member中去查找
QueryWrapper merchantQueryWrapper = new QueryWrapper();
queryWrapper.eq("status", 1);
List<Merchant> merchantList = merchantMapper.selectList(merchantQueryWrapper);
Iterator<Merchant> it = merchantList.iterator();
//用来装找到的GoodsDepot数据
List<GoodsDepot> goodsDepot2 = new ArrayList<>();
//记录GoodsDepot对应的mechartId
List<Integer> mechartId = new ArrayList<>();
while (it.hasNext()) {
Merchant merchant = it.next();
QueryWrapper goodsDeptQueryWrapper = new QueryWrapper();
goodsDeptQueryWrapper.eq("merchant_id", merchant.getMerchantId());
goodsDeptQueryWrapper.eq("barcode", barcode);
goodsDeptQueryWrapper.eq("is_deleted", false);
goodsDeptQueryWrapper.eq("is_lower", false);
List<GoodsDepot> goodsDepotList = goodsDepotMapper.selectList(goodsDeptQueryWrapper);
Iterator<GoodsDepot> it2 = goodsDepotList.iterator();
//只有一个GoodsDepot的情况
while (it2.hasNext()) {
GoodsDepot goodsDepot = it2.next();
mechartId.add(merchant.getMerchantId());
goodsDepot2.add(goodsDepot);
break;
}
}
//查找goodsDepot是否有这条barcode数据
if (goodsDepot2.size() == 0) {
logger.error("表goodsDepot中没有barcode=" + barcode + "的数据!");
return 0;
} else {
//用来记录没修改goods_store_relation中is_update字段的GoodsDepot
List<GoodsDepot> error = new ArrayList<>();
int tempCount = 0;
int i = 0;
for (GoodsDepot goodsDepot : goodsDepot2) {
Integer t1 = getInteger(mechartId.get(i), goodsDepot, goodsImgItem, temp);
i++;
if (t1 == 0) error.add(goodsDepot);
tempCount += t1;
}
if (tempCount == goodsDepot2.size() || tempCount != 0) {
for (GoodsDepot goodsDepot : error) {
logger.error("商品提醒修改is_update不成功,商户没有这个店铺!goods_depot_id=" + goodsDepot.getGoodsDepotId() + " barcode=" + goodsDepot.getBarcode() + " merchantId = " + goodsDepot.getMerchantId());
}
return 1;
} else return 0;
}
} catch (Exception e) {
e.printStackTrace();
logger.error("修改商品图片表goods_img_item失败!");
return 0;
}
}
private Integer getInteger(Integer mechartId, GoodsDepot goodsDepot, GoodsImgItem goodsImgItem, Integer temp) {
QueryWrapper queryWrappe0 = new QueryWrapper();
queryWrappe0.eq("merchant_id", mechartId);
queryWrappe0.eq("is_deleted", false);
List<Store> storeList = storeMapper.selectList(queryWrappe0);
// 一个商户下面的店铺
Iterator<Store> it = storeList.iterator();
//记录成功次数
int count = 0;
//记录要通知的个数
int count1 = 0;
while (it.hasNext()) {
Store store = it.next();
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.eq("store_id", store.getStoreId());
queryWrapper1.eq("goods_depot_id", goodsDepot.getGoodsDepotId());
queryWrapper1.eq("is_deleted", false);
queryWrapper1.eq("is_lower", false);
GoodsStoreRelation goodsStoreRelation = goodsStoreRelationMapper.selectOne(queryWrapper1);
if (goodsStoreRelation == null) {
// logger.error("表goods_store_relation中没有goods_depot_id:" + goodsDepot.getGoodsDepotId() + " and store_id= " + store.getStoreId() + " 的数据!继续寻找目标中。");
continue;
}
count1++;
goodsStoreRelation.setIsUpdate(1);
int i = goodsStoreRelationMapper.updateById(goodsStoreRelation);
if (i == 1) {
if (temp == 1) goodsImgItemMapper.insert(goodsImgItem);
else goodsImgItemMapper.updateById(goodsImgItem);
count++;
}
}
if (count != count1 || count == 0) return 0;
else return 1;
}
temp
最新推荐文章于 2024-03-17 17:33:32 发布