Commit 9a3b79e2 by shenjunjie

小红书定制模块后台部分

parent 321a1b2f
...@@ -10,15 +10,9 @@ import com.zhiwei.brandkbs2.enmus.RoleEnum; ...@@ -10,15 +10,9 @@ import com.zhiwei.brandkbs2.enmus.RoleEnum;
import com.zhiwei.brandkbs2.model.ResponseResult; import com.zhiwei.brandkbs2.model.ResponseResult;
import com.zhiwei.brandkbs2.pojo.dto.TagFilterDTO; import com.zhiwei.brandkbs2.pojo.dto.TagFilterDTO;
import com.zhiwei.brandkbs2.pojo.vo.ProjectVO; import com.zhiwei.brandkbs2.pojo.vo.ProjectVO;
import com.zhiwei.brandkbs2.service.HighWordService; import com.zhiwei.brandkbs2.service.*;
import com.zhiwei.brandkbs2.service.HighlightWordService;
import com.zhiwei.brandkbs2.service.ProjectService;
import com.zhiwei.brandkbs2.service.TagFilterService;
import com.zhiwei.brandkbs2.util.Tools; import com.zhiwei.brandkbs2.util.Tools;
import io.swagger.annotations.Api; import io.swagger.annotations.*;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
...@@ -46,6 +40,9 @@ public class BaseModuleController extends BaseController { ...@@ -46,6 +40,9 @@ public class BaseModuleController extends BaseController {
@Resource(name = "highlightWordServiceImpl") @Resource(name = "highlightWordServiceImpl")
HighlightWordService highlightWordService; HighlightWordService highlightWordService;
@Resource(name = "xiaohongshuWordServiceImpl")
XiaohongshuWordService xiaohongshuWordService;
@Resource(name = "projectServiceImpl") @Resource(name = "projectServiceImpl")
ProjectService projectService; ProjectService projectService;
...@@ -146,4 +143,29 @@ public class BaseModuleController extends BaseController { ...@@ -146,4 +143,29 @@ public class BaseModuleController extends BaseController {
return ResponseResult.success(); return ResponseResult.success();
} }
@ApiOperation("获取舆情分析小红书关键词(小红书定制模块)")
@ApiImplicitParams({@ApiImplicitParam(name = "page", value = "页码", defaultValue = "1", paramType = "query", dataType = "int"), @ApiImplicitParam(name = "size", value = "每页记录数", defaultValue = "10", paramType = "query", dataType = "int"), @ApiImplicitParam(name = "keyword", value = "搜索关键字", paramType = "query", dataType = "string")})
@GetMapping("/xiaohongshuWord/list")
public ResponseResult findXiaohongshuWordList(@RequestParam(value = "page", defaultValue = "1") int page,
@RequestParam(value = "pageSize", defaultValue = "10") int pageSize,
@RequestParam(value = "keyword", defaultValue = "") String keyword) {
return ResponseResult.success(xiaohongshuWordService.findWord(page, pageSize, keyword));
}
@ApiOperation("新增舆情分析小红书关键词(小红书定制模块)")
@PostMapping("/highlightWord/add")
public ResponseResult addXiaohongshuWordList(@ApiParam(name = "info:{keyword:关键词, planName:方案名)") @RequestBody JSONObject info) {
String keyword = info.getString("keyword");
String planName = info.getString("planName");
return xiaohongshuWordService.addWord(keyword, planName, UserThreadLocal.getProjectId(), UserThreadLocal.getNickname());
}
@ApiOperation("删除舆情分析小红书关键词(小红书定制模块)")
@PostMapping("/highlightWord/delete{id}")
public ResponseResult deleteXiaohongshuWord(@PathVariable String id) {
xiaohongshuWordService.deleteWord(id);
return ResponseResult.success();
}
} }
...@@ -119,4 +119,17 @@ public class ExtraController extends BaseController { ...@@ -119,4 +119,17 @@ public class ExtraController extends BaseController {
extraService.adjustInteractionRecord(json.getInteger("count")); extraService.adjustInteractionRecord(json.getInteger("count"));
return ResponseResult.success(); return ResponseResult.success();
} }
@ApiOperation("互动量更新-舆情分析-数据更新用量(小红书定制模块)")
@ApiImplicitParams({@ApiImplicitParam(name = "startTime", value = "起始时间", paramType = "query", dataType = "long"),
@ApiImplicitParam(name = "endTime", value = "结束时间", paramType = "query", dataType = "long"),
@ApiImplicitParam(name = "timeType", defaultValue = "week", value = "时间类型字段(week/month)", paramType = "query", dataType = "string")}
)
@GetMapping("/xiaohongshuRecord")
public ResponseResult findXiaohongshuRecordList(@RequestParam(value = "startTime") long startTime,
@RequestParam(value = "endTime") long endTime,
@RequestParam(value = "timeType", defaultValue = "week") String timeType) {
return ResponseResult.success(extraService.xiaohongshuRecordLog(startTime, endTime, timeType));
}
} }
package com.zhiwei.brandkbs2.dao;
import com.zhiwei.brandkbs2.pojo.XiaohongshuRecord;
import com.zhiwei.brandkbs2.pojo.vo.LineVO;
import java.util.List;
/**
* @ClassName: XiaohongshuRecordDao
* @Description XiaohongshuRecordDao
* @author: sjj
* @date: 2024-06-28 17:41
*/
public interface XiaohongshuRecordDao extends BaseMongoDao<XiaohongshuRecord> {
/**
* @param startTime 起始时间
* @param endTime 结束时间
* @param timeType 时间类型
* @return list
*/
List<LineVO> aggregateDayLastRecord(long startTime, long endTime, String timeType);
}
package com.zhiwei.brandkbs2.dao;
import com.zhiwei.brandkbs2.pojo.XiaohongshuWord;
/**
* @ClassName: XiaohongshuWordDao
* @Description XiaohongshuWordDao
* @author: sjj
* @date: 2024-06-28 14:08
*/
public interface XiaohongshuWordDao extends BaseMongoDao<XiaohongshuWord>{
}
package com.zhiwei.brandkbs2.dao.impl;
import com.alibaba.fastjson.JSONObject;
import com.zhiwei.brandkbs2.auth.UserThreadLocal;
import com.zhiwei.brandkbs2.dao.XiaohongshuRecordDao;
import com.zhiwei.brandkbs2.pojo.XiaohongshuRecord;
import com.zhiwei.brandkbs2.pojo.vo.LineVO;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.aggregation.Aggregation;
import org.springframework.data.mongodb.core.aggregation.AggregationOperation;
import org.springframework.data.mongodb.core.aggregation.AggregationResults;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
/**
* @ClassName: XiaohongshuRecordDaoImpl
* @Description XiaohongshuRecordDaoImpl
* @author: sjj
* @date: 2024-06-28 17:43
*/
@Component("xiaohongshuRecordDao")
public class XiaohongshuRecordDaoImpl extends BaseMongoDaoImpl<XiaohongshuRecord> implements XiaohongshuRecordDao {
private static final String COLLECTION_NAME = "brandkbs_xiaohongshu_record";
public XiaohongshuRecordDaoImpl() {
super(COLLECTION_NAME);
}
@Override
public List<LineVO> aggregateDayLastRecord(long startTime, long endTime, String timeType) {
// 2024-06-19 前10位,代表天级;则前7位代表月级
int norOfChars = 10;
if (timeType.equals("month")) {
norOfChars = 7;
}
List<LineVO> res = new ArrayList<>();
Criteria criteria = Criteria.where("projectId").is(UserThreadLocal.getProjectId());
List<AggregationOperation> operations = new ArrayList<>();
// operations区分先后顺序
operations.add(Aggregation.match(criteria));
operations.add(Aggregation.project("currentCount").and("cTime").substring(0, norOfChars).as("cTime"));
operations.add(Aggregation.group("cTime").last("currentCount").as("count"));
operations.add(Aggregation.sort(Sort.by(Sort.Order.asc("_id"))));
Aggregation aggregation = Aggregation.newAggregation(operations);
// 聚合结果
AggregationResults<JSONObject> aggregateResult = mongoTemplate.aggregate(aggregation, COLLECTION_NAME, JSONObject.class);
List<JSONObject> mappedResults = aggregateResult.getMappedResults();
for (JSONObject mappedResult : mappedResults) {
res.add(new LineVO(mappedResult.getLong("count"), mappedResult.getDate("_id").getTime()));
}
return res;
}
}
package com.zhiwei.brandkbs2.dao.impl;
import com.zhiwei.brandkbs2.dao.XiaohongshuWordDao;
import com.zhiwei.brandkbs2.pojo.XiaohongshuWord;
import org.springframework.stereotype.Component;
/**
* @ClassName: XiaohongshuWordDaoImpl
* @Description XiaohongshuWordDaoImpl
* @author: sjj
* @date: 2024年6月28日16:02:03
*/
@Component("xiaohongshuWordDao")
public class XiaohongshuWordDaoImpl extends BaseMongoDaoImpl<XiaohongshuWord> implements XiaohongshuWordDao {
private static final String COLLECTION_NAME = "brandkbs_xiaohongshu_word";
public XiaohongshuWordDaoImpl() {
super(COLLECTION_NAME);
}
}
...@@ -36,16 +36,18 @@ public abstract class AbstractBaseWord extends AbstractBaseMongo { ...@@ -36,16 +36,18 @@ public abstract class AbstractBaseWord extends AbstractBaseMongo {
*/ */
private String projectId; private String projectId;
public static <T> List<T> createFromList(List<String> keywords, String projectId, String submitter) { abstract AbstractBaseWord newInstance();
public <T extends AbstractBaseWord> List<T> createFromList(List<String> keywords, String projectId, String submitter) {
List<T> res = new ArrayList<>(); List<T> res = new ArrayList<>();
Long now = System.currentTimeMillis(); Long now = System.currentTimeMillis();
for (String keyword : keywords) { for (String keyword : keywords) {
AbstractBaseWord word = new HighWord(); T word = (T) newInstance();
word.setKeyword(keyword); word.setKeyword(keyword);
word.setCTime(now); word.setCTime(now);
word.setProjectId(projectId); word.setProjectId(projectId);
word.setSubmitter(submitter); word.setSubmitter(submitter);
res.add((T) word); res.add(word);
} }
return res; return res;
} }
......
...@@ -14,4 +14,8 @@ import org.springframework.data.mongodb.core.mapping.Document; ...@@ -14,4 +14,8 @@ import org.springframework.data.mongodb.core.mapping.Document;
@Setter @Setter
@Document(collection = "brandkbs_high_word") @Document(collection = "brandkbs_high_word")
public class HighWord extends AbstractBaseWord { public class HighWord extends AbstractBaseWord {
@Override
AbstractBaseWord newInstance() {
return new HighWord();
}
} }
...@@ -14,4 +14,8 @@ import org.springframework.data.mongodb.core.mapping.Document; ...@@ -14,4 +14,8 @@ import org.springframework.data.mongodb.core.mapping.Document;
@Setter @Setter
@Document(collection = "brandkbs_highlight_word") @Document(collection = "brandkbs_highlight_word")
public class HighlightWord extends AbstractBaseWord { public class HighlightWord extends AbstractBaseWord {
@Override
AbstractBaseWord newInstance() {
return new HighlightWord();
}
} }
...@@ -34,10 +34,9 @@ public class Project extends AbstractProject { ...@@ -34,10 +34,9 @@ public class Project extends AbstractProject {
private List<Contend> contendList; private List<Contend> contendList;
/** /**
* 模块展示列表(1:标注库 2:大库) * 模块展示列表(xiaohongshu:达达项目定制化)
*/ */
@Deprecated private List<String> moduleShowList;
private List<Integer> moduleShowList;
/** /**
* 工具库功能入口展示列表(目前有:摘要提取,互动量更新,词云,字节影响力计算,其中前三者默认开启) * 工具库功能入口展示列表(目前有:摘要提取,互动量更新,词云,字节影响力计算,其中前三者默认开启)
......
package com.zhiwei.brandkbs2.pojo;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
/**
* @ClassName: XiaohongshuRecord
* @Description 小红书定制模块更新互动量记录
* @author: sjj
* @date: 2024年6月28日17:24:30
*/
@Getter
@Setter
public class XiaohongshuRecord extends AbstractBaseMongo{
/**
* 项目id
*/
private String projectId;
/**
* 本次使用数值
*/
private int usedCount;
/**
* 提交人
*/
private String submitter;
/**
* 创建时间(Date类型方便聚合查询)
*/
private Date cTime;
public static XiaohongshuRecord createUsedRecord(String projectId, int usedCount, String submitter) {
XiaohongshuRecord record = new XiaohongshuRecord();
record.projectId = projectId;
record.usedCount = usedCount;
record.submitter = submitter;
record.cTime = new Date();
return record;
}
}
package com.zhiwei.brandkbs2.pojo;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.mongodb.core.mapping.Document;
/**
* @ClassName: XiaohongshuWord
* @Description 小红书定制配置词
* @author: sjj
* @date: 2024-06-28 14:08
*/
@Getter
@Setter
@Document(collection = "brandkbs_xiaohongshu_word")
public class XiaohongshuWord extends AbstractBaseWord {
private String planName;
@Override
AbstractBaseWord newInstance() {
return new XiaohongshuWord();
}
}
...@@ -88,10 +88,10 @@ public class ProjectVO { ...@@ -88,10 +88,10 @@ public class ProjectVO {
private List<Contend> contendList; private List<Contend> contendList;
/** /**
* 模块展示列表(1:标注库 2:大库) * 模块展示列表(xiaohongshu:达达项目定制化)
*/ */
@ApiModelProperty("舆情数据源(模块展示列表(1:标注库 2:大库))") @ApiModelProperty("xiaohongshu:达达项目定制化")
private List<Integer> moduleShowList; private List<String> moduleShowList;
/** /**
* 工具库功能入口展示列表(目前有:摘要提取,互动量更新,词云,字节影响力计算,其中前三者默认开启) * 工具库功能入口展示列表(目前有:摘要提取,互动量更新,词云,字节影响力计算,其中前三者默认开启)
......
...@@ -115,4 +115,12 @@ public interface ExtraService { ...@@ -115,4 +115,12 @@ public interface ExtraService {
* @param usedCount 使用次数 * @param usedCount 使用次数
*/ */
void decreaseInteractionRecord(InteractionUpdateRecord.UsedType usedType, Integer usedCount); void decreaseInteractionRecord(InteractionUpdateRecord.UsedType usedType, Integer usedCount);
/**
* 数据总览
*
* @return json
*/
JSONObject xiaohongshuRecordLog(long startTime, long endTime, String timeType);
} }
package com.zhiwei.brandkbs2.service;
import com.zhiwei.brandkbs2.model.ResponseResult;
/**
* @ClassName: XiaohongshuWordService
* @Description 小红书定制模块关键词接口
* @author: sjj
* @date: 2024-06-28 10:09
*/
public interface XiaohongshuWordService extends TableWordService{
/**
* 添加关键词
* @param keyword 关键词
* @param planName 方案名
* @param projectId 项目id
* @param submitter 提交人
* @return
*/
ResponseResult addWord(String keyword, String planName, String projectId, String submitter);
}
...@@ -6,8 +6,9 @@ import com.zhiwei.brandkbs2.config.Constant; ...@@ -6,8 +6,9 @@ import com.zhiwei.brandkbs2.config.Constant;
import com.zhiwei.brandkbs2.dao.InteractionUpdateRecordDao; import com.zhiwei.brandkbs2.dao.InteractionUpdateRecordDao;
import com.zhiwei.brandkbs2.dao.ProjectDao; import com.zhiwei.brandkbs2.dao.ProjectDao;
import com.zhiwei.brandkbs2.dao.WholeSearchRecordDao; import com.zhiwei.brandkbs2.dao.WholeSearchRecordDao;
import com.zhiwei.brandkbs2.pojo.Project; import com.zhiwei.brandkbs2.dao.XiaohongshuRecordDao;
import com.zhiwei.brandkbs2.pojo.InteractionUpdateRecord; import com.zhiwei.brandkbs2.pojo.InteractionUpdateRecord;
import com.zhiwei.brandkbs2.pojo.Project;
import com.zhiwei.brandkbs2.pojo.WholeSearchRecord; import com.zhiwei.brandkbs2.pojo.WholeSearchRecord;
import com.zhiwei.brandkbs2.pojo.vo.PageVO; import com.zhiwei.brandkbs2.pojo.vo.PageVO;
import com.zhiwei.brandkbs2.service.ExtraService; import com.zhiwei.brandkbs2.service.ExtraService;
...@@ -20,7 +21,6 @@ import org.springframework.stereotype.Service; ...@@ -20,7 +21,6 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -38,6 +38,9 @@ public class ExtraServiceImpl implements ExtraService { ...@@ -38,6 +38,9 @@ public class ExtraServiceImpl implements ExtraService {
@Resource(name = "interactionUpdateRecordDao") @Resource(name = "interactionUpdateRecordDao")
private InteractionUpdateRecordDao interactionUpdateRecordDao; private InteractionUpdateRecordDao interactionUpdateRecordDao;
@Resource(name = "xiaohongshuRecordDao")
private XiaohongshuRecordDao xiaohongshuRecordDao;
@Resource(name = "projectDao") @Resource(name = "projectDao")
private ProjectDao projectDao; private ProjectDao projectDao;
...@@ -204,6 +207,17 @@ public class ExtraServiceImpl implements ExtraService { ...@@ -204,6 +207,17 @@ public class ExtraServiceImpl implements ExtraService {
interactionUpdateRecordDao.insertOne(record, interactionUpdateRecordDao.generateCollectionName()); interactionUpdateRecordDao.insertOne(record, interactionUpdateRecordDao.generateCollectionName());
} }
@Override
public JSONObject xiaohongshuRecordLog(long startTime, long endTime, String timeType) {
JSONObject json = new JSONObject();
Query query = new Query();
query.addCriteria(Criteria.where("projectId").is(UserThreadLocal.getProjectId()));
query.addCriteria(Criteria.where("cTime").gte(new Date(startTime)).lt(new Date(endTime)));
json.put("count", xiaohongshuRecordDao.count(query));
json.put("trendList", xiaohongshuRecordDao.aggregateDayLastRecord(startTime, endTime, timeType));
return json;
}
private List<JSONObject> interactionUsedList(Query query, String... collectionNames) { private List<JSONObject> interactionUsedList(Query query, String... collectionNames) {
return interactionUpdateRecordDao.findList(query, collectionNames).stream().map(record -> { return interactionUpdateRecordDao.findList(query, collectionNames).stream().map(record -> {
JSONObject json = new JSONObject(); JSONObject json = new JSONObject();
......
...@@ -801,9 +801,11 @@ public class ProjectServiceImpl implements ProjectService { ...@@ -801,9 +801,11 @@ public class ProjectServiceImpl implements ProjectService {
*/ */
private List<Map<String, Object>> getPermissionList(Project project) { private List<Map<String, Object>> getPermissionList(Project project) {
List<Map<String, Object>> permissionList = new ArrayList<>(); List<Map<String, Object>> permissionList = new ArrayList<>();
Map<String, Object> originPermission = new HashMap<>(); // 定制化模块权限
originPermission.put("origin", Objects.nonNull(project.getModuleShowList()) && project.getModuleShowList().contains(2)); List<String> moduleShowList = project.getModuleShowList();
permissionList.add(originPermission); Map<String, Object> customPermission = new HashMap<>();
customPermission.put("xiaohongshu", Objects.nonNull(moduleShowList) && moduleShowList.contains("xiaohongshu"));
permissionList.add(customPermission);
// 友好渠道榜、敏感渠道榜是否有数据 // 友好渠道榜、敏感渠道榜是否有数据
Map<String, Object> channelPermission = new HashMap<>(); Map<String, Object> channelPermission = new HashMap<>();
JSONObject jsonObject = GlobalPojo.PROJECT_EMOTION_CHANNEL_DATA.get(project.getId()); JSONObject jsonObject = GlobalPojo.PROJECT_EMOTION_CHANNEL_DATA.get(project.getId());
......
...@@ -22,7 +22,7 @@ import java.util.stream.Collectors; ...@@ -22,7 +22,7 @@ import java.util.stream.Collectors;
* @author: sjj * @author: sjj
* @date: 2023-05-25 14:35 * @date: 2023-05-25 14:35
*/ */
public class TableWordServiceImpl implements TableWordService{ public class TableWordServiceImpl implements TableWordService {
final BaseMongoDao<? extends AbstractBaseWord> baseMongoDao; final BaseMongoDao<? extends AbstractBaseWord> baseMongoDao;
final MongoUtil mongoUtil; final MongoUtil mongoUtil;
...@@ -60,7 +60,7 @@ public class TableWordServiceImpl implements TableWordService{ ...@@ -60,7 +60,7 @@ public class TableWordServiceImpl implements TableWordService{
if (newList.size() + existList.size() > 100) { if (newList.size() + existList.size() > 100) {
return ResponseResult.failure("关键词添加超过上限值100"); return ResponseResult.failure("关键词添加超过上限值100");
} }
baseMongoDao.insertMany(HighWord.createFromList(newList, projectId, submitter)); baseMongoDao.insertMany(new HighWord().createFromList(newList, projectId, submitter));
return ResponseResult.success(); return ResponseResult.success();
} }
......
package com.zhiwei.brandkbs2.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.zhiwei.brandkbs2.auth.UserThreadLocal;
import com.zhiwei.brandkbs2.dao.XiaohongshuWordDao;
import com.zhiwei.brandkbs2.model.ResponseResult;
import com.zhiwei.brandkbs2.pojo.XiaohongshuWord;
import com.zhiwei.brandkbs2.pojo.vo.PageVO;
import com.zhiwei.brandkbs2.service.XiaohongshuWordService;
import com.zhiwei.brandkbs2.util.MongoUtil;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
/**
* @ClassName: XiaohongshuWordServiceImpl
* @Description 小红书定制模块关键词接口实现类
* @author: sjj
* @date: 2024-06-28 10:11
*/
@Service("xiaohongshuWordServiceImpl")
public class XiaohongshuWordServiceImpl extends TableWordServiceImpl implements XiaohongshuWordService {
final XiaohongshuWordDao xiaohongshuWordDao;
public XiaohongshuWordServiceImpl(@Qualifier("xiaohongshuWordDao") XiaohongshuWordDao xiaohongshuWordDao, @Qualifier("mongoUtil") MongoUtil mongoUtil) {
super(xiaohongshuWordDao, mongoUtil);
this.xiaohongshuWordDao = xiaohongshuWordDao;
}
@Override
public PageVO<JSONObject> findWord(int page, int size, String keyword) {
String projectId = UserThreadLocal.getProjectId();
Query query = Query.query(Criteria.where("projectId").is(projectId));
long count = xiaohongshuWordDao.count(query);
mongoUtil.start(page, size, query);
List<XiaohongshuWord> xiaohongshuWords = xiaohongshuWordDao.findListByKeywordFuzz(query, keyword, new String[]{"keyword"});
List<JSONObject> resList = xiaohongshuWords.stream().map(xiaohongshuWord -> {
JSONObject result = new JSONObject();
result.put("id", xiaohongshuWord.getId());
result.put("keyword", xiaohongshuWord.getKeyword());
result.put("cTime", xiaohongshuWord.getCTime());
result.put("submitter", xiaohongshuWord.getSubmitter());
result.put("planName", xiaohongshuWord.getPlanName());
return result;
}).collect(Collectors.toList());
MongoUtil.PageHelper<JSONObject> pageHelper = mongoUtil.pageHelper(count, resList);
return PageVO.createPageVo(pageHelper, resList);
}
@Override
public ResponseResult addWord(String keyword, String planName, String projectId, String submitter) {
long count = xiaohongshuWordDao.count(Query.query(Criteria.where("projectId").is(projectId)));
// 关键词10上限
if (count >= 10) {
return ResponseResult.failure("新增方案添加超过上限值10");
}
XiaohongshuWord xiaohongshuWord = new XiaohongshuWord();
xiaohongshuWord.setKeyword(keyword);
xiaohongshuWord.setPlanName(planName);
xiaohongshuWord.setProjectId(projectId);
xiaohongshuWord.setSubmitter(submitter);
xiaohongshuWord.setCTime(System.currentTimeMillis());
xiaohongshuWordDao.insertOne(xiaohongshuWord);
return ResponseResult.success();
}
}
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