SysPartnerServiceImpl.java 108 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859
  1. package com.ydtech.modules.admin.service.impl;
  2. import cn.hutool.core.bean.BeanUtil;
  3. import cn.hutool.core.collection.CollectionUtil;
  4. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  5. import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
  6. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  7. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  8. import com.ydtech.aop.exception.DescribeException;
  9. import com.ydtech.exception.SystemException;
  10. import com.ydtech.modules.admin.dao.*;
  11. import com.ydtech.modules.admin.model.*;
  12. import com.ydtech.modules.admin.model.dto.*;
  13. import com.ydtech.modules.admin.model.po.SysUserAccountHistory;
  14. import com.ydtech.modules.admin.model.vo.*;
  15. import com.ydtech.modules.admin.service.SysAgencyLeaderService;
  16. import com.ydtech.modules.admin.service.SysPartnerService;
  17. import com.ydtech.modules.admin.service.SysPremiumDetailsService;
  18. import com.ydtech.modules.admin.service.SysUserService;
  19. import com.ydtech.modules.base.controller.BaseController;
  20. import com.ydtech.modules.order.entity.BasePageResult;
  21. import com.ydtech.utils.StringUtils;
  22. import org.springframework.stereotype.Service;
  23. import org.springframework.transaction.annotation.Transactional;
  24. import javax.annotation.Resource;
  25. import java.math.BigDecimal;
  26. import java.math.RoundingMode;
  27. import java.text.SimpleDateFormat;
  28. import java.time.LocalDate;
  29. import java.time.ZoneId;
  30. import java.time.temporal.ChronoUnit;
  31. import java.util.*;
  32. import java.util.stream.Collectors;
  33. /**
  34. * 配置机构合伙人表(SysPartner)表服务实现类
  35. *
  36. * @author makejava
  37. * @since 2024-08-01 11:20:57
  38. */
  39. @Service("sysPartnerService")
  40. public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPartner> implements SysPartnerService {
  41. @Resource
  42. private SysPartnerMapper sysPartnerMapper;
  43. @Resource
  44. private SysRelationPersonMapper sysRelationPersonMapper;
  45. @Resource
  46. private SysAgencyLeaderMapper sysAgencyLeaderMapper;
  47. @Resource
  48. private SysDeptMapper sysDeptMapper;
  49. @Resource
  50. private SysUserService sysUserService;
  51. @Resource
  52. private SysUserMapper sysUserMapper;
  53. @Resource
  54. private SysAgencyFeeApprovalMapper sysAgencyFeeApprovalMapper;
  55. @Resource
  56. private SysAgencyLeaderService sysAgencyLeaderService;
  57. @Resource
  58. private SysPartnerTimeMapper sysPartnerTimeMapper;
  59. @Resource
  60. private SysPartnerAccountMapper sysPartnerAccountMapper;
  61. @Resource
  62. private SysPremiumDetailsMapper sysPremiumDetailsMapper;
  63. @Resource
  64. private SysPremiumDetailsService sysPremiumDetailsService;
  65. @Resource
  66. private SysUserAccountHistoryMapper sysUserAccountHistoryMapper;
  67. @Resource
  68. private SysPartnerConfigMapper sysPartnerConfigMapper;
  69. @Resource
  70. private SysProportionConfigMapper sysProportionConfigMapper;
  71. @Override
  72. public List<SysPartner> queryRecommendAndPartner(String id) {
  73. List<SysPartner> sysPartnerList = sysPartnerMapper.selectList(new LambdaQueryWrapper<SysPartner>().eq(SysPartner::getDelFlag, 1)
  74. .likeRight(SysPartner::getUserId, id).orderByDesc(SysPartner::getId));
  75. if (sysPartnerList.size() > 0) {
  76. for (SysPartner sysPartner : sysPartnerList) {
  77. SysUser sysUser = sysUserMapper.selectById(sysPartner.getUserId());
  78. sysPartner.setUserName(sysUser.getName());
  79. }
  80. }
  81. return sysPartnerList;
  82. }
  83. // @Override
  84. // public BasePageResult<SysUserPartner> queryByPage(SysPartnerPageDto sysPartnerPageDto) {
  85. // Page<SysUser> page = new Page<>(sysPartnerPageDto.getPageNum(), sysPartnerPageDto.getPageSize());
  86. // List<SysAgencyLeader> sysAgencyLeaders = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>().eq(SysAgencyLeader::getDelFlag, 1));
  87. // List<String> stringList = null;
  88. // if (sysAgencyLeaders.size() > 0) {
  89. // stringList = sysAgencyLeaders.stream().map(SysAgencyLeader::getUserId).collect(Collectors.toList());
  90. //
  91. // }
  92. // List<String> idList = null;
  93. // List<SysDept> sysDeptLists = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>().eq(SysDept::getComlevel, 4).eq(SysDept::getDelFlag, 0));
  94. // if (sysDeptLists.size() > 0) {
  95. // List<String> collect = sysDeptLists.stream().map(SysDept::getId).collect(Collectors.toList());
  96. //
  97. // List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
  98. // .in(SysDept::getParentId, collect)
  99. // .eq(SysDept::getDelFlag, 0).isNull(SysDept::getComlevel).eq(SysDept::getDeptType, "D"));
  100. // if (sysDeptList.size() > 0) {
  101. // idList = sysDeptList.stream().map(SysDept::getId).collect(Collectors.toList());
  102. // }
  103. // }
  104. // LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<>();
  105. // wrapper.ne(SysUser::getStatus, 0);
  106. // wrapper.like(StringUtils.isNotEmpty(sysPartnerPageDto.getUserId()), SysUser::getId, sysPartnerPageDto.getUserId());
  107. // wrapper.like(StringUtils.isNotEmpty(sysPartnerPageDto.getUserName()), SysUser::getName, sysPartnerPageDto.getUserName());
  108. // wrapper.likeRight(StringUtils.isNotEmpty(sysPartnerPageDto.getDeptId()), SysUser::getId, sysPartnerPageDto.getDeptId());
  109. // wrapper.notLike(SysUser::getId, "M");
  110. // wrapper.notIn(CollectionUtil.isNotEmpty(stringList), SysUser::getId, stringList);
  111. // wrapper.in(CollectionUtil.isNotEmpty(idList), SysUser::getDeptId, idList);
  112. // wrapper.orderByDesc(SysUser::getCreateTime);
  113. //
  114. // Page<SysUser> insOrdersPage = sysUserService.page(page, wrapper);
  115. // List<SysUser> records = insOrdersPage.getRecords();
  116. //
  117. // List<SysUserPartner> sysUserPartners = BeanUtil.copyToList(records, SysUserPartner.class);
  118. //
  119. // if (sysUserPartners.size() > 0) {
  120. // for (SysUserPartner user : sysUserPartners) {
  121. // SysDept sysDept = sysDeptMapper.selectOne(new LambdaQueryWrapper<SysDept>().eq(SysDept::getId, user.getDeptId()).eq(SysDept::getDelFlag, 0));
  122. // user.setParentId(sysDept.getParentId());
  123. // user.setDeptName(sysDept.getName());
  124. // SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
  125. // .eq(SysPartner::getUserId, user.getId()).eq(SysPartner::getDelFlag, 1));
  126. // if (sysPartner != null) {
  127. // user.setType("1");
  128. // user.setSuggestId(sysPartner.getSuggestId());
  129. // SysUser sysUser = sysUserMapper.selectById(sysPartner.getSuggestId());
  130. // if (sysUser != null) {
  131. // user.setSuggestName(sysUser.getName());
  132. // }
  133. // user.setProportional(sysPartner.getProportional());
  134. // }
  135. // }
  136. //
  137. // }
  138. //
  139. //
  140. // return new BasePageResult<>(sysPartnerPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
  141. // sysUserPartners);
  142. // }
  143. @Override
  144. public BasePageResult<SysUserPartner> queryByPage(SysPartnerPageDto sysPartnerPageDto) {
  145. Page<SysUser> page = new Page<>(sysPartnerPageDto.getPageNum(), sysPartnerPageDto.getPageSize());
  146. LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<>();
  147. wrapper.like(StringUtils.isNotEmpty(sysPartnerPageDto.getUserId()), SysUser::getId, sysPartnerPageDto.getUserId());
  148. wrapper.like(StringUtils.isNotEmpty(sysPartnerPageDto.getUserName()), SysUser::getName, sysPartnerPageDto.getUserName());
  149. wrapper.eq(SysUser::getType,1);
  150. wrapper.eq(sysPartnerPageDto.getLevel() !=null, SysUser::getLevel, sysPartnerPageDto.getLevel());
  151. wrapper.in(SysUser::getStatus,Arrays.asList(1,4,5,6,7));
  152. Page<SysUser> insOrdersPage = sysUserService.page(page, wrapper);
  153. List<SysUser> records = insOrdersPage.getRecords();
  154. List<SysUserPartner> sysUserPartners = BeanUtil.copyToList(records, SysUserPartner.class);
  155. if (sysUserPartners.size() > 0) {
  156. for (SysUserPartner user : sysUserPartners) {
  157. SysDept sysDept = sysDeptMapper.selectOne(new LambdaQueryWrapper<SysDept>().eq(SysDept::getId, user.getDeptId()).eq(SysDept::getDelFlag, 0));
  158. user.setParentId(sysDept.getParentId());
  159. user.setDeptName(sysDept.getName());
  160. SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
  161. .eq(SysPartner::getUserId, user.getId()));
  162. if (sysPartner != null) {
  163. user.setType("1");
  164. String suggestId = sysPartner.getSuggestId();
  165. if (suggestId != null) {
  166. user.setSuggestId(sysPartner.getSuggestId());
  167. SysUser sysUser = sysUserMapper.selectById(sysPartner.getSuggestId());
  168. if (sysUser != null) {
  169. user.setSuggestName(sysUser.getName());
  170. }
  171. }
  172. //查看等级
  173. int type = sysPartner.getType();
  174. if (type == 1) {
  175. SysProportionConfig sysProportionConfig = sysProportionConfigMapper.selectOne(new LambdaQueryWrapper<SysProportionConfig>()
  176. .eq(SysProportionConfig::getUserId,sysPartner.getUserId()));
  177. if (sysProportionConfig == null) continue;
  178. user.setProportional(sysProportionConfig.getOneProportion());
  179. }else {
  180. SysRelationPerson sysRelationPeople = sysRelationPersonMapper.selectOne(new LambdaQueryWrapper<SysRelationPerson>()
  181. .eq(SysRelationPerson::getAgencyLeaderId, user.getId())
  182. .eq(SysRelationPerson::getType, 0)
  183. .eq(SysRelationPerson::getSuggestLevel,1));
  184. if (sysRelationPeople == null) continue;
  185. SysProportionConfig sysProportionConfig = sysProportionConfigMapper.selectOne(new LambdaQueryWrapper<SysProportionConfig>()
  186. .eq(SysProportionConfig::getUserId,sysRelationPeople.getSuggestId()));
  187. if (sysProportionConfig == null) continue;
  188. if (type == 2) {
  189. user.setProportional(sysProportionConfig.getTwoProportion());
  190. }else if (type == 3) {
  191. user.setProportional(sysProportionConfig.getThreeProportion());
  192. }else if (type == 4) {
  193. user.setProportional(sysProportionConfig.getFourProportion());
  194. }else if (type == 5) {
  195. user.setProportional(sysProportionConfig.getFiveProportion());
  196. }
  197. }
  198. }
  199. }
  200. }
  201. return new BasePageResult<>(sysPartnerPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
  202. sysUserPartners);
  203. }
  204. // @Override
  205. // @Transactional(rollbackFor = Exception.class)
  206. // public boolean insert(SysPartnerDto sysPartnerDto) {
  207. // List<SysPartner> sysPartners = sysPartnerMapper.selectList(new LambdaQueryWrapper<SysPartner>().eq(SysPartner::getDelFlag, 1));
  208. // if (sysPartners.size() > 0) {
  209. // List<String> userIdList = sysPartners.stream().map(SysPartner::getUserId).collect(Collectors.toList());
  210. // if (userIdList.contains(sysPartnerDto.getUserId())) {
  211. // throw new DescribeException(sysPartnerDto.getUserName() + "已是合伙人,不可重复设置");
  212. // }
  213. //
  214. // }
  215. // //机构负责人不能配置为合伙人
  216. // List<SysAgencyLeader> sysAgencyLeaders = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>().eq(SysAgencyLeader::getDelFlag, 1));
  217. // if (sysAgencyLeaders.size() > 0) {
  218. // //校验用户是否已经机构负责人
  219. // List<String> userIdList = sysAgencyLeaders.stream().map(SysAgencyLeader::getUserId).collect(Collectors.toList());
  220. // if (userIdList.contains(sysPartnerDto.getUserId())) {
  221. // throw new DescribeException(sysPartnerDto.getUserName() + "已是机构负责人,不可配置为合伙人");
  222. // }
  223. //
  224. // }
  225. // SysPartner sysPartner = BeanUtil.copyProperties(sysPartnerDto, SysPartner.class);
  226. // sysPartner.setCreateTime(new Date());
  227. // sysPartner.setCreateBy(BaseController.getUser().getId());
  228. // boolean b = false;
  229. // if (sysPartnerDto.getSuggestId() != null) {
  230. // SysPartner sysPartnerSuggest = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
  231. // .eq(SysPartner::getUserId, sysPartnerDto.getSuggestId())
  232. // .eq(SysPartner::getDelFlag, 1));
  233. // if (sysPartnerSuggest == null) throw new SystemException("推荐人不存在");
  234. // sysPartner.setType(sysPartnerSuggest.getType() + 1);
  235. // b = sysPartnerMapper.insert(sysPartner) > 0;
  236. // //保存关系
  237. // SysRelationPerson sysRelationPerson = new SysRelationPerson();
  238. // sysRelationPerson.setAgencyLeaderId(sysPartnerDto.getUserId());
  239. // sysRelationPerson.setSuggestId(sysPartnerDto.getSuggestId());
  240. // //'推荐等级(0:直接推荐;1:间接推荐)
  241. // sysRelationPerson.setSource(0);
  242. // //推荐类型(0:合伙人 1:机构负责人)
  243. // sysRelationPerson.setType(0);
  244. // sysRelationPerson.setCreateBy(BaseController.getUser().getId());
  245. // sysRelationPerson.setCreateTime(new Date());
  246. // b = sysRelationPersonMapper.insert(sysRelationPerson) > 0;
  247. // //查询合伙人的推荐人是否有上级
  248. // List<SysRelationPerson> sysRelationPeople = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
  249. // .eq(SysRelationPerson::getAgencyLeaderId, sysPartnerDto.getSuggestId())
  250. // .eq(SysRelationPerson::getType, 0));
  251. // if (sysRelationPeople.size() > 0) {
  252. // for (SysRelationPerson relationPerson : sysRelationPeople) {
  253. // SysRelationPerson sysRelationPerson1 = new SysRelationPerson();
  254. // sysRelationPerson1.setAgencyLeaderId(sysPartnerDto.getUserId());
  255. // sysRelationPerson1.setSuggestId(relationPerson.getSuggestId());
  256. // sysRelationPerson1.setSource(1);
  257. // //推荐类型(0:合伙人 1:机构负责人)
  258. // sysRelationPerson1.setType(0);
  259. // sysRelationPerson1.setCreateBy(BaseController.getUser().getId());
  260. // sysRelationPerson1.setCreateTime(new Date());
  261. // sysRelationPersonMapper.insert(sysRelationPerson1);
  262. // }
  263. // }
  264. // } else {
  265. // //无推荐人,等级为一级
  266. // sysPartner.setType(1);
  267. // b = sysPartnerMapper.insert(sysPartner) > 0;
  268. // }
  269. // //添加抽层比例,一个月只能设置一次
  270. // SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
  271. // String format = simpleDateFormat.format(new Date());
  272. // SysPartnerTime sysPartnerTime = new SysPartnerTime();
  273. // sysPartnerTime.setType(1);
  274. // sysPartnerTime.setCreateTime(format);
  275. // sysPartnerTime.setUserId(sysPartnerDto.getUserId());
  276. // sysPartnerTime.setUserName(sysPartnerDto.getUserName());
  277. // sysPartnerTime.setNewProportional(sysPartnerDto.getProportional());
  278. //
  279. // sysPartnerTimeMapper.insert(sysPartnerTime);
  280. // return b;
  281. // }
  282. @Override
  283. @Transactional(rollbackFor = Exception.class)
  284. public boolean insert(SysPartnerDto sysPartnerDto) {
  285. SysPartner sysPartner = BeanUtil.copyProperties(sysPartnerDto, SysPartner.class);
  286. sysPartner.setCreateTime(new Date());
  287. sysPartner.setCreateBy(BaseController.getUser().getId());
  288. sysPartner.setType(sysPartnerDto.getLevel());
  289. boolean b = false;
  290. b = sysPartnerMapper.insert(sysPartner) > 0;
  291. if (sysPartnerDto.getSuggestId() != null) {
  292. SysPartner sysPartner1 = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
  293. .eq(SysPartner::getDelFlag, 1).eq(SysPartner::getUserId, sysPartnerDto.getSuggestId()));
  294. //保存关系
  295. SysRelationPerson sysRelationPerson = new SysRelationPerson();
  296. sysRelationPerson.setAgencyLeaderId(sysPartnerDto.getUserId());
  297. sysRelationPerson.setSuggestId(sysPartnerDto.getSuggestId());
  298. sysRelationPerson.setSuggestLevel(sysPartner1.getType());
  299. //'推荐等级(0:直接推荐;1:间接推荐)
  300. sysRelationPerson.setSource(0);
  301. //推荐类型(0:合伙人 1:机构负责人)
  302. sysRelationPerson.setType(0);
  303. sysRelationPerson.setCreateBy(BaseController.getUser().getId());
  304. sysRelationPerson.setCreateTime(new Date());
  305. b = sysRelationPersonMapper.insert(sysRelationPerson) > 0;
  306. //查询合伙人的推荐人是否有上级
  307. List<SysRelationPerson> sysRelationPeople = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
  308. .eq(SysRelationPerson::getAgencyLeaderId, sysPartnerDto.getSuggestId())
  309. .eq(SysRelationPerson::getType, 0));
  310. if (sysRelationPeople.size() > 0) {
  311. for (SysRelationPerson relationPerson : sysRelationPeople) {
  312. SysRelationPerson sysRelationPerson1 = new SysRelationPerson();
  313. SysPartner sysPartner2 = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
  314. .eq(SysPartner::getDelFlag, 1).eq(SysPartner::getUserId, sysPartnerDto.getSuggestId()));
  315. sysRelationPerson1.setAgencyLeaderId(sysPartnerDto.getUserId());
  316. sysRelationPerson1.setSuggestId(relationPerson.getSuggestId());
  317. sysRelationPerson1.setSuggestLevel(sysPartner2.getType());
  318. sysRelationPerson1.setSource(1);
  319. //推荐类型(0:合伙人 1:机构负责人)
  320. sysRelationPerson1.setType(0);
  321. sysRelationPerson1.setCreateBy(BaseController.getUser().getId());
  322. sysRelationPerson1.setCreateTime(new Date());
  323. sysRelationPersonMapper.insert(sysRelationPerson1);
  324. }
  325. }
  326. }
  327. return b;
  328. }
  329. @Override
  330. public boolean checkPartner(String userId) {
  331. List<SysPartner> sysPartners = sysPartnerMapper.selectList(new LambdaQueryWrapper<SysPartner>().eq(SysPartner::getDelFlag, 1));
  332. if (sysPartners.size() > 0) {
  333. List<String> userIdList = sysPartners.stream().map(SysPartner::getUserId).collect(Collectors.toList());
  334. return userIdList.contains(userId);
  335. }
  336. return false;
  337. }
  338. @Override
  339. public boolean deleteById(String id) {
  340. SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>().eq(SysPartner::getDelFlag, 1).eq(SysPartner::getUserId, id));
  341. List<SysRelationPerson> sysRelationPeople = sysRelationPersonMapper.selectList(new UpdateWrapper<SysRelationPerson>().lambda()
  342. .eq(SysRelationPerson::getAgencyLeaderId, id)
  343. .eq(SysRelationPerson::getDelFlag, 1)
  344. .eq(SysRelationPerson::getType, 0));
  345. if (sysRelationPeople.size() > 0) {
  346. if (sysRelationPeople.get(0).getSuggestId() != null) {
  347. throw new DescribeException(sysPartner.getUserName() + "有推荐人,不允许删除");
  348. }
  349. }
  350. List<SysRelationPerson> sysRelationPeople1 = sysRelationPersonMapper.selectList(new UpdateWrapper<SysRelationPerson>().lambda()
  351. .eq(SysRelationPerson::getSuggestId, id)
  352. .eq(SysRelationPerson::getDelFlag, 1)
  353. .eq(SysRelationPerson::getType, 0));
  354. if (sysRelationPeople1.size() > 0) {
  355. if (sysRelationPeople1.get(0).getSuggestId() != null) {
  356. throw new DescribeException(sysPartner.getUserName() + "是推荐人,不允许删除");
  357. }
  358. }
  359. SysPartner partner = new SysPartner();
  360. partner.setId(sysPartner.getId());
  361. partner.setDelFlag(0);
  362. return sysPartnerMapper.updateById(partner) > 0;
  363. }
  364. @Override
  365. public BasePageResult<AgencyExtractFeeVo> queryPartnerByPages(SysPartnerPageDto sysPartnerPageDto) {
  366. List<AgencyExtractFeeVo> agencyExtractFeeList = new ArrayList<>();
  367. Page<SysPartner> page = new Page<>(sysPartnerPageDto.getPageNum(), sysPartnerPageDto.getPageSize());
  368. LambdaQueryWrapper<SysPartner> wrapper = new LambdaQueryWrapper<>();
  369. wrapper.eq(SysPartner::getDelFlag, 1);
  370. wrapper.like(StringUtils.isNotEmpty(sysPartnerPageDto.getUserId()), SysPartner::getUserId, sysPartnerPageDto.getUserId());
  371. wrapper.like(StringUtils.isNotEmpty(sysPartnerPageDto.getUserName()), SysPartner::getUserName, sysPartnerPageDto.getUserName());
  372. wrapper.orderByDesc(SysPartner::getId);
  373. Page<SysPartner> insOrdersPage = page(page, wrapper);
  374. List<SysPartner> sysPartnerList = insOrdersPage.getRecords();
  375. if (sysPartnerList.size() > 0) {
  376. for (SysPartner sysPartner : sysPartnerList) {
  377. AgencyExtractFeeVo agencyExtractFee = new AgencyExtractFeeVo();
  378. //总保费
  379. BigDecimal bigDecimal = BigDecimal.ZERO;
  380. BigDecimal extractFee = BigDecimal.ZERO;
  381. //已提现抽成费用
  382. BigDecimal historyFee = BigDecimal.ZERO;
  383. //填充查询人的姓名和机构
  384. agencyExtractFee.setProportional(sysPartner.getProportional());
  385. agencyExtractFee.setUserId(sysPartner.getUserId());
  386. //SysUser sysUser = sysUserMapper.selectById(sysPartner.getUserId());
  387. SysUser sysUser = sysUserMapper.selectOne(new LambdaQueryWrapper<SysUser>()
  388. .eq(SysUser::getId, sysPartner.getUserId())
  389. .ne(SysUser::getStatus, 0));
  390. if (sysUser == null) {
  391. continue;
  392. }
  393. agencyExtractFee.setUserName(sysUser.getName());
  394. agencyExtractFee.setDeptId(sysUser.getDeptId());
  395. SysDept sysDept = sysDeptMapper.selectOne(new LambdaQueryWrapper<SysDept>()
  396. .eq(SysDept::getId, sysUser.getDeptId()).eq(SysDept::getDelFlag, 0));
  397. agencyExtractFee.setDeptName(sysDept.getName());
  398. //查询所有推荐的机构负责人核算总保费
  399. List<SysRelationPerson> sysRelationPeople = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
  400. .eq(SysRelationPerson::getSuggestId, sysPartner.getUserId()).eq(SysRelationPerson::getType, 1));
  401. if (sysRelationPeople.size() > 0) {
  402. List<String> agencyLeaderIds = sysRelationPeople.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
  403. for (String agencyLeaderId : agencyLeaderIds) {
  404. SysAgencyLeader sysAgencyLeaders = sysAgencyLeaderMapper.selectOne(new LambdaQueryWrapper<SysAgencyLeader>()
  405. .eq(SysAgencyLeader::getUserId, agencyLeaderId)
  406. .eq(SysAgencyLeader::getDelFlag, 1));
  407. if (sysAgencyLeaders != null) {
  408. agencyExtractFee.setProportional(sysPartner.getProportional());
  409. //筛选订单,选择时间
  410. Date updateTime = sysAgencyLeaders.getUpdateTime();
  411. Date createTime = sysAgencyLeaders.getCreateTime();
  412. String dateStr = "";
  413. if (updateTime != null) {
  414. dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(updateTime);
  415. } else {
  416. dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(createTime);
  417. }
  418. HashMap<String, BigDecimal> map = sysAgencyLeaderMapper.getBigDecimalNum(sysAgencyLeaders.getDeptId(), dateStr, null, null);
  419. if (CollectionUtil.isNotEmpty(map)) {
  420. bigDecimal = bigDecimal.add(map.get("bigDecimal") == null ? BigDecimal.ZERO : map.get("bigDecimal"));
  421. }
  422. }
  423. }
  424. // 填充 已提现抽成费用和可提现抽成费用
  425. List<SysAgencyFeeApproval> sysAgencyFeeApprovals = sysAgencyFeeApprovalMapper.selectList(new LambdaQueryWrapper<SysAgencyFeeApproval>()
  426. .eq(SysAgencyFeeApproval::getUserId, sysPartner.getUserId())
  427. .eq(SysAgencyFeeApproval::getStatus, 1));
  428. if (sysAgencyFeeApprovals.size() > 0) {
  429. for (SysAgencyFeeApproval sysAgencyFeeApproval : sysAgencyFeeApprovals) {
  430. historyFee = historyFee.add(sysAgencyFeeApproval.getHistoryFee());
  431. }
  432. }
  433. agencyExtractFee.setSumpremium(bigDecimal);
  434. if (!bigDecimal.equals(BigDecimal.ZERO)) {
  435. BigDecimal multiply = bigDecimal.multiply(new BigDecimal(agencyExtractFee.getProportional())
  436. .divide(new BigDecimal("100"))).setScale(2, RoundingMode.DOWN);
  437. agencyExtractFee.setExtractFee(multiply);
  438. //已提现
  439. agencyExtractFee.setHistoryFee(historyFee);
  440. extractFee = agencyExtractFee.getExtractFee();
  441. //可提现 = 总抽成-已提现
  442. agencyExtractFee.setCashFee(extractFee.subtract(historyFee));
  443. } else {
  444. agencyExtractFee.setExtractFee(BigDecimal.ZERO);
  445. agencyExtractFee.setHistoryFee(BigDecimal.ZERO);
  446. agencyExtractFee.setCashFee(extractFee);
  447. }
  448. } else {
  449. agencyExtractFee.setSumpremium(BigDecimal.ZERO);
  450. agencyExtractFee.setExtractFee(BigDecimal.ZERO);
  451. agencyExtractFee.setHistoryFee(BigDecimal.ZERO);
  452. agencyExtractFee.setCashFee(BigDecimal.ZERO);
  453. }
  454. agencyExtractFeeList.add(agencyExtractFee);
  455. }
  456. }
  457. return new BasePageResult<>(sysPartnerPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
  458. agencyExtractFeeList);
  459. }
  460. @Override
  461. public BasePageResult<AgencyExtractFeeVo> queryPartnerByPage(SysPartnerPageDto sysPartnerPageDto) {
  462. List<AgencyExtractFeeVo> agencyExtractFeeList = new ArrayList<>();
  463. Page<SysPartner> page = new Page<>(sysPartnerPageDto.getPageNum(), sysPartnerPageDto.getPageSize());
  464. LambdaQueryWrapper<SysPartner> wrapper = new LambdaQueryWrapper<>();
  465. wrapper.eq(SysPartner::getDelFlag, 1);
  466. wrapper.like(StringUtils.isNotEmpty(sysPartnerPageDto.getUserId()), SysPartner::getUserId, sysPartnerPageDto.getUserId());
  467. wrapper.like(StringUtils.isNotEmpty(sysPartnerPageDto.getUserName()), SysPartner::getUserName, sysPartnerPageDto.getUserName());
  468. wrapper.orderByDesc(SysPartner::getId);
  469. Page<SysPartner> insOrdersPage = page(page, wrapper);
  470. List<SysPartner> sysPartnerList = insOrdersPage.getRecords();
  471. if (sysPartnerList.size() > 0) {
  472. for (SysPartner sysPartner : sysPartnerList) {
  473. String userId = sysPartner.getUserId();
  474. AgencyExtractFeeVo agencyExtractFee = new AgencyExtractFeeVo();
  475. //已提现抽成费用
  476. BigDecimal historyFee = BigDecimal.ZERO;
  477. SysUser sysUser = sysUserMapper.selectOne(new LambdaQueryWrapper<SysUser>()
  478. .eq(SysUser::getId, userId)
  479. .ne(SysUser::getStatus, 0));
  480. //填充查询人的姓名和机构
  481. agencyExtractFee.setUserId(userId);
  482. agencyExtractFee.setUserName(sysUser.getName());
  483. agencyExtractFee.setDeptId(sysUser.getDeptId());
  484. SysDept sysDept = sysDeptMapper.selectOne(new LambdaQueryWrapper<SysDept>()
  485. .eq(SysDept::getId, sysUser.getDeptId()).eq(SysDept::getDelFlag, 0));
  486. agencyExtractFee.setDeptName(sysDept.getName());
  487. SysPartnerAccount sysPartnerAccount = sysPartnerAccountMapper.selectOne(new LambdaQueryWrapper<SysPartnerAccount>()
  488. .eq(SysPartnerAccount::getUserId, userId));
  489. if (sysPartnerAccount != null) {
  490. BigDecimal sumPremium = sysPartnerAccount.getSumPremium();
  491. BigDecimal extractFee = sysPartnerAccount.getExtractFee();
  492. agencyExtractFee.setSumpremium(sumPremium);
  493. agencyExtractFee.setExtractFee(extractFee);
  494. // 填充 已提现抽成费用和可提现抽成费用
  495. List<SysAgencyFeeApproval> sysAgencyFeeApprovals = sysAgencyFeeApprovalMapper.selectList(new LambdaQueryWrapper<SysAgencyFeeApproval>()
  496. .eq(SysAgencyFeeApproval::getUserId, sysPartner.getUserId())
  497. .eq(SysAgencyFeeApproval::getStatus, 1));
  498. if (sysAgencyFeeApprovals.size() > 0) {
  499. for (SysAgencyFeeApproval sysAgencyFeeApproval : sysAgencyFeeApprovals) {
  500. historyFee = historyFee.add(sysAgencyFeeApproval.getHistoryFee());
  501. }
  502. }
  503. agencyExtractFee.setHistoryFee(historyFee);
  504. //可提现 = 总抽成-已提现
  505. agencyExtractFee.setCashFee(extractFee.subtract(historyFee));
  506. }
  507. agencyExtractFeeList.add(agencyExtractFee);
  508. }
  509. }
  510. return new BasePageResult<>(sysPartnerPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
  511. agencyExtractFeeList);
  512. }
  513. @Override
  514. public BasePageResult<SysPartnerAPPPageVo> SysPartnerAPPPage(SysPartnerAPPPageDto sysPartnerAPPPageDto) {
  515. List<SysPartnerAPPPageVo> sysPartnerAPPPageVoList = new ArrayList<>();
  516. String userId = BaseController.getUserId();
  517. int source = sysPartnerAPPPageDto.getSource();
  518. List<SysRelationPerson> sysRelationPersonList = null;
  519. //判断是0:直接推荐;1:间接推荐
  520. if (source == 0) {
  521. sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
  522. .eq(SysRelationPerson::getSuggestId, userId)
  523. .eq(SysRelationPerson::getDelFlag, 1)
  524. .eq(SysRelationPerson::getSource, 0)
  525. .eq(SysRelationPerson::getType, 0));
  526. } else {
  527. sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
  528. .eq(SysRelationPerson::getSuggestId, userId)
  529. .eq(SysRelationPerson::getDelFlag, 1)
  530. .eq(SysRelationPerson::getSource, 1)
  531. .eq(SysRelationPerson::getType, 0));
  532. }
  533. List<String> ids = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
  534. if (CollectionUtil.isNotEmpty(ids)) {
  535. //分页查询合伙人信息
  536. Page<SysPartner> page = new Page<>(sysPartnerAPPPageDto.getPageNum(), sysPartnerAPPPageDto.getPageSize());
  537. LambdaQueryWrapper<SysPartner> wrapper = new LambdaQueryWrapper<>();
  538. wrapper.like(StringUtils.isNotEmpty(sysPartnerAPPPageDto.getUserName()), SysPartner::getUserName, sysPartnerAPPPageDto.getUserName());
  539. wrapper.in(SysPartner::getUserId, ids);
  540. wrapper.eq(SysPartner::getDelFlag, 1);
  541. wrapper.orderByDesc(SysPartner::getId);
  542. Page<SysPartner> insOrdersPage = page(page, wrapper);
  543. List<SysPartner> sysPartnerList = insOrdersPage.getRecords();
  544. if (sysPartnerList.size() > 0) {
  545. for (SysPartner sysPartner : sysPartnerList) {
  546. //总保费
  547. BigDecimal bigDecimal = new BigDecimal("0.00");
  548. SysPartnerAPPPageVo sysPartnerAPPPageVo = new SysPartnerAPPPageVo();
  549. sysPartnerAPPPageVo.setUserId(sysPartner.getUserId());
  550. //填充机构信息
  551. SysUser sysUser = sysUserMapper.selectOne(new LambdaQueryWrapper<SysUser>()
  552. .eq(SysUser::getId, sysPartner.getUserId())
  553. .ne(SysUser::getStatus, 0));
  554. sysPartnerAPPPageVo.setUserName(sysUser.getName());
  555. SysDept sysDept = sysDeptMapper.selectOne(new LambdaQueryWrapper<SysDept>()
  556. .eq(SysDept::getId, sysUser.getDeptId()).eq(SysDept::getDelFlag, 0));
  557. sysPartnerAPPPageVo.setDeptId(sysDept.getId());
  558. sysPartnerAPPPageVo.setDeptName(sysDept.getName());
  559. sysPartnerAPPPageVo.setProportional(sysPartner.getProportional());
  560. List<SysRelationPerson> relationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
  561. .eq(SysRelationPerson::getSuggestId, sysPartner.getUserId())
  562. .eq(SysRelationPerson::getDelFlag, 1)
  563. .eq(SysRelationPerson::getType, 1));
  564. if (relationPersonList.size() > 0) {
  565. List<String> agencyLeaderIds = relationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
  566. List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
  567. .eq(SysAgencyLeader::getDelFlag, 1).in(SysAgencyLeader::getUserId, agencyLeaderIds));
  568. for (SysAgencyLeader sysAgencyLeader : leaderList) {
  569. //获取机构下的团队
  570. List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
  571. .likeRight(SysDept::getId, sysAgencyLeader.getDeptId())
  572. .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
  573. .eq(SysDept::getManagementSource, sysAgencyLeader.getSource()));
  574. if (sysDeptList.size() > 0) {
  575. for (SysDept sysDept1 : sysDeptList) {
  576. //筛选订单,选择时间
  577. Date updateTime = sysAgencyLeader.getUpdateTime();
  578. Date createTime = sysAgencyLeader.getCreateTime();
  579. String dateStr = "";
  580. if (updateTime != null) {
  581. dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(updateTime);
  582. } else {
  583. dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(createTime);
  584. }
  585. HashMap<String, BigDecimal> map = sysAgencyLeaderMapper.getBigDecimalNum(sysDept1.getId(), dateStr, null, null);
  586. if (CollectionUtil.isNotEmpty(map)) {
  587. bigDecimal = bigDecimal.add(map.get("bigDecimal") == null ? BigDecimal.ZERO : map.get("bigDecimal"));
  588. }
  589. }
  590. }
  591. }
  592. }
  593. sysPartnerAPPPageVo.setSumpremium(bigDecimal);
  594. if (!bigDecimal.equals(new BigDecimal("0.00"))) {
  595. BigDecimal multiply = bigDecimal.multiply(new BigDecimal(sysPartner.getProportional())
  596. .divide(new BigDecimal("100"))).setScale(2, RoundingMode.DOWN);
  597. sysPartnerAPPPageVo.setExtractFee(multiply);
  598. } else {
  599. sysPartnerAPPPageVo.setExtractFee(new BigDecimal("0.00"));
  600. }
  601. sysPartnerAPPPageVoList.add(sysPartnerAPPPageVo);
  602. }
  603. }
  604. return new BasePageResult<>(sysPartnerAPPPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
  605. sysPartnerAPPPageVoList);
  606. }
  607. return new BasePageResult<>(sysPartnerAPPPageDto.getPageNum(), sysPartnerAPPPageDto.getPageSize(), 0L, 0L,
  608. sysPartnerAPPPageVoList);
  609. }
  610. // @Override
  611. // @Transactional(rollbackFor = Exception.class)
  612. // public boolean edit(SysPartnerDto sysPartnerDto) {
  613. // //判断本月是否已修改比例
  614. // SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
  615. // String format = simpleDateFormat.format(new Date());
  616. // List<SysPartnerTime> sysPartnerTimes = sysPartnerTimeMapper.selectList(new LambdaQueryWrapper<SysPartnerTime>()
  617. // .eq(SysPartnerTime::getCreateTime, format).eq(SysPartnerTime::getUserId, sysPartnerDto.getUserId()));
  618. // if (sysPartnerTimes.size() > 0) {
  619. // throw new DescribeException(format + "已设置过抽成比例,每月只能修改一次");
  620. // }
  621. // boolean b;
  622. // SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
  623. // .eq(SysPartner::getDelFlag, 1).eq(SysPartner::getUserId, sysPartnerDto.getUserId()));
  624. // if (sysPartner == null) throw new DescribeException("系统错误,请联系管理员!");
  625. //
  626. // if (StringUtils.isNullOrEmpty(sysPartner.getSuggestId()) && StringUtils.isNotEmpty(sysPartnerDto.getSuggestId())) {
  627. // SysPartner partner = new SysPartner();
  628. // partner.setId(sysPartner.getId());
  629. // partner.setProportional(sysPartnerDto.getProportional());
  630. //
  631. // partner.setSuggestId(sysPartnerDto.getSuggestId());
  632. // partner.setSuggestName(sysPartnerDto.getSuggestName());
  633. // SysPartner sysPartnerSuggest = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
  634. // .eq(SysPartner::getDelFlag, 1).eq(SysPartner::getUserId, sysPartnerDto.getSuggestId()));
  635. // if (sysPartnerSuggest == null) throw new SystemException("推荐人不存在");
  636. // partner.setType(sysPartnerSuggest.getType() + 1);
  637. // b = sysPartnerMapper.updateById(partner) > 0;
  638. //
  639. // SysRelationPerson sysRelationPerson = new SysRelationPerson();
  640. // sysRelationPerson.setAgencyLeaderId(sysPartnerDto.getUserId());
  641. // sysRelationPerson.setSuggestId(sysPartnerDto.getSuggestId());
  642. // //'推荐等级(0:直接推荐;1:间接推荐)
  643. // sysRelationPerson.setSource(0);
  644. // //推荐类型(0:合伙人 1:机构负责人)
  645. // sysRelationPerson.setType(0);
  646. // sysRelationPerson.setCreateBy(BaseController.getUser().getId());
  647. // sysRelationPerson.setCreateTime(new Date());
  648. // b = sysRelationPersonMapper.insert(sysRelationPerson) > 0;
  649. // //查询合伙人的推荐人是否有上级
  650. // List<SysRelationPerson> sysRelationPeople = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
  651. // .eq(SysRelationPerson::getAgencyLeaderId, sysPartnerDto.getSuggestId())
  652. // .eq(SysRelationPerson::getType, 0));
  653. // if (sysRelationPeople.size() > 0) {
  654. // for (SysRelationPerson relationPerson : sysRelationPeople) {
  655. // SysRelationPerson sysRelationPerson1 = new SysRelationPerson();
  656. // sysRelationPerson1.setAgencyLeaderId(sysPartnerDto.getUserId());
  657. // sysRelationPerson1.setSuggestId(relationPerson.getSuggestId());
  658. // sysRelationPerson1.setSource(1);
  659. // //推荐类型(0:合伙人 1:机构负责人)
  660. // sysRelationPerson1.setType(0);
  661. // sysRelationPerson1.setCreateBy(BaseController.getUser().getId());
  662. // sysRelationPerson1.setCreateTime(new Date());
  663. // sysRelationPersonMapper.insert(sysRelationPerson1);
  664. // }
  665. // }
  666. // } else {
  667. // SysPartner partner = new SysPartner();
  668. // partner.setId(sysPartner.getId());
  669. // partner.setProportional(sysPartnerDto.getProportional());
  670. //
  671. // b = sysPartnerMapper.updateById(partner) > 0;
  672. // }
  673. // //修改抽成比例记录改变过程
  674. // SysPartnerTime sysPartnerTime = new SysPartnerTime();
  675. // sysPartnerTime.setType(1);
  676. // sysPartnerTime.setCreateTime(format);
  677. // sysPartnerTime.setUserId(sysPartnerDto.getUserId());
  678. // sysPartnerTime.setUserName(sysPartnerDto.getUserName());
  679. // sysPartnerTime.setNewProportional(sysPartnerDto.getProportional());
  680. // sysPartnerTime.setOldProportional(sysPartner.getProportional());
  681. //
  682. // sysPartnerTimeMapper.insert(sysPartnerTime);
  683. //
  684. // return b;
  685. // }
  686. @Override
  687. @Transactional(rollbackFor = Exception.class)
  688. public boolean edit(SysPartnerDto sysPartnerDto) {
  689. SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
  690. .eq(SysPartner::getDelFlag, 1).eq(SysPartner::getUserId, sysPartnerDto.getUserId()));
  691. if (sysPartner == null) throw new DescribeException("系统错误,请联系管理员!");
  692. SysPartner partner = new SysPartner();
  693. partner.setId(sysPartner.getId());
  694. partner.setUserName(sysPartnerDto.getUserName());
  695. return sysPartnerMapper.updateById(partner) > 0;
  696. }
  697. @Override
  698. public BasePageResult<AgencyExtractFeeVo> queryAgencyLeaderById(SysAgencyLeaderPageDto sysAgencyLeaderPageDto) {
  699. List<AgencyExtractFeeVo> agencyExtractFeeList = new ArrayList<>();
  700. List<SysRelationPerson> sysRelationPeople = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
  701. .eq(SysRelationPerson::getSuggestId, sysAgencyLeaderPageDto.getUserId()).eq(SysRelationPerson::getType, 1));
  702. //获取所有推荐的机构负责人id
  703. List<String> agencyLeaderIds = sysRelationPeople.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
  704. Page<SysAgencyLeader> page = new Page<>(sysAgencyLeaderPageDto.getPageNum(), sysAgencyLeaderPageDto.getPageSize());
  705. LambdaQueryWrapper<SysAgencyLeader> wrapper = new LambdaQueryWrapper<>();
  706. wrapper.in(SysAgencyLeader::getUserId, agencyLeaderIds);
  707. wrapper.eq(SysAgencyLeader::getDelFlag, 1);
  708. wrapper.orderByDesc(SysAgencyLeader::getId);
  709. Page<SysAgencyLeader> insOrdersPage = sysAgencyLeaderService.page(page, wrapper);
  710. List<SysAgencyLeader> records = insOrdersPage.getRecords();
  711. if (records.size() > 0) {
  712. for (SysAgencyLeader sysAgencyLeaders : records) {
  713. AgencyExtractFeeVo agencyExtractFee = new AgencyExtractFeeVo();
  714. String userId = sysAgencyLeaders.getUserId();
  715. //已提现抽成费用
  716. BigDecimal historyFee = BigDecimal.ZERO;
  717. SysUser sysUser = sysUserMapper.selectById(userId);
  718. SysDept sysDept = sysDeptMapper.selectById(sysAgencyLeaders.getDeptId());
  719. agencyExtractFee.setUserId(userId);
  720. agencyExtractFee.setUserName(sysUser.getName());
  721. agencyExtractFee.setDeptId(sysAgencyLeaders.getDeptId());
  722. agencyExtractFee.setDeptName(sysDept.getName());
  723. SysPartnerAccount sysPartnerAccount = sysPartnerAccountMapper.selectOne(new LambdaQueryWrapper<SysPartnerAccount>()
  724. .eq(SysPartnerAccount::getUserId, userId));
  725. if (sysPartnerAccount != null) {
  726. BigDecimal sumPremium = sysPartnerAccount.getSumPremium();
  727. BigDecimal extractFee = sysPartnerAccount.getExtractFee();
  728. agencyExtractFee.setSumpremium(sumPremium);
  729. agencyExtractFee.setExtractFee(extractFee);
  730. // 填充 已提现抽成费用和可提现抽成费用
  731. List<SysAgencyFeeApproval> sysAgencyFeeApprovals = sysAgencyFeeApprovalMapper.selectList(new LambdaQueryWrapper<SysAgencyFeeApproval>()
  732. .eq(SysAgencyFeeApproval::getUserId, sysAgencyLeaders.getUserId())
  733. .eq(SysAgencyFeeApproval::getStatus, 1));
  734. if (sysAgencyFeeApprovals.size() > 0) {
  735. for (SysAgencyFeeApproval sysAgencyFeeApproval : sysAgencyFeeApprovals) {
  736. historyFee = historyFee.add(sysAgencyFeeApproval.getHistoryFee());
  737. }
  738. }
  739. if (!extractFee.equals(BigDecimal.ZERO)) {
  740. //已提现
  741. agencyExtractFee.setHistoryFee(historyFee);
  742. //可提现 = 总抽成-已提现
  743. agencyExtractFee.setCashFee(extractFee.subtract(historyFee));
  744. } else {
  745. agencyExtractFee.setHistoryFee(BigDecimal.ZERO);
  746. agencyExtractFee.setCashFee(extractFee.subtract(BigDecimal.ZERO));
  747. }
  748. }
  749. agencyExtractFeeList.add(agencyExtractFee);
  750. }
  751. }
  752. return new BasePageResult<>(sysAgencyLeaderPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
  753. agencyExtractFeeList);
  754. }
  755. @Override
  756. public APPPartnerInfoFreeVo getTeamInfo(PartnerGradeInfo partnerGradeInfo) {
  757. APPPartnerInfoFreeVo appPartnerInfoFreeVo = new APPPartnerInfoFreeVo();
  758. List<APPPartnerInfo> appPartnerInfoList = new ArrayList<>();
  759. List<String> deptIds = partnerGradeInfo.getDeptIds();
  760. if (CollectionUtil.isEmpty(deptIds)) {
  761. return appPartnerInfoFreeVo;
  762. }
  763. List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
  764. .in(SysDept::getId, deptIds).eq(SysDept::getDelFlag, 0));
  765. if (sysDeptList.size() == 0) {
  766. return appPartnerInfoFreeVo;
  767. }
  768. for (SysDept sysDept : sysDeptList) {
  769. APPPartnerInfo appPartnerInfo = new APPPartnerInfo();
  770. appPartnerInfo.setDeptId(sysDept.getId());
  771. appPartnerInfo.setDeptName(sysDept.getName());
  772. String leaderId = sysDept.getLeaderId();
  773. if (StringUtils.isNotEmpty(leaderId)) {
  774. appPartnerInfo.setLeaderId(leaderId);
  775. SysUser sysUser = sysUserMapper.selectById(leaderId);
  776. appPartnerInfo.setLeaderName(sysUser.getName());
  777. }
  778. //获取机构下的团队
  779. List<SysDept> sysDepTeam = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
  780. .likeRight(SysDept::getId, sysDept.getId())
  781. .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
  782. .eq(SysDept::getManagementSource, sysDept.getManagementSource()));
  783. //机构下每个团队人数id集合
  784. List<String> userIdList = new ArrayList<>();
  785. int deptManNum = 0;
  786. if (sysDepTeam.size() > 0) {
  787. for (SysDept sysDept1 : sysDepTeam) {
  788. List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
  789. .likeRight(SysUser::getId, sysDept1.getId()).ne(SysUser::getStatus, 0));
  790. deptManNum = deptManNum + sysUsers.size();
  791. if (sysUsers.size() > 0) {
  792. List<String> collect = sysUsers.stream().map(SysUser::getId).collect(Collectors.toList());
  793. userIdList.addAll(collect);
  794. }
  795. }
  796. }
  797. appPartnerInfo.setTeamManNum(deptManNum);
  798. appPartnerInfo.setUserIds(userIdList);
  799. //查团队的保费
  800. List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
  801. .in(SysPremiumDetails::getUserId, userIdList)
  802. .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()),
  803. SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime())
  804. .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()));
  805. BigDecimal sumPremium = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
  806. appPartnerInfo.setSumPremium(sumPremium);
  807. List<SysUserAccountHistory> sysUserAccountHistories = sysUserAccountHistoryMapper.selectList(new LambdaQueryWrapper<SysUserAccountHistory>()
  808. .in(SysUserAccountHistory::getUserId, userIdList).eq(SysUserAccountHistory::getProperty, 3));
  809. BigDecimal extractFee = sysUserAccountHistories.stream().map(SysUserAccountHistory::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
  810. appPartnerInfo.setExtractFee(extractFee);
  811. appPartnerInfoList.add(appPartnerInfo);
  812. }
  813. List<String> ids = new ArrayList<>();
  814. List<List<String>> collect = appPartnerInfoList.stream().map(APPPartnerInfo::getUserIds).collect(Collectors.toList());
  815. if (collect.size() > 0) {
  816. for (List<String> list : collect) {
  817. ids.addAll(list);
  818. }
  819. }
  820. List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
  821. .in(SysPremiumDetails::getUserId, ids)
  822. .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()),
  823. SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime())
  824. .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()));
  825. BigDecimal sumPremium = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
  826. appPartnerInfoFreeVo.setSumPremium(sumPremium);
  827. List<SysUserAccountHistory> sysUserAccountHistories = sysUserAccountHistoryMapper.selectList(new LambdaQueryWrapper<SysUserAccountHistory>()
  828. .in(SysUserAccountHistory::getUserId, ids).eq(SysUserAccountHistory::getProperty, 3));
  829. BigDecimal extractFee = sysUserAccountHistories.stream().map(SysUserAccountHistory::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
  830. appPartnerInfoFreeVo.setExtractFee(extractFee);
  831. int sum = appPartnerInfoList.stream().mapToInt(APPPartnerInfo::getTeamManNum).sum();
  832. appPartnerInfoFreeVo.setTeamManNum(sum);
  833. appPartnerInfoFreeVo.setAppPartnerInfos(appPartnerInfoList);
  834. return appPartnerInfoFreeVo;
  835. }
  836. @Override
  837. public AppPartnerNumVo getHomePage(Integer type) {
  838. AppPartnerNumVo appPartnerNumVo = new AppPartnerNumVo();
  839. //合伙人:1 ;工作室管理员:2
  840. String userId = BaseController.getUserId();
  841. SysPartnerAccount sysPartnerAccount = sysPartnerAccountMapper.selectOne(new LambdaQueryWrapper<SysPartnerAccount>()
  842. .eq(SysPartnerAccount::getUserId, userId));
  843. if (sysPartnerAccount != null) {
  844. appPartnerNumVo.setSumPremium(sysPartnerAccount.getSumPremium());
  845. appPartnerNumVo.setExtractFee(sysPartnerAccount.getExtractFee());
  846. }
  847. if (type == 1) {
  848. //下面合伙人(直接+间接)数量
  849. List<SysRelationPerson> sysRelationPersonList1 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
  850. .eq(SysRelationPerson::getSuggestId, userId)
  851. .eq(SysRelationPerson::getDelFlag, 1)
  852. .eq(SysRelationPerson::getType, 0));
  853. appPartnerNumVo.setPartnerNum(sysRelationPersonList1.size());
  854. //直接工作室数量
  855. List<SysRelationPerson> sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
  856. .eq(SysRelationPerson::getSuggestId, userId)
  857. .eq(SysRelationPerson::getDelFlag, 1)
  858. .eq(SysRelationPerson::getSource, 0)
  859. .eq(SysRelationPerson::getType, 1));
  860. appPartnerNumVo.setWorkroomNum(sysRelationPersonList.size());
  861. List<String> collect = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
  862. appPartnerNumVo.setLeaderIds(collect);
  863. //登录人下面的所有团队人数
  864. List<SysRelationPerson> sysRelationPersonList2 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
  865. .eq(SysRelationPerson::getSuggestId, userId)
  866. .eq(SysRelationPerson::getDelFlag, 1)
  867. .eq(SysRelationPerson::getType, 1));
  868. List<String> ids = sysRelationPersonList2.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
  869. List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
  870. .in(CollectionUtil.isNotEmpty(ids), SysAgencyLeader::getUserId, ids).eq(SysAgencyLeader::getDelFlag, 1));
  871. int deptManNum = 0;
  872. if (leaderList.size() > 0) {
  873. for (SysAgencyLeader sysAgencyLeader : leaderList) {
  874. //获取机构下的团队
  875. List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
  876. .likeRight(SysDept::getId, sysAgencyLeader.getDeptId())
  877. .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
  878. .eq(SysDept::getManagementSource, sysAgencyLeader.getSource()));
  879. if (sysDeptList.size() > 0) {
  880. for (SysDept sysDept : sysDeptList) {
  881. List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
  882. .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0));
  883. deptManNum = deptManNum + sysUsers.size();
  884. }
  885. }
  886. }
  887. appPartnerNumVo.setTeamManNum(deptManNum);
  888. }
  889. } else {
  890. int deptManNum = 0;
  891. SysAgencyLeader sysAgencyLeader = sysAgencyLeaderMapper.selectOne(new LambdaQueryWrapper<SysAgencyLeader>()
  892. .in(SysAgencyLeader::getUserId, userId).eq(SysAgencyLeader::getDelFlag, 1));
  893. //获取机构下的团队
  894. List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
  895. .likeRight(SysDept::getId, sysAgencyLeader.getDeptId())
  896. .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
  897. .eq(SysDept::getManagementSource, sysAgencyLeader.getSource()));
  898. appPartnerNumVo.setWorkroomTeamNum(sysDeptList.size());
  899. List<String> deptIds = new ArrayList<>();
  900. if (sysDeptList.size() > 0) {
  901. for (SysDept sysDept : sysDeptList) {
  902. List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
  903. .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0));
  904. deptManNum = deptManNum + sysUsers.size();
  905. deptIds.add(sysDept.getId());
  906. }
  907. appPartnerNumVo.setWorkroomManNum(deptManNum);
  908. appPartnerNumVo.setTeamManNum(deptManNum);
  909. appPartnerNumVo.setDeptIds(deptIds);
  910. }
  911. }
  912. return appPartnerNumVo;
  913. }
  914. @Override
  915. public AppUserInfoVo getUserInfo(Integer type) {
  916. String userId = BaseController.getUserId();
  917. AppUserInfoVo appUserInfoVo = sysUserMapper.queryByUserId(userId);
  918. if (type == 1) {
  919. SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
  920. .eq(SysPartner::getDelFlag, 1).eq(SysPartner::getUserId, userId));
  921. SysPartnerConfig sysPartnerConfig = sysPartnerConfigMapper.selectOne(new LambdaQueryWrapper<SysPartnerConfig>()
  922. .eq(SysPartnerConfig::getDelFlag,1).eq(SysPartnerConfig::getLevel,sysPartner.getType()));
  923. appUserInfoVo.setSysPartnerConfig(sysPartnerConfig);
  924. appUserInfoVo.setLevel(sysPartner.getType());
  925. }
  926. // 获取当前日期
  927. LocalDate currentDate = LocalDate.now();
  928. ZoneId zoneId = ZoneId.systemDefault();
  929. Date entryTime = appUserInfoVo.getEntryTime();
  930. if (entryTime != null) {
  931. LocalDate localDate = entryTime.toInstant().atZone(zoneId).toLocalDate();
  932. // 计算年数
  933. long years = ChronoUnit.YEARS.between(localDate, currentDate);
  934. appUserInfoVo.setYears(years);
  935. }
  936. return appUserInfoVo;
  937. }
  938. @Override
  939. public SysPartnerAccount getFee() {
  940. String userId = BaseController.getUserId();
  941. return sysPartnerAccountMapper.selectOne(new LambdaQueryWrapper<SysPartnerAccount>().eq(SysPartnerAccount::getUserId, userId));
  942. }
  943. @Override
  944. public List<AppSysPartnerVo> partnerInfo(PartnerInfoDto partnerInfoDto) {
  945. List<AppSysPartnerVo> appSysPartnerVos = new ArrayList<>();
  946. String userId = BaseController.getUserId();
  947. SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
  948. .eq(SysPartner::getUserId, userId).eq(SysPartner::getDelFlag, 1));
  949. //查询登陆人下所有合伙人
  950. List<SysPartner> sysPartnerList = sysPartnerMapper.queryByLoginId(userId);
  951. Map<Integer, List<SysPartner>> listMap = sysPartnerList.stream().sorted(Comparator.comparing(SysPartner::getId))
  952. .collect(Collectors.groupingBy(SysPartner::getType));
  953. //按等级查询
  954. Integer partnerType = partnerInfoDto.getPartnerType();
  955. if (partnerType != null) {
  956. List<SysPartner> sysPartnerList1 = listMap.get(partnerType);
  957. if (sysPartnerList1 != null) {
  958. AppSysPartnerVo appSysPartnerVo = new AppSysPartnerVo();
  959. //下级合伙人数
  960. appSysPartnerVo.setPartnerNumber(sysPartnerList1.size());
  961. List<String> ids = sysPartnerList1.stream().map(SysPartner::getUserId).collect(Collectors.toList());
  962. appSysPartnerVo.setPartnerIds(ids);
  963. List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
  964. .in(CollectionUtil.isNotEmpty(ids), SysPremiumDetails::getUserId, ids)
  965. .between(StringUtils.isNotEmpty(partnerInfoDto.getBeginTime()) && StringUtils.isNotEmpty(partnerInfoDto.getEndTime()),
  966. SysPremiumDetails::getCreateTime, partnerInfoDto.getBeginTime(), partnerInfoDto.getEndTime())
  967. .eq(partnerInfoDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerInfoDto.getIndustrySector()));
  968. BigDecimal sumPremium = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
  969. BigDecimal extractFee = sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
  970. // appSysPartnerVo.setSumPremium(sumPremium);
  971. // appSysPartnerVo.setExtractFee(extractFee);
  972. //二级以下团队的总人数
  973. List<SysRelationPerson> sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
  974. .in(CollectionUtil.isNotEmpty(ids), SysRelationPerson::getSuggestId, ids)
  975. .eq(SysRelationPerson::getDelFlag, 1)
  976. .eq(SysRelationPerson::getType, 1));
  977. int deptManNum = 0;
  978. if (sysRelationPersonList.size() > 0) {
  979. List<String> idList = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
  980. List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
  981. .in(CollectionUtil.isNotEmpty(idList), SysAgencyLeader::getUserId, idList).eq(SysAgencyLeader::getDelFlag, 1));
  982. if (leaderList.size() > 0) {
  983. for (SysAgencyLeader sysAgencyLeader : leaderList) {
  984. //获取机构下的团队
  985. List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
  986. .likeRight(SysDept::getId, sysAgencyLeader.getDeptId())
  987. .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
  988. .eq(SysDept::getManagementSource, sysAgencyLeader.getSource()));
  989. if (sysDeptList.size() > 0) {
  990. for (SysDept sysDept : sysDeptList) {
  991. List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
  992. .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0));
  993. deptManNum = deptManNum + sysUsers.size();
  994. }
  995. }
  996. }
  997. }
  998. }
  999. // appSysPartnerVo.setTeamManNum(deptManNum);
  1000. List<String> list = new ArrayList<>();
  1001. if (partnerType == 1) {
  1002. //一级获取登陆人的之际工作室
  1003. list.add(userId);
  1004. } else {
  1005. //获取上一级合伙人,查询工作室数量
  1006. List<SysPartner> sysPartners = listMap.get(sysPartner.getType() + partnerType - 1);
  1007. //上一级直接推荐的工作室数量
  1008. List<String> list1 = sysPartners.stream().map(SysPartner::getUserId).collect(Collectors.toList());
  1009. list.addAll(list1);
  1010. }
  1011. List<SysRelationPerson> sysRelationPersons = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
  1012. .in(CollectionUtil.isNotEmpty(list), SysRelationPerson::getSuggestId, list)
  1013. .eq(SysRelationPerson::getDelFlag, 1)
  1014. .eq(SysRelationPerson::getSource, 0)
  1015. .eq(SysRelationPerson::getType, 1));
  1016. appSysPartnerVo.setWorkNumber(sysRelationPersons.size());
  1017. List<String> list1 = sysRelationPersons.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
  1018. appSysPartnerVo.setLeaderIds(list1);
  1019. //直接工作室保费
  1020. List<SysPremiumDetails> sysPremiumDetails1 = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
  1021. .in(CollectionUtil.isNotEmpty(ids), SysPremiumDetails::getUserId, list1)
  1022. .between(StringUtils.isNotEmpty(partnerInfoDto.getBeginTime()) && StringUtils.isNotEmpty(partnerInfoDto.getEndTime()),
  1023. SysPremiumDetails::getCreateTime, partnerInfoDto.getBeginTime(), partnerInfoDto.getEndTime())
  1024. .eq(partnerInfoDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerInfoDto.getIndustrySector()));
  1025. BigDecimal sumPremium1 = sysPremiumDetails1.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
  1026. BigDecimal extractFee1 = sysPremiumDetails1.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
  1027. appSysPartnerVo.setSumPremium(sumPremium.add(sumPremium1));
  1028. appSysPartnerVo.setExtractFee(extractFee.add(extractFee1));
  1029. int leaderManNum=0;
  1030. //直接工作室总
  1031. List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
  1032. .in(CollectionUtil.isNotEmpty(list1), SysAgencyLeader::getUserId, list1).eq(SysAgencyLeader::getDelFlag, 1));
  1033. if (leaderList.size() > 0) {
  1034. for (SysAgencyLeader sysAgencyLeader : leaderList) {
  1035. //获取机构下的团队
  1036. List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
  1037. .likeRight(SysDept::getId, sysAgencyLeader.getDeptId())
  1038. .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
  1039. .eq(SysDept::getManagementSource, sysAgencyLeader.getSource()));
  1040. if (sysDeptList.size() > 0) {
  1041. for (SysDept sysDept : sysDeptList) {
  1042. List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
  1043. .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0));
  1044. leaderManNum = leaderManNum + sysUsers.size();
  1045. }
  1046. }
  1047. }
  1048. }
  1049. appSysPartnerVo.setTeamManNum(deptManNum+leaderManNum);
  1050. appSysPartnerVo.setNumber(appSysPartnerVo.getPartnerNumber() + appSysPartnerVo.getWorkNumber());
  1051. //每一级存入map
  1052. appSysPartnerVo.setPartnerType(partnerType);
  1053. appSysPartnerVos.add(appSysPartnerVo);
  1054. }
  1055. return appSysPartnerVos;
  1056. }
  1057. for (Integer integer : listMap.keySet()) {
  1058. //二级
  1059. List<SysPartner> sysPartnerList1 = listMap.get(integer);
  1060. if (sysPartnerList1.size() > 0) {
  1061. AppSysPartnerVo appSysPartnerVo = new AppSysPartnerVo();
  1062. appSysPartnerVo.setPartnerType(integer);
  1063. //下级合伙人数
  1064. appSysPartnerVo.setPartnerNumber(sysPartnerList1.size());
  1065. List<String> ids = sysPartnerList1.stream().map(SysPartner::getUserId).collect(Collectors.toList());
  1066. appSysPartnerVo.setPartnerIds(ids);
  1067. List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
  1068. .in(CollectionUtil.isNotEmpty(ids), SysPremiumDetails::getUserId, ids)
  1069. .between(StringUtils.isNotEmpty(partnerInfoDto.getBeginTime()) && StringUtils.isNotEmpty(partnerInfoDto.getEndTime()),
  1070. SysPremiumDetails::getCreateTime, partnerInfoDto.getBeginTime(), partnerInfoDto.getEndTime())
  1071. .eq(partnerInfoDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerInfoDto.getIndustrySector()));
  1072. BigDecimal sumPremium = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
  1073. BigDecimal extractFee = sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
  1074. //同等级合伙人团队的总人数:
  1075. List<SysRelationPerson> sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
  1076. .in(CollectionUtil.isNotEmpty(ids), SysRelationPerson::getSuggestId, ids)
  1077. .eq(SysRelationPerson::getDelFlag, 1)
  1078. .eq(SysRelationPerson::getType, 1));
  1079. int deptManNum = 0;
  1080. if (sysRelationPersonList.size() > 0) {
  1081. List<String> idList = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
  1082. List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
  1083. .in(CollectionUtil.isNotEmpty(idList), SysAgencyLeader::getUserId, idList).eq(SysAgencyLeader::getDelFlag, 1));
  1084. if (leaderList.size() > 0) {
  1085. for (SysAgencyLeader sysAgencyLeader : leaderList) {
  1086. //获取机构下的团队
  1087. List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
  1088. .likeRight(SysDept::getId, sysAgencyLeader.getDeptId())
  1089. .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
  1090. .eq(SysDept::getManagementSource, sysAgencyLeader.getSource()));
  1091. if (sysDeptList.size() > 0) {
  1092. for (SysDept sysDept : sysDeptList) {
  1093. List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
  1094. .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0));
  1095. deptManNum = deptManNum + sysUsers.size();
  1096. }
  1097. }
  1098. }
  1099. }
  1100. }
  1101. List<String> list = new ArrayList<>();
  1102. int type = sysPartner.getType();
  1103. if (type == 1) {
  1104. if (integer == 2) {
  1105. //一级获取登陆人的之际工作室
  1106. list.add(userId);
  1107. } else {
  1108. //获取上一级合伙人,查询工作室数量
  1109. List<SysPartner> sysPartners = listMap.get(integer - 1);
  1110. if (sysPartners == null) {
  1111. //上一级直接推荐的工作室数量
  1112. List<String> list1 = sysPartners.stream().map(SysPartner::getUserId).collect(Collectors.toList());
  1113. list.addAll(list1);
  1114. extracted(partnerInfoDto, appSysPartnerVo, sumPremium, extractFee, deptManNum, list);
  1115. }
  1116. }
  1117. }else if (type == 2) {
  1118. if (integer == 3) {
  1119. //一级获取登陆人的之际工作室
  1120. list.add(userId);
  1121. } else {
  1122. //获取上一级合伙人,查询工作室数量
  1123. List<SysPartner> sysPartners = listMap.get(integer - 1);
  1124. if (sysPartners != null) {
  1125. //上一级直接推荐的工作室数量
  1126. List<String> list1 = sysPartners.stream().map(SysPartner::getUserId).collect(Collectors.toList());
  1127. list.addAll(list1);
  1128. extracted(partnerInfoDto, appSysPartnerVo, sumPremium, extractFee, deptManNum, list);
  1129. }
  1130. }
  1131. }else if (type == 3) {
  1132. if (integer == 4) {
  1133. //一级获取登陆人的之际工作室
  1134. list.add(userId);
  1135. } else {
  1136. //获取上一级合伙人,查询工作室数量
  1137. List<SysPartner> sysPartners = listMap.get(integer - 1);
  1138. if (sysPartners != null) {
  1139. //上一级直接推荐的工作室数量
  1140. List<String> list1 = sysPartners.stream().map(SysPartner::getUserId).collect(Collectors.toList());
  1141. list.addAll(list1);
  1142. extracted(partnerInfoDto, appSysPartnerVo, sumPremium, extractFee, deptManNum, list);
  1143. }
  1144. }
  1145. }else if (type == 4) {
  1146. if (integer == 5) {
  1147. //一级获取登陆人的之际工作室
  1148. list.add(userId);
  1149. } else {
  1150. //获取上一级合伙人,查询工作室数量
  1151. List<SysPartner> sysPartners = listMap.get(integer - 1);
  1152. if (sysPartners != null) {
  1153. //上一级直接推荐的工作室数量
  1154. List<String> list1 = sysPartners.stream().map(SysPartner::getUserId).collect(Collectors.toList());
  1155. list.addAll(list1);
  1156. extracted(partnerInfoDto, appSysPartnerVo, sumPremium, extractFee, deptManNum, list);
  1157. }
  1158. }
  1159. }
  1160. // extracted(partnerInfoDto, appSysPartnerVo, sumPremium, extractFee, deptManNum, list);
  1161. //每一级存入map
  1162. appSysPartnerVos.add(appSysPartnerVo);
  1163. }
  1164. }
  1165. return appSysPartnerVos;
  1166. }
  1167. private void extracted(PartnerInfoDto partnerInfoDto, AppSysPartnerVo appSysPartnerVo, BigDecimal sumPremium, BigDecimal extractFee, int deptManNum, List<String> list) {
  1168. List<SysRelationPerson> sysRelationPersons = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
  1169. .in(CollectionUtil.isNotEmpty(list), SysRelationPerson::getSuggestId, list)
  1170. .eq(SysRelationPerson::getDelFlag, 1)
  1171. .eq(SysRelationPerson::getSource, 0)
  1172. .eq(SysRelationPerson::getType, 1));
  1173. appSysPartnerVo.setWorkNumber(sysRelationPersons.size());
  1174. List<String> list1 = sysRelationPersons.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
  1175. appSysPartnerVo.setLeaderIds(list1);
  1176. //直接工作室保费
  1177. List<SysPremiumDetails> sysPremiumDetails1 = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
  1178. .in(CollectionUtil.isNotEmpty(list1), SysPremiumDetails::getUserId, list1)
  1179. .between(StringUtils.isNotEmpty(partnerInfoDto.getBeginTime()) && StringUtils.isNotEmpty(partnerInfoDto.getEndTime()),
  1180. SysPremiumDetails::getCreateTime, partnerInfoDto.getBeginTime(), partnerInfoDto.getEndTime())
  1181. .eq(partnerInfoDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerInfoDto.getIndustrySector()));
  1182. if (sysPremiumDetails1 != null) {
  1183. BigDecimal sumPremium1 = sysPremiumDetails1.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
  1184. BigDecimal extractFee1 = sysPremiumDetails1.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
  1185. appSysPartnerVo.setSumPremium(sumPremium.add(sumPremium1));
  1186. appSysPartnerVo.setExtractFee(extractFee.add(extractFee1));
  1187. }else {
  1188. appSysPartnerVo.setSumPremium(sumPremium);
  1189. appSysPartnerVo.setExtractFee(extractFee);
  1190. }
  1191. int leaderManNum=0;
  1192. //直接工作室总
  1193. List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
  1194. .in(CollectionUtil.isNotEmpty(list1), SysAgencyLeader::getUserId, list1).eq(SysAgencyLeader::getDelFlag, 1));
  1195. if (leaderList.size() > 0) {
  1196. for (SysAgencyLeader sysAgencyLeader : leaderList) {
  1197. //获取机构下的团队
  1198. List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
  1199. .likeRight(SysDept::getId, sysAgencyLeader.getDeptId())
  1200. .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
  1201. .eq(SysDept::getManagementSource, sysAgencyLeader.getSource()));
  1202. if (sysDeptList.size() > 0) {
  1203. for (SysDept sysDept : sysDeptList) {
  1204. List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
  1205. .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0));
  1206. leaderManNum = leaderManNum + sysUsers.size();
  1207. }
  1208. }
  1209. }
  1210. }
  1211. appSysPartnerVo.setTeamManNum(deptManNum +leaderManNum);
  1212. appSysPartnerVo.setNumber(appSysPartnerVo.getPartnerNumber() + appSysPartnerVo.getWorkNumber());
  1213. }
  1214. @Override
  1215. public PartnerInfoFreeVo queryPartnerInfo(PartnerGradeInfo partnerGradeInfo) {
  1216. PartnerInfoFreeVo partnerInfoFreeVo = new PartnerInfoFreeVo();
  1217. List<PartnerInfoVo> partnerInfoVoList = new ArrayList<>();
  1218. //合伙人:1;工作室:2
  1219. Integer type = partnerGradeInfo.getType();
  1220. if (type == 1) {
  1221. List<String> partnerIds = partnerGradeInfo.getPartnerIds();
  1222. if (CollectionUtil.isEmpty(partnerIds)) {
  1223. return partnerInfoFreeVo;
  1224. }
  1225. //费用
  1226. List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
  1227. .in(SysPremiumDetails::getUserId, partnerIds)
  1228. .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()),
  1229. SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime())
  1230. .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()));
  1231. BigDecimal sumPremium = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
  1232. BigDecimal extractFee = sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
  1233. partnerInfoFreeVo.setSumPremium(sumPremium);
  1234. partnerInfoFreeVo.setExtractFee(extractFee);
  1235. //合伙人
  1236. List<SysPartner> sysPartnerList = sysPartnerMapper.selectList(new LambdaQueryWrapper<SysPartner>()
  1237. .in(SysPartner::getUserId, partnerGradeInfo.getPartnerIds()).eq(SysPartner::getDelFlag, 1));
  1238. if (sysPartnerList.size() > 0) {
  1239. for (SysPartner sysPartner : sysPartnerList) {
  1240. PartnerInfoVo partnerInfoVo = new PartnerInfoVo();
  1241. partnerInfoVo.setLevel(partnerGradeInfo.getLevel());
  1242. String userId = sysPartner.getUserId();
  1243. partnerInfoVo.setUserId(userId);
  1244. SysUser sysUser = sysUserMapper.selectById(userId);
  1245. partnerInfoVo.setUserName(sysUser.getName());
  1246. SysUser sysUser1 = sysUserMapper.selectById(sysPartner.getSuggestId());
  1247. partnerInfoVo.setSuggestName(sysUser1.getName());
  1248. //费用
  1249. List<SysPremiumDetails> sysPremiumDetail = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
  1250. .eq(SysPremiumDetails::getUserId, userId)
  1251. .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()),
  1252. SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime())
  1253. .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()));
  1254. BigDecimal sumPremium1 = sysPremiumDetail.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
  1255. BigDecimal extractFee1 = sysPremiumDetail.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
  1256. partnerInfoVo.setSumPremium(sumPremium1);
  1257. partnerInfoVo.setExtractFee(extractFee1);
  1258. //直接合伙人
  1259. List<SysRelationPerson> sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
  1260. .eq(SysRelationPerson::getSuggestId, userId)
  1261. .eq(SysRelationPerson::getDelFlag, 1)
  1262. .eq(SysRelationPerson::getType, 0)
  1263. .eq(SysRelationPerson::getSource, 0));
  1264. List<String> collect = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
  1265. partnerInfoVo.setPartnerIds(collect);
  1266. partnerInfoVo.setPartnerNumber(collect.size());
  1267. //直接管理员
  1268. List<SysRelationPerson> sysRelationPersonList1 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
  1269. .eq(SysRelationPerson::getSuggestId, userId)
  1270. .eq(SysRelationPerson::getDelFlag, 1)
  1271. .eq(SysRelationPerson::getType, 1)
  1272. .eq(SysRelationPerson::getSource, 0));
  1273. List<String> collects = sysRelationPersonList1.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
  1274. partnerInfoVo.setLeaderIds(collects);
  1275. partnerInfoVo.setWorkNumber(collects.size());
  1276. //合伙人下所有工作室数
  1277. List<SysRelationPerson> sysRelationPersonList2 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
  1278. .eq(SysRelationPerson::getSuggestId, userId)
  1279. .eq(SysRelationPerson::getDelFlag, 1)
  1280. .eq(SysRelationPerson::getType, 1));
  1281. int deptManNum = 0;
  1282. if (sysRelationPersonList2.size() > 0) {
  1283. List<String> idList = sysRelationPersonList2.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
  1284. List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
  1285. .in(SysAgencyLeader::getUserId, idList).eq(SysAgencyLeader::getDelFlag, 1));
  1286. if (leaderList.size() > 0) {
  1287. for (SysAgencyLeader sysAgencyLeader : leaderList) {
  1288. //获取机构下的团队
  1289. List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
  1290. .likeRight(SysDept::getId, sysAgencyLeader.getDeptId())
  1291. .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
  1292. .eq(SysDept::getManagementSource, sysAgencyLeader.getSource()));
  1293. if (sysDeptList.size() > 0) {
  1294. for (SysDept sysDept : sysDeptList) {
  1295. List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
  1296. .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0));
  1297. deptManNum = deptManNum + sysUsers.size();
  1298. }
  1299. }
  1300. }
  1301. }
  1302. }
  1303. partnerInfoVo.setTeamManNum(deptManNum);
  1304. partnerInfoVoList.add(partnerInfoVo);
  1305. }
  1306. partnerInfoFreeVo.setPartnerInfoVoList(partnerInfoVoList);
  1307. }
  1308. } else {
  1309. //工作室
  1310. List<String> leaderIds = partnerGradeInfo.getLeaderIds();
  1311. if (CollectionUtil.isEmpty(leaderIds)) {
  1312. return partnerInfoFreeVo;
  1313. }
  1314. //费用
  1315. List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
  1316. .in(SysPremiumDetails::getUserId, leaderIds)
  1317. .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()),
  1318. SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime())
  1319. .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()));
  1320. BigDecimal sumPremium = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
  1321. BigDecimal extractFee = sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
  1322. partnerInfoFreeVo.setSumPremium(sumPremium);
  1323. partnerInfoFreeVo.setExtractFee(extractFee);
  1324. List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
  1325. .in(SysAgencyLeader::getUserId, leaderIds).eq(SysAgencyLeader::getDelFlag, 1));
  1326. for (SysAgencyLeader sysAgencyLeader : leaderList) {
  1327. PartnerInfoVo partnerInfoVo = new PartnerInfoVo();
  1328. String userId = sysAgencyLeader.getUserId();
  1329. partnerInfoVo.setUserId(userId);
  1330. SysUser sysUser = sysUserMapper.selectById(userId);
  1331. partnerInfoVo.setUserName(sysUser.getName());
  1332. SysUser sysUser1 = sysUserMapper.selectById(sysAgencyLeader.getSuggestId());
  1333. partnerInfoVo.setSuggestName(sysUser1.getName());
  1334. //费用
  1335. List<SysPremiumDetails> sysPremiumDetail = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
  1336. .eq(SysPremiumDetails::getUserId, userId)
  1337. .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()),
  1338. SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime())
  1339. .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()));
  1340. BigDecimal sumPremium1 = sysPremiumDetail.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
  1341. BigDecimal extractFee1 = sysPremiumDetail.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
  1342. partnerInfoVo.setSumPremium(sumPremium1);
  1343. partnerInfoVo.setExtractFee(extractFee1);
  1344. int deptManNum = 0;
  1345. //获取机构下的团队
  1346. List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
  1347. .likeRight(SysDept::getId, sysAgencyLeader.getDeptId())
  1348. .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
  1349. .eq(SysDept::getManagementSource, sysAgencyLeader.getSource()));
  1350. partnerInfoVo.setDeptNum(sysDeptList.size());
  1351. List<String> collect = sysDeptList.stream().map(SysDept::getId).collect(Collectors.toList());
  1352. partnerInfoVo.setDeptIds(collect);
  1353. if (sysDeptList.size() > 0) {
  1354. for (SysDept sysDept : sysDeptList) {
  1355. List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
  1356. .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0));
  1357. deptManNum = deptManNum + sysUsers.size();
  1358. }
  1359. }
  1360. partnerInfoVo.setTeamManNum(deptManNum);
  1361. partnerInfoVoList.add(partnerInfoVo);
  1362. }
  1363. }
  1364. int sum = partnerInfoVoList.stream().mapToInt(PartnerInfoVo::getTeamManNum).sum();
  1365. partnerInfoFreeVo.setTeamManNum(sum);
  1366. partnerInfoFreeVo.setPartnerInfoVoList(partnerInfoVoList);
  1367. return partnerInfoFreeVo;
  1368. }
  1369. @Override
  1370. public BasePageResult<SysPremiumDetails> getCommissionInfo(CommissionInfoDto commissionInfoDto) {
  1371. String userId = BaseController.getUserId();
  1372. Page<SysPremiumDetails> page = new Page<>(commissionInfoDto.getPageNum(), commissionInfoDto.getPageSize());
  1373. LambdaQueryWrapper<SysPremiumDetails> wrapper = new LambdaQueryWrapper<>();
  1374. wrapper.eq(SysPremiumDetails::getUserId, userId);
  1375. wrapper.eq(commissionInfoDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, commissionInfoDto.getIndustrySector());
  1376. wrapper.between(StringUtils.isNotEmpty(commissionInfoDto.getBeginTime()) && StringUtils.isNotEmpty(commissionInfoDto.getEndTime()),
  1377. SysPremiumDetails::getCreateTime, commissionInfoDto.getBeginTime(), commissionInfoDto.getEndTime());
  1378. wrapper.orderByDesc(SysPremiumDetails::getId);
  1379. Page<SysPremiumDetails> insOrdersPage = sysPremiumDetailsService.page(page, wrapper);
  1380. return new BasePageResult<>(commissionInfoDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
  1381. insOrdersPage.getRecords());
  1382. }
  1383. @Override
  1384. public TeamUserInfosFreeVo getTeamUserInfo(TeamUserInfosDto teamUserInfosDto) {
  1385. TeamUserInfosFreeVo teamUserInfosFreeVo = new TeamUserInfosFreeVo();
  1386. List<TeamUserInfosVo> userInfosVoList = new ArrayList<>();
  1387. List<String> userIds = teamUserInfosDto.getUserIds();
  1388. if (CollectionUtil.isEmpty(userIds)) {
  1389. return teamUserInfosFreeVo;
  1390. }
  1391. //费用
  1392. List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
  1393. .in(SysPremiumDetails::getUserId, userIds)
  1394. .between(StringUtils.isNotEmpty(teamUserInfosDto.getBeginTime()) && StringUtils.isNotEmpty(teamUserInfosDto.getEndTime()),
  1395. SysPremiumDetails::getCreateTime, teamUserInfosDto.getBeginTime(), teamUserInfosDto.getEndTime())
  1396. .eq(teamUserInfosDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, teamUserInfosDto.getIndustrySector()));
  1397. BigDecimal sumPremium = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
  1398. teamUserInfosFreeVo.setSumPremium(sumPremium);
  1399. List<SysUserAccountHistory> sysUserAccountHistories = sysUserAccountHistoryMapper.selectList(new LambdaQueryWrapper<SysUserAccountHistory>()
  1400. .in(SysUserAccountHistory::getUserId, userIds).eq(SysUserAccountHistory::getProperty, 3)
  1401. .eq(teamUserInfosDto.getIndustrySector() != null, SysUserAccountHistory::getBusinessSegmentsType, teamUserInfosDto.getIndustrySector()));
  1402. BigDecimal extractFee = sysUserAccountHistories.stream().map(SysUserAccountHistory::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
  1403. teamUserInfosFreeVo.setExtractFee(extractFee);
  1404. List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
  1405. .ne(SysUser::getStatus, 0).in(SysUser::getId, teamUserInfosDto.getUserIds()));
  1406. for (SysUser sysUser : sysUsers) {
  1407. TeamUserInfosVo teamUserInfosVo = new TeamUserInfosVo();
  1408. teamUserInfosVo.setUserId(sysUser.getId());
  1409. teamUserInfosVo.setUserName(sysUser.getName());
  1410. String leaderId = sysUser.getLeaderId();
  1411. if (StringUtils.isNotEmpty(leaderId)) {
  1412. teamUserInfosVo.setLeaderId(sysUser.getLeaderId());
  1413. SysUser sysUser1 = sysUserMapper.selectById(sysUser.getLeaderId());
  1414. teamUserInfosVo.setLeaderName(sysUser1.getName());
  1415. }
  1416. //费用
  1417. List<SysPremiumDetails> sysPremiumDetail = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
  1418. .eq(SysPremiumDetails::getUserId, sysUser.getId())
  1419. .between(StringUtils.isNotEmpty(teamUserInfosDto.getBeginTime()) && StringUtils.isNotEmpty(teamUserInfosDto.getEndTime()),
  1420. SysPremiumDetails::getCreateTime, teamUserInfosDto.getBeginTime(), teamUserInfosDto.getEndTime())
  1421. .eq(teamUserInfosDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, teamUserInfosDto.getIndustrySector()));
  1422. BigDecimal sumPremium1 = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
  1423. teamUserInfosVo.setSumPremium(sumPremium1);
  1424. List<SysUserAccountHistory> sysUserAccountHistorie = sysUserAccountHistoryMapper.selectList(new LambdaQueryWrapper<SysUserAccountHistory>()
  1425. .in(SysUserAccountHistory::getUserId, sysUser.getId()).eq(SysUserAccountHistory::getProperty, 3)
  1426. .eq(teamUserInfosDto.getIndustrySector() != null, SysUserAccountHistory::getBusinessSegmentsType, teamUserInfosDto.getIndustrySector()));
  1427. BigDecimal extractFee1 = sysUserAccountHistories.stream().map(SysUserAccountHistory::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
  1428. teamUserInfosVo.setExtractFee(extractFee1);
  1429. userInfosVoList.add(teamUserInfosVo);
  1430. }
  1431. teamUserInfosFreeVo.setTeamManNum(userIds.size());
  1432. teamUserInfosFreeVo.setTeamUserInfosVoList(userInfosVoList);
  1433. return teamUserInfosFreeVo;
  1434. }
  1435. @Override
  1436. public FilterPartnerInfoVo queryFilterPartnerInfo(FilterPartnerInfoDto filterPartnerInfoDto) {
  1437. FilterPartnerInfoVo filterPartnerInfoVo = new FilterPartnerInfoVo();
  1438. String userId = BaseController.getUserId();
  1439. SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
  1440. .eq(SysPartner::getUserId, userId).eq(SysPartner::getDelFlag, 1));
  1441. //查询登陆人下所有合伙人
  1442. List<SysPartner> sysPartnerList = sysPartnerMapper.queryByLoginId(userId);
  1443. Map<Integer, List<SysPartner>> listMap = sysPartnerList.stream().sorted(Comparator.comparing(SysPartner::getId))
  1444. .collect(Collectors.groupingBy(SysPartner::getType));
  1445. Integer partnerType = filterPartnerInfoDto.getPartnerType();
  1446. List<SysPartner> sysPartnerList1 = listMap.get(sysPartner.getType() + partnerType);
  1447. List<String> collect1 = sysPartnerList1.stream().map(SysPartner::getUserId).collect(Collectors.toList());
  1448. if (collect1.size() == 0) {
  1449. return filterPartnerInfoVo;
  1450. }
  1451. //费用
  1452. List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
  1453. .in(CollectionUtil.isNotEmpty(collect1), SysPremiumDetails::getUserId, collect1)
  1454. .between(StringUtils.isNotEmpty(filterPartnerInfoDto.getBeginTime()) && StringUtils.isNotEmpty(filterPartnerInfoDto.getEndTime()),
  1455. SysPremiumDetails::getCreateTime, filterPartnerInfoDto.getBeginTime(), filterPartnerInfoDto.getEndTime())
  1456. .eq(filterPartnerInfoDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, filterPartnerInfoDto.getIndustrySector()));
  1457. BigDecimal sumPremium = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
  1458. BigDecimal extractFee = sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
  1459. filterPartnerInfoVo.setSumPremium(sumPremium);
  1460. filterPartnerInfoVo.setExtractFee(extractFee);
  1461. if (sysPartnerList1.size() > 0) {
  1462. List<PartnerInfoVo> partnerInfoVoList = new ArrayList<>();
  1463. for (SysPartner partner : sysPartnerList1) {
  1464. PartnerInfoVo partnerInfoVo = new PartnerInfoVo();
  1465. String id = sysPartner.getUserId();
  1466. partnerInfoVo.setUserId(id);
  1467. SysUser sysUser = sysUserMapper.selectById(id);
  1468. partnerInfoVo.setUserName(sysUser.getName());
  1469. SysUser sysUser1 = sysUserMapper.selectById(sysPartner.getSuggestId());
  1470. partnerInfoVo.setSuggestName(sysUser1.getName());
  1471. //费用
  1472. List<SysPremiumDetails> sysPremiumDetail = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
  1473. .eq(SysPremiumDetails::getUserId, userId)
  1474. .between(StringUtils.isNotEmpty(filterPartnerInfoDto.getBeginTime()) && StringUtils.isNotEmpty(filterPartnerInfoDto.getEndTime()),
  1475. SysPremiumDetails::getCreateTime, filterPartnerInfoDto.getBeginTime(), filterPartnerInfoDto.getEndTime())
  1476. .eq(filterPartnerInfoDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, filterPartnerInfoDto.getIndustrySector()));
  1477. BigDecimal sumPremium1 = sysPremiumDetail.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
  1478. BigDecimal extractFee1 = sysPremiumDetail.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
  1479. partnerInfoVo.setSumPremium(sumPremium1);
  1480. partnerInfoVo.setExtractFee(extractFee1);
  1481. //直接合伙人
  1482. List<SysRelationPerson> sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
  1483. .eq(SysRelationPerson::getSuggestId, userId)
  1484. .eq(SysRelationPerson::getDelFlag, 1)
  1485. .eq(SysRelationPerson::getType, 0)
  1486. .eq(SysRelationPerson::getSource, 0));
  1487. List<String> collect = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
  1488. partnerInfoVo.setPartnerIds(collect);
  1489. //直接管理员
  1490. List<SysRelationPerson> sysRelationPersonList1 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
  1491. .eq(SysRelationPerson::getSuggestId, userId)
  1492. .eq(SysRelationPerson::getDelFlag, 1)
  1493. .eq(SysRelationPerson::getType, 1)
  1494. .eq(SysRelationPerson::getSource, 0));
  1495. List<String> collects = sysRelationPersonList1.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
  1496. partnerInfoVo.setLeaderIds(collects);
  1497. partnerInfoVo.setPartnerNumber(collects.size() + collect.size());
  1498. //工作室数
  1499. List<SysRelationPerson> sysRelationPersonList2 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
  1500. .eq(SysRelationPerson::getSuggestId, userId)
  1501. .eq(SysRelationPerson::getDelFlag, 1)
  1502. .eq(SysRelationPerson::getType, 1));
  1503. int deptManNum = 0;
  1504. if (sysRelationPersonList2.size() > 0) {
  1505. List<String> idList = sysRelationPersonList2.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
  1506. List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
  1507. .in(SysAgencyLeader::getUserId, idList).eq(SysAgencyLeader::getDelFlag, 1));
  1508. if (leaderList.size() > 0) {
  1509. for (SysAgencyLeader sysAgencyLeader : leaderList) {
  1510. //获取机构下的团队
  1511. List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
  1512. .likeRight(SysDept::getId, sysAgencyLeader.getDeptId())
  1513. .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
  1514. .eq(SysDept::getManagementSource, sysAgencyLeader.getSource()));
  1515. if (sysDeptList.size() > 0) {
  1516. for (SysDept sysDept : sysDeptList) {
  1517. List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
  1518. .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0));
  1519. deptManNum = deptManNum + sysUsers.size();
  1520. }
  1521. }
  1522. }
  1523. }
  1524. partnerInfoVo.setTeamManNum(deptManNum);
  1525. }
  1526. partnerInfoVoList.add(partnerInfoVo);
  1527. }
  1528. int sum = partnerInfoVoList.stream().mapToInt(PartnerInfoVo::getTeamManNum).sum();
  1529. filterPartnerInfoVo.setPartnerInfoVoList(partnerInfoVoList);
  1530. filterPartnerInfoVo.setTeamManNum(sum);
  1531. }
  1532. return filterPartnerInfoVo;
  1533. }
  1534. @Override
  1535. public PartnerLeaderInfoVo partnerLeaderInfo(PartnerGradeInfo partnerGradeInfo) {
  1536. PartnerLeaderInfoVo partnerLeaderInfoVo = new PartnerLeaderInfoVo();
  1537. List<PartnerInfoVo> partnerInfoVoList = new ArrayList<>();
  1538. //工作室
  1539. List<String> leaderIds = partnerGradeInfo.getLeaderIds();
  1540. if (CollectionUtil.isEmpty(leaderIds)) {
  1541. return partnerLeaderInfoVo;
  1542. }
  1543. //费用
  1544. List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
  1545. .in(SysPremiumDetails::getUserId, leaderIds)
  1546. .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()),
  1547. SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime())
  1548. .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()));
  1549. BigDecimal sumPremium = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
  1550. BigDecimal extractFee = sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
  1551. partnerLeaderInfoVo.setSumPremium(sumPremium);
  1552. partnerLeaderInfoVo.setExtractFee(extractFee);
  1553. List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
  1554. .in(SysAgencyLeader::getUserId, leaderIds).eq(SysAgencyLeader::getDelFlag, 1));
  1555. List<String> userIds = new ArrayList<>();
  1556. for (SysAgencyLeader sysAgencyLeader : leaderList) {
  1557. PartnerInfoVo partnerInfoVo = new PartnerInfoVo();
  1558. String userId = sysAgencyLeader.getUserId();
  1559. partnerInfoVo.setUserId(userId);
  1560. SysUser sysUser = sysUserMapper.selectById(userId);
  1561. partnerInfoVo.setUserName(sysUser.getName());
  1562. SysUser sysUser1 = sysUserMapper.selectById(sysAgencyLeader.getSuggestId());
  1563. partnerInfoVo.setSuggestName(sysUser1.getName());
  1564. //费用
  1565. List<SysPremiumDetails> sysPremiumDetail = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
  1566. .eq(SysPremiumDetails::getUserId, userId)
  1567. .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()),
  1568. SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime())
  1569. .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()));
  1570. BigDecimal sumPremium1 = sysPremiumDetail.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
  1571. BigDecimal extractFee1 = sysPremiumDetail.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
  1572. partnerInfoVo.setSumPremium(sumPremium1);
  1573. partnerInfoVo.setExtractFee(extractFee1);
  1574. int deptManNum = 0;
  1575. //获取机构下的团队
  1576. List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
  1577. .likeRight(SysDept::getId, sysAgencyLeader.getDeptId())
  1578. .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
  1579. .eq(SysDept::getManagementSource, sysAgencyLeader.getSource()));
  1580. partnerInfoVo.setDeptNum(sysDeptList.size());
  1581. List<String> collect = sysDeptList.stream().map(SysDept::getId).collect(Collectors.toList());
  1582. partnerInfoVo.setDeptIds(collect);
  1583. if (sysDeptList.size() > 0) {
  1584. for (SysDept sysDept : sysDeptList) {
  1585. List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
  1586. .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0));
  1587. deptManNum = deptManNum + sysUsers.size();
  1588. if (sysUsers.size() > 0) {
  1589. List<String> collect1 = sysUsers.stream().map(SysUser::getId).collect(Collectors.toList());
  1590. userIds.addAll(collect1);
  1591. }
  1592. }
  1593. }
  1594. partnerInfoVo.setTeamManNum(deptManNum);
  1595. partnerInfoVo.setLevel(partnerGradeInfo.getLevel());
  1596. partnerInfoVoList.add(partnerInfoVo);
  1597. }
  1598. int sum = partnerInfoVoList.stream().mapToInt(PartnerInfoVo::getTeamManNum).sum();
  1599. partnerLeaderInfoVo.setUserIds(userIds);
  1600. partnerLeaderInfoVo.setTeamManNum(sum);
  1601. partnerLeaderInfoVo.setPartnerInfoVoList(partnerInfoVoList);
  1602. return partnerLeaderInfoVo;
  1603. }
  1604. @Override
  1605. public List<SysPartner> getRelationInfo(String userId) {
  1606. List<SysPartner> sysPartners = new ArrayList<>();
  1607. //登陆人的上三级合伙人信息
  1608. SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
  1609. .eq(SysPartner::getUserId, userId).eq(SysPartner::getDelFlag, 1));
  1610. sysPartners.add(sysPartner);
  1611. List<String> ids =new ArrayList<>();
  1612. List<SysRelationPerson> sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
  1613. .eq(SysRelationPerson::getAgencyLeaderId,userId).eq(SysRelationPerson::getType,0));
  1614. if (sysRelationPersonList.size()>0) {
  1615. List<String> collect = sysRelationPersonList.stream().map(SysRelationPerson::getSuggestId).collect(Collectors.toList());
  1616. if (collect.size()>0) {
  1617. ids.addAll(collect);
  1618. }
  1619. }
  1620. List<SysRelationPerson> sysRelationList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
  1621. .eq(SysRelationPerson::getSuggestId,userId).eq(SysRelationPerson::getType,0));
  1622. if (sysRelationList.size()>0) {
  1623. List<String> collect1 = sysRelationList.stream().map(SysRelationPerson::getSuggestId).collect(Collectors.toList());
  1624. if (CollectionUtil.isNotEmpty(collect1)) {
  1625. ids.addAll(collect1);
  1626. }
  1627. }
  1628. if (CollectionUtil.isNotEmpty(ids)) {
  1629. List<SysPartner> sysPartnerList = sysPartnerMapper.selectList(new LambdaQueryWrapper<SysPartner>()
  1630. .in(SysPartner::getUserId, ids).eq(SysPartner::getDelFlag, 1));
  1631. sysPartners.addAll(sysPartnerList);
  1632. }
  1633. List<SysPartner> list = sysPartners.stream().sorted(Comparator.comparing(SysPartner::getId)).collect(Collectors.toList());
  1634. return list;
  1635. }
  1636. }