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

Commit c839e6ec authored by 张国柄's avatar 张国柄

~admin:音乐人标签库:删除标签+AR类型关联商品处理;

~API:商品管理:添加、编辑图片、标签、服务支持同步Mysql调整;
parent c1582321
......@@ -42,4 +42,6 @@ public class GoblinStoreMgtGoodsListVo implements Serializable, Cloneable {
private Integer totalStock;
@ApiModelProperty(position = 24, value = "剩余库存")
private Integer surplusStock;
@ApiModelProperty(position = 25, value = "库存不足预警值")
private Integer warningStock;
}
......@@ -19,7 +19,7 @@ public interface IGoblinSelfTagService extends IService<GoblinSelfTag> {
boolean editSave(GoblinSelfTag selfTag);
boolean remove(String[] tagIdArr, String tagBelong);
boolean remove(Object[] tagIdArr, String tagBelong);
List<GoblinSelfTag> countsForList(List<String> tagIds);
}
......@@ -11,8 +11,10 @@ import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.goblin.constant.GoblinRedisConst;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsInfoVo;
import com.liquidnet.service.goblin.dto.vo.GoblinSelfTagVo;
import com.liquidnet.service.goblin.entity.GoblinGoodsArtag;
import com.liquidnet.service.goblin.entity.GoblinGoodsTag;
import com.liquidnet.service.goblin.entity.GoblinSelfTag;
import com.liquidnet.service.goblin.mapper.GoblinGoodsArtagMapper;
import com.liquidnet.service.goblin.mapper.GoblinGoodsTagMapper;
import com.liquidnet.service.goblin.mapper.GoblinSelfTagMapper;
import com.mongodb.client.result.UpdateResult;
......@@ -48,6 +50,8 @@ public class GoblinSelfTagServiceImpl extends ServiceImpl<GoblinSelfTagMapper, G
private GoblinSelfTagMapper goblinSelfTagMapper;
@Autowired
private GoblinGoodsTagMapper goblinGoodsTagMapper;
@Autowired
private GoblinGoodsArtagMapper goblinGoodsArtagMapper;
@Transactional
@Override
......@@ -123,7 +127,7 @@ public class GoblinSelfTagServiceImpl extends ServiceImpl<GoblinSelfTagMapper, G
@Transactional
@Override
public boolean remove(String[] tagIdArr, String tagBelong) {
public boolean remove(Object[] tagIdArr, String tagBelong) {
boolean rmvResultFlg = this.update(Wrappers.lambdaUpdate(GoblinSelfTag.class)
.in(GoblinSelfTag::getTagId, tagIdArr)
.eq(GoblinSelfTag::getTagBelong, tagBelong)
......@@ -147,22 +151,34 @@ public class GoblinSelfTagServiceImpl extends ServiceImpl<GoblinSelfTagMapper, G
redisGoblinUtil.del(GoblinRedisConst.BASIC_SELF_EXTAG);
try {
GoblinGoodsTag updateRelateGoods = new GoblinGoodsTag();
updateRelateGoods.setDelFlg("1");
int updateRelateGoodsCount = goblinGoodsTagMapper.update(updateRelateGoods, Wrappers.lambdaUpdate(GoblinGoodsTag.class)
int updateGoodsTagCount = -1, updateGoodsArtagCount = -1;
GoblinGoodsTag updateGoodsTag = new GoblinGoodsTag();
updateGoodsTag.setDelFlg("1");
updateGoodsTagCount = goblinGoodsTagMapper.update(updateGoodsTag, Wrappers.lambdaUpdate(GoblinGoodsTag.class)
.in(GoblinGoodsTag::getTagId, tagIdArr).eq(GoblinGoodsTag::getTagBelong, tagBelong).eq(GoblinGoodsTag::getDelFlg, "0"));
//
boolean isTagVoListFlg = tagBelong.equals("0");
if (!isTagVoListFlg) {
GoblinGoodsArtag updateGoodsArtag = new GoblinGoodsArtag();
updateGoodsArtag.setDelFlg("1");
updateGoodsArtagCount = goblinGoodsArtagMapper.update(updateGoodsArtag, Wrappers.lambdaUpdate(GoblinGoodsArtag.class)
.in(GoblinGoodsArtag::getTagId, tagIdArr).eq(GoblinGoodsArtag::getTagBelong, tagBelong).eq(GoblinGoodsArtag::getDelFlg, "0"));
}
String subDocName = tagBelong.equals("0") ? "tagVoList" : "extagVoList";
Query query = Query.query(Criteria.where(subDocName.concat(".tagId")).in(tagIdArr));
Query query = Query.query(isTagVoListFlg ? Criteria.where("tagVoList.tagId").in(tagIdArr) :
new Criteria().orOperator(Criteria.where("extagVoList.tagId").in(tagIdArr), Criteria.where("artagVoList.tagId").in(tagIdArr)));
query.fields().include("spuId");
List<GoblinGoodsInfoVo> matchedGoodsInfoVoList = mongoTemplate.find(query, GoblinGoodsInfoVo.class, GoblinGoodsInfoVo.class.getSimpleName());
if (!CollectionUtils.isEmpty(matchedGoodsInfoVoList)) {
List<String> matchedSpuIdList = matchedGoodsInfoVoList.stream().map(GoblinGoodsInfoVo::getSpuId).collect(Collectors.toList());
Update update = isTagVoListFlg ? new Update().pull("tagVoList", Query.query(Criteria.where("tagId").in(tagIdArr))) :
new Update().pull("extagVoList", Query.query(Criteria.where("tagId").in(tagIdArr)))
.pull("artagVoList", Query.query(Criteria.where("tagId").in(tagIdArr)));
UpdateResult updateRelateGoodsResult = mongoTemplate.updateMulti(Query.query(Criteria.where("spuId").in(matchedSpuIdList)),
new Update().pull(subDocName, Query.query(Criteria.where("tagId").in(tagIdArr))),
GoblinGoodsInfoVo.class.getSimpleName());
log.info("店铺管理:标签管理:删除:MDB更新关联商品[匹配={},更新={},MYSQL更新={}]",
updateRelateGoodsResult.getMatchedCount(), updateRelateGoodsResult.getModifiedCount(), updateRelateGoodsCount);
update, GoblinGoodsInfoVo.class.getSimpleName());
log.info("店铺管理:标签管理:删除:MDB更新关联商品[匹配={},更新={},MYSQL更新:TAG={},ARTAG={}]",
updateRelateGoodsResult.getMatchedCount(), updateRelateGoodsResult.getModifiedCount(), updateGoodsTagCount, updateGoodsArtagCount);
if (updateRelateGoodsResult.getModifiedCount() > 0) {
matchedSpuIdList.forEach(spuId -> {
......
package com.liquidnet.service.goblin.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 商品关联标签
* </p>
*
* @author liquidnet
* @since 2022-02-25
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class GoblinGoodsArtag implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Long mid;
/**
* 商品id
*/
private String spuId;
/**
* 标签id,对应 goblin_self_tag.tag_id
*/
private String tagId;
/**
* 排序[数值越小,排序越前]
*/
private Integer sort;
/**
* 标签所属[0-普通标签|1-专属标签]
*/
private String tagBelong;
/**
* 删除标记[0-未删除|1-删除]
*/
private String delFlg;
private String comment;
}
package com.liquidnet.service.goblin.mapper;
import com.liquidnet.service.goblin.entity.GoblinGoodsArtag;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 商品关联标签 Mapper 接口
* </p>
*
* @author liquidnet
* @since 2022-02-25
*/
public interface GoblinGoodsArtagMapper extends BaseMapper<GoblinGoodsArtag> {
}
<?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="com.liquidnet.service.goblin.mapper.GoblinGoodsArtagMapper">
</mapper>
......@@ -50,7 +50,7 @@ public class GoblinStoreMgtExtraServiceImpl implements IGoblinStoreMgtExtraServi
serviceSupportVos.forEach(vo -> upsertServiceSupportObjs.add(new Object[]{vo.getSsid(), vo.getName(), vo.getDesc(), vo.getUrl()}));
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.SQL_STORE.getKey(),
SqlMapping.get("goblin_service_support.insert_by_replace", upsertServiceSupportObjs));
SqlMapping.get("goblin_service_support.insert_byreplace", upsertServiceSupportObjs));
}
return serviceSupportVos;
}
......
#---- 服务支持信息
goblin_service_support.insert_by_replace=REPLACE INTO goblin_service_support (ssid,name,`desc`,url,created_by,created_at)VALUES(?,?,?,?,'-',sysdate())
goblin_service_support.insert_byreplace=REPLACE INTO goblin_service_support (ssid,name,`desc`,url,created_by,created_at)VALUES(?,?,?,?,'-',sysdate())
#---- 店铺信息
goblin_store_info.insert_by_cert=INSERT INTO goblin_store_info (store_id,uid,status,store_type,cert_type,created_by,created_at)VALUES(?,?,?,?,?,?,?)
goblin_store_info.update_by_cert1=UPDATE goblin_store_info SET store_type=?,cert_type=?,updated_by=?,updated_at=? WHERE store_id=?
......@@ -50,10 +50,13 @@ goblin_goods_sku.update_by_edit_spu=UPDATE goblin_goods_sku SET sku_no=?,virtual
goblin_goods_sku.update_by_shelves=UPDATE goblin_goods_sku SET shelves_status=?,shelves_at=?,updated_by=?,updated_at=? WHERE spu_id=? AND store_id=? AND sku_appear='0'
goblin_goods_sku.update_by_del_store=UPDATE goblin_goods_sku SET del_flg='1',updated_by=?,updated_at=?,deleted_by=?,deleted_at=? WHERE store_id=?
goblin_goods_sku.update_by_del=UPDATE goblin_goods_sku SET del_flg='1',updated_by=?,updated_at=?,deleted_by=?,deleted_at=? WHERE spu_id=? AND store_id=?
goblin_goods_image.insert=INSERT INTO goblin_goods_image (spu_id,url)VALUES(?,?)
goblin_goods_tag.insert=INSERT INTO goblin_goods_tag (spu_id,tag_id,sort,tag_belong)VALUES(?,?,?,?)
goblin_goods_image.insert_byreplace=REPLACE INTO goblin_goods_image (spu_id,url)VALUES(?,?)
goblin_goods_image.delete=UPDATE goblin_goods_image SET del_flg='1' WHERE spu_id=? AND del_flg='0'
goblin_goods_tag.insert_byreplace=REPLACE INTO goblin_goods_tag (spu_id,tag_id,sort,tag_belong)VALUES(?,?,?,?)
goblin_goods_tag.delete=UPDATE goblin_goods_tag SET del_flg='1' WHERE spu_id=? AND tag_belong=? AND del_flg='0'
goblin_goods_service_support.insert=INSERT INTO goblin_goods_service_support (spu_id,ssid)VALUES(?,?)
goblin_goods_artag.insert_byreplace=REPLACE INTO goblin_goods_tag (spu_id,tag_id,sort,tag_belong)VALUES(?,?,?,?)
goblin_goods_artag.delete=UPDATE goblin_goods_tag SET del_flg='1' WHERE spu_id=? AND tag_belong=? AND del_flg='0'
goblin_goods_service_support.insert_byreplace=REPLACE INTO goblin_goods_service_support (spu_id,ssid)VALUES(?,?)
goblin_goods_service_support.delete=UPDATE goblin_goods_service_support SET del_flg='1' WHERE spu_id=? AND del_flg='0'
#---- 商铺活动
goblin.store.market.insert=INSERT INTO goblin_store_marketing (`store_market_id`,`name`,`type`,`status`,`store_id`,`start_time`,`end_time`,`del_flag`,`is_pre`,`pre_time`,`created_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?)
......
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