PlanServiceImpl.java 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522
  1. package com.ruoyi.demo.service.impl;
  2. import cn.hutool.core.lang.Dict;
  3. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  4. import com.github.pagehelper.PageHelper;
  5. import com.github.pagehelper.PageInfo;
  6. import com.ruoyi.demo.entity.*;
  7. import com.ruoyi.demo.entity.bo.CallBackBean;
  8. import com.ruoyi.demo.entity.bo.PlanAddBo;
  9. import com.ruoyi.demo.entity.bo.PlanBo;
  10. import com.ruoyi.demo.entity.bo.PlanItemAddBo;
  11. import com.ruoyi.demo.entity.vo.*;
  12. import com.ruoyi.demo.mapper.*;
  13. import com.ruoyi.demo.service.PlanService;
  14. import com.ruoyi.demo.utils.OnStateUtil;
  15. import com.ruoyi.demo.utils.SendCallBackUtil;
  16. import com.ruoyi.demo.utils.SignUtil;
  17. import com.ruoyi.demo.utils.StateUtil;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.stereotype.Service;
  20. import org.springframework.transaction.annotation.Transactional;
  21. import java.time.LocalDateTime;
  22. import java.time.ZoneId;
  23. import java.util.ArrayList;
  24. import java.util.List;
  25. import java.util.Map;
  26. @Service
  27. @Transactional
  28. public class PlanServiceImpl implements PlanService {
  29. @Autowired
  30. PlanMapper planMapper;
  31. @Autowired
  32. PlanItemMapper planItemMapper;
  33. @Autowired
  34. PlanAuditMapper planAuditMapper;
  35. @Autowired
  36. AppMapper appMapper;
  37. @Autowired
  38. CommercialMapper commercialMapper;
  39. @Autowired
  40. SystemSetterMapper systemSetterMapper;
  41. @Autowired
  42. StoreMapper storeMapper;
  43. @Autowired
  44. PlanPushStatisticsMapper planPushStatisticsMapper;
  45. @Autowired
  46. AddrCategoryMapper addrCategoryMapper;
  47. @Autowired
  48. EquipmentMapper equipmentMapper;
  49. @Autowired
  50. GoodsMapper goodsMapper;
  51. @Autowired
  52. StatisticsMapper statisticsMapper;
  53. @Autowired
  54. ExposureMapper exposureMapper;
  55. // @Autowired
  56. // SysUserMapper sysUserMapper;
  57. @Override
  58. public String getSign(PlanAddBo bo) {
  59. QueryWrapper<App> appQueryWrapper = new QueryWrapper<>();
  60. appQueryWrapper.eq("appkey",bo.getAppkey());
  61. appQueryWrapper.eq("state",0);
  62. appQueryWrapper.eq("deleted","0");
  63. App app = appMapper.selectOne(appQueryWrapper);
  64. if (app == null)
  65. return "error";
  66. Map<String,Object> params = Dict.create()
  67. .set("appkey",bo.getAppkey())
  68. .set("goodsId",bo.getGoodsId())
  69. .set("goodsImg",bo.getGoodsImg())
  70. .set("goodsIntroduce",bo.getGoodsIntroduce())
  71. .set("goodsLogo",bo.getGoodsLogo())
  72. .set("goodsName",bo.getGoodsName())
  73. .set("goodsClassify",bo.getGoodsClassify())
  74. .set("goodsPrice",bo.getGoodsPrice())
  75. .set("items",bo.getItems())
  76. .set("planEndTime",bo.getPlanEndTime())
  77. .set("planStartTime",bo.getPlanStartTime())
  78. .set("sign",null)
  79. .set("vendorId",bo.getVendorId())
  80. .set("vendorName",bo.getVendorName());
  81. return SignUtil.sign(params,app.getAppSecret());
  82. }
  83. @Override
  84. public int addPlan(PlanAddBo bo) {
  85. QueryWrapper<App> appQueryWrapper = new QueryWrapper<>();
  86. appQueryWrapper.eq("appkey",bo.getAppkey());
  87. appQueryWrapper.eq("state",0);
  88. appQueryWrapper.eq("deleted","0");
  89. App app = appMapper.selectOne(appQueryWrapper);
  90. if (app == null)
  91. return -1;
  92. Map<String,Object> params = Dict.create()
  93. .set("appkey",bo.getAppkey())
  94. .set("goodsId",bo.getGoodsId())
  95. .set("goodsImg",bo.getGoodsImg())
  96. .set("goodsIntroduce",bo.getGoodsIntroduce())
  97. .set("goodsLogo",bo.getGoodsLogo())
  98. .set("goodsName",bo.getGoodsName())
  99. .set("goodsClassify",bo.getGoodsClassify())
  100. .set("goodsPrice",bo.getGoodsPrice())
  101. .set("items",bo.getItems())
  102. .set("planEndTime",bo.getPlanEndTime())
  103. .set("planStartTime",bo.getPlanStartTime())
  104. .set("sign",bo.getSign())
  105. .set("vendorId",bo.getVendorId())
  106. .set("vendorName",bo.getVendorName());
  107. if (!SignUtil.verify(params,app.getAppSecret()))
  108. return -3;
  109. // 插入广告计划
  110. Plan plan = new Plan(app,bo);
  111. planMapper.insert(plan);
  112. // 插入广告计划明细
  113. for (PlanItemAddBo itemAddBo : bo.getItems()) {
  114. PlanItem item = new PlanItem(plan.getPlanId(), itemAddBo);
  115. planItemMapper.insert(item);
  116. }
  117. // 插入商品信息
  118. QueryWrapper<Goods> goodsQueryWrapper = new QueryWrapper<>();
  119. goodsQueryWrapper.eq("appkey",bo.getAppkey());
  120. goodsQueryWrapper.eq("goods_id",bo.getGoodsId());
  121. goodsQueryWrapper.eq("vendor_id",bo.getVendorId());
  122. Goods query = goodsMapper.selectOne(goodsQueryWrapper);
  123. if (query == null){
  124. Goods goods = new Goods(plan);
  125. goodsMapper.insert(goods);
  126. }
  127. return 1;
  128. }
  129. @Override
  130. public int deletePlan(String id) {
  131. QueryWrapper<PlanItem> itemQueryWrapper = new QueryWrapper<>();
  132. itemQueryWrapper.eq("plan_id",id);
  133. planItemMapper.delete(itemQueryWrapper);
  134. QueryWrapper<Plan> queryWrapper = new QueryWrapper<>();
  135. queryWrapper.eq("plan_id",id);
  136. return planMapper.delete(queryWrapper);
  137. }
  138. @Override
  139. public int deletePlans(List<String> ids) {
  140. int i = 0;
  141. for (String id : ids){
  142. QueryWrapper<Plan> queryWrapper = new QueryWrapper<>();
  143. queryWrapper.eq("plan_id",id);
  144. i += planMapper.delete(queryWrapper);
  145. }
  146. return i;
  147. }
  148. @Override
  149. public int checkPlan(PlanBo bo,Long userId,String userName) {
  150. QueryWrapper<Plan> planQueryWrapper = new QueryWrapper<>();
  151. planQueryWrapper.eq("plan_id",bo.getPlanId());
  152. planQueryWrapper.eq("deleted","0");
  153. Plan plan = planMapper.selectOne(planQueryWrapper);
  154. if (plan == null)
  155. return -1;
  156. QueryWrapper<App> appQueryWrapper = new QueryWrapper<>();
  157. appQueryWrapper.eq("appkey",plan.getAppkey());
  158. appQueryWrapper.eq("deleted","0");
  159. App app = appMapper.selectOne(appQueryWrapper);
  160. plan.setState(bo.getState());
  161. int i = planMapper.updateById(plan);
  162. if (i == 0)
  163. return 0;
  164. // SysUser sysUser = sysUserMapper.selectById(userId);
  165. PlanAudit audit = new PlanAudit(bo,userId.toString(),userName);
  166. int insert = planAuditMapper.insert(audit);
  167. if (insert == 1){
  168. CallBackBean callBackBean = new CallBackBean();
  169. callBackBean.setAuditPerson(userName);
  170. if (bo.getState() == 1)
  171. callBackBean.setAuditComment("审核通过");
  172. else callBackBean.setAuditComment("审核不通过");
  173. callBackBean.setAuditTime(LocalDateTime.now(ZoneId.of("Asia/Shanghai")));
  174. SendCallBackUtil.sendCallBack(app.getCallBack(),callBackBean);
  175. }
  176. return insert;
  177. }
  178. @Override
  179. public PageInfo<List<PlanListVo>> getPlanList(PlanBo bo) {
  180. PageHelper.startPage(bo.getPageNum(), bo.getPageSize(),true);
  181. QueryWrapper<Plan> planQueryWrapper = new QueryWrapper<>();
  182. if (bo.getText() != null)
  183. planQueryWrapper.and(planQueryWrapper1 -> {
  184. planQueryWrapper1.like("plan_id",bo.getText())
  185. .or()
  186. .like("plan_name",bo.getText())
  187. .or()
  188. .like("principal_name",bo.getText())
  189. .or()
  190. .like("principal_telephone",bo.getText());
  191. });
  192. planQueryWrapper.eq("state", StateUtil.APPROVED);
  193. planQueryWrapper.eq("deleted","0");
  194. List<Plan> plans = planMapper.selectList(planQueryWrapper);
  195. List<PlanListVo> vos = new ArrayList<>();
  196. for (Plan plan : plans){
  197. vos.add(new PlanListVo(plan));
  198. }
  199. return new PageInfo(vos);
  200. }
  201. @Override
  202. public PlanDetailVo getPlanDetail(String planId) {
  203. QueryWrapper<Plan> planQueryWrapper = new QueryWrapper<>();
  204. planQueryWrapper.eq("plan_id",planId);
  205. planQueryWrapper.eq("deleted","0");
  206. Plan plan = planMapper.selectOne(planQueryWrapper);
  207. if (plan == null)
  208. return null;
  209. QueryWrapper<PlanItem> itemQueryWrapper = new QueryWrapper<>();
  210. itemQueryWrapper.eq("plan_id",planId);
  211. List<PlanItem> items = planItemMapper.selectList(itemQueryWrapper);
  212. List<PlanItemVo> itemVos = new ArrayList<>();
  213. if (items != null)
  214. for (PlanItem item : items){
  215. itemVos.add(new PlanItemVo(item));
  216. }
  217. PlanDetailVo vo = new PlanDetailVo(plan, itemVos);
  218. return vo;
  219. }
  220. @Override
  221. public List<PlanPushVo> getPlanPush(String equipmentId) {
  222. // 根据设备id查询可投放的广告计划
  223. // 再根据每个广告计划id,查询其商品信息
  224. List<PlanPushVo> pushVos = new ArrayList<>();
  225. QueryWrapper<PlanItem> itemQueryWrapper = new QueryWrapper<>();
  226. itemQueryWrapper.eq("equipment_id",equipmentId);
  227. itemQueryWrapper.eq("deleted","0");
  228. List<PlanItem> items = planItemMapper.selectList(itemQueryWrapper);
  229. for (PlanItem item : items){
  230. QueryWrapper<Plan> planQueryWrapper = new QueryWrapper<>();
  231. planQueryWrapper.apply("plan_start_time <= STR_TO_DATE({0},'%Y-%m-%d %H:%i:%s')",LocalDateTime.now(ZoneId.of("Asia/Shanghai")));
  232. planQueryWrapper.apply("plan_end_time > STR_TO_DATE({0},'%Y-%m-%d %H:%i:%s')",LocalDateTime.now(ZoneId.of("Asia/Shanghai")));
  233. planQueryWrapper.eq("plan_id",item.getPlanId());
  234. planQueryWrapper.eq("state",StateUtil.APPROVED);
  235. planQueryWrapper.eq("deleted","0");
  236. Plan plan = planMapper.selectOne(planQueryWrapper);
  237. if (plan != null)
  238. pushVos.add(new PlanPushVo(item,plan));
  239. }
  240. return pushVos;
  241. }
  242. @Override
  243. public List<PlanPushVo> getPlanPushByCode(String equipmentCode) {
  244. List<PlanPushVo> pushVos = new ArrayList<>();
  245. QueryWrapper<PlanItem> itemQueryWrapper = new QueryWrapper<>();
  246. itemQueryWrapper.eq("equipment_code",equipmentCode);
  247. itemQueryWrapper.eq("deleted","0");
  248. List<PlanItem> items = planItemMapper.selectList(itemQueryWrapper);
  249. for (PlanItem item : items){
  250. QueryWrapper<Plan> planQueryWrapper = new QueryWrapper<>();
  251. planQueryWrapper.eq("plan_id",item.getPlanId());
  252. planQueryWrapper.apply("plan_start_time <= STR_TO_DATE({0},'%Y-%m-%d %H:%i:%s')",LocalDateTime.now(ZoneId.of("Asia/Shanghai")));
  253. planQueryWrapper.apply("plan_end_time > STR_TO_DATE({0},'%Y-%m-%d %H:%i:%s')",LocalDateTime.now(ZoneId.of("Asia/Shanghai")));
  254. planQueryWrapper.eq("state",StateUtil.APPROVED);
  255. planQueryWrapper.eq("on_state", OnStateUtil.UP);
  256. planQueryWrapper.eq("deleted","0");
  257. Plan plan = planMapper.selectOne(planQueryWrapper);
  258. if (plan != null)
  259. pushVos.add(new PlanPushVo(item,plan));
  260. }
  261. return pushVos;
  262. }
  263. @Override
  264. public int planUpDown(String planId) {
  265. QueryWrapper<Plan> queryWrapper = new QueryWrapper<>();
  266. queryWrapper.eq("plan_id",planId);
  267. queryWrapper.eq("deleted","0");
  268. Plan plan = planMapper.selectOne(queryWrapper);
  269. if (plan == null)
  270. return -1;
  271. plan.setOnState(plan.getOnState()+1);
  272. if (plan.getOnState() >= 2)
  273. plan.setOnState(0);
  274. return planMapper.updateById(plan);
  275. }
  276. @Override
  277. public PageInfo<List<PlanManageListVo>> getPlanManageList(PlanBo bo) {
  278. PageHelper.startPage(bo.getPageNum(),bo.getPageSize(),true);
  279. QueryWrapper<Plan> planQueryWrapper = new QueryWrapper<>();
  280. planQueryWrapper.eq("state",bo.getState());
  281. if (bo.getText() != null)
  282. planQueryWrapper.and(planQueryWrapper1 -> {
  283. planQueryWrapper1.like("plan_id",bo.getText())
  284. .or()
  285. .like("app_name",bo.getText())
  286. .or()
  287. .like("commercial_name",bo.getText());
  288. });
  289. if (bo.getStartTime() != null)
  290. planQueryWrapper.and(planQueryWrapper1 -> {
  291. planQueryWrapper1.apply("plan_start_time >= STR_TO_DATE({0},'%Y-%m-%d %H:%i:%s')",bo.getStartTime())
  292. .or()
  293. .apply("plan_create_time >= STR_TO_DATE({0},'%Y-%m-%d %H:%i:%s')",bo.getStartTime());
  294. });
  295. if (bo.getEndTime() != null)
  296. planQueryWrapper.and(planQueryWrapper1 -> {
  297. planQueryWrapper1.apply("plan_end_time <= STR_TO_DATE({0},'%Y-%m-%d %H:%i:%s')",bo.getEndTime())
  298. .or()
  299. .apply("plan_create_time <= STR_TO_DATE({0},'%Y-%m-%d %H:%i:%s')",bo.getEndTime());
  300. });
  301. planQueryWrapper.eq("deleted","0");
  302. List<Plan> plans = planMapper.selectList(planQueryWrapper);
  303. List<PlanManageListVo> vos = new ArrayList<>();
  304. for (Plan plan : plans){
  305. PlanManageListVo vo = new PlanManageListVo(plan);
  306. Integer count = planItemMapper.selectEquipmentCountByPlanId(plan.getPlanId());
  307. vo.setEquipmentCount(count);
  308. vos.add(vo);
  309. }
  310. return new PageInfo(vos);
  311. }
  312. @Override
  313. public PlanManageDetailVo getPlanManageDetail(String planId) {
  314. QueryWrapper<Plan> planQueryWrapper = new QueryWrapper<>();
  315. planQueryWrapper.eq("plan_id",planId);
  316. planQueryWrapper.eq("deleted","0");
  317. Plan plan = planMapper.selectOne(planQueryWrapper);
  318. if (plan == null)
  319. return null;
  320. QueryWrapper<PlanItem> itemQueryWrapper = new QueryWrapper<>();
  321. itemQueryWrapper.eq("plan_id",planId);
  322. itemQueryWrapper.eq("deleted","0");
  323. List<PlanItem> items = planItemMapper.selectList(itemQueryWrapper);
  324. List<PlanManageItemVo> itemVos = new ArrayList<>();
  325. for (PlanItem item : items){
  326. PlanManageItemVo itemVo = new PlanManageItemVo(item);
  327. if (item.getStoreId() != null){
  328. Store store = storeMapper.selectById(item.getStoreId());
  329. if (store != null)
  330. itemVo.setStoreName(store.getStoreName());
  331. }
  332. itemVos.add(itemVo);
  333. }
  334. PlanManageDetailVo vo = new PlanManageDetailVo(plan, itemVos);
  335. return vo;
  336. }
  337. @Override
  338. public PageInfo<List<PlanPushListVo>> getPlanPushList(PlanBo bo) {
  339. PageHelper.startPage(bo.getPageNum(),bo.getPageSize(),true);
  340. QueryWrapper<Plan> planQueryWrapper = new QueryWrapper<>();
  341. planQueryWrapper.eq("appkey",bo.getAppkey());
  342. // planQueryWrapper.eq("commercial_id",bo.getCommercialId());
  343. if (bo.getText() != null)
  344. planQueryWrapper.and(planQueryWrapper1 -> {
  345. planQueryWrapper1.like("plan_id",bo.getText())
  346. .or()
  347. .like("plan_name",bo.getText())
  348. .or()
  349. .like("principal_name",bo.getText())
  350. .or()
  351. .like("principal_telephone",bo.getText());
  352. });
  353. if (bo.getStartTime() != null)
  354. planQueryWrapper.and(planQueryWrapper1 -> {
  355. planQueryWrapper1.apply("plan_start_time >= STR_TO_DATE({0},'%Y-%m-%d %H:%i:%s')",bo.getStartTime())
  356. .or()
  357. .apply("plan_create_time >= STR_TO_DATE({0},'%Y-%m-%d %H:%i:%s')",bo.getStartTime());
  358. });
  359. if (bo.getEndTime() != null)
  360. planQueryWrapper.and(planQueryWrapper1 -> {
  361. planQueryWrapper1.apply("plan_end_time <= STR_TO_DATE({0},'%Y-%m-%d %H:%i:%s')",bo.getEndTime())
  362. .or()
  363. .apply("plan_create_time <= STR_TO_DATE({0},'%Y-%m-%d %H:%i:%s')",bo.getEndTime());
  364. });
  365. planQueryWrapper.eq("deleted","0");
  366. List<Plan> plans = planMapper.selectList(planQueryWrapper);
  367. List<PlanPushListVo> vos = new ArrayList<>();
  368. for (Plan plan : plans){
  369. PlanPushListVo vo = new PlanPushListVo(plan);
  370. Integer count = planItemMapper.selectEquipmentCountByPlanId(plan.getPlanId());
  371. vo.setEquipmentCount(count);
  372. vos.add(vo);
  373. }
  374. return new PageInfo(vos);
  375. }
  376. @Override
  377. public PageInfo<List<PlanPushStatisticsListVo>> getPlanPushStatisticsList(PlanBo bo) {
  378. PageHelper.startPage(bo.getPageNum(),bo.getPageSize(),true);
  379. QueryWrapper<PlanPushStatistics> statisticsQueryWrapper = new QueryWrapper<>();
  380. if (bo.getText() != null)
  381. statisticsQueryWrapper.and(planPushStatisticsQueryWrapper -> {
  382. planPushStatisticsQueryWrapper.like("plan_id",bo.getText())
  383. .or()
  384. .like("equipment_id",bo.getText())
  385. .or()
  386. .like("equipment_code",bo.getText())
  387. .or()
  388. .like("equipment_name",bo.getText());
  389. });
  390. if (bo.getStartTime() != null)
  391. statisticsQueryWrapper.apply("laster_time >= STR_TO_DATE({0},'%Y-%m-%d %H:%i:%s')",bo.getStartTime());
  392. if (bo.getEndTime() != null)
  393. statisticsQueryWrapper.apply("laster_time <= STR_TO_DATE({0},'%Y-%m-%d %H:%i:%s')",bo.getEndTime());
  394. List<PlanPushStatistics> list = planPushStatisticsMapper.selectList(statisticsQueryWrapper);
  395. List<PlanPushStatisticsListVo> vos = new ArrayList<>();
  396. for (PlanPushStatistics statistics : list){
  397. vos.add(new PlanPushStatisticsListVo(statistics));
  398. }
  399. return new PageInfo(vos);
  400. }
  401. @Override
  402. public void planPushStatisticsStart() {
  403. // 清除当前月的统计记录
  404. QueryWrapper<PlanPushStatistics> planPushStatisticsQueryWrapper = new QueryWrapper<>();
  405. planPushStatisticsQueryWrapper.apply("DATE_FORMAT(laster_time,'%Y-%m') = STR_TO_DATE({0},'%Y-%m')",LocalDateTime.now(ZoneId.of("Asia/Shanghai")));
  406. planPushStatisticsMapper.delete(planPushStatisticsQueryWrapper);
  407. // 获取所有设备,遍历
  408. for (Equipment equipment : equipmentMapper.selectList(null)) {
  409. // 先查询设备下所有plan_item,再根据item_id统计查询曝光记录表获取曝光次数
  410. List<String> ids = planItemMapper.getItemIdsByCode(equipment.getEquipmentCode());
  411. Integer carousalCount = exposureMapper.selectTotalCountByItemIds(ids);
  412. // 统计查询统计信息表获取累计扫码量、累计交易数、累计用户数、累计收入
  413. Integer scanCount = statisticsMapper.selectScanByEquipmentCode(equipment.getEquipmentCode());
  414. Integer tradeCount = statisticsMapper.selectDealCountByEquipmentCode(equipment.getEquipmentCode());
  415. List<String> users = statisticsMapper.selectUserIdsByEquipmentCode(equipment.getEquipmentCode());
  416. Float totalPrice = statisticsMapper.selectTotalPriceByEquipmentCode(equipment.getEquipmentCode());
  417. // 插入记录
  418. PlanPushStatistics planPushStatistics = new PlanPushStatistics();
  419. planPushStatistics.setEquipmentId(equipment.getEquipmentId());
  420. planPushStatistics.setEquipmentName(equipment.getEquipmentName());
  421. planPushStatistics.setEquipmentCode(equipment.getEquipmentCode());
  422. planPushStatistics.setCarouselCount(carousalCount);
  423. planPushStatistics.setScanCodeCount(scanCount);
  424. planPushStatistics.setTradeCount(tradeCount);
  425. if (users == null)
  426. planPushStatistics.setTotalUserCount(0);
  427. else
  428. planPushStatistics.setTotalUserCount(users.size());
  429. if (totalPrice == null)
  430. planPushStatistics.setTotalPrice(Float.valueOf(0));
  431. else
  432. planPushStatistics.setTotalPrice(totalPrice);
  433. planPushStatistics.setLasterTime(LocalDateTime.now(ZoneId.of("Asia/Shanghai")));
  434. planPushStatisticsMapper.insert(planPushStatistics);
  435. }
  436. }
  437. @Override
  438. public PlanHomeVo getPlanTotal() {
  439. PlanHomeVo vo = new PlanHomeVo();
  440. vo.setTotal(planMapper.selectPlanTotal());
  441. return vo;
  442. }
  443. @Override
  444. public List<AddrCategory> getAddrCategory() {
  445. return addrCategoryMapper.selectList(null);
  446. }
  447. @Override
  448. public List<AddrCategory> getAddrCategoryLevel(String code,String level) {
  449. if ("province".equals(level)){
  450. QueryWrapper<AddrCategory> queryWrapper = new QueryWrapper<>();
  451. queryWrapper.eq("city","");
  452. return addrCategoryMapper.selectList(queryWrapper);
  453. }else if("city".equals(level)){
  454. QueryWrapper<AddrCategory> queryWrapper = new QueryWrapper<>();
  455. queryWrapper.likeRight("addr_code",code.substring(0,2));
  456. queryWrapper.and(categoryQueryWrapper -> {
  457. categoryQueryWrapper.eq("district", "").and(addrCategoryQueryWrapper -> {
  458. addrCategoryQueryWrapper.ne("city", "");
  459. });
  460. });
  461. return addrCategoryMapper.selectList(queryWrapper);
  462. }else if("zone".equals(level)){
  463. QueryWrapper<AddrCategory> queryWrapper = new QueryWrapper<>();
  464. queryWrapper.likeRight("addr_code",code.substring(0,4));
  465. queryWrapper.and(categoryQueryWrapper -> {
  466. categoryQueryWrapper.ne("district", "");
  467. });
  468. return addrCategoryMapper.selectList(queryWrapper);
  469. }
  470. return null;
  471. }
  472. @Override
  473. public PageInfo<List<Equipment>> getEquipments(PlanBo bo) {
  474. PageHelper.startPage(bo.getPageNum(),bo.getPageSize(),true);
  475. QueryWrapper<Equipment> equipmentQueryWrapper = new QueryWrapper<>();
  476. if (bo.getText() != null)
  477. equipmentQueryWrapper.and(equipmentQueryWrapper1 -> {
  478. equipmentQueryWrapper1.like("equipment_id",bo.getText())
  479. .or()
  480. .like("equipment_code",bo.getText())
  481. .or()
  482. .like("equipment_name",bo.getText());
  483. });
  484. if (bo.getAddrCodes() != null){
  485. for (String addrCode : bo.getAddrCodes()){
  486. String province = String.valueOf(addrCode.charAt(0))+String.valueOf(addrCode.charAt(1));
  487. String city = String.valueOf(addrCode.charAt(2))+String.valueOf(addrCode.charAt(3));
  488. String district = String.valueOf(addrCode.charAt(4))+String.valueOf(addrCode.charAt(5));
  489. if (district.equals("00")){
  490. if (city.equals("00"))
  491. equipmentQueryWrapper.or().likeRight("addr_code",province);
  492. else
  493. equipmentQueryWrapper.or().likeRight("addr_code",province+city);
  494. }else
  495. equipmentQueryWrapper.or().likeRight("addr_code",province+city+district);
  496. }
  497. }
  498. return new PageInfo(equipmentMapper.selectList(equipmentQueryWrapper));
  499. }
  500. }