TaBuildingServiceImpl.java 52KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126
  1. package com.huiju.estateagents.service.impl;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  5. import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
  6. import com.baomidou.mybatisplus.core.metadata.IPage;
  7. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  8. import com.google.common.collect.Lists;
  9. import com.huiju.estateagents.base.ResponseBean;
  10. import com.huiju.estateagents.center.taUser.entity.TaUser;
  11. import com.huiju.estateagents.center.taUser.mapper.TaUserMapper;
  12. import com.huiju.estateagents.common.CommConstant;
  13. import com.huiju.estateagents.common.DateUtils;
  14. import com.huiju.estateagents.common.StringUtils;
  15. import com.huiju.estateagents.entity.*;
  16. import com.huiju.estateagents.mapper.*;
  17. import com.huiju.estateagents.service.*;
  18. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  19. import javafx.scene.control.Tab;
  20. import org.apache.commons.collections.CollectionUtils;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.stereotype.Service;
  23. import java.time.LocalDateTime;
  24. import java.util.*;
  25. import java.util.stream.Collectors;
  26. /**
  27. * <p>
  28. * 项目表 服务实现类
  29. * </p>
  30. *
  31. * @author jobob
  32. * @since 2019-05-10
  33. */
  34. @Service
  35. public class TaBuildingServiceImpl extends ServiceImpl<TaBuildingMapper, TaBuilding> implements ITaBuildingService {
  36. @Autowired
  37. TaBuildingMapper taBuildingMapper;
  38. @Autowired
  39. TaBuildingImgMapper taBuildingImgMapper;
  40. @Autowired
  41. TaBuildingTagMapper taBuildingTagMapper;
  42. @Autowired
  43. TaApartmentImgMapper taApartmentImgMapper;
  44. @Autowired
  45. TaBuildingApartmentMapper taBuildingApartmentMapper;
  46. @Autowired
  47. TaSaveMapper taSaveMapper;
  48. @Autowired
  49. TaUvMapper taUvMapper;
  50. @Autowired
  51. TaShareMapper taShareMapper;
  52. @Autowired
  53. TaPersonMapper taPersonMapper;
  54. @Autowired
  55. TaUserMapper taUserMapper;
  56. @Autowired
  57. TdCityMapper tdCityMapper;
  58. @Autowired
  59. private TaGoodsMapper taGoodsMapper;
  60. @Autowired
  61. private TaNewsMapper taNewsMapper;
  62. @Autowired
  63. private TaBuildingDynamicMapper taBuildingDynamicMapper;
  64. @Autowired
  65. private HelpActivityMapper helpActivityMapper;
  66. @Autowired
  67. private TaShareActivityMapper taShareActivityMapper;
  68. @Autowired
  69. private TaLiveActivityMapper taLiveActivityMapper;
  70. @Autowired
  71. private TaExtendContentMapper taExtendContentMapper;
  72. @Autowired
  73. private TaBuildingProjectTypeMapper taBuildingProjectTypeMapper;
  74. @Autowired
  75. private TaPosterService taPosterService;
  76. @Autowired
  77. private TaShareContentService taShareContentService;
  78. @Autowired
  79. private TaOrgMapper taOrgMapper;
  80. @Autowired
  81. private ITaBuildingMapRelationService iTaBuildingMapRelationService;
  82. @Autowired
  83. public ITaBuildingIntentionService iTaBuildingIntentionService;
  84. @Autowired
  85. private ITaBuildingPanoramaService taBuildingPanoramaService;
  86. @Autowired
  87. private ITaSalesBatchService iTaSalesBatchService;
  88. @Autowired
  89. private TaPersonBuildingMapper taPersonBuildingMapper;
  90. @Autowired
  91. private ITaRaiseInviteService iTaRaiseInviteService;
  92. @Autowired
  93. private ITaPersonService iTaPersonService;
  94. @Override
  95. public ResponseBean buildingList(Integer pageNum, Integer pageSize, String name, String code, LocalDateTime startDate, String buildingStatus, String marketStatus, Integer cityId, Integer isMain, Integer orgId, List<TaPersonBuilding> taPersonBuildingList) {
  96. Page<TaBuilding> page = new Page<>();
  97. page.setSize(pageSize == null ? 10 : pageSize);
  98. page.setCurrent(pageNum == null ? 1 : pageNum);
  99. List<TaBuilding> buildings = taBuildingMapper.buildingList(page, name, code, startDate, buildingStatus, marketStatus, cityId, isMain, orgId, taPersonBuildingList);
  100. if (null != buildings) {
  101. for (TaBuilding taBuilding : buildings) {
  102. //查询当前图片
  103. QueryWrapper<TaBuildingImg> queryWrapper = new QueryWrapper<>();
  104. queryWrapper.eq("building_id", taBuilding.getBuildingId());
  105. queryWrapper.eq("img_type", CommConstant.BUILDING_IMG_BANNER);
  106. queryWrapper.orderByAsc("create_date");
  107. List<TaBuildingImg> buildingImg = taBuildingImgMapper.selectList(queryWrapper);
  108. taBuilding.setBuildingImg(buildingImg);
  109. //查询封面当前图片
  110. QueryWrapper<TaBuildingImg> queryListWrapper = new QueryWrapper<>();
  111. queryListWrapper.eq("building_id", taBuilding.getBuildingId());
  112. queryListWrapper.eq("img_type", CommConstant.BUILDING_IMG_LIST);
  113. queryListWrapper.orderByAsc("create_date");
  114. List<TaBuildingImg> buildingListImg = taBuildingImgMapper.selectList(queryListWrapper);
  115. taBuilding.setBuildingListImg(buildingListImg);
  116. }
  117. }
  118. page.setRecords(buildings);
  119. return ResponseBean.success(page);
  120. }
  121. @Override
  122. public ResponseBean buildingListSelect(Integer pageNum, Integer pageSize, String name, String code, LocalDateTime startDate, String buildingStatus, String marketStatus, Integer cityId, Integer isMain, Integer orgId, List<TaPersonBuilding> taPersonBuildingList) {
  123. // Page<TaBuilding> page = new Page<>();
  124. // page.setSize(pageSize == null ? 10 : pageSize);
  125. // page.setCurrent(pageNum == null ? 1 : pageNum);
  126. List<TaBuilding> building = taBuildingMapper.buildingListSelect(name, code, startDate, buildingStatus, marketStatus, cityId, isMain, orgId, taPersonBuildingList);
  127. // page.setRecords(building);
  128. return ResponseBean.success(building);
  129. }
  130. /**
  131. * 查询项目图片
  132. *
  133. * @param buildingId
  134. * @param imgType
  135. * @return
  136. */
  137. private List<TaBuildingImg> getBuildingImg(String buildingId, String imgType) {
  138. //查询当前图片
  139. QueryWrapper<TaBuildingImg> buildingImgQueryWrapper = new QueryWrapper<>();
  140. buildingImgQueryWrapper.eq("building_id", buildingId);
  141. buildingImgQueryWrapper.eq("img_type", imgType);
  142. buildingImgQueryWrapper.orderByAsc("order_no");
  143. List<TaBuildingImg> buildingImg = taBuildingImgMapper.selectList(buildingImgQueryWrapper);
  144. return buildingImg.size() > 0 ? buildingImg : null;
  145. }
  146. @Override
  147. public ResponseBean buildingSelectId(String id) {
  148. // 查询基础信息
  149. QueryWrapper<TaBuilding> buildingtWrapper = new QueryWrapper<>();
  150. buildingtWrapper.lambda().gt(TaBuilding::getStatus, -1);
  151. buildingtWrapper.lambda().eq(TaBuilding::getBuildingId, id);
  152. TaBuilding building = taBuildingMapper.selectOne(buildingtWrapper);
  153. //查询当前图片
  154. building.setBuildingImg(getBuildingImg(id, CommConstant.BUILDING_IMG_BANNER));
  155. // 列表图
  156. building.setBuildingListImg(getBuildingImg(building.getBuildingId(), CommConstant.BUILDING_IMG_LIST));
  157. // 视频封面图
  158. building.setVideoImage(getBuildingImg(building.getBuildingId(), CommConstant.BUILDING_IMG_VIDEOIMAGE));
  159. // 查询tag
  160. QueryWrapper<TaBuildingTag> BuildingTagQueryWrapper = new QueryWrapper<>();
  161. BuildingTagQueryWrapper.eq("building_id", id);
  162. List<TaBuildingTag> buildingTags = taBuildingTagMapper.selectList(BuildingTagQueryWrapper);
  163. building.setBuildingTag(buildingTags);
  164. // 项目类型
  165. QueryWrapper<TaBuildingProjectType> buildingProjectTypeQueryWrapper = new QueryWrapper<>();
  166. buildingProjectTypeQueryWrapper.eq("building_id", building.getBuildingId());
  167. List<TaBuildingProjectType> taBuildingProjectTypes = taBuildingProjectTypeMapper.selectList(buildingProjectTypeQueryWrapper);
  168. building.setBuildingProjectType(taBuildingProjectTypes);
  169. building.setPosters(taPosterService.getPostersForTarget(id, CommConstant.POSTER_CONTENT_TYPE_BUILDING));
  170. building.setShareContents(taShareContentService.getPostersForTarget(id, CommConstant.POSTER_CONTENT_TYPE_BUILDING));
  171. // 查询 周边数据
  172. QueryWrapper<TaBuildingMapRelation> mapRelationQueryWrapper = new QueryWrapper<>();
  173. mapRelationQueryWrapper.eq("building_id", building.getBuildingId());
  174. mapRelationQueryWrapper.eq("org_id", building.getOrgId());
  175. List<TaBuildingMapRelation> mapRelationList = iTaBuildingMapRelationService.list(mapRelationQueryWrapper);
  176. building.setMapJson(mapRelationList.size() > 0 ? JSONObject.toJSONString(mapRelationList) : null);
  177. return ResponseBean.success(building);
  178. }
  179. @Override
  180. public ResponseBean buildingAllSelectId(String id, TaPerson person, Integer orgId) {
  181. // 查询基础信息
  182. QueryWrapper<TaBuilding> buildingtWrapper = new QueryWrapper<>();
  183. buildingtWrapper.lambda().gt(TaBuilding::getStatus, -1);
  184. buildingtWrapper.lambda().eq(TaBuilding::getBuildingId, id);
  185. TaBuilding building = taBuildingMapper.selectOne(buildingtWrapper);
  186. if (null == building) {
  187. return ResponseBean.error("项目不存在", ResponseBean.ERROR_UNAVAILABLE);
  188. }
  189. if (1 != building.getStatus()) {
  190. return ResponseBean.error("项目未发布", ResponseBean.ERROR_UNAVAILABLE);
  191. }
  192. //查询当前图片
  193. building.setBuildingImg(getBuildingImg(id, CommConstant.BUILDING_IMG_BANNER));
  194. // 视频封面图
  195. building.setVideoImage(getBuildingImg(building.getBuildingId(), CommConstant.BUILDING_IMG_VIDEOIMAGE));
  196. // 查询tag
  197. QueryWrapper<TaBuildingTag> BuildingTagQueryWrapper = new QueryWrapper<>();
  198. BuildingTagQueryWrapper.eq("building_id", id);
  199. List<TaBuildingTag> buildingTags = taBuildingTagMapper.selectList(BuildingTagQueryWrapper);
  200. building.setBuildingTag(buildingTags);
  201. // QueryWrapper<Visit> BuildingVisitQueryWrapper = new QueryWrapper<>();
  202. // BuildingVisitQueryWrapper.eq("visit_type", "building");
  203. // BuildingVisitQueryWrapper.eq("visit_content", id);
  204. // BuildingVisitQueryWrapper.orderByDesc("visit_date");
  205. // List<Visit> visits = visitMapper.selectList(BuildingVisitQueryWrapper);
  206. // building.setVisits(visits);
  207. // 查询户型
  208. QueryWrapper<TaBuildingApartment> AppointmentQueryWrapper = new QueryWrapper<>();
  209. AppointmentQueryWrapper.eq("building_id", id);
  210. AppointmentQueryWrapper.eq("status", 1);
  211. AppointmentQueryWrapper.orderByDesc("order_no");
  212. AppointmentQueryWrapper.orderByDesc("create_date");
  213. List<TaBuildingApartment> appoint = taBuildingApartmentMapper.selectList(AppointmentQueryWrapper);
  214. for (TaBuildingApartment apar : appoint) {
  215. List<TaBuildingImg> imgs = taBuildingImgMapper.getBuildingImgByApartment(apar.getApartmentId());
  216. apar.setBuildingImgList(imgs);
  217. }
  218. building.setBuildingApartment(appoint);
  219. getBuildingAttaches(building);
  220. QueryWrapper<TaSave> saveQueryWrapper = new QueryWrapper<>();
  221. saveQueryWrapper.eq("tagert_type", CommConstant.FAVOR_PROJECT);
  222. saveQueryWrapper.eq("person_id", person.getPersonId());
  223. saveQueryWrapper.eq("saved_target", building.getBuildingId());
  224. Integer num = taSaveMapper.selectCount(saveQueryWrapper);
  225. if (num > 0) {
  226. building.setIsSave(CommConstant.STATUS_NORMAL);
  227. } else {
  228. building.setIsSave(CommConstant.STATUS_UNACCALIMED);
  229. }
  230. // 项目类型
  231. QueryWrapper<TaBuildingProjectType> projectTypeQueryWrapper = new QueryWrapper<>();
  232. projectTypeQueryWrapper.eq("building_id", building.getBuildingId());
  233. projectTypeQueryWrapper.eq("status", 1);
  234. List<TaBuildingProjectType> buildingProjectTypes = taBuildingProjectTypeMapper.selectList(projectTypeQueryWrapper);
  235. building.setBuildingProjectType(buildingProjectTypes);
  236. // 海报和分享
  237. building.setPosters(taPosterService.getPostersForTarget(id, CommConstant.POSTER_CONTENT_TYPE_BUILDING));
  238. building.setShareContents(taShareContentService.getPostersForTarget(id, CommConstant.POSTER_CONTENT_TYPE_BUILDING));
  239. // 助力活动
  240. QueryWrapper<HelpActivity> helpActivityQueryWrapper = new QueryWrapper<>();
  241. helpActivityQueryWrapper.eq("building_id", id);
  242. helpActivityQueryWrapper.eq("status", 1);
  243. helpActivityQueryWrapper.in("activity_status", 0, 1);
  244. List<HelpActivity> helpActivityList = helpActivityMapper.selectList(helpActivityQueryWrapper);
  245. building.setHelpActivityList(helpActivityList);
  246. // 拼团活动
  247. QueryWrapper<TaShareActivity> shareActivityQueryWrapper = new QueryWrapper<>();
  248. shareActivityQueryWrapper.eq("building_id", id);
  249. shareActivityQueryWrapper.eq("status", 1);
  250. shareActivityQueryWrapper.in("activity_status", 0, 1);
  251. List<TaShareActivity> shareActivityList = taShareActivityMapper.selectList(shareActivityQueryWrapper);
  252. building.setShareActivityList(shareActivityList);
  253. // 直播活动
  254. QueryWrapper<TaLiveActivity> liveActivityQueryWrapper = new QueryWrapper<>();
  255. liveActivityQueryWrapper.eq("building_id", id);
  256. liveActivityQueryWrapper.eq("status", 1);
  257. List<TaLiveActivity> liveActivityList = taLiveActivityMapper.selectList(liveActivityQueryWrapper);
  258. building.setLiveActivityList(liveActivityList);
  259. // 查询 周边数据
  260. QueryWrapper<TaBuildingMapRelation> mapRelationQueryWrapper = new QueryWrapper<>();
  261. mapRelationQueryWrapper.eq("building_id", building.getBuildingId());
  262. mapRelationQueryWrapper.eq("org_id", building.getOrgId());
  263. List<TaBuildingMapRelation> mapRelationList = iTaBuildingMapRelationService.list(mapRelationQueryWrapper);
  264. building.setMapJson(mapRelationList.size() > 0 ? JSONObject.toJSONString(mapRelationList) : null);
  265. //查询关联的全景图列表
  266. QueryWrapper<TaBuildingPanorama> panoramaQueryWrapper = new QueryWrapper<>();
  267. panoramaQueryWrapper.eq("building_id", building.getBuildingId());
  268. panoramaQueryWrapper.eq("org_id", building.getOrgId());
  269. panoramaQueryWrapper.eq("status", CommConstant.STATUS_NORMAL);
  270. panoramaQueryWrapper.orderByDesc("create_date");
  271. List<TaBuildingPanorama> panoramaList = taBuildingPanoramaService.list(panoramaQueryWrapper);
  272. building.setPanoramaList(panoramaList);
  273. // 查询关联的销售批次
  274. QueryWrapper<TaSalesBatch> salesBatchQueryWrapper = new QueryWrapper<>();
  275. salesBatchQueryWrapper.lambda().eq(TaSalesBatch::getBuildingId, id);
  276. salesBatchQueryWrapper.lambda().eq(TaSalesBatch::getStatus, CommConstant.STATUS_NORMAL);
  277. List<TaSalesBatch> taSalesBatch = iTaSalesBatchService.list(salesBatchQueryWrapper);
  278. List<TaSalesBatch> resultSalesBatchList = new ArrayList<>();
  279. taSalesBatch.stream().forEach(record -> {
  280. // 查询批次下认筹是否开启邀请制
  281. QueryWrapper<TaRaiseInvite> taRaiseInviteQueryWrapper = new QueryWrapper<>();
  282. taRaiseInviteQueryWrapper.eq("org_id", orgId);
  283. taRaiseInviteQueryWrapper.eq("sales_batch_id", record.getSalesBatchId());
  284. TaRaiseInvite taRaiseInvite = iTaRaiseInviteService.getOne(taRaiseInviteQueryWrapper);
  285. if (taRaiseInvite == null) {
  286. resultSalesBatchList.add(record);
  287. return;
  288. }
  289. // 若开启邀请制,校验该用户是否在邀请列表中
  290. taRaiseInviteQueryWrapper = new QueryWrapper<>();
  291. taRaiseInviteQueryWrapper.eq("org_id", orgId);
  292. taRaiseInviteQueryWrapper.eq("invite_tel", person.getTel());
  293. taRaiseInviteQueryWrapper.eq("sales_batch_id", record.getSalesBatchId());
  294. TaRaiseInvite taRaiseInvite2 = iTaRaiseInviteService.getOne(taRaiseInviteQueryWrapper);
  295. if(taRaiseInvite2 != null){
  296. resultSalesBatchList.add(record);
  297. return;
  298. }
  299. });
  300. building.setSalesBatch(resultSalesBatchList);
  301. return ResponseBean.success(building);
  302. }
  303. @Override
  304. public ResponseBean buildingUpdate(String parameter, Integer orgId) {
  305. ResponseBean responseBean = new ResponseBean();
  306. JSONObject object = JSONObject.parseObject(parameter);
  307. TaBuilding building = object.toJavaObject(TaBuilding.class);
  308. boolean isMainMoreThanTenFlag = publishCountIsMainBuilding(building, orgId, null, "update");
  309. if (!isMainMoreThanTenFlag) {
  310. responseBean.addError("当前城市最多只能推荐10个项目至首页哦。");
  311. return responseBean;
  312. }
  313. // 先删除视频
  314. UpdateWrapper<TaBuilding> updateWrapper = new UpdateWrapper<>();
  315. updateWrapper.eq("building_id", building.getBuildingId());
  316. updateWrapper.set("video_url", null);
  317. this.update(updateWrapper);
  318. //图片先删除再添加
  319. String imgStr = object.getString("img");
  320. List<TaBuildingImg> buildingImgs = JSONObject.parseArray(imgStr, TaBuildingImg.class);
  321. if (CollectionUtils.isNotEmpty(buildingImgs)) {
  322. QueryWrapper<TaBuilding> buildingIdQueryWrapper = new QueryWrapper<>();
  323. buildingIdQueryWrapper.eq("building_id", building.getBuildingId());
  324. buildingIdQueryWrapper.eq("org_id", orgId);
  325. building.setName(building.getBuildingName());
  326. taBuildingMapper.update(building, buildingIdQueryWrapper);
  327. QueryWrapper<TaBuildingImg> BuildingImgQueryWrapper = new QueryWrapper<>();
  328. BuildingImgQueryWrapper.eq("building_id", building.getBuildingId());
  329. BuildingImgQueryWrapper.eq("img_type", CommConstant.BUILDING_IMG_BANNER);
  330. taBuildingImgMapper.delete(BuildingImgQueryWrapper);
  331. insertImgBatch(buildingImgs, building.getBuildingId());
  332. }
  333. // 列表图
  334. String listImg = object.getString("listImg");
  335. List<TaBuildingImg> buildingListImg = JSONObject.parseArray(listImg, TaBuildingImg.class);
  336. if (CollectionUtils.isNotEmpty(buildingListImg)) {
  337. QueryWrapper<TaBuildingImg> BuildingListImgQueryWrapper = new QueryWrapper<>();
  338. BuildingListImgQueryWrapper.eq("building_id", building.getBuildingId());
  339. BuildingListImgQueryWrapper.eq("img_type", CommConstant.BUILDING_IMG_LIST);
  340. taBuildingImgMapper.delete(BuildingListImgQueryWrapper);
  341. buildingListImg = insertImgBatch(buildingListImg, building.getBuildingId());
  342. }
  343. // 视频封面图
  344. String videoImage = object.getString("videoImage");
  345. List<TaBuildingImg> videoImageList = JSONObject.parseArray(videoImage, TaBuildingImg.class);
  346. if (CollectionUtils.isNotEmpty(videoImageList)) {
  347. QueryWrapper<TaBuildingImg> BuildingListImgQueryWrapper = new QueryWrapper<>();
  348. BuildingListImgQueryWrapper.eq("building_id", building.getBuildingId());
  349. BuildingListImgQueryWrapper.eq("img_type", CommConstant.BUILDING_IMG_VIDEOIMAGE);
  350. taBuildingImgMapper.delete(BuildingListImgQueryWrapper);
  351. videoImageList = insertImgBatch(videoImageList, building.getBuildingId());
  352. }
  353. // tag先删除再增加
  354. String tagStr = object.getString("tag");
  355. List<TaBuildingTag> buildingTags = JSONObject.parseArray(tagStr, TaBuildingTag.class);
  356. if (CollectionUtils.isNotEmpty(buildingTags)) {
  357. QueryWrapper<TaBuildingTag> BuildingTagQueryWrapper = new QueryWrapper<>();
  358. BuildingTagQueryWrapper.eq("building_id", building.getBuildingId());
  359. taBuildingTagMapper.delete(BuildingTagQueryWrapper);
  360. insertTagBatch(buildingTags, building.getBuildingId());
  361. }
  362. if (null != building.getCityId()) {
  363. TdCity city = tdCityMapper.selectById(building.getCityId());
  364. city.setStatus("1");
  365. tdCityMapper.updateById(city);
  366. //更新商品城市
  367. TaGoods taGoods = new TaGoods();
  368. taGoods.setCityId(building.getCityId());
  369. QueryWrapper<TaGoods> goodsQueryWrapper = new QueryWrapper<>();
  370. goodsQueryWrapper.eq("building_id", building.getBuildingId());
  371. taGoodsMapper.update(taGoods, goodsQueryWrapper);
  372. //更新资讯城市
  373. TaNews taNews = new TaNews();
  374. taNews.setCityId(building.getCityId());
  375. QueryWrapper<TaNews> newsQueryWrapper = new QueryWrapper<>();
  376. newsQueryWrapper.eq("building_id", building.getBuildingId());
  377. taNewsMapper.update(taNews, newsQueryWrapper);
  378. //更新活动城市
  379. TaBuildingDynamic taBuildingDynamic = new TaBuildingDynamic();
  380. taBuildingDynamic.setCityId(building.getCityId());
  381. QueryWrapper<TaBuildingDynamic> taBuildingDynamicQueryWrapper = new QueryWrapper<>();
  382. taBuildingDynamicQueryWrapper.eq("building_id", building.getBuildingId());
  383. taBuildingDynamicMapper.update(taBuildingDynamic, taBuildingDynamicQueryWrapper);
  384. //更新助力城市
  385. HelpActivity helpActivity = new HelpActivity();
  386. helpActivity.setCityId(building.getCityId());
  387. QueryWrapper<HelpActivity> helpActivityQueryWrapper = new QueryWrapper<>();
  388. helpActivityQueryWrapper.eq("building_id", building.getBuildingId());
  389. helpActivityMapper.update(helpActivity, helpActivityQueryWrapper);
  390. //更新拼团城市
  391. TaShareActivity taShareActivity = new TaShareActivity();
  392. taShareActivity.setCityId(building.getCityId());
  393. QueryWrapper<TaShareActivity> taShareActivityQueryWrapper = new QueryWrapper<>();
  394. taShareActivityQueryWrapper.eq("building_id", building.getBuildingId());
  395. taShareActivityMapper.update(taShareActivity, taShareActivityQueryWrapper);
  396. //更新直播城市
  397. TaLiveActivity taLiveActivity = new TaLiveActivity();
  398. taLiveActivity.setCityId(building.getCityId());
  399. taLiveActivity.setBuildingId(building.getBuildingId());
  400. QueryWrapper<TaLiveActivity> taLiveActivityQueryWrapper = new QueryWrapper<>();
  401. taLiveActivityQueryWrapper.eq("building_id", building.getBuildingId());
  402. taLiveActivityMapper.update(taLiveActivity, taLiveActivityQueryWrapper);
  403. //更新首页轮播、开屏广告、宣传位
  404. TaExtendContent taExtendContent = new TaExtendContent();
  405. taExtendContent.setCityId(building.getCityId());
  406. QueryWrapper<TaExtendContent> taExtendContentQueryWrapper = new QueryWrapper<>();
  407. taExtendContentQueryWrapper.eq("building_id", building.getBuildingId());
  408. taExtendContentMapper.update(taExtendContent, taExtendContentQueryWrapper);
  409. }
  410. // 项目类型
  411. // 先删除之前关联的
  412. taBuildingProjectTypeMapper.deleteByBuildingId(building.getBuildingId());
  413. JSONArray buildingProjectTypeArray = object.getJSONArray("buildingProjectType");
  414. if (CollectionUtils.isNotEmpty(buildingProjectTypeArray)) {
  415. taBuildingProjectTypeMapper.insertBuildingProjectTypeBatch(buildingProjectTypeArray, building.getBuildingId());
  416. }
  417. // 地图周边
  418. JSONArray mapJson = object.getJSONArray("mapJson");
  419. if (null != mapJson) {
  420. // 先删除
  421. QueryWrapper<TaBuildingMapRelation> mapRelationQueryWrapper = new QueryWrapper<>();
  422. mapRelationQueryWrapper.eq("building_id", building.getBuildingId());
  423. mapRelationQueryWrapper.eq("org_id", orgId);
  424. iTaBuildingMapRelationService.remove(mapRelationQueryWrapper);
  425. List<TaBuildingMapRelation> taBuildingMapRelations = mapJson.toJavaList(TaBuildingMapRelation.class);
  426. insertBuildingMapRelationBeach(taBuildingMapRelations, building.getBuildingId(), orgId);
  427. }
  428. return ResponseBean.success(building);
  429. }
  430. @Override
  431. public ResponseBean appointmentList(Integer pageNum, Integer pageSize, String buildingId, String username, String phone, String status) {
  432. return null;
  433. }
  434. @Override
  435. public ResponseBean buildingAdd(String parameter, Integer orgId, Integer userId) {
  436. ResponseBean responseBean = new ResponseBean();
  437. JSONObject object = JSONObject.parseObject(parameter);
  438. // 根据orgId查询当前楼盘最大数
  439. TaOrg taOrg = taOrgMapper.selectById(orgId);
  440. // 查询当前org楼盘总数
  441. QueryWrapper<TaBuilding> taBuildingQuery = new QueryWrapper<>();
  442. taBuildingQuery.eq("org_id", orgId);
  443. taBuildingQuery.gt("status", -1);
  444. int orgNum = taBuildingMapper.selectCount(taBuildingQuery);
  445. if (orgNum >= taOrg.getBuildingNum()) {
  446. return ResponseBean.error("当前系统仅供维护" + taOrg.getBuildingNum() + "个项目,需要维护更多项目,请联系相关管理人员", ResponseBean.ERROR_UNAVAILABLE);
  447. }
  448. TaBuilding building = object.toJavaObject(TaBuilding.class);
  449. boolean isMainMoreThanTenFlag = publishCountIsMainBuilding(building, orgId, null, "add");
  450. if (!isMainMoreThanTenFlag) {
  451. responseBean.addError("当前城市最多只能推荐10个项目至首页哦。");
  452. return responseBean;
  453. }
  454. building.setCreateDate(LocalDateTime.now());
  455. building.setStatus(2);
  456. building.setOrgId(orgId);
  457. building.setName(building.getBuildingName());
  458. if (taBuildingMapper.insert(building) < 1) {
  459. return ResponseBean.error("添加项目楼栋失败", ResponseBean.ERROR_UNAVAILABLE);
  460. }
  461. if (null != building.getCityId()) {
  462. TdCity city = tdCityMapper.selectById(building.getCityId());
  463. city.setStatus("1");
  464. tdCityMapper.updateById(city);
  465. }
  466. //新建项目以后自动授权给当前用户
  467. TaUser taUser = taUserMapper.selectById(userId);
  468. TaPersonBuilding taPersonBuilding = new TaPersonBuilding();
  469. taPersonBuilding.setBuildingId(building.getBuildingId());
  470. taPersonBuilding.setUserId(taUser.getUserId());
  471. taPersonBuilding.setCreateDate(LocalDateTime.now());
  472. taPersonBuildingMapper.insert(taPersonBuilding);
  473. // 项目主图
  474. String imgStr = object.getString("img");
  475. List<TaBuildingImg> buildingImgs = JSONObject.parseArray(imgStr, TaBuildingImg.class);
  476. if (CollectionUtils.isNotEmpty(buildingImgs)) {
  477. buildingImgs = insertImgBatch(buildingImgs, building.getBuildingId());
  478. }
  479. // 视频封面图
  480. String videoImage = object.getString("videoImage");
  481. List<TaBuildingImg> videoImageList = JSONObject.parseArray(videoImage, TaBuildingImg.class);
  482. if (CollectionUtils.isNotEmpty(videoImageList)) {
  483. videoImageList = insertImgBatch(videoImageList, building.getBuildingId());
  484. }
  485. // 列表图
  486. String listImg = object.getString("listImg");
  487. List<TaBuildingImg> buildingListImg = JSONObject.parseArray(listImg, TaBuildingImg.class);
  488. if (CollectionUtils.isNotEmpty(buildingListImg)) {
  489. buildingListImg = insertImgBatch(buildingListImg, building.getBuildingId());
  490. }
  491. // 标签
  492. String tagStr = object.getString("tag");
  493. List<TaBuildingTag> buildingTags = JSONObject.parseArray(tagStr, TaBuildingTag.class);
  494. if (CollectionUtils.isNotEmpty(buildingTags)) {
  495. buildingTags = insertTagBatch(buildingTags, building.getBuildingId());
  496. }
  497. // 项目类型
  498. JSONArray buildingProjectTypeArray = object.getJSONArray("buildingProjectType");
  499. if (CollectionUtils.isNotEmpty(buildingProjectTypeArray)) {
  500. taBuildingProjectTypeMapper.insertBuildingProjectTypeBatch(buildingProjectTypeArray, building.getBuildingId());
  501. }
  502. // 地图周边
  503. JSONArray mapJson = object.getJSONArray("mapJson");
  504. if (null != mapJson) {
  505. List<TaBuildingMapRelation> taBuildingMapRelations = mapJson.toJavaList(TaBuildingMapRelation.class);
  506. insertBuildingMapRelationBeach(taBuildingMapRelations, building.getBuildingId(), orgId);
  507. }
  508. //添加默认意向值
  509. iTaBuildingIntentionService.saveDefaultIntention(building.getOrgId(), building.getBuildingId());
  510. return ResponseBean.success(building);
  511. }
  512. /**
  513. * 批量插入 周边地图数据
  514. *
  515. * @param list
  516. * @param buildingId
  517. * @param orgId
  518. * @return
  519. */
  520. private List<TaBuildingMapRelation> insertBuildingMapRelationBeach(List<TaBuildingMapRelation> list, String buildingId, Integer orgId) {
  521. List<TaBuildingMapRelation> newList = list.stream().map(e -> {
  522. e.setBuildingId(buildingId);
  523. e.setOrgId(orgId);
  524. e.setStatus(1);
  525. e.setCreateDate(LocalDateTime.now());
  526. return e;
  527. }).collect(Collectors.toList());
  528. iTaBuildingMapRelationService.saveBatch(newList);
  529. return newList;
  530. }
  531. @Override
  532. public ResponseBean buildingUpdateStatus(String parameter, Integer orgId) {
  533. ResponseBean responseBean = new ResponseBean();
  534. JSONObject jsonobject = JSONObject.parseObject(parameter);
  535. Integer status = jsonobject.getInteger("status");
  536. String id = jsonobject.getString("id");
  537. QueryWrapper<TaBuilding> buildingIdQueryWrapper = new QueryWrapper<>();
  538. buildingIdQueryWrapper.eq("building_id", id);
  539. buildingIdQueryWrapper.eq("org_id", orgId);
  540. TaBuilding building = taBuildingMapper.selectOne(buildingIdQueryWrapper);
  541. boolean isMainMoreThanTenFlag = publishCountIsMainBuilding(building, orgId, status, "updateStatus");
  542. if (!isMainMoreThanTenFlag) {
  543. responseBean.addError("当前城市最多只能推荐10个项目至首页哦");
  544. return responseBean;
  545. }
  546. building.setStatus(status);
  547. taBuildingMapper.update(building, buildingIdQueryWrapper);
  548. return ResponseBean.success("");
  549. }
  550. @Override
  551. public ResponseBean buildingdelete(String id, Integer orgId) {
  552. TaBuilding building = new TaBuilding();
  553. QueryWrapper<TaBuilding> buildingtWrapper = new QueryWrapper<>();
  554. buildingtWrapper.lambda().eq(TaBuilding::getBuildingId, id);
  555. TaBuilding bui = taBuildingMapper.selectOne(buildingtWrapper);
  556. if (bui.getStatus().equals(1)) {
  557. return ResponseBean.error("楼盘已发布不可以删除", ResponseBean.ERROR_UNAVAILABLE);
  558. }
  559. QueryWrapper<TaBuilding> buildingIdQueryWrapper = new QueryWrapper<>();
  560. buildingIdQueryWrapper.eq("building_id", id);
  561. buildingIdQueryWrapper.eq("org_id", orgId);
  562. building.setBuildingId(String.valueOf(id));
  563. building.setStatus(-1);
  564. taBuildingMapper.update(building, buildingIdQueryWrapper);
  565. TaLiveActivity taLiveActivity = new TaLiveActivity();
  566. QueryWrapper<TaLiveActivity> queryWrapper = new QueryWrapper<>();
  567. queryWrapper.eq("building_id", id);
  568. taLiveActivity.setStatus(0);
  569. taLiveActivity.setCityId(null);
  570. taLiveActivity.setBuildingId(null);
  571. taLiveActivityMapper.update(taLiveActivity, queryWrapper);
  572. return ResponseBean.success("");
  573. }
  574. @Override
  575. public ResponseBean buildingApartmentAdd(String parameter) {
  576. TaBuildingApartment building = JSONObject.parseObject(parameter, TaBuildingApartment.class);
  577. building.setStatus(1);
  578. building.setCreateDate(LocalDateTime.now());
  579. if (taBuildingApartmentMapper.insert(building) < 1) {
  580. return ResponseBean.error("新增楼盘户型失败", ResponseBean.ERROR_UNAVAILABLE);
  581. }
  582. JSONObject jsonobject = JSONObject.parseObject(parameter);
  583. //图片数组
  584. String imgStr = jsonobject.getString("img");
  585. //转集合
  586. List<TaBuildingImg> buildingImgs = JSONObject.parseArray(imgStr, TaBuildingImg.class);
  587. //插入户型图片
  588. insertApartmentImgBatch(buildingImgs, building.getBuildingId(), building.getApartmentId());
  589. return ResponseBean.success("");
  590. }
  591. @Override
  592. public ResponseBean buildingApartmentUpdate(String parameter) {
  593. ResponseBean responseBean = new ResponseBean();
  594. TaBuildingApartment building = JSONObject.parseObject(parameter, TaBuildingApartment.class);
  595. if (StringUtils.isEmpty(building.getApartmentId())) {
  596. responseBean.addError("id不存在!");
  597. return responseBean;
  598. }
  599. taBuildingImgMapper.delBuildingImgByApartment(building.getApartmentId());
  600. //删除户户型对应图片表
  601. QueryWrapper<TaApartmentImg> apartmentImgQueryWrapper = new QueryWrapper<>();
  602. apartmentImgQueryWrapper.eq("apartment_id", building.getApartmentId());
  603. taApartmentImgMapper.delete(apartmentImgQueryWrapper);
  604. QueryWrapper<TaBuildingApartment> buildingApartmentQueryWrapper = new QueryWrapper<>();
  605. buildingApartmentQueryWrapper.eq("apartment_id", building.getApartmentId());
  606. building.setInsideArea(building.getInsideArea() == null ? 0d : building.getInsideArea());
  607. building.setBuildingArea(building.getBuildingArea() == null ? 0d : building.getBuildingArea());
  608. taBuildingApartmentMapper.update(building, buildingApartmentQueryWrapper);
  609. JSONObject jsonobject = JSONObject.parseObject(parameter);
  610. //图片数组
  611. String imgStr = jsonobject.getString("img");
  612. //转集合
  613. List<TaBuildingImg> buildingImgs = JSONObject.parseArray(imgStr, TaBuildingImg.class);
  614. //插入户型图片删除之前的图片
  615. insertApartmentImgBatch(buildingImgs, building.getBuildingId(), building.getApartmentId());
  616. return ResponseBean.success("");
  617. }
  618. @Override
  619. public ResponseBean buildingApartmentSelectId(String id) {
  620. //查询户型详情
  621. QueryWrapper<TaBuildingApartment> buildingApartmentQueryWrapper = new QueryWrapper<>();
  622. buildingApartmentQueryWrapper.eq("apartment_id", id);
  623. //拿到当前户型信息
  624. TaBuildingApartment buildingApartment = taBuildingApartmentMapper.selectOne(buildingApartmentQueryWrapper);
  625. if (null == buildingApartment) {
  626. return ResponseBean.success("", "没有发现户型图上传");
  627. }
  628. //根据户型ID查楼盘户型对应图片表
  629. ArrayList arrayList = new ArrayList<>();
  630. QueryWrapper<TaApartmentImg> ApartmentImgQueryWrapper = new QueryWrapper<>();
  631. ApartmentImgQueryWrapper.eq("apartment_id", buildingApartment.getApartmentId());
  632. List<TaApartmentImg> buildingImg = taApartmentImgMapper.selectList(ApartmentImgQueryWrapper);
  633. for (TaApartmentImg apartmentImg : buildingImg) {
  634. QueryWrapper<TaBuildingImg> buildingImgQueryWrapper = new QueryWrapper<>();
  635. buildingImgQueryWrapper.eq("img_id", apartmentImg.getImgId());
  636. buildingImgQueryWrapper.eq("img_type", CommConstant.BUILDING_IMG_APARMENT);
  637. List<TaBuildingImg> buildingImgList = taBuildingImgMapper.selectList(buildingImgQueryWrapper);
  638. for (TaBuildingImg buImg : buildingImgList) {
  639. arrayList.add(buImg);
  640. }
  641. }
  642. buildingApartment.setBuildingImgList(arrayList);
  643. return ResponseBean.success(buildingApartment);
  644. }
  645. @Override
  646. public ResponseBean appointmentUpdate(String id, String writeoffRemark) {
  647. return null;
  648. }
  649. @Override
  650. public ResponseBean getWxBuildingList(
  651. Integer pageNum,
  652. Integer pageSize,
  653. String name,
  654. List<String> targets,
  655. Integer cityId,
  656. boolean mine,
  657. String[] houseTypeList,
  658. String[] buildingTypeList,
  659. List<String[]> priceList,
  660. List<String[]> areaList,
  661. Integer orgId, String priceType) {
  662. IPage<TaBuilding> page = new Page<>(pageNum, pageSize);
  663. if (CollectionUtils.isEmpty(targets) && mine) {
  664. return ResponseBean.success(page);
  665. }
  666. // QueryWrapper<TaBuilding> buildingQueryWrapper = new QueryWrapper<>();
  667. // buildingQueryWrapper.nested(null != name && !"".equals(name.trim()), i -> i.like("name", name).or().like("building_name", name));
  668. // buildingQueryWrapper.eq("status", 1);
  669. // buildingQueryWrapper.eq(null != cityId && cityId != 0,"city_id", cityId);
  670. // buildingQueryWrapper.in(null != targets && targets.size() > 0, "building_id", targets);
  671. //// buildingQueryWrapper.like(null != name && !"".equals(name.trim()), "name", name);
  672. // buildingQueryWrapper.orderByAsc("order_no");
  673. // buildingQueryWrapper.eq(null != buildingTypeId,"building_type", buildingTypeId);
  674. //
  675. // IPage<TaBuilding> result = taBuildingMapper.selectPage(page, buildingQueryWrapper);
  676. IPage<TaBuilding> result = taBuildingMapper.selectBuildingPage(page, name, cityId, targets, houseTypeList, buildingTypeList, priceList, areaList, orgId, priceType);
  677. List<TaBuilding> buildingList = result.getRecords();
  678. if (CollectionUtils.isNotEmpty(buildingList)) {
  679. for (TaBuilding build : buildingList) {
  680. getBuildingAttaches(build);
  681. // 兼容 3.0/3.5 版本(3.0/3.5 封面取的全是 buildingListImg 的第一张),因为在3.5.1新增了封面图
  682. // 获取封面图
  683. List<TaBuildingImg> buildingListImg = build.getBuildingListImg();
  684. if (CollectionUtils.isNotEmpty(buildingListImg)) {
  685. // 把封面图写入到 BuildingImg 的第一张
  686. if (CollectionUtils.isNotEmpty(build.getBuildingImg())) {
  687. build.getBuildingImg().add(0, buildingListImg.get(0));
  688. }
  689. }
  690. }
  691. }
  692. return ResponseBean.success(result);
  693. }
  694. private void getBuildingAttaches(TaBuilding build) {
  695. build.setBuildingImg(getBuildingImg(build.getBuildingId(), CommConstant.BUILDING_IMG_BANNER));
  696. build.setBuildingListImg(getBuildingImg(build.getBuildingId(), CommConstant.BUILDING_IMG_LIST));
  697. build.setVideoImage(getBuildingImg(build.getBuildingId(), CommConstant.BUILDING_IMG_VIDEOIMAGE));
  698. // QueryWrapper<Visit> BuildingVisitQueryWrapper = new QueryWrapper<>();
  699. // BuildingVisitQueryWrapper.eq("visit_type", "building");
  700. // BuildingVisitQueryWrapper.eq("visit_content", build.getBuildingId());
  701. // BuildingVisitQueryWrapper.orderByDesc("visit_date");
  702. // List<Visit> visits = visitMapper.selectList(BuildingVisitQueryWrapper);
  703. // build.setVisits(visits);
  704. QueryWrapper<TaBuildingTag> buildingTagQueryWrapper = new QueryWrapper<>();
  705. buildingTagQueryWrapper.eq("building_id", build.getBuildingId());
  706. List<TaBuildingTag> buildingTags = taBuildingTagMapper.selectList(buildingTagQueryWrapper);
  707. build.setBuildingTag(buildingTags);
  708. IPage<TaUv> page = new Page<>(1, 10);
  709. QueryWrapper<TaUv> taUvQueryWrapper = new QueryWrapper<>();
  710. taUvQueryWrapper.eq("be_uv", build.getBuildingId());
  711. taUvQueryWrapper.eq("tagert_type", CommConstant.FAVOR_PROJECT);
  712. taUvQueryWrapper.orderByDesc("create_date");
  713. IPage<TaUv> taUvList = taUvMapper.selectPage(page, taUvQueryWrapper);
  714. build.setUvList(taUvList);
  715. IPage<TaShare> pg = new Page<>(1, 10);
  716. QueryWrapper<TaShare> taShareQueryWrapper = new QueryWrapper<>();
  717. taShareQueryWrapper.eq("be_share", build.getBuildingId());
  718. taShareQueryWrapper.eq("tagert_type", CommConstant.FAVOR_PROJECT);
  719. taShareQueryWrapper.orderByDesc("create_date");
  720. IPage<TaShare> taShareList = taShareMapper.selectPage(pg, taShareQueryWrapper);
  721. build.setShareList(taShareList);
  722. build.setConsultants(taPersonMapper.selectBuildingConsultants(build.getBuildingId(), CommConstant.PERSON_REALTY_CONSULTANT, CommConstant.STATUS_NORMAL, build.getOrgId()));
  723. }
  724. @Override
  725. public ResponseBean getWxMainBuildingList(String cityId, Integer orgId) {
  726. List<TaBuilding> buildingList = taBuildingMapper.selectMainBuildings(cityId, orgId);
  727. if (null == buildingList) {
  728. return ResponseBean.success(new ArrayList<>());
  729. }
  730. for (TaBuilding building : buildingList) {
  731. String buildingId = building.getBuildingId();
  732. // 列表封面
  733. if (!StringUtils.isEmpty(building.getListPoster())) {
  734. List<TaBuildingImg> listImage = new ArrayList<>();
  735. TaBuildingImg img = new TaBuildingImg();
  736. img.setImgType(CommConstant.BUILDING_IMG_LIST);
  737. img.setBuildingId(buildingId);
  738. img.setUrl(building.getListPoster());
  739. listImage.add(img);
  740. building.setBuildingListImg(listImage);
  741. }
  742. // tags
  743. if (!StringUtils.isEmpty(building.getTags())) {
  744. List<TaBuildingTag> tags = new ArrayList<>();
  745. String[] tagsArray = building.getTags().split(",");
  746. if (null != tagsArray) {
  747. for (String tagName : tagsArray) {
  748. TaBuildingTag tag = new TaBuildingTag();
  749. tag.setBuildingId(buildingId);
  750. tag.setTagName(tagName);
  751. tags.add(tag);
  752. }
  753. }
  754. building.setBuildingTag(tags);
  755. }
  756. // Uv
  757. IPage<TaUv> pageUv = new Page<>(1, 10);
  758. QueryWrapper<TaUv> query3 = new QueryWrapper<>();
  759. query3.eq("be_uv", buildingId);
  760. query3.eq("tagert_type", CommConstant.FAVOR_PROJECT);
  761. query3.orderByDesc("create_date");
  762. IPage<TaUv> uvs = taUvMapper.selectPage(pageUv, query3);
  763. building.setUvList(uvs);
  764. // share num
  765. IPage<TaShare> pageSN = new Page<>(1, 10);
  766. pageSN.setTotal(null == building.getShareNum() ? 0l : building.getShareNum());
  767. building.setShareList(pageSN);
  768. }
  769. IPage<TaBuilding> page = new Page<>(1, 10);
  770. page.setTotal(buildingList.size());
  771. page.setRecords(buildingList);
  772. return ResponseBean.success(page);
  773. }
  774. @Override
  775. public ResponseBean getWxBuildingById(String buildingId) {
  776. // 楼盘信息
  777. QueryWrapper<TaBuilding> buildingQueryWrapper = new QueryWrapper<>();
  778. buildingQueryWrapper.eq("building_id", buildingId);
  779. TaBuilding building = taBuildingMapper.selectOne(buildingQueryWrapper);
  780. if (null == building) {
  781. return ResponseBean.error("项目不存在", ResponseBean.ERROR_ILLEGAL_PARAMS);
  782. }
  783. // 楼盘Banner
  784. QueryWrapper<TaBuildingImg> buildingImgBannerQueryWrapper = new QueryWrapper<>();
  785. buildingImgBannerQueryWrapper.eq("building_id", building.getBuildingId());
  786. buildingImgBannerQueryWrapper.eq("img_type", CommConstant.BUILDING_IMG_BANNER);
  787. buildingImgBannerQueryWrapper.orderBy(true, true, "order_no");
  788. List<TaBuildingImg> buildingBannerImg = taBuildingImgMapper.selectList(buildingImgBannerQueryWrapper);
  789. building.setBuildingImg(buildingBannerImg);
  790. // 楼盘户型
  791. QueryWrapper<TaBuildingApartment> buildingApartmentQueryWrapper = new QueryWrapper<>();
  792. buildingApartmentQueryWrapper.eq("building_id", building.getBuildingId());
  793. buildingApartmentQueryWrapper.orderByDesc("order_no");
  794. buildingApartmentQueryWrapper.orderByDesc("create_date");
  795. List<TaBuildingApartment> buildingApartmentList = taBuildingApartmentMapper.selectList(buildingApartmentQueryWrapper);
  796. // 楼盘户型图
  797. buildingApartmentList.forEach(e -> {
  798. QueryWrapper<TaBuildingImg> buildingImgQueryWrapper = new QueryWrapper<>();
  799. buildingImgQueryWrapper.eq("building_id", building.getBuildingId());
  800. List<TaBuildingImg> buildingImgList = taBuildingImgMapper.selectList(buildingImgQueryWrapper);
  801. e.setBuildingImgList(buildingImgList);
  802. });
  803. Map<String, Object> buildingMap = new HashMap<>();
  804. buildingMap.put("info", building);
  805. buildingMap.put("buildingApartment", buildingApartmentList);
  806. return ResponseBean.success(buildingMap);
  807. }
  808. @Override
  809. public ResponseBean buildingApartmentBuildingId(String id, String apartmentType) {
  810. QueryWrapper<TaBuildingApartment> buildingApartmentQueryWrapper = new QueryWrapper<>();
  811. buildingApartmentQueryWrapper.eq("building_id", id);
  812. buildingApartmentQueryWrapper.eq("status", 1);
  813. buildingApartmentQueryWrapper.eq(org.apache.commons.lang3.StringUtils.isNotBlank(apartmentType), "apartment_type", apartmentType);
  814. buildingApartmentQueryWrapper.orderByDesc("order_no");
  815. buildingApartmentQueryWrapper.orderByDesc("create_date");
  816. List<TaBuildingApartment> buildingApartment = taBuildingApartmentMapper.selectList(buildingApartmentQueryWrapper);
  817. buildingApartment.forEach(e -> {
  818. QueryWrapper<TaApartmentImg> ApartmentImgQueryWrapper = new QueryWrapper<>();
  819. ApartmentImgQueryWrapper.eq("apartment_id", e.getApartmentId());
  820. List<TaApartmentImg> buildingImg = taApartmentImgMapper.selectList(ApartmentImgQueryWrapper);
  821. List<TaBuildingImg> buildingImag = buildingImg.stream().map(img -> {
  822. QueryWrapper<TaBuildingImg> buildingImgQueryWrapper = new QueryWrapper<>();
  823. buildingImgQueryWrapper.eq("img_id", img.getImgId());
  824. buildingImgQueryWrapper.eq("img_type", CommConstant.BUILDING_IMG_APARMENT);
  825. return taBuildingImgMapper.selectOne(buildingImgQueryWrapper);
  826. }).sorted(Comparator.comparing(TaBuildingImg::getOrderNo)).collect(Collectors.toList());
  827. e.setBuildingImgList(buildingImag);
  828. });
  829. return ResponseBean.success(buildingApartment);
  830. }
  831. @Override
  832. public ResponseBean apartmentDel(String id) {
  833. QueryWrapper<TaBuildingApartment> buildingApartmentQueryWrapper = new QueryWrapper<>();
  834. buildingApartmentQueryWrapper.eq("apartment_id", id);
  835. TaBuildingApartment buildingApartment = taBuildingApartmentMapper.selectOne(buildingApartmentQueryWrapper);
  836. // TaBuilding building= new TaBuilding();
  837. QueryWrapper<TaBuilding> buildingtWrapper = new QueryWrapper<>();
  838. buildingtWrapper.lambda().eq(TaBuilding::getBuildingId, buildingApartment.getBuildingId());
  839. // TaBuilding bui= taBuildingMapper.selectOne(buildingtWrapper);
  840. // if (bui.getStatus().equals(1)){
  841. // return ResponseBean.error("楼盘已发布不可以删除", ResponseBean.ERROR_UNAVAILABLE);
  842. // }
  843. buildingApartment.setStatus(-1);
  844. taBuildingApartmentMapper.update(buildingApartment, buildingApartmentQueryWrapper);
  845. return ResponseBean.success("");
  846. }
  847. @Override
  848. public ResponseBean buildingAll(Integer orgId) {
  849. List<TaBuilding> taBuilding = taBuildingMapper.buildingAll(orgId);
  850. return ResponseBean.success(taBuilding);
  851. }
  852. @Override
  853. public Integer getCityById(String buildingId) {
  854. if (StringUtils.isEmpty(buildingId)) return null;
  855. TaBuilding taBuilding = taBuildingMapper.selectById(buildingId);
  856. if (null == taBuilding) return null;
  857. return taBuilding.getCityId();
  858. }
  859. @Override
  860. public ResponseBean getBuildingListById(Integer orgId, Integer cityId) {
  861. List<TaBuilding> buildings = taBuildingMapper.getBuildingListById(orgId, cityId);
  862. return ResponseBean.success(buildings);
  863. }
  864. @Override
  865. public int countNumByHeavy(Integer heavy, String dynamicId) {
  866. return taBuildingMapper.countNumByHeavy(heavy, dynamicId);
  867. }
  868. /**
  869. * 推荐到首页楼盘不能超过10个
  870. *
  871. * @param taBuilding
  872. * @return
  873. */
  874. public boolean publishCountIsMainBuilding(TaBuilding taBuilding, Integer orgId, Integer status, String operte) {
  875. QueryWrapper<TaBuilding> queryWrapper = new QueryWrapper<>();
  876. queryWrapper.eq("building_id", taBuilding.getBuildingId());
  877. queryWrapper.eq("org_id", orgId);
  878. TaBuilding info = taBuildingMapper.selectOne(queryWrapper);
  879. if (taBuilding.getIsMain() != 1) {
  880. return true;
  881. }
  882. // if (operte.equals("update") && (info.getStatus() == 2)){
  883. // return true;
  884. // }
  885. if (operte.equals("updateStatus") && status == 2) {
  886. return true;
  887. }
  888. QueryWrapper<TaBuilding> taBuildingQueryWrapper = new QueryWrapper<>();
  889. taBuildingQueryWrapper.eq("city_id", taBuilding.getCityId());
  890. taBuildingQueryWrapper.eq("is_main", 1);
  891. taBuildingQueryWrapper.eq("org_id", orgId);
  892. taBuildingQueryWrapper.ne("status", "-1");
  893. taBuildingQueryWrapper.ne("status", "2");
  894. if (taBuilding.getBuildingId() != null) {
  895. taBuildingQueryWrapper.ne("building_id", taBuilding.getBuildingId());
  896. }
  897. List<TaBuilding> taBuildings = taBuildingMapper.selectList(taBuildingQueryWrapper);
  898. if (taBuildings != null && taBuildings.size() >= 10) {
  899. return false;
  900. }
  901. return true;
  902. }
  903. private List<TaBuildingImg> insertImgBatch(List<TaBuildingImg> imgs, String buildingId) {
  904. return imgs.stream().map(img -> {
  905. TaBuildingImg Images = new TaBuildingImg();
  906. Images.setBuildingId(buildingId);
  907. Images.setImgType(img.getImgType());
  908. Images.setUrl(img.getUrl());
  909. Images.setOrderNo(Integer.valueOf(img.getOrderNo()));
  910. Images.setStatus(1);
  911. Images.setCreateDate(LocalDateTime.now());
  912. taBuildingImgMapper.insert(Images);
  913. return Images;
  914. }).collect(Collectors.toList());
  915. }
  916. private List<TaBuildingTag> insertTagBatch(List<TaBuildingTag> tags, String buildingId) {
  917. return tags.stream().map(tag -> {
  918. TaBuildingTag btag = new TaBuildingTag();
  919. btag.setBuildingId(buildingId);
  920. btag.setTagName(tag.getTagName());
  921. taBuildingTagMapper.insert(btag);
  922. return btag;
  923. }).collect(Collectors.toList());
  924. }
  925. int insertApartmentImgBatch(List<TaBuildingImg> imgs, String buildingId, String apartmentId) {
  926. int rows = 0;
  927. for (TaBuildingImg img : imgs) {
  928. TaBuildingImg Images = new TaBuildingImg();
  929. Images.setBuildingId(buildingId);
  930. Images.setImgType(img.getImgType());
  931. Images.setUrl(img.getUrl());
  932. Images.setOrderNo(Integer.valueOf(img.getOrderNo()));
  933. Images.setStatus(1);
  934. Images.setCreateDate(LocalDateTime.now());
  935. if (taBuildingImgMapper.insert(Images) < 1) {
  936. continue;
  937. }
  938. ;
  939. TaApartmentImg apartmentImg = new TaApartmentImg();
  940. apartmentImg.setApartmentId(apartmentId);
  941. apartmentImg.setImgId(Images.getImgId());
  942. apartmentImg.setStatus(1);
  943. rows += taApartmentImgMapper.insert(apartmentImg);
  944. }
  945. return rows;
  946. }
  947. }