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

Commit f19bc205 authored by zhanggb's avatar zhanggb

+sql:商品管理:藏品AR拓展信息表`goblin_goods_sku_extra`;

+api:商品管理:藏品AR(列表、添加、编辑);
parent 109f643b
package com.liquidnet.service.goblin.dto.manage;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.io.Serializable;
import java.util.List;
@ApiModel(value = "GoblinStoreMgtGoodsSkuArActionParam", description = "商品管理:藏品AR:管理(删除...)")
@Data
public class GoblinStoreMgtGoodsSkuArActionParam implements Serializable {
private static final long serialVersionUID = 3193592471744574048L;
@ApiModelProperty(position = 10, required = true, value = "店铺ID")
@NotBlank(message = "店铺ID不能为空")
private String storeId;
@ApiModelProperty(position = 11, required = true, value = "操作类型[REMOVE-删除]")
@Pattern(regexp = "\\b(REMOVE)\\b", message = "操作类型无效")
private String action;
@ApiModelProperty(position = 12, required = true, value = "单品ID列表")
private List<String> skuIdList;
}
package com.liquidnet.service.goblin.dto.manage;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@ApiModel(value = "GoblinStoreMgtGoodsSkuArAddParam", description = "商品管理:藏品AR:新增入参")
@Data
public class GoblinStoreMgtGoodsSkuArAddParam implements Serializable {
private static final long serialVersionUID = -6002785025793722474L;
@ApiModelProperty(position = 10, required = true, value = "店铺ID")
@NotNull(message = "店铺ID不能为空")
private String storeId;
@ApiModelProperty(position = 11, required = true, value = "单品ID")
@NotNull(message = "单品ID不能为空")
private String skuId;
@ApiModelProperty(position = 12, required = true, value = "单品AR文件URL-iOS版[256]")
@NotNull(message = "iOS文件不能为空")
private String arUrlIos;
@ApiModelProperty(position = 13, required = true, value = "单品AR文件URL-android版[256]")
@NotNull(message = "android文件不能为空")
private String arUrlAndroid;
}
package com.liquidnet.service.goblin.dto.manage;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.*;
import java.io.Serializable;
@ApiModel(value = "GoblinStoreMgtGoodsSkuExtraFilterParam", description = "商品管理:藏品AR:列表筛选条件")
@Data
public class GoblinStoreMgtGoodsSkuArFilterParam implements Serializable {
private static final long serialVersionUID = -8520107197264504640L;
@ApiModelProperty(position = 10, required = true, value = "店铺ID[64]")
@NotBlank(message = "店铺ID不能为空")
private String storeId;
@ApiModelProperty(position = 11, required = true, value = "当前记录起始索引", example = "1")
@Min(value = 1, message = "起始索引无效")
@NotNull(message = "起始索引无效")
private Integer pageNum;
@ApiModelProperty(position = 12, required = true, value = "每页显示记录数", example = "20")
@Min(value = 1, message = "显示记录数不能小于1")
@Max(value = 100, message = "显示记录数不能大于100")
@NotNull(message = "显示记录数不能为空")
private Integer pageSize;
@ApiModelProperty(position = 13, required = false, value = "搜索关键字[128]")
@Size(min = 2, max = 100, message = "搜索关键字长度范围2~100")
private String keyword;
}
package com.liquidnet.service.goblin.dto.manage;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
@ApiModel(value = "GoblinStoreMgtGoodsSkuSimpleFilterParam", description = "商品管理:SKU列表筛选条件入参")
@Data
public class GoblinStoreMgtGoodsSkuSimpleFilterParam implements Serializable {
private static final long serialVersionUID = -2875361058424448491L;
@ApiModelProperty(position = 10, required = true, value = "店铺ID[64]")
@NotBlank(message = "店铺ID不能为空")
private String storeId;
@ApiModelProperty(position = 11, required = true, value = "当前记录起始索引", example = "1")
@Min(value = 1, message = "起始索引不能小于1")
@NotNull(message = "起始索引无效")
private Integer pageNum;
@ApiModelProperty(position = 13, required = false, value = "搜索关键字[128]")
@Size(min = 2, max = 100, message = "搜索关键字长度范围2~100")
private String keyword;
@ApiModelProperty(position = 14, required = false, value = "商品类型[0-常规|1-数字藏品],未指定则代表全部")
private Integer skuType;
// @ApiModelProperty(position = 15, required = false, value = "商品上架状态[0-待上架|1-下架|2-违规|3-上架]", allowableValues = "0,1,2,3")
// private String shelvesStatus;
}
package com.liquidnet.service.goblin.dto.manage.vo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@ApiModel(value = "GoblinStoreMgtGoodsSkuArListVo", description = "商品管理:藏品AR列表信息")
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class GoblinStoreMgtGoodsSkuArListVo implements Serializable, Cloneable {
private static final long serialVersionUID = -6629148859241936997L;
@ApiModelProperty(position = 10, value = "商品单品ID")
private String skuId;
@ApiModelProperty(position = 11, value = "单品的名称[100]")
private String name;
@ApiModelProperty(position = 12, value = "单品的副标题[128]")
private String subtitle;
@ApiModelProperty(position = 13, value = "单品AR文件URL-iOS版[256]")
private String arUrlIos;
@ApiModelProperty(position = 14, value = "单品AR文件URL-android版[256]")
private String arUrlAndroid;
private static final GoblinStoreMgtGoodsSkuArListVo obj = new GoblinStoreMgtGoodsSkuArListVo();
public static GoblinStoreMgtGoodsSkuArListVo getNew() {
try {
return (GoblinStoreMgtGoodsSkuArListVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new GoblinStoreMgtGoodsSkuArListVo();
}
}
}
package com.liquidnet.service.goblin.dto.manage.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@ApiModel(value = "GoblinStoreMgtGoodsSkuSimpleVo", description = "商品管理:SKU列表(简版)")
@Data
public class GoblinStoreMgtGoodsSkuSimpleVo implements Serializable {
private static final long serialVersionUID = 7389835893135307728L;
@ApiModelProperty(position = 10, value = "商品ID[64]")
private String spuId;
@ApiModelProperty(position = 11, value = "单品ID[64]")
private String skuId;
@ApiModelProperty(position = 12, value = "商品类型[0-常规|1-数字藏品]")
private int skuType;
@ApiModelProperty(position = 13, value = "单品名称[100]")
private String name;
@ApiModelProperty(position = 14, value = "单品副标题[100]")
private String subtitle;
}
package com.liquidnet.service.goblin.service.manage;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.goblin.dto.manage.GoblinStoreMgtGoodsSkuArAddParam;
import com.liquidnet.service.goblin.dto.manage.GoblinStoreMgtGoodsSkuArFilterParam;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinStoreMgtGoodsSkuArListVo;
import java.util.List;
public interface IGoblinStoreMgtGoodsSkuExtraService {
/**
* 商品管理:藏品AR:列表
*
* @param mgtGoodsSkuExtraFilterParam GoblinStoreMgtGoodsSkuExtraFilterParam
* @return PagedResult<GoblinStoreMgtGoodsSkuArListVo>
*/
PagedResult<GoblinStoreMgtGoodsSkuArListVo> skuArList(GoblinStoreMgtGoodsSkuArFilterParam mgtGoodsSkuExtraFilterParam);
/**
* 商品管理:藏品AR:添加编辑
*
* @param uid UID
* @param mgtGoodsSkuArAddParam GoblinStoreMgtGoodsSkuArAddParam
* @param editFlg true-编辑|false-添加
* @return boolean
*/
boolean skuArAddEdit(String uid, GoblinStoreMgtGoodsSkuArAddParam mgtGoodsSkuArAddParam, boolean editFlg);
/**
* 商品管理:藏品AR:删除
*
* @param uid UID
* @param skuIdList List<单品ID>
* @return boolean
*/
boolean skuArDel(String uid, List<String> skuIdList);
}
package com.liquidnet.service.goblin.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 商品单品扩展信息
* </p>
*
* @author liquidnet
* @since 2022-05-05
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class GoblinGoodsSkuExtra implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Long mid;
private String skuId;
/**
* 单品AR文件URL-iOS版
*/
private String arUrlIos;
/**
* 单品AR文件URL-android版
*/
private String arUrlAndroid;
/**
* 删除标记[0-未删除|1删除]
*/
private String delFlg;
private String createdBy;
private LocalDateTime createdAt;
private String updatedBy;
private LocalDateTime updatedAt;
private String deletedBy;
private LocalDateTime deletedAt;
private String comment;
}
package com.liquidnet.service.goblin.mapper;
import com.liquidnet.service.goblin.entity.GoblinGoodsSkuExtra;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 商品单品扩展信息 Mapper 接口
* </p>
*
* @author liquidnet
* @since 2022-05-05
*/
public interface GoblinGoodsSkuExtraMapper extends BaseMapper<GoblinGoodsSkuExtra> {
}
<?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.GoblinGoodsSkuExtraMapper">
</mapper>
......@@ -37,3 +37,26 @@ CREATE TABLE `goblin_list_details`
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_unicode_ci COMMENT = '商城-名单详情表'
ROW_FORMAT = DYNAMIC;
# -- >>------------------------------------------------------------------------------------
drop table if exists goblin_goods_sku_extra;
create table goblin_goods_sku_extra
(
mid bigint auto_increment primary key,
sku_id varchar(64) not null,
ar_url_ios varchar(256) null comment '单品AR文件URL-iOS版',
ar_url_android varchar(256) null comment '单品AR文件URL-android版',
del_flg char default '0' comment '删除标记[0-未删除|1删除]',
created_by varchar(64) not null,
created_at datetime not null,
updated_by varchar(64) null,
updated_at datetime null,
deleted_by varchar(64) null,
deleted_at datetime null,
comment varchar(500)
) engine = InnoDB comment '商品单品扩展信息';
create index idx_ggse_sku_id on goblin_goods_sku_extra (sku_id);
# -- >>------------------------------------------------------------------------------------
\ No newline at end of file
......@@ -32,7 +32,7 @@ import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@ApiSupport(order = 149005)
@ApiSupport(order = 149006)
@Api(tags = "店铺商品分类")
@Slf4j
@Validated
......
......@@ -51,7 +51,7 @@ import java.time.LocalDateTime;
import java.util.Iterator;
import java.util.List;
@ApiSupport(order = 149006)
@ApiSupport(order = 149007)
@Api(tags = "商铺活动:优惠券管理")
@Slf4j
@Validated
......
package com.liquidnet.service.goblin.controller.manage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.manage.GoblinStoreMgtGoodsSkuArAddParam;
import com.liquidnet.service.goblin.dto.manage.GoblinStoreMgtGoodsSkuArFilterParam;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinStoreMgtGoodsSkuArListVo;
import com.liquidnet.service.goblin.dto.vo.GoblinGoodsSkuInfoVo;
import com.liquidnet.service.goblin.service.manage.IGoblinStoreMgtGoodsSkuExtraService;
import com.liquidnet.service.goblin.util.GoblinRedisUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
@ApiSupport(order = 149005)
@Api(tags = "商品管理:单品拓展信息")
@Slf4j
@Validated
@RestController
@RequestMapping("store/mgt/sku_extra")
public class GoblinStoreMgtGoodsSkuExtraController {
@Autowired
IGoblinStoreMgtGoodsSkuExtraService goblinStoreMgtGoodsSkuExtraService;
@Autowired
GoblinRedisUtils goblinRedisUtils;
@ApiOperationSupport(order = 1)
@ApiOperation(value = "藏品AR:列表")
@PostMapping("ar_list")
public ResponseDto<PagedResult<GoblinStoreMgtGoodsSkuArListVo>> arList(@Valid @RequestBody GoblinStoreMgtGoodsSkuArFilterParam mgtGoodsSkuArFilterParam) {
String currentUid = CurrentUtil.getCurrentUid();
if (!goblinRedisUtils.hasStoreId(currentUid, mgtGoodsSkuArFilterParam.getStoreId())) {
log.warn("商品管理:藏品AR:列表:无权操作该店铺,请核实[UID={},GoblinStoreMgtGoodsSkuArFilterParam={}]", currentUid, JsonUtils.toJson(mgtGoodsSkuArFilterParam));
return ResponseDto.success();
}
if (log.isDebugEnabled()) {
log.debug("商品管理:藏品AR:列表[GoblinStoreMgtGoodsSkuArFilterParam={}]", JsonUtils.toJson(mgtGoodsSkuArFilterParam));
}
return ResponseDto.success(goblinStoreMgtGoodsSkuExtraService.skuArList(mgtGoodsSkuArFilterParam));
}
// @ApiOperationSupport(order = 2)
// @ApiOperation(value = "藏品AR:管理")
// @PostMapping("ar_action")
// public ResponseDto<Object> action(@Valid @RequestBody GoblinStoreMgtGoodsSkuArActionParam mgtGoodsSkuArActionParam) {
// String currentUid = CurrentUtil.getCurrentUid(), storeId = mgtGoodsSkuArActionParam.getStoreId();
// if (!goblinRedisUtils.hasStoreId(currentUid, storeId)) {
// return ResponseDto.failure(ErrorMapping.get("149002"));
// }
// List<String> skuIdList = mgtGoodsSkuArActionParam.getSkuIdList();
// if (CollectionUtils.isEmpty(skuIdList)) {
// return ResponseDto.failure(ErrorMapping.get("149021"));
// }
// if (log.isDebugEnabled()) {
// log.debug("商品管理:藏品AR:管理[UID={},GoblinStoreMgtGoodsActionParam={}]", currentUid, JsonUtils.toJson(mgtGoodsSkuArActionParam));
// }
// boolean resultFlg;
// switch (mgtGoodsSkuArActionParam.getAction()) {
// case "REMOVE":
// for (String skuId : skuIdList) {
// GoblinGoodsSkuInfoVo mgtGoodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(skuId);
// if (null == mgtGoodsSkuInfoVo || !mgtGoodsSkuInfoVo.getDelFlg().equals("0")) {
// log.warn("商品管理:藏品AR:管理:藏品不存在或已删除[UID={},skuId={}]", currentUid, skuId);
// return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "藏品不存在或已删除");
// }
// if (mgtGoodsSkuInfoVo.getSkuType() != 1) {
// log.warn("商品管理:藏品AR:管理:非数字藏品不支持此操作[UID={},skuId={}]", currentUid, skuId);
// return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "无效操作,非数字藏品");
// }
// if (!mgtGoodsSkuInfoVo.getStoreId().equals(storeId)) {
// log.warn("商品管理:藏品AR:管理:非本店铺藏品,无权操作[UID={},skuId={}]", currentUid, skuId);
// return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "非本店铺藏品,无权操作");
// }
// }
// resultFlg = goblinStoreMgtGoodsSkuExtraService.skuArDel(currentUid, skuIdList);
// break;
// default:
// log.warn("商品管理:藏品AR:管理:Invalid operation[UID={},GoblinStoreMgtGoodsSkuArActionParam={}]", currentUid, JsonUtils.toJson(mgtGoodsSkuArActionParam));
// return ResponseDto.failure(ErrorMapping.get("149001"));
// }
// return resultFlg ? ResponseDto.success() : ResponseDto.failure();
// }
@ApiOperationSupport(order = 4)
@ApiOperation(value = "藏品AR:添加")
@PostMapping("ar_add")
public ResponseDto<Object> arAdd(@Valid @RequestBody GoblinStoreMgtGoodsSkuArAddParam mgtGoodsSkuArAddParam) {
String currentUid = CurrentUtil.getCurrentUid(), storeId = mgtGoodsSkuArAddParam.getStoreId();
if (!goblinRedisUtils.hasStoreId(currentUid, storeId)) {
return ResponseDto.failure(ErrorMapping.get("149002"));
}
GoblinGoodsSkuInfoVo mgtGoodsSkuInfoVo;
if (null == (mgtGoodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(mgtGoodsSkuArAddParam.getSkuId()))
|| !mgtGoodsSkuInfoVo.getStoreId().equals(storeId)
|| !mgtGoodsSkuInfoVo.getDelFlg().equals("0")
) {
return ResponseDto.failure(ErrorMapping.get("149011"));
}
if (StringUtils.isNotEmpty(mgtGoodsSkuInfoVo.getArUrlIos())) {
return ResponseDto.failure(ErrorMapping.get("149019"));
}
if (log.isDebugEnabled()) {
log.debug("商品管理:藏品AR:添加[GoblinStoreMgtGoodsSkuArAddParam={}]", JsonUtils.toJson(mgtGoodsSkuArAddParam));
}
boolean resultFlg = goblinStoreMgtGoodsSkuExtraService.skuArAddEdit(currentUid, mgtGoodsSkuArAddParam, false);
return resultFlg ? ResponseDto.success() : ResponseDto.failure(ErrorMapping.get("149003"));
}
@ApiOperationSupport(order = 5)
@ApiOperation(value = "藏品AR:编辑")
@PostMapping("ar_edit")
public ResponseDto<Object> arEdit(@Valid @RequestBody GoblinStoreMgtGoodsSkuArAddParam mgtGoodsSkuArEditParam) {
String currentUid = CurrentUtil.getCurrentUid(), storeId = mgtGoodsSkuArEditParam.getStoreId();
if (!goblinRedisUtils.hasStoreId(currentUid, storeId)) {
return ResponseDto.failure(ErrorMapping.get("149002"));
}
GoblinGoodsSkuInfoVo mgtGoodsSkuInfoVo;
if (null == (mgtGoodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(mgtGoodsSkuArEditParam.getSkuId()))
|| !mgtGoodsSkuInfoVo.getStoreId().equals(storeId)
|| !mgtGoodsSkuInfoVo.getDelFlg().equals("0")
) {
return ResponseDto.failure(ErrorMapping.get("149011"));
}
if (StringUtils.isEmpty(mgtGoodsSkuInfoVo.getArUrlIos())) {
return ResponseDto.failure(ErrorMapping.get("149020"));
}
if (log.isDebugEnabled()) {
log.debug("商品管理:藏品AR:编辑[GoblinStoreMgtGoodsAddParam={}]", JsonUtils.toJson(mgtGoodsSkuArEditParam));
}
boolean resultFlg = goblinStoreMgtGoodsSkuExtraService.skuArAddEdit(currentUid, mgtGoodsSkuArEditParam, true);
return resultFlg ? ResponseDto.success() : ResponseDto.failure(ErrorMapping.get("149003"));
}
}
package com.liquidnet.service.goblin.service.impl.manage;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.goblin.dto.manage.GoblinStoreMgtGoodsSkuArAddParam;
import com.liquidnet.service.goblin.dto.manage.GoblinStoreMgtGoodsSkuArFilterParam;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinStoreMgtGoodsSkuArListVo;
import com.liquidnet.service.goblin.service.manage.IGoblinStoreMgtGoodsSkuExtraService;
import com.liquidnet.service.goblin.util.GoblinMongoUtils;
import com.liquidnet.service.goblin.util.GoblinRedisUtils;
import com.liquidnet.service.goblin.util.QueueUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.LinkedList;
import java.util.List;
@Slf4j
@Service
public class GoblinStoreMgtGoodsSkuExtraServiceImpl implements IGoblinStoreMgtGoodsSkuExtraService {
@Autowired
private QueueUtils queueUtils;
@Autowired
private GoblinMongoUtils goblinMongoUtils;
@Autowired
private GoblinRedisUtils goblinRedisUtils;
@Override
public PagedResult<GoblinStoreMgtGoodsSkuArListVo> skuArList(GoblinStoreMgtGoodsSkuArFilterParam mgtGoodsSkuExtraFilterParam) {
return goblinMongoUtils.getSkuArList(mgtGoodsSkuExtraFilterParam);
}
@Override
public boolean skuArAddEdit(String uid, GoblinStoreMgtGoodsSkuArAddParam mgtGoodsSkuArAddParam, boolean editFlg) {
LocalDateTime now = LocalDateTime.now();
String skuId = mgtGoodsSkuArAddParam.getSkuId();
String arUrlIos = mgtGoodsSkuArAddParam.getArUrlIos();
String arUrlAndroid = mgtGoodsSkuArAddParam.getArUrlAndroid();
if (goblinMongoUtils.updateGoodsSkuInfoVoForArUrl(skuId, uid, now, arUrlIos, arUrlAndroid, editFlg)) {
log.info("商品管理:藏品AR:{}[UID={},PARAMS={}]", editFlg ? "编辑" : "添加", uid, JsonUtils.toJson(mgtGoodsSkuArAddParam));
goblinRedisUtils.delGoodsSkuInfoVo(skuId);
goblinRedisUtils.delGoodsSkuInfoVoByUnShelves(skuId);
LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
LinkedList<Object[]> addEditGoodsSkuExtraObjs = CollectionUtil.linkedListObjectArr();
if (editFlg) {
toMqSqls.add(SqlMapping.get("goblin_goods_sku_extra.edit_ar"));
addEditGoodsSkuExtraObjs.add(new Object[]{arUrlIos, arUrlAndroid, uid, now, skuId});
} else {
toMqSqls.add(SqlMapping.get("goblin_goods_sku_extra.add_ar"));
addEditGoodsSkuExtraObjs.add(new Object[]{skuId, arUrlIos, arUrlAndroid, uid, now});
}
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.SQL_GOODS.getKey(), SqlMapping.gets(toMqSqls, addEditGoodsSkuExtraObjs));
return true;
}
return false;
}
@Override
public boolean skuArDel(String uid, List<String> skuIdList) {
return false;
}
}
......@@ -726,6 +726,59 @@ public class GoblinMongoUtils {
return storeSkuIdList;
}
// SKU搜索
public PagedResult<GoblinStoreMgtGoodsSkuSimpleVo> getMgtGoodsSkuSimpleVos(GoblinStoreMgtGoodsSkuSimpleFilterParam filterParam) {
Criteria criteria = Criteria.where("delFlg").is("0").and("storeId").is(filterParam.getStoreId());
// if (null != filterParam.getSkuType()) {
// if (0 == filterParam.getSkuType()) {
// criteria.orOperator(Criteria.where("skuType").exists(false), (Criteria.where("skuType").is(0)));
// } else {
// criteria.and("skuType").is(1);
// }
// }
// if (StringUtils.isNotBlank(filterParam.getKeyword())) {
// Pattern pattern = Pattern.compile("^.*" + filterParam.getKeyword() + ".*$", Pattern.CASE_INSENSITIVE);
// criteria.orOperator(Criteria.where("name").regex(pattern), Criteria.where("subtitle").regex(pattern));
// }
if (null != filterParam.getSkuType()) {
if (0 == filterParam.getSkuType() && StringUtils.isNotBlank(filterParam.getKeyword())) {
Pattern pattern = Pattern.compile("^.*" + filterParam.getKeyword() + ".*$", Pattern.CASE_INSENSITIVE);
criteria.orOperator(
Criteria.where("skuType").exists(false).and("name").regex(pattern),
Criteria.where("skuType").exists(false).and("subtitle").regex(pattern),
Criteria.where("skuType").is(0).and("name").regex(pattern),
Criteria.where("skuType").is(0).and("subtitle").regex(pattern)
);
filterParam.setKeyword(null);
} else if (0 == filterParam.getSkuType()) {
criteria.orOperator(Criteria.where("skuType").exists(false), (Criteria.where("skuType").is(0)));
} else if (1 == filterParam.getSkuType()) {
criteria.and("skuType").is(1);
}
}
if (StringUtils.isNotBlank(filterParam.getKeyword())) {
Pattern pattern = Pattern.compile("^.*" + filterParam.getKeyword() + ".*$", Pattern.CASE_INSENSITIVE);
criteria.orOperator(Criteria.where("name").regex(pattern), Criteria.where("subtitle").regex(pattern));
}
// if (StringUtils.isNotBlank(filterParam.getShelvesStatus())) {
// criteria.and("shelvesStatus").is(filterParam.getShelvesStatus());
// }
Query query = Query.query(criteria);
long count = mongoTemplate.count(query, GoblinGoodsSkuInfoVo.class.getSimpleName());
PagedResult<GoblinStoreMgtGoodsSkuSimpleVo> pagedResult = ObjectUtil.getGoblinStoreMgtGoodsSkuSimpleVoPagedResult();
if (count <= 0) return pagedResult;
int pageSize = 20;
query.with(PageRequest.of(filterParam.getPageNum() - 1, pageSize));
query.with(Sort.by(Sort.Order.desc("createdAt")));
List<GoblinStoreMgtGoodsSkuSimpleVo> list = mongoTemplate.find(query, GoblinStoreMgtGoodsSkuSimpleVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName());
return pagedResult.setList(list).setTotal(count, pageSize);
}
// SKU信息
public GoblinGoodsSkuInfoVo getGoodsSkuInfoVo(String skuId) {
// return mongoTemplate.findOne(Query.query(Criteria.where("skuId").is(skuId).and("delFlg").is("0").and("shelvesStatus").is("3")),
......@@ -814,6 +867,12 @@ public class GoblinMongoUtils {
GoblinGoodsSkuInfoVo.class.getSimpleName()).getModifiedCount() > 0;
}
public boolean updateGoodsSkuInfoVoForArUrl(String skuId, String uid, LocalDateTime now, String arUrlIos, String arUrlAndroid, boolean editFlg) {
return mongoTemplate.updateMulti(Query.query(Criteria.where("skuId").is(skuId).and("delFlg").is("0").and("arUrlIos").exists(editFlg)),
Update.update("updatedBy", uid).set("updatedAt", now).set("arUrlIos", arUrlIos).set("arUrlAndroid", arUrlAndroid),
GoblinGoodsSkuInfoVo.class.getSimpleName()).getModifiedCount() > 0;
}
/* ---------------------------------------- ---------------------------------------- */
/**
......@@ -1522,6 +1581,25 @@ public class GoblinMongoUtils {
return pagedResult.setList(voList).setTotal(count, 20);
}
public PagedResult<GoblinStoreMgtGoodsSkuArListVo> getSkuArList(GoblinStoreMgtGoodsSkuArFilterParam filterParam) {
Criteria criteria = Criteria.where("storeId").is(filterParam.getStoreId()).and("delFlg").is("0").and("arUrlIos").exists(true);
if (StringUtils.isNotBlank(filterParam.getKeyword())) {
Pattern pattern = Pattern.compile("^.*" + filterParam.getKeyword() + ".*$", Pattern.CASE_INSENSITIVE);
criteria.orOperator(Criteria.where("name").regex(pattern), Criteria.where("subtitle").regex(pattern));
}
Query query = Query.query(criteria);
long count = mongoTemplate.count(query, GoblinGoodsSkuInfoVo.class.getSimpleName());
PagedResult<GoblinStoreMgtGoodsSkuArListVo> pagedResult = ObjectUtil.getGoblinStoreMgtGoodsSkuArListVoPagedResult();
if (count <= 0) return pagedResult;
query.with(PageRequest.of(filterParam.getPageNum() - 1, filterParam.getPageSize()));
query.with(Sort.by(Sort.Order.desc("createdAt")));
List<GoblinStoreMgtGoodsSkuArListVo> list = mongoTemplate.find(query, GoblinStoreMgtGoodsSkuArListVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName());
return pagedResult.setList(list).setTotal(count, filterParam.getPageSize());
}
/**
* 记录用户藏品数据
*/
......
......@@ -22,12 +22,14 @@ import java.util.ArrayList;
public class ObjectUtil {
private static final PagedResult<GoblinStoreMgtGoodsListVo> goblinStoreMgtGoodsVoPagedResult = new PagedResult<>();
private static final PagedResult<GoblinStoreMgtGoodsSkuSimpleVo> goblinStoreMgtGoodsSkuSimpleVoPagedResult = new PagedResult<>();
private static final PagedResult<GoblinStoreNoticeVo> goblinStoreNoticeVoPagedResult = new PagedResult<>();
private static final PagedResult<GoblinStoreMgtCouponListVo> goblinStoreMgtCouponListVoPagedResult = new PagedResult<>();
private static final PagedResult<GoblinUserDigitalArtworkListVo> goblinUserDigitalArtworkListVoPagedResult = new PagedResult<>();
private static final PagedResult<GoblinUserDigitalArtworkVo> goblinUserDigitalArtworkVoPagedResult = new PagedResult<>();
private static final PagedResult<GoblinNftGoodsSkuListVo> goblinNftGoodsSkuListVoPagedResult = new PagedResult<>();
private static final PagedResult<GoblinNftOrderDetailsVo> goblinNftOrderDetailsVoPagedResult = new PagedResult<>();
private static final PagedResult<GoblinStoreMgtGoodsSkuArListVo> goblinStoreMgtGoodsSkuArListVoPagedResult = new PagedResult<>();
private static final ArrayList<GoblinGoodsInfoVo> goblinGoodsInfoVoArrayList = new ArrayList<>();
private static final ArrayList<GoblinFrontBanner> goblinFrontBannerArrayList = new ArrayList<>();
......@@ -95,6 +97,10 @@ public class ObjectUtil {
return goblinStoreMgtGoodsVoPagedResult.clone();
}
public static PagedResult<GoblinStoreMgtGoodsSkuSimpleVo> getGoblinStoreMgtGoodsSkuSimpleVoPagedResult() {
return goblinStoreMgtGoodsSkuSimpleVoPagedResult.clone();
}
public static PagedResult<GoblinStoreNoticeVo> getGoblinStoreNoticeVoPagedResult() {
return goblinStoreNoticeVoPagedResult.clone();
}
......@@ -135,6 +141,10 @@ public class ObjectUtil {
return goblinNftOrderDetailsVoPagedResult.clone();
}
public static PagedResult<GoblinStoreMgtGoodsSkuArListVo> getGoblinStoreMgtGoodsSkuArListVoPagedResult() {
return goblinStoreMgtGoodsSkuArListVoPagedResult.clone();
}
public static ArrayList<GoblinMailVo> goblinMailVo() {
return (ArrayList<GoblinMailVo>) goblinMailVo.clone();
}
......
......@@ -64,6 +64,9 @@
149016=\u8BF7\u5148\u5C06\u5546\u54C1\u4E0B\u67B6\u540E\u64CD\u4F5C
149017=\u8BF7\u5148\u5C06\u6D3B\u52A8\u505C\u7528\u540E\u64CD\u4F5C
149018=\u85CF\u54C1\u540D\u79F0\u91CD\u590D\uFF0C\u8BF7\u6838\u5B9E
149019=\u85CF\u54C1AR\u6587\u4EF6\u5DF2\u6DFB\u52A0\uFF0C\u8BF7\u6838\u5B9E
149020=\u85CF\u54C1\u672A\u6DFB\u52A0AR\u6587\u4EF6\uFF0C\u8BF7\u6838\u5B9E
149021=\u8BF7\u70B9\u9009\u85CF\u54C1\u540E\u64CD\u4F5C
148001=\u6B63\u5728\u4E0B\u5355\u5E93\u5B58\u4E0D\u8DB3
......
......@@ -60,6 +60,9 @@ goblin_goods_sku.update_by_del_store=UPDATE goblin_goods_sku SET del_flg='1',upd
goblin_goods_sku.update_by_del_spu=UPDATE goblin_goods_sku SET del_flg='1',updated_by=?,updated_at=?,deleted_by=?,deleted_at=? WHERE spu_id=? AND del_flg='0'
goblin_goods_sku.update_by_del=UPDATE goblin_goods_sku SET del_flg='1',updated_by=?,updated_at=?,deleted_by=?,deleted_at=? WHERE sku_id=? AND del_flg='0'
goblin_goods_sku_extra.add_ar=INSERT INTO goblin_goods_sku_extra (sku_id,ar_url_ios,ar_url_android,del_flg,created_by,created_at) VALUES (?,?,?,'0',?,?)
goblin_goods_sku_extra.edit_ar=UPDATE goblin_goods_sku_extra SET ar_url_ios=?,ar_url_android=?,updated_by=?,updated_at=? WHERE sku_id=? AND del_flg='0'
#goblin_goods_sku_nft.insert_for_digital=INSERT INTO goblin_goods_sku_nft (sku_id,route_type,material_type,material_url,upchain,display_url,nft_url,series_id,series_hash,nft_hash,declare_at,created_at)VALUES(?,?,?,?,?,?,?,?,?,?,?,?)
goblin_goods_sku_nft.insert_for_digital=INSERT INTO goblin_goods_sku_nft (sku_id,route_type,material_type,material_url,upchain,display_url,nft_url,created_at)VALUES(?,?,?,?,?,?,?,?)
#goblin_goods_sku_nft.update_for_digital=UPDATE goblin_goods_sku_nft SET upchain=?,series_id=?,series_hash=?,nft_hash=?,declare_at=?,updated_at=? WHERE skuId=? AND upchain=9
......@@ -146,7 +149,7 @@ goblin_goods_anticipate_user_update_sku=UPDATE goblin_goods_anticipate_user SET
adam_user_busi_acct.add=INSERT INTO adam_user_busi_acct (`uid`, busi, uuid, `work`, ppwd, `state`, created_at) VALUES (?,?,?,?,?,?,?)
#---- 黑白名单 ----
#---- \u9ED1\u767D\u540D\u5355 ----
goblin_list_insert = "INSERT INTO goblin_list (`list_id`,`uid`,`name`,`white_type`,`white_url`,`advance_min``,`black_url`,`created_at`) VALUES (?,?,?,?,?,?,?,?)"
goblin_list_detail_insert = "INSERT INTO goblin_list_details (`list_id`,`spu_id`,`sku_id`,`created_at`) VALUES (?,?,?,?)"
goblin_list_update = "UPDATE goblin_list SET white_url = ? ,white_type = ? , black_url = ? , updated_at = ? WHERE list_id = ?"
\ 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