From 7e7db2fa55a9a3af46d4fd8ede0dee147f101d64 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期六, 09 五月 2020 21:41:27 +0800 Subject: [PATCH] 2.1需求 --- fanli/src/main/java/com/yeshi/fanli/dao/user/ThreeSaleFocusInfoDao.java | 174 +++++++++++++++++++++++++++++++++------------------------ 1 files changed, 100 insertions(+), 74 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/dao/user/ThreeSaleFocusInfoDao.java b/fanli/src/main/java/com/yeshi/fanli/dao/user/ThreeSaleFocusInfoDao.java index a60a386..9481784 100644 --- a/fanli/src/main/java/com/yeshi/fanli/dao/user/ThreeSaleFocusInfoDao.java +++ b/fanli/src/main/java/com/yeshi/fanli/dao/user/ThreeSaleFocusInfoDao.java @@ -1,6 +1,7 @@ package com.yeshi.fanli.dao.user; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.regex.Pattern; @@ -36,7 +37,6 @@ mongoTemplate.save(record); } - /** * 鏇存柊鏍囩 * @@ -46,10 +46,10 @@ if (memoName == null) { memoName = ""; } - + Query query = new Query(); query.addCriteria(Criteria.where("workerId").is(workerId)); - + Update update = null; if (type == 1) { update = Update.update("memoName", memoName); @@ -68,10 +68,10 @@ if (tags == null) { tags = ""; } - + Query query = new Query(); query.addCriteria(Criteria.where("workerId").is(workerId)); - + Update update = null; if (type == 1) { update = Update.update("tags", tags); @@ -80,9 +80,10 @@ } mongoTemplate.updateFirst(query, update, ThreeSaleFocusInfo.class); } - + /** * 鏇存柊鏄电О + * * @param workerId * @param nickName */ @@ -90,90 +91,94 @@ if (nickName == null) { nickName = ""; } - + Query query = new Query(); query.addCriteria(Criteria.where("workerId").is(workerId)); - Update update = Update.update("nickName", nickName); + Update update = Update.update("nickName", nickName); mongoTemplate.updateFirst(query, update, ThreeSaleFocusInfo.class); } - - + /** * 鏇存柊鏄惁鏈夋晥绮変笣 + * * @param workerId * @param stateValid */ public void updateStateValid(Long workerId, boolean stateValid) { Query query = new Query(); query.addCriteria(Criteria.where("workerId").is(workerId)); - Update update = Update.update("stateValid", stateValid); + Update update = Update.update("stateValid", stateValid); mongoTemplate.updateFirst(query, update, ThreeSaleFocusInfo.class); } - + /** * 鏇存柊娣樺疂缁戝畾 + * * @param workerId * @param taobaoBind */ public void updateTaobaoBind(Long workerId, boolean taobaoBind) { Query query = new Query(); query.addCriteria(Criteria.where("workerId").is(workerId)); - Update update = Update.update("taobaoBind", taobaoBind); + Update update = Update.update("taobaoBind", taobaoBind); mongoTemplate.updateFirst(query, update, ThreeSaleFocusInfo.class); } - + /** * 鏇存柊寰俊缁戝畾 + * * @param workerId * @param weixinBind */ public void updateWeixinBind(Long workerId, boolean weixinBind) { Query query = new Query(); query.addCriteria(Criteria.where("workerId").is(workerId)); - Update update = Update.update("weixinBind", weixinBind); + Update update = Update.update("weixinBind", weixinBind); mongoTemplate.updateFirst(query, update, ThreeSaleFocusInfo.class); } /** * 鏇存柊娲昏穬鏃堕棿 + * * @param workerId * @param activeTime */ public void updateActiveTime(Long workerId, Date activeTime) { Query query = new Query(); query.addCriteria(Criteria.where("workerId").is(workerId)); - Update update = Update.update("activeTime", activeTime); + Update update = Update.update("activeTime", activeTime); mongoTemplate.updateFirst(query, update, ThreeSaleFocusInfo.class); } /** * 鏇存柊绮変笣鏁伴噺 + * * @param workerId * @param fansNum */ public void updateFansNum(Long workerId, int fansNum) { Query query = new Query(); query.addCriteria(Criteria.where("workerId").is(workerId)); - Update update = Update.update("fansNum", fansNum); + Update update = Update.update("fansNum", fansNum); mongoTemplate.updateFirst(query, update, ThreeSaleFocusInfo.class); } - /** * 鏇存柊鏀跺叆 + * * @param workerId * @param income */ public void updateIncome(Long workerId, BigDecimal income) { Query query = new Query(); query.addCriteria(Criteria.where("workerId").is(workerId)); - Update update = Update.update("income", income).set("incomeTime", new Date()); + Update update = Update.update("income", income).set("incomeTime", new Date()); mongoTemplate.updateMulti(query, update, ThreeSaleFocusInfo.class); } - /** * 缁熻 + * * @return */ public ThreeSaleFocusInfo getbyWorkerId(Long workerId) { @@ -181,7 +186,7 @@ query.addCriteria(Criteria.where("workerId").is(workerId)); return mongoTemplate.findOne(query, ThreeSaleFocusInfo.class); } - + /** * 鏌ヨ * @@ -190,12 +195,13 @@ public List<ThreeSaleFocusInfo> query(int start, int count, int type, Long uid, ThreeSaleFocusDTO focusDTO) { Query query = createQuery(type, uid, focusDTO); query.skip(start).limit(count); - query.with(new Sort(Sort.Direction.DESC,"weight")); + query.with(new Sort(Sort.Direction.DESC, "weight")); return mongoTemplate.find(query, ThreeSaleFocusInfo.class); } /** * 缁熻 + * * @return */ public long count(int type, Long uid, ThreeSaleFocusDTO focusDTO) { @@ -203,65 +209,85 @@ return mongoTemplate.count(query, ThreeSaleFocusInfo.class); } - private Query createQuery(int type, Long uid, ThreeSaleFocusDTO focusDTO) { Query query = new Query(); + List<Criteria> list = new ArrayList<Criteria>(); + if (type == 1) { - query.addCriteria(Criteria.where("bossId").is(uid)); + list.add(Criteria.where("bossId").is(uid)); } else { - query.addCriteria(Criteria.where("bossSuperId").is(uid)); + list.add(Criteria.where("bossSuperId").is(uid)); } - - if (focusDTO == null) { - return query; - } - - if (focusDTO.getStateValid() != null) - query.addCriteria(Criteria.where("stateValid").is(focusDTO.getStateValid())); - - if (focusDTO.getTaobaoBind() != null) - query.addCriteria(Criteria.where("taobaoBind").is(focusDTO.getTaobaoBind())); - - if (focusDTO.getWeixinBind() != null) - query.addCriteria(Criteria.where("weixinBind").is(focusDTO.getWeixinBind())); - - if (focusDTO.getMinFansNum() != null) - query.addCriteria(Criteria.where("fansNum").lte(focusDTO.getMinFansNum())); - - if (focusDTO.getMinFansNum() != null) - query.addCriteria(Criteria.where("fansNum").gte(focusDTO.getMinFansNum())); - - if (focusDTO.getMinActiveTime() != null) - query.addCriteria(Criteria.where("activeTime").lte(focusDTO.getMinActiveTime())); - - if (focusDTO.getMaxActiveTime() != null) - query.addCriteria(Criteria.where("activeTime").gte(focusDTO.getMaxActiveTime())); - - if (focusDTO.getMinIncome() != null) - query.addCriteria(Criteria.where("income").lte(focusDTO.getMinIncome())); - - if (focusDTO.getMaxIncome() != null) - query.addCriteria(Criteria.where("income").gte(focusDTO.getMaxIncome())); - - - if (!StringUtil.isNullOrEmpty(focusDTO.getKey())) { - if (type == 1) { - query.addCriteria(new Criteria().orOperator( - Criteria.where("nickName").regex(Pattern.compile("^.*" + focusDTO.getKey() + ".*$", Pattern.CASE_INSENSITIVE)), - new Criteria().andOperator(Criteria.where("memoName").regex(Pattern.compile("^.*" + focusDTO.getKey() + ".*$", Pattern.CASE_INSENSITIVE))), - new Criteria().andOperator(Criteria.where("tags").regex(Pattern.compile("^.*" + focusDTO.getKey() + ".*$", Pattern.CASE_INSENSITIVE))) - )); - } else { - query.addCriteria(new Criteria().orOperator( - Criteria.where("nickName").regex(Pattern.compile("^.*" + focusDTO.getKey() + ".*$", Pattern.CASE_INSENSITIVE)), - new Criteria().andOperator(Criteria.where("memoNameSup").regex(Pattern.compile("^.*" + focusDTO.getKey() + ".*$", Pattern.CASE_INSENSITIVE))), - new Criteria().andOperator(Criteria.where("tagsSup").regex(Pattern.compile("^.*" + focusDTO.getKey() + ".*$", Pattern.CASE_INSENSITIVE))) - )); + + if (focusDTO != null) { + if (focusDTO.getStateValid() != null) + list.add(Criteria.where("stateValid").is(focusDTO.getStateValid())); + + if (focusDTO.getTaobaoBind() != null) + list.add(Criteria.where("taobaoBind").is(focusDTO.getTaobaoBind())); + + if (focusDTO.getWeixinBind() != null) + list.add(Criteria.where("weixinBind").is(focusDTO.getWeixinBind())); + + if (!StringUtil.isNullOrEmpty(focusDTO.getLevel())) + list.add(Criteria.where("level").is(focusDTO.getLevel())); + + if (focusDTO.getMinFansNum() != null) + list.add(Criteria.where("fansNum").lte(focusDTO.getMinFansNum())); + + if (focusDTO.getMaxFansNum() != null) + list.add(Criteria.where("fansNum").gte(focusDTO.getMaxFansNum())); + + if (!StringUtil.isNullOrEmpty(focusDTO.getMinJoinTime())) + list.add(Criteria.where("joinTime").lte(focusDTO.getMinJoinTime())); + + if (!StringUtil.isNullOrEmpty(focusDTO.getMaxJoinTime())) + list.add(Criteria.where("joinTime").gte(focusDTO.getMaxJoinTime())); + + if (!StringUtil.isNullOrEmpty(focusDTO.getMinActiveTime())) + list.add(Criteria.where("activeTime").lte(focusDTO.getMinActiveTime())); + + if (!StringUtil.isNullOrEmpty(focusDTO.getMaxActiveTime())) + list.add(Criteria.where("activeTime").gte(focusDTO.getMaxActiveTime())); + + if (focusDTO.getMinIncome() != null) + list.add(Criteria.where("income").lte(focusDTO.getMinIncome())); + + if (focusDTO.getMaxIncome() != null) + list.add(Criteria.where("income").gte(focusDTO.getMaxIncome())); + + if (!StringUtil.isNullOrEmpty(focusDTO.getKey())) { + if (type == 1) { + list.add(new Criteria().orOperator( Criteria.where("nickName") + .regex(Pattern.compile("^.*" + focusDTO.getKey() + ".*$", + Pattern.CASE_INSENSITIVE)), + new Criteria().andOperator(Criteria.where("memoName") + .regex(Pattern.compile("^.*" + focusDTO.getKey() + ".*$", + Pattern.CASE_INSENSITIVE))), + new Criteria().andOperator(Criteria.where("tags").regex(Pattern + .compile("^.*" + focusDTO.getKey() + ".*$", Pattern.CASE_INSENSITIVE))))); + } else { + list.add(new Criteria().orOperator(Criteria.where("nickName") + .regex(Pattern.compile("^.*" + focusDTO.getKey() + ".*$", + Pattern.CASE_INSENSITIVE)), + new Criteria().andOperator(Criteria.where("memoNameSup") + .regex(Pattern.compile("^.*" + focusDTO.getKey() + ".*$", + Pattern.CASE_INSENSITIVE))), + new Criteria().andOperator(Criteria.where("tagsSup").regex(Pattern + .compile("^.*" + focusDTO.getKey() + ".*$", Pattern.CASE_INSENSITIVE))))); + } } } + + if (list.size() > 0) { + + Criteria[] cas = new Criteria[list.size()]; + for (int i = 0; i < list.size(); i++) + cas[i] = list.get(i); + query.addCriteria(new Criteria().andOperator(cas)); + } + return query; } - - - + } -- Gitblit v1.8.0