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

Commit 0c53da83 authored by 胡佳晨's avatar 胡佳晨

提交接口

parent c0116767
......@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
@Data
......@@ -30,6 +31,8 @@ public class GoblinListDetailsVo implements Serializable, Cloneable {
private String blackUrl;
@ApiModelProperty(value = "商品数据")
private List<GoblinListDetailsItemVo> itemVo;
@ApiModelProperty(value = "创建时间")
private String createdAt;
private static final GoblinListDetailsVo obj = new GoblinListDetailsVo();
......
......@@ -28,4 +28,6 @@ public interface IGoblinListService {
ResponseDto<Boolean> create(GoblinListCreateParam param);
ResponseDto<Boolean> update(GoblinListUpdateParam param);
ResponseDto<Boolean> delete(String listId);
}
......@@ -74,6 +74,11 @@ public class GoblinList implements Serializable {
*/
private String blackUrl;
/**
* 删除标记
*/
private String delTag;
/**
* 补充字段
*/
......
......@@ -9,9 +9,10 @@ CREATE TABLE `goblin_list`
`white_url` varchar(512) DEFAULT '' COMMENT '白名单xls地址',
`time_start` datetime DEFAULT null COMMENT '开始时间',
`time_end` datetime DEFAULT null COMMENT '结束时间',
`tag_type` int DEFAULT 0 COMMIT '标签[0-提前购买|1-分段购买]',
`tag_type` int DEFAULT 0 COMMENT '标签[0-提前购买|1-分段购买]',
`black_type` int DEFAULT 1 COMMENT '黑名单类型[0-会员|1-指定用户]',
`black_url` varchar(512) DEFAULT '' COMMENT '黑名单xls地址',
`del_tag` int DEFAULT 0 COMMENT '是否删除[0-否|1-是]',
`comment` varchar(255) DEFAULT '' COMMENT '补充字段',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
......
......@@ -50,7 +50,7 @@ public class GoblinListController {
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "listId", value = "名单id"),
})
@GetMapping("details")
public ResponseDto<GoblinListDetailsVo> details(@NotBlank(message = "店铺ID不能为空") @RequestParam String listId) {
public ResponseDto<GoblinListDetailsVo> details(@NotBlank(message = "集合ID不能为空") @RequestParam String listId) {
return goblinListService.getDetails(listId);
}
......@@ -67,4 +67,14 @@ public class GoblinListController {
return goblinListService.update(param);
}
@ApiOperationSupport(order = 1)
@ApiOperation(value = "删除")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "listId", value = "名单id"),
})
@DeleteMapping("delete")
public ResponseDto<Boolean> update(@NotBlank(message = "集合ID不能为空") @RequestParam String listId) {
return goblinListService.delete(listId);
}
}
......@@ -3,6 +3,7 @@ package com.liquidnet.service.goblin.service.impl.manage;
import com.github.pagehelper.PageInfo;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.base.ResponseDto;
......@@ -20,6 +21,7 @@ import com.liquidnet.service.goblin.util.QueueUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.DateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
......@@ -128,8 +130,8 @@ public class GoblinListServiceImpl implements IGoblinListService {
}
collectVos = redisUtils.getGoblinListCollect(skuId);
for (GoblinListCollectVo collectItem : collectVos) {
if ((st.isAfter(collectItem.getTimeStart().minusSeconds(1)) && st.isBefore(collectItem.getTimeEnd().plusSeconds(1))) ||
(et.isAfter(collectItem.getTimeStart().minusSeconds(1)) && et.isBefore(collectItem.getTimeEnd().plusSeconds(1)))) {
if ((st.isAfter(collectItem.getTimeStart().minusSeconds(1)) && st.isBefore(collectItem.getTimeEnd().minusSeconds(1))) ||
(et.isAfter(collectItem.getTimeStart().minusSeconds(1)) && et.isBefore(collectItem.getTimeEnd().minusSeconds(1)))) {
return ResponseDto.failure("sku时间不能重合");
}
}
......@@ -139,7 +141,7 @@ public class GoblinListServiceImpl implements IGoblinListService {
}
collectVos = redisUtils.getGoblinListCollect(skuId);
for (GoblinListCollectVo collectItem : collectVos) {
if (st.isAfter(collectItem.getTimeStart().minusSeconds(1)) && st.isBefore(collectItem.getTimeEnd().plusSeconds(1))) {
if (st.isAfter(collectItem.getTimeStart().minusSeconds(1)) && st.isBefore(collectItem.getTimeEnd().minusSeconds(1))) {
return ResponseDto.failure("sku时间不能重合");
}
}
......@@ -154,6 +156,7 @@ public class GoblinListServiceImpl implements IGoblinListService {
vo.setTimeStart(param.getTimeStart());
vo.setTimeEnd(param.getTimeEnd());
vo.setWhiteType(param.getWhiteType());
vo.setCreatedAt(DateUtil.format(now, DateUtil.Formatter.yyyyMMddHHmmss));
//判断 白名单类型
if (param.getWhiteType().equals(1)) {//需要xls文件
if (param.getWhiteUrl() == null || param.getWhiteUrl().equals("")) {
......@@ -172,6 +175,7 @@ public class GoblinListServiceImpl implements IGoblinListService {
itemVo.setPriceV(item.getPriceV());
itemVo.setSkuStock(item.getSkuStock());
itemVo.setProductId(item.getProductId());
voItemList.add(itemVo);
//库存
int skuStock = redisUtils.decrSkuStock(null, itemVo.getSkuId(), itemVo.getSkuStock());
if (skuStock < 0) {
......@@ -239,10 +243,31 @@ public class GoblinListServiceImpl implements IGoblinListService {
queueUtils.sendMsgByRedisXls(param.getBlackUrl(), blackUrl, "4", item.getSkuId());
}
redisUtils.setGoblinListDetailsVo(vo);
mongoUtils.changeGoblinListDetailsVo(param.getListId(), vo);
mongoUtils.changeGoblinListDetailsVo(vo);
//sql入库
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.GOBLIN_STORE_MARKET.getKey(),
SqlMapping.get("goblin_list_update", param.getWhiteUrl(), param.getWhiteType(), param.getBlackUrl(), now, param.getListId()));
return ResponseDto.success();
}
@Override
public ResponseDto<Boolean> delete(String listId) {
LocalDateTime now = LocalDateTime.now();
GoblinListDetailsVo vo = redisUtils.getGoblinListDetailsVo(listId);
if (vo == null || !vo.getUid().equals(CurrentUtil.getCurrentUid())) {
return ResponseDto.failure("信息错误");
}
for (GoblinListDetailsItemVo item : vo.getItemVo()) {
// 白名单
queueUtils.sendMsgByRedisXls("", vo.getWhiteUrl(), "3", item.getSkuId());
// 黑名单
queueUtils.sendMsgByRedisXls("", vo.getBlackUrl(), "4", item.getSkuId());
}
redisUtils.delGoblinListDetailsVo(listId);
mongoUtils.removeGoblinListDetailsVo(listId);
//sql入库
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.GOBLIN_STORE_MARKET.getKey(),
SqlMapping.get("goblin_list_remove", now, listId));
return ResponseDto.success();
}
}
......@@ -1614,22 +1614,26 @@ public class GoblinMongoUtils {
mongoTemplate.insert(vo, GoblinListDetailsVo.class.getSimpleName());
}
public Boolean changeGoblinListDetailsVo(String ucouponId, GoblinListDetailsVo vo) {
public void removeGoblinListDetailsVo(String listId) {
mongoTemplate.remove(Query.query(Criteria.where("listId").is(listId)), GoblinListDetailsVo.class.getSimpleName());
}
public Boolean changeGoblinListDetailsVo(GoblinListDetailsVo vo) {
return mongoTemplate.getCollection(GoblinListDetailsVo.class.getSimpleName())
.updateOne(Query.query(Criteria.where("ucouponId").is(ucouponId)).getQueryObject(),
.updateOne(Query.query(Criteria.where("listId").is(vo.getListId())).getQueryObject(),
ObjectUtil.cloneBasicDBObject().append("$set", mongoConverter.convertToMongoType(vo))
).getModifiedCount() > 0;
}
public HashMap<String, Object> getGoblinListVo(String name,String uid, Integer pageNum) {
public HashMap<String, Object> getGoblinListVo(String name, String uid, Integer pageNum) {
int pageSize = 20;
Criteria criteria = Criteria.where("uid").is(uid);
if(name!=null&&!name.equals("")){
if (name != null && !name.equals("")) {
criteria = criteria.and("name").regex("^.*" + name + ".*$");
}
Query query = Query.query(criteria);
long total = mongoTemplate.count(query,GoblinListDetailsVo.class, GoblinListDetailsVo.class.getSimpleName());
long total = mongoTemplate.count(query, GoblinListDetailsVo.class, GoblinListDetailsVo.class.getSimpleName());
query.with(PageRequest.of(pageNum - 1, pageSize)).with(Sort.by(Sort.Order.desc("createdAt")));
List<GoblinListDetailsVo> list = mongoTemplate.find(query, GoblinListDetailsVo.class, GoblinListDetailsVo.class.getSimpleName());
......
......@@ -1727,6 +1727,10 @@ public class GoblinRedisUtils {
redisUtil.set(GoblinRedisConst.LIST_DETAILS.concat(vo.getListId()), vo);
}
public void delGoblinListDetailsVo(String listId){
redisUtil.del(GoblinRedisConst.LIST_DETAILS.concat(listId));
}
public GoblinListDetailsVo getGoblinListDetailsVo(String listId) {
Object obj = redisUtil.get(GoblinRedisConst.LIST_DETAILS.concat(listId));
if (obj == null) {
......
......@@ -150,6 +150,7 @@ adam_user_busi_acct.add=INSERT INTO adam_user_busi_acct (`uid`, busi, uuid, `wor
#---- \u9ED1\u767D\u540D\u5355 ----
goblin_list_insert = "INSERT INTO goblin_list (`list_id`,`uid`,`name`,`white_type`,`white_url`,`time_start`,`time_end`,`tag_type`,`black_url`,`created_at`) VALUES (?,?,?,?,?,?,?,?,?,?)"
goblin_list_detail_insert = "INSERT INTO goblin_list_details (`list_id`,`spu_id`,`sku_id`,`created_at`,`sku_stock`,`price_v`,`product_id`,`price`) 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
goblin_list_insert = INSERT INTO goblin_list (`list_id`,`uid`,`name`,`white_type`,`white_url`,`time_start`,`time_end`,`tag_type`,`black_url`,`created_at`) VALUES (?,?,?,?,?,?,?,?,?,?)
goblin_list_detail_insert = INSERT INTO goblin_list_details (`list_id`,`spu_id`,`sku_id`,`created_at`,`sku_stock`,`price_v`,`product_id`,`price`) VALUES (?,?,?,?,?,?,?,?)
goblin_list_update = UPDATE goblin_list SET white_url = ? ,white_type = ? , black_url = ? , updated_at = ? WHERE list_id = ?
goblin_list_remove = UPDATE goblin_list set del_tag = 1 , 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