Your Name 4 jaren geleden
bovenliggende
commit
d2f275fb4a
100 gewijzigde bestanden met toevoegingen van 2202 en 487 verwijderingen
  1. 0
    114
      .mvn/wrapper/MavenWrapperDownloader.java
  2. BIN
      .mvn/wrapper/maven-wrapper.jar
  3. 0
    1
      .mvn/wrapper/maven-wrapper.properties
  4. 6
    1
      pom.xml
  5. 0
    2
      src/main/java/com/huiju/estateagents/EstateagentsApplication.java
  6. 54
    26
      src/main/java/com/huiju/estateagents/center/taUser/controller/TaUserController.java
  7. 7
    0
      src/main/java/com/huiju/estateagents/center/taUser/entity/TaUser.java
  8. 8
    0
      src/main/java/com/huiju/estateagents/center/taUser/mapper/TaUserMapper.java
  9. 2
    0
      src/main/java/com/huiju/estateagents/center/taUser/service/ITaUserService.java
  10. 25
    0
      src/main/java/com/huiju/estateagents/center/taUser/service/impl/TaUserServiceImpl.java
  11. 91
    0
      src/main/java/com/huiju/estateagents/common/CaptchaUtils.java
  12. 3
    2
      src/main/java/com/huiju/estateagents/common/CommConstant.java
  13. 19
    0
      src/main/java/com/huiju/estateagents/common/DateUtils.java
  14. 75
    0
      src/main/java/com/huiju/estateagents/common/LoginLocker.java
  15. 15
    0
      src/main/java/com/huiju/estateagents/common/StringUtils.java
  16. 8
    8
      src/main/java/com/huiju/estateagents/common/smsService/Captcha.java
  17. 12
    6
      src/main/java/com/huiju/estateagents/controller/CommonController.java
  18. 45
    11
      src/main/java/com/huiju/estateagents/controller/TaPersonController.java
  19. 75
    1
      src/main/java/com/huiju/estateagents/controller/TaPointsExchangeController.java
  20. 6
    0
      src/main/java/com/huiju/estateagents/controller/TaPointsRecordsController.java
  21. 3
    1
      src/main/java/com/huiju/estateagents/controller/TpNewsController.java
  22. 1
    1
      src/main/java/com/huiju/estateagents/entity/TaPointsExchange.java
  23. 29
    0
      src/main/java/com/huiju/estateagents/excel/TaPersonExport.java
  24. 57
    0
      src/main/java/com/huiju/estateagents/excel/TaPointsExchangeExport.java
  25. 41
    0
      src/main/java/com/huiju/estateagents/excel/TpBuildingOwnerInfoExport.java
  26. 1
    0
      src/main/java/com/huiju/estateagents/interceptor/AccessInterceptor.java
  27. 3
    0
      src/main/java/com/huiju/estateagents/mapper/TaActivityDynamicEnlistMapper.java
  28. 3
    0
      src/main/java/com/huiju/estateagents/mapper/TaPersonMapper.java
  29. 4
    0
      src/main/java/com/huiju/estateagents/mapper/TaPointsExchangeMapper.java
  30. 5
    1
      src/main/java/com/huiju/estateagents/property/controller/AnnouncementTelController.java
  31. 26
    20
      src/main/java/com/huiju/estateagents/property/controller/BillController.java
  32. 6
    3
      src/main/java/com/huiju/estateagents/property/controller/BillInvoiceController.java
  33. 82
    6
      src/main/java/com/huiju/estateagents/property/controller/BuildingOwnerInfoController.java
  34. 20
    2
      src/main/java/com/huiju/estateagents/property/controller/BuildingTreeController.java
  35. 108
    10
      src/main/java/com/huiju/estateagents/property/controller/IndexCountController.java
  36. 160
    0
      src/main/java/com/huiju/estateagents/property/controller/TpCommunityController.java
  37. 45
    0
      src/main/java/com/huiju/estateagents/property/controller/TpRoomNoController.java
  38. 2
    2
      src/main/java/com/huiju/estateagents/property/controller/TpTicketController.java
  39. 4
    2
      src/main/java/com/huiju/estateagents/property/controller/UserVerifyController.java
  40. 6
    1
      src/main/java/com/huiju/estateagents/property/dao/TaUserVerifyMapper.java
  41. 3
    0
      src/main/java/com/huiju/estateagents/property/dao/TpBillOrderMapper.java
  42. 7
    0
      src/main/java/com/huiju/estateagents/property/dao/TpBuildingMapper.java
  43. 4
    0
      src/main/java/com/huiju/estateagents/property/dao/TpBuildingOwnerInfoMapper.java
  44. 13
    4
      src/main/java/com/huiju/estateagents/property/dao/TpLevelMapper.java
  45. 2
    0
      src/main/java/com/huiju/estateagents/property/dao/TpPhaseMapper.java
  46. 23
    2
      src/main/java/com/huiju/estateagents/property/dao/TpRoomNoMapper.java
  47. 6
    0
      src/main/java/com/huiju/estateagents/property/dao/TpTicketMapper.java
  48. 9
    4
      src/main/java/com/huiju/estateagents/property/dao/TpUnitMapper.java
  49. 44
    0
      src/main/java/com/huiju/estateagents/property/entity/TaUserCommunity.java
  50. 47
    0
      src/main/java/com/huiju/estateagents/property/entity/TpBillType.java
  51. 46
    0
      src/main/java/com/huiju/estateagents/property/entity/TpCommunity.java
  52. 18
    0
      src/main/java/com/huiju/estateagents/property/mapper/TaUserCommunityMapper.java
  53. 17
    0
      src/main/java/com/huiju/estateagents/property/mapper/TpBillTypeMapper.java
  54. 21
    0
      src/main/java/com/huiju/estateagents/property/mapper/TpCommunityMapper.java
  55. 3
    1
      src/main/java/com/huiju/estateagents/property/model/AnnouncementTel.java
  56. 14
    1
      src/main/java/com/huiju/estateagents/property/model/Bill.java
  57. 2
    3
      src/main/java/com/huiju/estateagents/property/model/BillInvoice.java
  58. 3
    1
      src/main/java/com/huiju/estateagents/property/model/TaUserVerify.java
  59. 9
    1
      src/main/java/com/huiju/estateagents/property/model/TpAnnouncement.java
  60. 9
    1
      src/main/java/com/huiju/estateagents/property/model/TpBillOrder.java
  61. 4
    1
      src/main/java/com/huiju/estateagents/property/model/TpBuilding.java
  62. 4
    2
      src/main/java/com/huiju/estateagents/property/model/TpBuildingOwnerInfo.java
  63. 4
    2
      src/main/java/com/huiju/estateagents/property/model/TpLevel.java
  64. 6
    4
      src/main/java/com/huiju/estateagents/property/model/TpPhase.java
  65. 5
    3
      src/main/java/com/huiju/estateagents/property/model/TpRoomNo.java
  66. 4
    1
      src/main/java/com/huiju/estateagents/property/model/TpTicket.java
  67. 4
    2
      src/main/java/com/huiju/estateagents/property/model/TpUnit.java
  68. 12
    2
      src/main/java/com/huiju/estateagents/property/service/BuildingTreeServiceI.java
  69. 9
    6
      src/main/java/com/huiju/estateagents/property/service/IBillService.java
  70. 12
    4
      src/main/java/com/huiju/estateagents/property/service/IBuildingOwnerInfoService.java
  71. 22
    0
      src/main/java/com/huiju/estateagents/property/service/ITaUserCommunityService.java
  72. 7
    1
      src/main/java/com/huiju/estateagents/property/service/ITaUserVerifyService.java
  73. 19
    0
      src/main/java/com/huiju/estateagents/property/service/ITpCommunityService.java
  74. 11
    2
      src/main/java/com/huiju/estateagents/property/service/TpTicketService.java
  75. 94
    39
      src/main/java/com/huiju/estateagents/property/service/impl/BillInvoiceServiceImpl.java
  76. 40
    41
      src/main/java/com/huiju/estateagents/property/service/impl/BillServiceImpl.java
  77. 19
    2
      src/main/java/com/huiju/estateagents/property/service/impl/BillStatementServiceImpl.java
  78. 47
    30
      src/main/java/com/huiju/estateagents/property/service/impl/BuildingOwnerInfoServiceImpl.java
  79. 154
    48
      src/main/java/com/huiju/estateagents/property/service/impl/BuildingTreeServiceImpl.java
  80. 63
    0
      src/main/java/com/huiju/estateagents/property/service/impl/TaUserCommunityServiceImpl.java
  81. 26
    14
      src/main/java/com/huiju/estateagents/property/service/impl/TaUserVerifyServiceImpl.java
  82. 5
    0
      src/main/java/com/huiju/estateagents/property/service/impl/TpAnnouncementServiceImpl.java
  83. 32
    0
      src/main/java/com/huiju/estateagents/property/service/impl/TpCommunityServiceImpl.java
  84. 157
    33
      src/main/java/com/huiju/estateagents/property/service/impl/TpTicketServiceImpl.java
  85. 2
    0
      src/main/java/com/huiju/estateagents/property/vo/TpTicketVO.java
  86. 3
    0
      src/main/java/com/huiju/estateagents/service/ITaBuildingDynamicService.java
  87. 2
    0
      src/main/java/com/huiju/estateagents/service/ITaPersonService.java
  88. 2
    0
      src/main/java/com/huiju/estateagents/service/ITaPointsExchangeService.java
  89. 1
    1
      src/main/java/com/huiju/estateagents/service/ITpNewsService.java
  90. 6
    4
      src/main/java/com/huiju/estateagents/service/impl/TaBuildingDynamicServiceImpl.java
  91. 6
    0
      src/main/java/com/huiju/estateagents/service/impl/TaPersonServiceImpl.java
  92. 5
    0
      src/main/java/com/huiju/estateagents/service/impl/TaPointsExchangeServiceImpl.java
  93. 4
    0
      src/main/java/com/huiju/estateagents/service/impl/TaPointsRecordsServiceImpl.java
  94. 4
    1
      src/main/java/com/huiju/estateagents/service/impl/TpNewsServiceImpl.java
  95. 1
    1
      src/main/resources/application-dev.yml
  96. 1
    1
      src/main/resources/application-prod.yml
  97. 3
    2
      src/main/resources/application.yml
  98. 21
    1
      src/main/resources/mapper/TaActivityDynamicEnlistMapper.xml
  99. 24
    0
      src/main/resources/mapper/TaPersonMapper.xml
  100. 0
    0
      src/main/resources/mapper/TaUserAuthMenuMapper.xml

+ 0
- 114
.mvn/wrapper/MavenWrapperDownloader.java Bestand weergeven

@@ -1,114 +0,0 @@
1
-/*
2
-Licensed to the Apache Software Foundation (ASF) under one
3
-or more contributor license agreements.  See the NOTICE file
4
-distributed with this work for additional information
5
-regarding copyright ownership.  The ASF licenses this file
6
-to you under the Apache License, Version 2.0 (the
7
-"License"); you may not use this file except in compliance
8
-with the License.  You may obtain a copy of the License at
9
-
10
-  https://www.apache.org/licenses/LICENSE-2.0
11
-
12
-Unless required by applicable law or agreed to in writing,
13
-software distributed under the License is distributed on an
14
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
-KIND, either express or implied.  See the License for the
16
-specific language governing permissions and limitations
17
-under the License.
18
-*/
19
-
20
-import java.io.File;
21
-import java.io.FileInputStream;
22
-import java.io.FileOutputStream;
23
-import java.io.IOException;
24
-import java.net.URL;
25
-import java.nio.channels.Channels;
26
-import java.nio.channels.ReadableByteChannel;
27
-import java.util.Properties;
28
-
29
-public class MavenWrapperDownloader {
30
-
31
-    /**
32
-     * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
33
-     */
34
-    private static final String DEFAULT_DOWNLOAD_URL =
35
-            "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar";
36
-
37
-    /**
38
-     * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
39
-     * use instead of the default one.
40
-     */
41
-    private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
42
-            ".mvn/wrapper/maven-wrapper.properties";
43
-
44
-    /**
45
-     * Path where the maven-wrapper.jar will be saved to.
46
-     */
47
-    private static final String MAVEN_WRAPPER_JAR_PATH =
48
-            ".mvn/wrapper/maven-wrapper.jar";
49
-
50
-    /**
51
-     * Name of the property which should be used to override the default download url for the wrapper.
52
-     */
53
-    private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
54
-
55
-    public static void main(String args[]) {
56
-        System.out.println("- Downloader started");
57
-        File baseDirectory = new File(args[0]);
58
-        System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
59
-
60
-        // If the maven-wrapper.properties exists, read it and check if it contains a custom
61
-        // wrapperUrl parameter.
62
-        File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
63
-        String url = DEFAULT_DOWNLOAD_URL;
64
-        if(mavenWrapperPropertyFile.exists()) {
65
-            FileInputStream mavenWrapperPropertyFileInputStream = null;
66
-            try {
67
-                mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
68
-                Properties mavenWrapperProperties = new Properties();
69
-                mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
70
-                url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
71
-            } catch (IOException e) {
72
-                System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
73
-            } finally {
74
-                try {
75
-                    if(mavenWrapperPropertyFileInputStream != null) {
76
-                        mavenWrapperPropertyFileInputStream.close();
77
-                    }
78
-                } catch (IOException e) {
79
-                    // Ignore ...
80
-                }
81
-            }
82
-        }
83
-        System.out.println("- Downloading from: : " + url);
84
-
85
-        File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
86
-        if(!outputFile.getParentFile().exists()) {
87
-            if(!outputFile.getParentFile().mkdirs()) {
88
-                System.out.println(
89
-                        "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'");
90
-            }
91
-        }
92
-        System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
93
-        try {
94
-            downloadFileFromURL(url, outputFile);
95
-            System.out.println("Done");
96
-            System.exit(0);
97
-        } catch (Throwable e) {
98
-            System.out.println("- Error downloading");
99
-            e.printStackTrace();
100
-            System.exit(1);
101
-        }
102
-    }
103
-
104
-    private static void downloadFileFromURL(String urlString, File destination) throws Exception {
105
-        URL website = new URL(urlString);
106
-        ReadableByteChannel rbc;
107
-        rbc = Channels.newChannel(website.openStream());
108
-        FileOutputStream fos = new FileOutputStream(destination);
109
-        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
110
-        fos.close();
111
-        rbc.close();
112
-    }
113
-
114
-}

BIN
.mvn/wrapper/maven-wrapper.jar Bestand weergeven


+ 0
- 1
.mvn/wrapper/maven-wrapper.properties Bestand weergeven

@@ -1 +0,0 @@
1
-distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip

+ 6
- 1
pom.xml Bestand weergeven

@@ -10,7 +10,7 @@
10 10
 	</parent>
11 11
 	<groupId>com.huiju</groupId>
12 12
 	<artifactId>xiangsong</artifactId>
13
-	<version>1.0.46</version>
13
+	<version>1.0.59</version>
14 14
 	<name>xiangsong</name>
15 15
 	<description>香颂</description>
16 16
 
@@ -151,6 +151,11 @@
151 151
             <artifactId>spring-boot-starter-aop</artifactId>
152 152
         </dependency>
153 153
 
154
+		<dependency>
155
+			<groupId>com.github.whvcse</groupId>
156
+			<artifactId>easy-captcha</artifactId>
157
+			<version>1.6.2</version>
158
+		</dependency>
154 159
 
155 160
 		<dependency>
156 161
 			<groupId>fadada</groupId>

+ 0
- 2
src/main/java/com/huiju/estateagents/EstateagentsApplication.java Bestand weergeven

@@ -1,6 +1,5 @@
1 1
 package com.huiju.estateagents;
2 2
 
3
-import com.huiju.estateagents.websocket.ChatServer;
4 3
 import org.springframework.boot.SpringApplication;
5 4
 import org.springframework.boot.autoconfigure.SpringBootApplication;
6 5
 import org.springframework.context.ConfigurableApplicationContext;
@@ -15,7 +14,6 @@ public class EstateagentsApplication {
15 14
 	public static void main(String[] args) {
16 15
 		SpringApplication springApplication = new SpringApplication(EstateagentsApplication.class);
17 16
 		ConfigurableApplicationContext configurableApplicationContext = springApplication.run(args);
18
-//		ChatServer.setApplicationContext(configurableApplicationContext);
19 17
 	}
20 18
 
21 19
 }

+ 54
- 26
src/main/java/com/huiju/estateagents/center/taUser/controller/TaUserController.java Bestand weergeven

@@ -11,16 +11,17 @@ import com.huiju.estateagents.center.sysUser.entity.SysToken;
11 11
 import com.huiju.estateagents.center.sysUser.service.ISysTokenService;
12 12
 import com.huiju.estateagents.center.taUser.entity.*;
13 13
 import com.huiju.estateagents.center.taUser.service.*;
14
-import com.huiju.estateagents.common.CommConstant;
15
-import com.huiju.estateagents.common.JWTUtils;
16
-import com.huiju.estateagents.common.MD5Utils;
17
-import com.huiju.estateagents.common.StringUtils;
14
+import com.huiju.estateagents.common.*;
18 15
 import com.huiju.estateagents.entity.*;
19 16
 import com.huiju.estateagents.mapper.TaRoleMapper;
17
+import com.huiju.estateagents.property.entity.TpCommunity;
18
+import com.huiju.estateagents.property.service.ITaUserCommunityService;
19
+import com.huiju.estateagents.property.service.ITpCommunityService;
20 20
 import com.huiju.estateagents.service.*;
21 21
 import io.swagger.annotations.ApiImplicitParam;
22 22
 import io.swagger.annotations.ApiImplicitParams;
23 23
 import io.swagger.annotations.ApiOperation;
24
+import org.checkerframework.checker.units.qual.A;
24 25
 import org.slf4j.Logger;
25 26
 import org.slf4j.LoggerFactory;
26 27
 import org.springframework.beans.factory.annotation.Autowired;
@@ -29,6 +30,7 @@ import org.springframework.web.bind.annotation.*;
29 30
 import javax.servlet.http.HttpServletRequest;
30 31
 
31 32
 import java.text.SimpleDateFormat;
33
+import java.time.Duration;
32 34
 import java.time.LocalDateTime;
33 35
 import java.util.*;
34 36
 
@@ -85,6 +87,18 @@ public class TaUserController extends BaseController {
85 87
     @Autowired
86 88
     public ITpLifeConsultantEvaluateService iTpLifeConsultantEvaluateService;
87 89
 
90
+    @Autowired
91
+    public ITpCommunityService iTpCommunityService;
92
+
93
+    @Autowired
94
+    public ITaUserCommunityService iTaUserCommunityService;
95
+
96
+    @Autowired
97
+    public CaptchaUtils captchaUtils;
98
+
99
+    @Autowired
100
+    LoginLocker loginLocker;
101
+
88 102
     /**
89 103
      * 分页查询列表
90 104
      * @param pageNum
@@ -307,15 +321,20 @@ public class TaUserController extends BaseController {
307 321
             taUser.setOrgLogo(taOrg.getLogo());
308 322
             taUser.setOrgDesc(taOrg.getOrgDesc());
309 323
             taUser.setBossDisplay(taOrg.getBossDisplay());
324
+            //
325
+            taUser.setCommunityList(iTaUserCommunityService.getListBy(taUser.getOrgId(), taUser.getUserId()));
310 326
 
311 327
             //获取所有菜单
312 328
             List<SysMenu> allMenus = (List<SysMenu>) iTaUserAuthMenuService.getAllMenu(null, null,taUser.getOrgId(), roles).getData();
313 329
             List<SysButtonInMenu> allButtons = (List<SysButtonInMenu>) iTaUserAuthButtonService.getAllButton(null, null).getData();
314 330
 
331
+            // 获取所有社区
332
+            List<TpCommunity> communityList = iTpCommunityService.getAllByOrg(taUser.getOrgId());
315 333
 
316 334
             userMap.put("taUser", taUser);
317 335
             userMap.put("menuList", allMenus);
318 336
             userMap.put("buttonList", allButtons);
337
+            userMap.put("communityList", communityList);
319 338
             responseBean.addSuccess(userMap);
320 339
         }catch (Exception e){
321 340
             e.printStackTrace();
@@ -339,16 +358,39 @@ public class TaUserController extends BaseController {
339 358
     
340 359
         String userName = params.getString("loginName");
341 360
         String userPassword = params.getString("loginPassword");
342
-    
361
+        String captcha = params.getString("captcha");
362
+        String captchaKey = params.getString("captchaKey");
363
+
364
+        // 试错 3 次被锁定
365
+        int maxTryTimes = 3;
366
+        if (null != userName) {
367
+            LoginLocker.LogInfo logInfo = loginLocker.get("admin-" + userName);
368
+            if (null != logInfo) {
369
+                if (logInfo.getTimes() >= maxTryTimes) {
370
+                    String errMsg = String.format("该账号被锁定, 请 %d 分钟后重试", Duration.between(LocalDateTime.now(), logInfo.getExpire()).toMinutes() + 1);
371
+                    return ResponseBean.error(errMsg, ResponseBean.ERROR_UNAVAILABLE);
372
+                }
373
+            }
374
+        }
375
+
376
+        if (!captchaUtils.valid(captchaKey, captcha)) {
377
+            return ResponseBean.error("验证码不正确或者已过期", ResponseBean.ERROR_ILLEGAL_PARAMS);
378
+        }
379
+
343 380
         //验证用户名密码是否正确
344 381
         QueryWrapper<TaUser> sysUserQueryWrapper = new QueryWrapper<>();
345 382
         sysUserQueryWrapper.eq("login_name",userName);
346 383
         sysUserQueryWrapper.eq("login_password", MD5Utils.md5(userPassword));
347 384
         TaUser taUser = iTaUserService.getOne(sysUserQueryWrapper);
348 385
         if (taUser == null) {
349
-            return ResponseBean.error("用户名或密码错误", ResponseBean.ERROR_ILLEGAL_PARAMS);
386
+            LoginLocker.LogInfo logInfo = loginLocker.add("admin-" + userName);
387
+            String errMsg = String.format("用户名或密码错误, 您还有 %d 次机会", maxTryTimes - logInfo.getTimes());
388
+            return ResponseBean.error(errMsg, ResponseBean.ERROR_ILLEGAL_PARAMS);
350 389
         }
351 390
 
391
+        // 解除锁定
392
+        loginLocker.remove("admin-"+userName);
393
+
352 394
         QueryWrapper<TaUser> taUserQueryWrapper = new QueryWrapper<>();
353 395
         taUserQueryWrapper.eq("org_id", taUser.getOrgId());
354 396
         taUserQueryWrapper.eq("is_admin", 1);
@@ -496,6 +538,9 @@ public class TaUserController extends BaseController {
496 538
                     taUser.setBuildingIds(buildings);
497 539
                 }
498 540
             }
541
+
542
+            taUser.setCommunityList(iTaUserCommunityService.getListBy(taUser.getOrgId(), taUser.getUserId()));
543
+
499 544
             responseBean.addSuccess(taUser);
500 545
         }catch (Exception e){
501 546
             e.printStackTrace();
@@ -582,34 +627,17 @@ public class TaUserController extends BaseController {
582 627
     public ResponseBean lifeConsultantList(@PathVariable String client,
583 628
                                            @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
584 629
                                            @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
630
+                                           @RequestParam(value ="communityId") Integer communityId,
585 631
                                            @RequestParam(value ="userName", required = false) String userName,
586 632
                                            @RequestParam(value ="phone", required = false) String phone,
587 633
                                            HttpServletRequest request){
588 634
         ResponseBean responseBean = new ResponseBean();
635
+        String month = new SimpleDateFormat("yyyyMM").format(new Date());
589 636
         try {
590 637
             //使用分页插件
591 638
             IPage<TaUser> pg = new Page<TaUser>(pageNum, pageSize);
592
-            LambdaQueryWrapper<TaUser> queryWrapper = new LambdaQueryWrapper<>();
593
-            queryWrapper.eq(TaUser::getOrgId,getOrgId(request));
594
-            queryWrapper.eq(TaUser::getType,"life-consultant");
595
-            queryWrapper.like(!StringUtils.isEmpty(userName), TaUser::getUserName,"%"+ userName + "%");
596
-            queryWrapper.like(!StringUtils.isEmpty(phone), TaUser::getPhone,"%"+ phone + "%");
597
-            queryWrapper.orderByDesc(TaUser::getCreateDate);
598
-            IPage<TaUser> result = iTaUserService.page(pg,queryWrapper);
599
-            List<TaUser> records = result.getRecords();
600
-            records.forEach(e -> {
601
-                LambdaQueryWrapper<TpLifeConsultantEvaluate> evaluateQueryWrapper = new LambdaQueryWrapper<>();
602
-                evaluateQueryWrapper.eq(TpLifeConsultantEvaluate::getOrgId,getOrgId(request));
603
-                evaluateQueryWrapper.eq(TpLifeConsultantEvaluate::getUserId,e.getUserId());
604
-                evaluateQueryWrapper.eq(TpLifeConsultantEvaluate::getEvaluateTime,new SimpleDateFormat("yyyyMM").format(new Date()));
605
-                List<TpLifeConsultantEvaluate> list = iTpLifeConsultantEvaluateService.list(evaluateQueryWrapper);
606
-                if (list.size() > 0){
607
-                    double asDouble = list.stream().mapToInt(TpLifeConsultantEvaluate::getScore).average().getAsDouble();
608
-                    // 平均分
609
-                    e.setAverageScore(asDouble);
639
+            IPage<TaUser> result = iTaUserService.getLifeConsultants(pg, getOrgId(request), communityId, month, userName, phone);
610 640
 
611
-                }
612
-            });
613 641
             responseBean.addSuccess(result);
614 642
         }catch (Exception e){
615 643
             e.printStackTrace();

+ 7
- 0
src/main/java/com/huiju/estateagents/center/taUser/entity/TaUser.java Bestand weergeven

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
5 5
 import com.baomidou.mybatisplus.annotation.TableField;
6 6
 import com.baomidou.mybatisplus.annotation.TableId;
7 7
 import com.huiju.estateagents.entity.*;
8
+import com.huiju.estateagents.property.entity.TpCommunity;
8 9
 import lombok.Data;
9 10
 import lombok.EqualsAndHashCode;
10 11
 import lombok.experimental.Accessors;
@@ -289,4 +290,10 @@ public class TaUser implements Serializable {
289 290
      */
290 291
     @TableField(exist = false)
291 292
     private Double averageScore;
293
+
294
+    /**
295
+     * 授权的社区
296
+     */
297
+    @TableField(exist = false)
298
+    private List<TpCommunity> communityList;
292 299
 }

+ 8
- 0
src/main/java/com/huiju/estateagents/center/taUser/mapper/TaUserMapper.java Bestand weergeven

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 4
 import com.baomidou.mybatisplus.core.metadata.IPage;
5 5
 import com.huiju.estateagents.center.taUser.entity.TaTags;
6 6
 import com.huiju.estateagents.center.taUser.entity.TaUser;
7
+import com.huiju.estateagents.entity.TaPerson;
7 8
 import com.huiju.estateagents.entity.TaPersonBuilding;
8 9
 import org.apache.ibatis.annotations.Mapper;
9 10
 import org.apache.ibatis.annotations.Param;
@@ -37,4 +38,11 @@ public interface TaUserMapper extends BaseMapper<TaUser> {
37 38
     List<String> getBuildingIdsOf(@Param("userId") Integer userId,@Param("buildingId") String buildingId);
38 39
 
39 40
     TaUser getUserByPerson(@Param("orgId") Integer orgId, @Param("personId") String personId);
41
+
42
+    IPage<TaUser> getLifeConsultants(IPage<TaUser> pg,
43
+                                     @Param("orgId")  Integer orgId,
44
+                                     @Param("communityId")  Integer communityId,
45
+                                     @Param("month")  String month,
46
+                                     @Param("userName")  String userName,
47
+                                     @Param("phone") String phone);
40 48
 }

+ 2
- 0
src/main/java/com/huiju/estateagents/center/taUser/service/ITaUserService.java Bestand weergeven

@@ -75,4 +75,6 @@ public interface ITaUserService extends IService<TaUser> {
75 75
      * @return
76 76
      */
77 77
     TaUser getUserInfoById(Integer userId, Integer orgId);
78
+
79
+    IPage<TaUser> getLifeConsultants(IPage<TaUser> pg, Integer orgId, Integer communityId, String month, String userName, String phone);
78 80
 }

+ 25
- 0
src/main/java/com/huiju/estateagents/center/taUser/service/impl/TaUserServiceImpl.java Bestand weergeven

@@ -22,6 +22,9 @@ import com.huiju.estateagents.common.StringUtils;
22 22
 import com.huiju.estateagents.common.WxUtils;
23 23
 import com.huiju.estateagents.entity.*;
24 24
 import com.huiju.estateagents.mapper.*;
25
+import com.huiju.estateagents.property.entity.TaUserCommunity;
26
+import com.huiju.estateagents.property.entity.TpCommunity;
27
+import com.huiju.estateagents.property.service.ITaUserCommunityService;
25 28
 import com.huiju.estateagents.service.*;
26 29
 import org.apache.commons.collections.CollectionUtils;
27 30
 import org.springframework.beans.factory.annotation.Autowired;
@@ -98,6 +101,9 @@ public class TaUserServiceImpl extends ServiceImpl<TaUserMapper, TaUser> impleme
98 101
     @Autowired
99 102
     private TaChannelProxyMapper taChannelProxyMapper;
100 103
 
104
+    @Autowired
105
+    private ITaUserCommunityService iTaUserCommunityService;
106
+
101 107
     @Autowired
102 108
     private WxUtils wxUtils;
103 109
 
@@ -495,6 +501,13 @@ public class TaUserServiceImpl extends ServiceImpl<TaUserMapper, TaUser> impleme
495 501
             });
496 502
         }
497 503
 
504
+        // 保存授权小区
505
+        if (null == taUser.getCommunityList() || taUser.getCommunityList().size() < 1) {
506
+            throw new Exception("未授权小区");
507
+        }
508
+
509
+        iTaUserCommunityService.addUserCommunity(taUser.getOrgId(), taUser.getUserId(), taUser.getCommunityList());
510
+
498 511
         return taUser;
499 512
     }
500 513
 
@@ -588,6 +601,13 @@ public class TaUserServiceImpl extends ServiceImpl<TaUserMapper, TaUser> impleme
588 601
             });
589 602
         }
590 603
 
604
+        // 保存授权小区
605
+        if (null == taUser.getCommunityList() || taUser.getCommunityList().size() < 1) {
606
+            throw new Exception("未授权小区");
607
+        }
608
+
609
+        iTaUserCommunityService.addUserCommunity(taUser.getOrgId(), taUser.getUserId(), taUser.getCommunityList());
610
+
591 611
         //更新person
592 612
         TaPerson taPerson = new TaPerson();
593 613
         taPerson.setAvatarurl(taUser.getAvatar());
@@ -697,6 +717,11 @@ public class TaUserServiceImpl extends ServiceImpl<TaUserMapper, TaUser> impleme
697 717
         return getOne(userQueryWrapper);
698 718
     }
699 719
 
720
+    @Override
721
+    public IPage<TaUser> getLifeConsultants(IPage<TaUser> pg, Integer orgId, Integer communityId, String month, String userName, String phone) {
722
+        return taUserMapper.getLifeConsultants(pg, orgId, communityId, month, userName, phone);
723
+    }
724
+
700 725
     private boolean updateUserStatus(TaUser user) {
701 726
         UpdateWrapper<TaUser> updateWrapper = new UpdateWrapper<>();
702 727
         updateWrapper.eq("user_id", user.getUserId());

+ 91
- 0
src/main/java/com/huiju/estateagents/common/CaptchaUtils.java Bestand weergeven

@@ -0,0 +1,91 @@
1
+package com.huiju.estateagents.common;
2
+
3
+import com.wf.captcha.SpecCaptcha;
4
+import lombok.Data;
5
+import lombok.experimental.Accessors;
6
+import lombok.extern.slf4j.Slf4j;
7
+import org.springframework.scheduling.annotation.EnableScheduling;
8
+import org.springframework.scheduling.annotation.Scheduled;
9
+import org.springframework.stereotype.Component;
10
+
11
+import java.time.LocalDateTime;
12
+import java.util.Hashtable;
13
+import java.util.UUID;
14
+
15
+@Slf4j
16
+@Component
17
+@EnableScheduling
18
+public class CaptchaUtils {
19
+    Hashtable<String, Captcha> allCaptchas = new Hashtable<>();
20
+
21
+    public Captcha generate() {
22
+        SpecCaptcha specCaptcha = new SpecCaptcha(130, 48, 5);
23
+        Captcha cap = new Captcha()
24
+                .setKey(UUID.randomUUID().toString())
25
+                .setValue(specCaptcha.text().toLowerCase())
26
+                .setImage(specCaptcha.toBase64())
27
+                .setExpire(LocalDateTime.now().plusMinutes(15));
28
+        allCaptchas.put(cap.getKey(), cap);
29
+
30
+        // 返回的内容不包含 value
31
+        return copy(cap).setValue(null);
32
+    }
33
+
34
+    public boolean valid(String key, String captcha) {
35
+        if (null == captcha || null == key) {
36
+            return false;
37
+        }
38
+
39
+        // 没有对应键值
40
+        Captcha cap = allCaptchas.get(key);
41
+        if (null == cap) {
42
+            return false;
43
+        }
44
+
45
+        // 内容不匹配
46
+        if (!cap.getValue().equals(captcha.toLowerCase())) {
47
+            return false;
48
+        }
49
+
50
+        boolean res = checkExpire(cap);
51
+        if (res) {
52
+            // 过期清除
53
+            allCaptchas.remove(key);
54
+        }
55
+
56
+        return !res;
57
+    }
58
+
59
+    private Captcha copy(Captcha captcha) {
60
+        return new Captcha()
61
+                .setKey(captcha.getKey())
62
+                .setValue(captcha.getValue())
63
+                .setImage(captcha.getImage())
64
+                .setExpire(captcha.getExpire());
65
+    }
66
+
67
+    private boolean checkExpire(Captcha cap) {
68
+        return LocalDateTime.now().isAfter(cap.getExpire());
69
+    }
70
+
71
+    /**
72
+     * 定时任务 每半小时 清除一次不用的缓存
73
+     */
74
+    @Scheduled(fixedRate = 1000 * 60 * 30)
75
+    public void clearUnused() {
76
+        for (Captcha cap: allCaptchas.values()) {
77
+            if (checkExpire(cap)) {
78
+                allCaptchas.remove(cap.getKey());
79
+            }
80
+        }
81
+    }
82
+
83
+    @Data
84
+    @Accessors(chain = true)
85
+    public static class Captcha {
86
+        String key;
87
+        String value;
88
+        String image;
89
+        LocalDateTime expire;
90
+    }
91
+}

+ 3
- 2
src/main/java/com/huiju/estateagents/common/CommConstant.java Bestand weergeven

@@ -936,6 +936,7 @@ public class CommConstant {
936 936
     public static final String SMS_BIZ_REPAIRE_TICKET = "repaire-ticket";
937 937
 
938 938
     // 推送消息类型
939
-    public static final String TP_MESSAGE_BIRTHDAY = "birthday";
940
-    public static final String TP_MESSAGE_FESTIVAL= "festival";
939
+    public static final String TP_MESSAGE_BIRTHDAY = "birthday";    // 生日
940
+    public static final String TP_MESSAGE_FESTIVAL= "festival";     // 节日
941
+    public static final String TP_MESSAGE_TICKET= "ticket";         // 工单
941 942
 }

+ 19
- 0
src/main/java/com/huiju/estateagents/common/DateUtils.java Bestand weergeven

@@ -6,6 +6,7 @@ import java.time.LocalDateTime;
6 6
 import java.time.ZoneId;
7 7
 import java.time.format.DateTimeFormatter;
8 8
 import java.util.Date;
9
+import java.util.Locale;
9 10
 
10 11
 public class DateUtils {
11 12
     public static LocalDateTime date2LocalDateTime(Date date) {
@@ -60,6 +61,15 @@ public class DateUtils {
60 61
         return false;
61 62
     }
62 63
 
64
+    public static String format(LocalDateTime dt, String formatStr) {
65
+        if (null == dt) {
66
+            return null;
67
+        }
68
+
69
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(formatStr);
70
+        return dt.format(formatter);
71
+    }
72
+
63 73
     /**
64 74
      * 当前时间是否早于指定时间
65 75
      *
@@ -114,4 +124,13 @@ public class DateUtils {
114 124
         DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
115 125
         return LocalDateTime.parse(target, df);
116 126
     }
127
+
128
+    public static LocalDateTime parse(String str, String format) {
129
+        if (null == str || "".equals(str) || "null".equals(str) || "undefined".equals(str)) {
130
+            return null;
131
+        }
132
+
133
+        DateTimeFormatter df = DateTimeFormatter.ofPattern(format, Locale.CHINA);
134
+        return LocalDateTime.parse(str, df);
135
+    }
117 136
 }

+ 75
- 0
src/main/java/com/huiju/estateagents/common/LoginLocker.java Bestand weergeven

@@ -0,0 +1,75 @@
1
+package com.huiju.estateagents.common;
2
+
3
+import lombok.Data;
4
+import lombok.experimental.Accessors;
5
+import lombok.extern.slf4j.Slf4j;
6
+import org.springframework.scheduling.annotation.EnableScheduling;
7
+import org.springframework.scheduling.annotation.Scheduled;
8
+import org.springframework.stereotype.Component;
9
+
10
+import java.time.LocalDateTime;
11
+import java.util.Hashtable;
12
+
13
+@Slf4j
14
+@Component
15
+@EnableScheduling
16
+public class LoginLocker {
17
+    // 锁定时长 分钟
18
+    public static final int lockTime = 5;
19
+
20
+    Hashtable<String, LogInfo> allLogs = new Hashtable<>();
21
+
22
+    public LogInfo get(String name) {
23
+        return allLogs.get(name);
24
+    }
25
+
26
+    public LogInfo add(String name) {
27
+        if (null == name) {
28
+            return null;
29
+        }
30
+
31
+        LogInfo logInfo = allLogs.get(name);
32
+        if (null == logInfo) {
33
+            logInfo = new LogInfo()
34
+                    .setKey(name)
35
+                    .setTimes(1)
36
+                    .setExpire(LocalDateTime.now().plusMinutes(lockTime));
37
+            allLogs.put(name, logInfo);
38
+        } else {
39
+            logInfo.setTimes(logInfo.getTimes() + 1)
40
+                    .setExpire(LocalDateTime.now().plusMinutes(lockTime));
41
+        }
42
+
43
+        return logInfo;
44
+    }
45
+
46
+    public void remove(String name) {
47
+        try {
48
+            allLogs.remove(name);
49
+        } catch (Exception e) {}
50
+    }
51
+
52
+    private boolean checkExpire(LogInfo log) {
53
+        return LocalDateTime.now().isAfter(log.getExpire());
54
+    }
55
+
56
+    /**
57
+     * 定时任务 每分钟 清除一次不用的缓存
58
+     */
59
+    @Scheduled(fixedRate = 1000 * 60)
60
+    public void clearUnused() {
61
+        for (LogInfo log: allLogs.values()) {
62
+            if (checkExpire(log)) {
63
+                allLogs.remove(log.getKey());
64
+            }
65
+        }
66
+    }
67
+
68
+    @Data
69
+    @Accessors(chain = true)
70
+    public static class LogInfo {
71
+        String key;
72
+        int times;
73
+        LocalDateTime expire;
74
+    }
75
+}

+ 15
- 0
src/main/java/com/huiju/estateagents/common/StringUtils.java Bestand weergeven

@@ -145,4 +145,19 @@ public class StringUtils {
145 145
             return null;
146 146
         }
147 147
     }
148
+
149
+    /**
150
+     * 简易脱敏
151
+     * @param source
152
+     * @param regx
153
+     * @param repl
154
+     * @return
155
+     */
156
+    public static String simpleSensitive(String source, String regx, String repl) {
157
+        if (isEmpty(source)) {
158
+            return source;
159
+        }
160
+
161
+        return source.replaceAll(regx, repl);
162
+    }
148 163
 }

+ 8
- 8
src/main/java/com/huiju/estateagents/common/smsService/Captcha.java Bestand weergeven

@@ -84,16 +84,16 @@ public class Captcha {
84 84
      * @return
85 85
      */
86 86
     public boolean validate(String tel, String captcha) {
87
-        Phone phone = fromCache(tel);
88
-        if (null == phone) {
89
-            return false;
90
-        }
91
-
92 87
         String universalCode = getUniversalCode();
93 88
         if (universalCode.equals(captcha)) {
94 89
             return true;
95 90
         }
96 91
 
92
+        Phone phone = fromCache(tel);
93
+        if (null == phone) {
94
+            return false;
95
+        }
96
+
97 97
         if (null == captcha || !captcha.equals(phone.getCaptcha())) {
98 98
             return false;
99 99
         }
@@ -101,7 +101,7 @@ public class Captcha {
101 101
         // 过期则清除缓存
102 102
         boolean res = checkExpire(phone);
103 103
         if (res) {
104
-            clearCache(phone);
104
+            clearCache(tel);
105 105
         }
106 106
 
107 107
         return !res;
@@ -137,7 +137,7 @@ public class Captcha {
137 137
     public void clearUnused() {
138 138
         for (Phone phone: allPhones.values()) {
139 139
             if (checkExpire(phone)) {
140
-                clearCache(phone);
140
+                clearCache(phone.getNumber());
141 141
             }
142 142
         }
143 143
     }
@@ -148,7 +148,7 @@ public class Captcha {
148 148
     private void toCache(Phone phone) {
149 149
         allPhones.put(phone.getNumber(), phone);
150 150
     }
151
-    private void clearCache(Phone phone) { allPhones.remove(phone); }
151
+    private void clearCache(String key) { allPhones.remove(key); }
152 152
 
153 153
     private LocalDateTime expireTime() {
154 154
         return LocalDateTime.now().plusSeconds(expireSec);

+ 12
- 6
src/main/java/com/huiju/estateagents/controller/CommonController.java Bestand weergeven

@@ -4,21 +4,18 @@ package com.huiju.estateagents.controller;
4 4
 import com.alibaba.fastjson.JSONObject;
5 5
 import com.huiju.estateagents.base.BaseController;
6 6
 import com.huiju.estateagents.base.ResponseBean;
7
-import com.huiju.estateagents.common.AliOSSUtils;
8
-import com.huiju.estateagents.common.CommConstant;
9
-import com.huiju.estateagents.common.SMSUtils;
10
-import com.huiju.estateagents.common.StringUtils;
7
+import com.huiju.estateagents.common.*;
11 8
 import com.huiju.estateagents.common.smsService.Captcha;
12 9
 import com.huiju.estateagents.service.IMiniAppService;
13 10
 import com.huiju.estateagents.service.ITdMiniappTemplateTypeService;
14 11
 import io.swagger.annotations.Api;
15 12
 import io.swagger.annotations.ApiOperation;
16
-import org.apache.ibatis.annotations.Mapper;
17 13
 import org.springframework.beans.factory.annotation.Autowired;
18 14
 import org.springframework.web.bind.annotation.*;
19 15
 import org.springframework.web.multipart.MultipartFile;
20 16
 
21 17
 import javax.servlet.http.HttpServletRequest;
18
+import javax.servlet.http.HttpServletResponse;
22 19
 import java.io.IOException;
23 20
 import java.util.ArrayList;
24 21
 import java.util.HashMap;
@@ -39,7 +36,10 @@ public class CommonController extends BaseController {
39 36
     IMiniAppService iMiniAppService;
40 37
 
41 38
     @Autowired
42
-    Captcha captchaServ;
39
+    Captcha captchaServ;    // 短信验证码
40
+
41
+    @Autowired
42
+    CaptchaUtils captchaUtils;  // 图片验证码
43 43
 
44 44
     /**
45 45
      * 图片
@@ -57,6 +57,12 @@ public class CommonController extends BaseController {
57 57
         }
58 58
     }
59 59
 
60
+    @ApiOperation("获取图片验证码")
61
+    @GetMapping("/admin/image-captcha")
62
+    public ResponseBean getCaptcha(HttpServletRequest request, HttpServletResponse response) {
63
+        return ResponseBean.success(captchaUtils.generate());
64
+    }
65
+
60 66
     @PostMapping("/admin/qrcode")
61 67
     public ResponseBean createQrCode(@RequestBody String jsonStr, HttpServletRequest request) {
62 68
         Integer orgId = getOrgId(request);

+ 45
- 11
src/main/java/com/huiju/estateagents/controller/TaPersonController.java Bestand weergeven

@@ -9,14 +9,13 @@ import com.huiju.estateagents.base.BaseController;
9 9
 import com.huiju.estateagents.base.ResponseBean;
10 10
 import com.huiju.estateagents.center.taUser.entity.TaUser;
11 11
 import com.huiju.estateagents.center.taUser.service.ITaUserService;
12
-import com.huiju.estateagents.common.CommConstant;
13
-import com.huiju.estateagents.common.SMSUtils;
14
-import com.huiju.estateagents.common.StringUtils;
12
+import com.huiju.estateagents.common.*;
15 13
 import com.huiju.estateagents.common.smsService.Captcha;
16 14
 import com.huiju.estateagents.entity.TaChannel;
17 15
 import com.huiju.estateagents.entity.TaChannelPerson;
18 16
 import com.huiju.estateagents.entity.TaPerson;
19 17
 import com.huiju.estateagents.entity.TaPersonBuilding;
18
+import com.huiju.estateagents.excel.TaPersonExport;
20 19
 import com.huiju.estateagents.service.*;
21 20
 import com.huiju.estateagents.third.entity.TaThirdPartyMiniappConfig;
22 21
 import com.huiju.estateagents.third.service.ITaThirdPartyMiniappConfigService;
@@ -28,6 +27,8 @@ import org.springframework.web.bind.annotation.*;
28 27
 import org.springframework.web.client.RestTemplate;
29 28
 
30 29
 import javax.servlet.http.HttpServletRequest;
30
+import javax.servlet.http.HttpServletResponse;
31
+import java.io.IOException;
31 32
 import java.time.LocalDateTime;
32 33
 import java.util.ArrayList;
33 34
 import java.util.HashMap;
@@ -816,19 +817,52 @@ public class TaPersonController extends BaseController {
816 817
                                       @RequestParam(defaultValue = "10") int pageSize,
817 818
                                       @RequestParam(value = "name", required = false) String name,
818 819
                                       @RequestParam(value = "phone", required = false) String phone,
820
+                                      @RequestParam(value = "recommended", required = false) String recommended,
819 821
                                       HttpServletRequest request) {
820 822
         Integer orgId = getOrgId(request);
821 823
 
822
-        QueryWrapper<TaPerson> queryWrapper = new QueryWrapper<>();
823
-        queryWrapper.eq("org_id", orgId);
824
-        queryWrapper.like(!StringUtils.isEmpty(name),"nickname", "%"+name+"%");
825
-        queryWrapper.eq(!StringUtils.isEmpty(phone),"phone", phone);
826
-        queryWrapper.isNotNull("avatarurl");
827
-        queryWrapper.eq("status", CommConstant.STATUS_NORMAL);
828
-
829 824
         IPage<TaPerson> page = new Page<>(pageNumber, pageSize);
825
+        IPage<TaPerson> result = taPersonService.getPersonBy(page, orgId, name, phone, recommended);
826
+
827
+        return ResponseBean.success(result);
828
+    }
830 829
 
831
-        return ResponseBean.success(taPersonService.page(page, queryWrapper));
830
+    @GetMapping("/admin/person-list/export")
831
+    public ResponseBean getPersonListExport(@RequestParam(value = "name", required = false) String name,
832
+                                            @RequestParam(value = "phone", required = false) String phone,
833
+                                            @RequestParam(value = "recommended", required = false) String recommended,
834
+                                            HttpServletRequest request,
835
+                                            HttpServletResponse response) {
836
+        Integer orgId = getOrgId(request);
837
+
838
+        IPage<TaPerson> page = new Page<>(1, 9999);
839
+        IPage<TaPerson> result = taPersonService.getPersonBy(page, orgId, name, phone, recommended);
840
+
841
+        List<TaPerson> personList = result.getRecords();
842
+        List<TaPersonExport> data = new ArrayList<>();
843
+        if (null != personList) {
844
+//            String senRegx = "(\\\\d{3})\\\\d{4}(\\\\d{4})";
845
+//            String senRepl = "$1****$2";
846
+            for (TaPerson person: personList) {
847
+                TaPersonExport row = new TaPersonExport();
848
+                row.setNickname(person.getNickname());
849
+//                row.setPhone(StringUtils.simpleSensitive(person.getPhone(), senRegx, senRepl));
850
+                row.setPhone(person.getPhone());
851
+                row.setSharePersonName(person.getSharePersonName());
852
+                row.setPoints(person.getPoints());
853
+                row.setCreateDate(DateUtils.format(person.getCreateDate(), "yyyy-MM-dd HH:mm"));
854
+                data.add(row);
855
+            }
856
+        }
857
+
858
+        try {
859
+            ExcelUtils.flush(response, TaPersonExport.class, data, "会员列表");
860
+        } catch (IOException e) {
861
+            e.printStackTrace();
862
+            return ResponseBean.error(e.getMessage(), ResponseBean.ERROR_UNAVAILABLE);
863
+        }
864
+
865
+        return null;
832 866
     }
833 867
 
834 868
 }

+ 75
- 1
src/main/java/com/huiju/estateagents/controller/TaPointsExchangeController.java Bestand weergeven

@@ -6,8 +6,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6 6
 import com.huiju.estateagents.base.BaseController;
7 7
 import com.huiju.estateagents.base.ResponseBean;
8 8
 import com.huiju.estateagents.common.CommConstant;
9
+import com.huiju.estateagents.common.DateUtils;
10
+import com.huiju.estateagents.common.ExcelUtils;
9 11
 import com.huiju.estateagents.entity.TaGoods;
10 12
 import com.huiju.estateagents.entity.TaPointsExchange;
13
+import com.huiju.estateagents.excel.TaPointsExchangeExport;
11 14
 import com.huiju.estateagents.service.ITaGoodsService;
12 15
 import com.huiju.estateagents.service.ITaPointsExchangeService;
13 16
 import io.swagger.annotations.Api;
@@ -26,7 +29,9 @@ import org.springframework.web.bind.annotation.ResponseBody;
26 29
 import org.springframework.web.bind.annotation.RestController;
27 30
 
28 31
 import javax.servlet.http.HttpServletRequest;
32
+import javax.servlet.http.HttpServletResponse;
29 33
 import java.time.LocalDateTime;
34
+import java.util.ArrayList;
30 35
 import java.util.List;
31 36
 
32 37
 /**
@@ -94,6 +99,69 @@ public class TaPointsExchangeController extends BaseController {
94 99
         }
95 100
         return responseBean;
96 101
     }
102
+
103
+
104
+    /**
105
+     * 分页查询列表
106
+     * @param pageNum
107
+     * @param pageSize
108
+     * @return
109
+     */
110
+    @RequestMapping(value="/admin/taPointsExchange/export",method= RequestMethod.GET)
111
+    public ResponseBean taPointsExchangeExport(@RequestParam(value ="personName",required = false) String personName,
112
+                                               @RequestParam(value ="phone",required = false) String phone,
113
+                                               @RequestParam(value ="personType",required = false) String personType,
114
+                                               @RequestParam(value ="targetName",required = false) String targetName,
115
+                                               @RequestParam(value ="startCreateDate",required = false) String startCreateDate,
116
+                                               @RequestParam(value ="endCreateDate",required = false) String endCreateDate,
117
+                                               @RequestParam(value ="startVerifyDate",required = false) String startVerifyDate,
118
+                                               @RequestParam(value ="endVerifyDate",required = false) String endVerifyDate,
119
+                                               @RequestParam(value ="status",required = false) Integer status,
120
+                                               @RequestParam(value ="tel",required = false) String tel,
121
+                                               HttpServletRequest request,
122
+                                               HttpServletResponse response){
123
+        ResponseBean responseBean = new ResponseBean();
124
+        try {
125
+            //使用分页插件
126
+            TaPointsExchange taPointsExchange = new TaPointsExchange();
127
+            taPointsExchange.setPersonName(personName);
128
+            taPointsExchange.setPhone(phone);
129
+            taPointsExchange.setPersonType(personType);
130
+            taPointsExchange.setTargetName(targetName);
131
+            taPointsExchange.setStartCreateDate(startCreateDate);
132
+            taPointsExchange.setEndCreateDate(endCreateDate);
133
+            taPointsExchange.setStartVerifyDate(startVerifyDate);
134
+            taPointsExchange.setEndVerifyDate(endVerifyDate);
135
+            taPointsExchange.setStatus(status);
136
+            taPointsExchange.setTel(tel);
137
+            taPointsExchange.setOrgId(getOrgId(request));
138
+
139
+            responseBean = iTaPointsExchangeService.selectList(1, 9999,taPointsExchange,getTaPersonBuildingListByUserId(request));
140
+            List<TaPointsExchange> records = ((Page<TaPointsExchange>) responseBean.getData()).getRecords();
141
+
142
+            List<TaPointsExchangeExport> list = new ArrayList<>();
143
+            if (null != records) {
144
+                for (TaPointsExchange item: records) {
145
+                    TaPointsExchangeExport row = new TaPointsExchangeExport();
146
+                    row.setPersonName(item.getPersonName());
147
+                    row.setPhone(item.getPhone());
148
+                    row.setPersonType("prop".equals(item.getPersonType()) ? "物业相关" : ("life-consultant".equals(item.getPersonType()) ? "生活管家" : null));
149
+                    row.setTargetName(item.getTargetName());
150
+                    row.setStatus(1 == item.getStatus() ? "已领取" : "未领取");
151
+                    row.setCreateDate(DateUtils.format(item.getCreateDate(), "yyyy-MM-dd HH:mm"));
152
+                    row.setVerifyDate(DateUtils.format(item.getVerifyDate(), "yyyy-MM-dd HH:mm"));
153
+                    list.add(row);
154
+                }
155
+            }
156
+
157
+            ExcelUtils.flush(response, TaPointsExchangeExport.class, list, "积分兑换记录" + DateUtils.today());
158
+        }catch (Exception e){
159
+            e.printStackTrace();
160
+            logger.error("taPointsExchangeList -=- {}",e.toString());
161
+            responseBean.addError(e.getMessage());
162
+        }
163
+        return responseBean;
164
+    }
97 165
     
98 166
     /**
99 167
      * 修改对象
@@ -231,7 +299,13 @@ public class TaPointsExchangeController extends BaseController {
231 299
     public ResponseBean wxPointsExchangeList(@RequestParam(value ="pageNumber",defaultValue = "1") Integer pageNumber,
232 300
                                              @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
233 301
                                              @RequestParam(value = "buildingId", required = false) String buildingId,
234
-                                             @RequestParam(value = "personId", required = false) String personId){
302
+                                             @RequestParam(value = "personId", required = false) String personId,
303
+                                             HttpServletRequest request){
304
+
305
+        if (null == personId) {
306
+            personId = getPersonId(request);
307
+        }
308
+
235 309
         ResponseBean responseBean = new ResponseBean();
236 310
         try {
237 311
             //使用分页插件

+ 6
- 0
src/main/java/com/huiju/estateagents/controller/TaPointsRecordsController.java Bestand weergeven

@@ -144,6 +144,12 @@ public class TaPointsRecordsController extends BaseController {
144 144
                     case CommConstant.POINTS_CHANGE_DOCUMENT_VERIFY:
145 145
                         result.getRecords().get(i).setRecordName("资料审核");
146 146
                         break;
147
+                    case CommConstant.POINTS_PAYMENT:
148
+                        result.getRecords().get(i).setRecordName("物业缴费");
149
+                        break;
150
+                    case CommConstant.POINTS_USER_VERIFY:
151
+                        result.getRecords().get(i).setRecordName("业主认证");
152
+                        break;
147 153
                 }
148 154
             }
149 155
             responseBean.addSuccess(result);

+ 3
- 1
src/main/java/com/huiju/estateagents/controller/TpNewsController.java Bestand weergeven

@@ -49,6 +49,8 @@ public class TpNewsController extends BaseController {
49 49
                                  @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
50 50
                                  @RequestParam(value = "newsName", required = false) String newsName,
51 51
                                  @RequestParam(value = "newsTypeId", required = false) String newsTypeId,
52
+                                 @RequestParam(value ="startCreateDate",required = false) String startCreateDate,
53
+                                 @RequestParam(value ="endCreateDate",required = false) String endCreateDate,
52 54
                                  @PathVariable String client,
53 55
                                  HttpServletRequest request) {
54 56
         Integer orgId = getOrgId(request);
@@ -59,7 +61,7 @@ public class TpNewsController extends BaseController {
59 61
         }
60 62
 
61 63
         IPage<TpNews> page = new Page<>(pageNum, pageSize);
62
-        IPage<TpNews> result = iTpNewsService.getListBy(page, orgId, newsName, status,newsTypeId);
64
+        IPage<TpNews> result = iTpNewsService.getListBy(page, orgId, newsName, status,newsTypeId,startCreateDate,endCreateDate);
63 65
 
64 66
         return ResponseBean.success(result);
65 67
     }

+ 1
- 1
src/main/java/com/huiju/estateagents/entity/TaPointsExchange.java Bestand weergeven

@@ -108,7 +108,7 @@ public class TaPointsExchange implements Serializable {
108 108
     
109 109
     @TableField(exist = false)
110 110
     private String personType;
111
-    
111
+
112 112
     @TableField(exist = false)
113 113
     private String startCreateDate;
114 114
     

+ 29
- 0
src/main/java/com/huiju/estateagents/excel/TaPersonExport.java Bestand weergeven

@@ -0,0 +1,29 @@
1
+package com.huiju.estateagents.excel;
2
+
3
+import com.alibaba.excel.annotation.ExcelProperty;
4
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
5
+import lombok.Data;
6
+
7
+@Data
8
+public class TaPersonExport {
9
+
10
+    @ColumnWidth(20)
11
+    @ExcelProperty(value = "姓名", index = 0)
12
+    private String nickname;
13
+
14
+    @ColumnWidth(15)
15
+    @ExcelProperty(value = "电话", index = 1)
16
+    private String phone;
17
+
18
+    @ColumnWidth(20)
19
+    @ExcelProperty(value = "推荐人", index = 2)
20
+    private String sharePersonName;
21
+
22
+    @ColumnWidth(10)
23
+    @ExcelProperty(value = "总积分", index = 3)
24
+    private Integer points;
25
+
26
+    @ColumnWidth(25)
27
+    @ExcelProperty(value = "创建时间", index = 4)
28
+    private String createDate;
29
+}

+ 57
- 0
src/main/java/com/huiju/estateagents/excel/TaPointsExchangeExport.java Bestand weergeven

@@ -0,0 +1,57 @@
1
+package com.huiju.estateagents.excel;
2
+
3
+import com.alibaba.excel.annotation.ExcelProperty;
4
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
5
+import lombok.Data;
6
+
7
+@Data
8
+public class TaPointsExchangeExport {
9
+
10
+    /**
11
+     * 兑换人姓名
12
+     */
13
+    @ColumnWidth(15)
14
+    @ExcelProperty(value = "用户姓名", index = 0)
15
+    private String personName;
16
+
17
+    /**
18
+     * 兑换人手机
19
+     */
20
+    @ColumnWidth(20)
21
+    @ExcelProperty(value = "手机号", index = 2)
22
+    private String phone;
23
+
24
+    /**
25
+     * 物品名称
26
+     */
27
+    @ColumnWidth(30)
28
+    @ExcelProperty(value = "商品名称", index = 3)
29
+    private String targetName;
30
+
31
+
32
+    /**
33
+     * 状态
34
+     */
35
+    @ColumnWidth(15)
36
+    @ExcelProperty(value = "状态", index = 6)
37
+    private String status;
38
+
39
+    /**
40
+     * 创建时间
41
+     */
42
+    @ColumnWidth(30)
43
+    @ExcelProperty(value = "兑换时间", index = 4)
44
+    private String createDate;
45
+
46
+    /**
47
+     * 领取时间
48
+     */
49
+    @ColumnWidth(30)
50
+    @ExcelProperty(value = "领取时间", index = 5)
51
+    private String verifyDate;
52
+
53
+    @ColumnWidth(15)
54
+    @ExcelProperty(value = "用户类型", index = 1)
55
+    private String personType;
56
+
57
+}

+ 41
- 0
src/main/java/com/huiju/estateagents/excel/TpBuildingOwnerInfoExport.java Bestand weergeven

@@ -0,0 +1,41 @@
1
+package com.huiju.estateagents.excel;
2
+
3
+import com.alibaba.excel.annotation.ExcelProperty;
4
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
5
+import lombok.Data;
6
+
7
+@Data
8
+public class TpBuildingOwnerInfoExport {
9
+
10
+    @ColumnWidth(15)
11
+    @ExcelProperty(value = "姓名", index = 0)
12
+    private String ownerName;
13
+
14
+    @ColumnWidth(15)
15
+    @ExcelProperty(value = "手机号", index = 1)
16
+    private String ownerTel;
17
+
18
+    @ColumnWidth(25)
19
+    @ExcelProperty(value = "身份证", index = 2)
20
+    private String idCard;
21
+
22
+    @ColumnWidth(10)
23
+    @ExcelProperty(value = "性别", index = 3)
24
+    private String sex;
25
+
26
+    @ColumnWidth(60)
27
+    @ExcelProperty(value = "房间号", index = 4)
28
+    private String roomNoName;
29
+
30
+    @ColumnWidth(10)
31
+    @ExcelProperty(value = "身份", index = 5)
32
+    private String roleName;
33
+
34
+    @ColumnWidth(15)
35
+    @ExcelProperty(value = "审核状态", index = 6)
36
+    private String verifyStatus;
37
+
38
+    @ColumnWidth(25)
39
+    @ExcelProperty(value = "操作时间", index = 7)
40
+    private String createDate;
41
+}

+ 1
- 0
src/main/java/com/huiju/estateagents/interceptor/AccessInterceptor.java Bestand weergeven

@@ -67,6 +67,7 @@ public class AccessInterceptor implements HandlerInterceptor {
67 67
 		    "/api/center/signin",
68 68
             "/api/channel/signin",
69 69
 		    "/api/admin/taUser/signin",
70
+            "/api/admin/image-captcha",
70 71
             "/swagger-resources/configuration/ui",
71 72
             "/swagger-resources",
72 73
             "/v2/api-docs",

+ 3
- 0
src/main/java/com/huiju/estateagents/mapper/TaActivityDynamicEnlistMapper.java Bestand weergeven

@@ -8,6 +8,7 @@ import org.apache.ibatis.annotations.Mapper;
8 8
 import org.apache.ibatis.annotations.Param;
9 9
 
10 10
 import java.util.List;
11
+import java.util.Map;
11 12
 
12 13
 /**
13 14
  * <p>
@@ -46,4 +47,6 @@ public interface TaActivityDynamicEnlistMapper extends BaseMapper<TaActivityDyna
46 47
      * @return
47 48
      */
48 49
     List<HelpInitiateRecordSucceed> getTaActivityDynamicEnlistExport(@Param("pageCode") int i, @Param("pageSize") Integer pageSize, @Param("dynamicId") String dynamicId, @Param("isCheckin") String isCheckin, @Param("name") String name, @Param("phone") String phone,@Param("orgId") Integer orgId);
50
+
51
+    Map<String, Integer> getLastActEnlistNum(Integer orgId);
49 52
 }

+ 3
- 0
src/main/java/com/huiju/estateagents/mapper/TaPersonMapper.java Bestand weergeven

@@ -258,4 +258,7 @@ public interface TaPersonMapper extends BaseMapper<TaPerson> {
258 258
     List<Map<String, Object>> selectCityPerson(@Param("orgId") Integer orgId);
259 259
 
260 260
     Integer cancelConsulatant(@Param("personId") String personId);
261
+
262
+    IPage<TaPerson> getPersonBy(IPage<TaPerson> page, @Param("orgId") Integer orgId, @Param("name") String name,  @Param("phone") String phone, @Param("recommended") String recommended);
263
+
261 264
 }

+ 4
- 0
src/main/java/com/huiju/estateagents/mapper/TaPointsExchangeMapper.java Bestand weergeven

@@ -6,6 +6,7 @@ import com.huiju.estateagents.entity.TaPersonBuilding;
6 6
 import com.huiju.estateagents.entity.TaPointsExchange;
7 7
 import org.apache.ibatis.annotations.Mapper;
8 8
 import org.apache.ibatis.annotations.Param;
9
+import org.apache.ibatis.annotations.Select;
9 10
 
10 11
 import java.util.List;
11 12
 
@@ -21,4 +22,7 @@ import java.util.List;
21 22
 public interface TaPointsExchangeMapper extends BaseMapper<TaPointsExchange> {
22 23
 	
23 24
 	List<TaPointsExchange> selectListByParams(Page page,@Param("taPointsExchange") TaPointsExchange taPointsExchange, @Param("personBuildingList") List<TaPersonBuilding> personBuildingList);
25
+
26
+	@Select("select count(*) from ta_points_exchange t where t.org_id = #{orgId}")
27
+    int getTotalNum(Integer orgId);
24 28
 }

+ 5
- 1
src/main/java/com/huiju/estateagents/property/controller/AnnouncementTelController.java Bestand weergeven

@@ -48,7 +48,9 @@ public class AnnouncementTelController extends BaseController {
48 48
 
49 49
 	})
50 50
 	@RequestMapping(value = "/admin/announcement-tels",method = RequestMethod.GET)
51
-	public ResponseBean getList(@RequestParam(value = "name", required = false) String name,
51
+	public ResponseBean getList(@RequestParam(value = "type") String type,
52
+								@RequestParam(value = "communityId", required = false) Integer communityId,
53
+								@RequestParam(value = "name", required = false) String name,
52 54
                                 @RequestParam(value = "tel", required = false) String tel,
53 55
                                 @RequestParam(value = "remark", required = false) String remark,
54 56
                                 @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
@@ -59,7 +61,9 @@ public class AnnouncementTelController extends BaseController {
59 61
 		announcementTel.setOrgId(userElement.getOrgId());
60 62
 		announcementTel.setName(name);
61 63
 		announcementTel.setTel(tel);
64
+		announcementTel.setType(type);
62 65
 		announcementTel.setRemark(remark);
66
+		announcementTel.setCommunityId(communityId);
63 67
 		responseBean = announcementTelService.getTelList(announcementTel,pageNum,pageSize);
64 68
 		return responseBean;
65 69
 	}

+ 26
- 20
src/main/java/com/huiju/estateagents/property/controller/BillController.java Bestand weergeven

@@ -4,7 +4,8 @@ package com.huiju.estateagents.property.controller;
4 4
 import com.huiju.estateagents.base.BaseController;
5 5
 import com.huiju.estateagents.base.ResponseBean;
6 6
 import com.huiju.estateagents.center.taUser.entity.TaUser;
7
-import com.huiju.estateagents.property.common.UserElement;
7
+import com.huiju.estateagents.common.DateUtils;
8
+import com.huiju.estateagents.common.StringUtils;
8 9
 import com.huiju.estateagents.property.model.Bill;
9 10
 import com.huiju.estateagents.property.service.IBillService;
10 11
 import io.swagger.annotations.Api;
@@ -20,9 +21,7 @@ import javax.servlet.http.HttpServletRequest;
20 21
 import javax.servlet.http.HttpServletResponse;
21 22
 import javax.servlet.http.HttpSession;
22 23
 import java.io.OutputStream;
23
-import java.text.ParseException;
24
-import java.text.SimpleDateFormat;
25
-import java.util.Date;
24
+import java.time.LocalDateTime;
26 25
 import java.util.List;
27 26
 import java.util.Map;
28 27
 
@@ -52,17 +51,23 @@ public class BillController extends BaseController {
52 51
             @ApiImplicitParam(paramType = "query", dataType = "integer", name = "pageSize", value = "分页每页长度")
53 52
     })
54 53
     @RequestMapping(value = "/admin/bills",method = RequestMethod.GET)
55
-    public ResponseBean getList(@RequestParam(value = "billId", required = false) Integer billId,
54
+    public ResponseBean getList(@RequestParam("communityId") Integer communityId,
55
+                                @RequestParam(value = "billId", required = false) Integer billId,
56 56
                                 @RequestParam(value = "billName", required = false) String billName,
57
-                                @RequestParam(value = "billExplain", required = false) String billExplain,
57
+                                @RequestParam(value = "startDate", required = false) String startDate,
58
+                                @RequestParam(value = "endDate", required = false) String endDate,
59
+                                @RequestParam(value = "isTicket", required = false) Boolean isTicket,
58 60
                                 @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
59 61
                                 @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize, HttpServletRequest request){
60 62
         ResponseBean responseBean = new ResponseBean();
61 63
         TaUser userElement = getTaUser(request);
62 64
         Bill bill = new Bill();
63 65
         bill.setId(billId);
66
+        bill.setCommunityId(communityId);
64 67
         bill.setBillName(billName);
65
-        bill.setBillExplain(billExplain);
68
+        bill.setIsTicket(isTicket);
69
+        bill.setStartDate(!StringUtils.isEmpty(startDate) ? DateUtils.parse(startDate + " 00:00:00", "yyyy-MM-dd HH:mm:ss") : null);
70
+        bill.setEndDate(!StringUtils.isEmpty(startDate) ? DateUtils.parse(endDate + " 23:59:59", "yyyy-MM-dd HH:mm:ss") : null);
66 71
         bill.setOrgId(userElement.getOrgId());
67 72
         responseBean = iBillService.getBillList(bill,pageNum,pageSize);
68 73
         return responseBean;
@@ -91,23 +96,21 @@ public class BillController extends BaseController {
91 96
     // @ApiOperation(value = "上传缴费项接口, 保存/修改", notes = "上传缴费项接口, 保存/修改")
92 97
     @PostMapping(value = "/admin/bill/uploadExcel/add", consumes = "multipart/*", headers = "content-type=multipart/form-data")
93 98
     public ResponseBean addUploadExcel(HttpServletRequest request,
99
+                                       @RequestParam("communityId") Integer communityId,
94 100
                                        @RequestParam(value = "billId", required = false) Integer billId,
95 101
                                        @RequestParam(value = "file", required = false) MultipartFile file,
96
-                                       @RequestParam("billExplain") String billExplain,
102
+//                                       @RequestParam("billExplain") String billExplain,
97 103
                                        @RequestParam("billName") String billName,
98
-                                       @RequestParam("endDate") Date endDate,
104
+                                       @RequestParam("startDate") String startDate,
105
+                                       @RequestParam("endDate") String endDate,
99 106
                                        @RequestParam("billStatus") String billStatus) {
100 107
         ResponseBean responseBean = new ResponseBean();
101 108
         TaUser userElement = getTaUser(request);
102
-        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
103
-//        Date date = null;
104
-//        try {
105
-//            String d = simpleDateFormat.format(new Long(endDate));
106
-//            date = simpleDateFormat.parse(d);
107
-//        } catch (ParseException e) {
108
-//            e.printStackTrace();
109
-//        }
110
-        responseBean = iBillService.getExcelData(billId, file, billExplain, billName, endDate, billStatus, userElement);
109
+
110
+        LocalDateTime stDate = DateUtils.parse(startDate + " 00:00:00", "yyyy-MM-dd HH:mm:ss");
111
+        LocalDateTime edDate = DateUtils.parse(endDate + " 23:59:59", "yyyy-MM-dd HH:mm:ss");
112
+
113
+        responseBean = iBillService.saveExcelData(billId, file, communityId, billName, stDate, edDate, billStatus, userElement);
111 114
         return responseBean;
112 115
     }
113 116
 
@@ -149,9 +152,12 @@ public class BillController extends BaseController {
149 152
 
150 153
     })
151 154
     @RequestMapping(value = "/admin/bill/downloadExcel", method = RequestMethod.GET)
152
-    public void exportExcel(HttpServletResponse response, HttpServletRequest request) {
155
+    public void exportExcel(@RequestParam(value = "communityId") Integer communityId,
156
+                            @RequestParam(value = "phaseId",required = false) String phaseId,
157
+                            @RequestParam(value = "buildingId",required = false) String buildingId,
158
+                            HttpServletResponse response, HttpServletRequest request) {
153 159
         TaUser userElement = getTaUser(request);
154
-        HSSFWorkbook workbook = (HSSFWorkbook) iBillService.downloadExcel(userElement).getData();
160
+        HSSFWorkbook workbook = (HSSFWorkbook) iBillService.downloadExcel(userElement,communityId, phaseId,buildingId).getData();
155 161
 //        this.setResponseHeader(response, "缴费单模板.xls");
156 162
         response.setContentType("application/octet-stream");
157 163
         response.setCharacterEncoding("utf-8");

+ 6
- 3
src/main/java/com/huiju/estateagents/property/controller/BillInvoiceController.java Bestand weergeven

@@ -6,6 +6,7 @@ import com.huiju.estateagents.base.BaseController;
6 6
 import com.huiju.estateagents.base.ResponseBean;
7 7
 import com.huiju.estateagents.center.taUser.entity.TaUser;
8 8
 import com.huiju.estateagents.property.common.UserElement;
9
+import com.huiju.estateagents.property.model.Bill;
9 10
 import com.huiju.estateagents.property.model.BillInvoice;
10 11
 import com.huiju.estateagents.property.service.IBillInvoiceService;
11 12
 import com.huiju.estateagents.property.service.IBillService;
@@ -64,11 +65,11 @@ public class BillInvoiceController extends BaseController {
64 65
 
65 66
     })
66 67
     @RequestMapping(value = "/admin/bill/invoice/updateBill", method = RequestMethod.PUT)
67
-    public ResponseBean updateBill(HttpServletRequest request, @RequestBody String parameter) {
68
+    public ResponseBean updateBill(HttpServletRequest request, @RequestBody Bill bill) {
68 69
         ResponseBean responseBean = new ResponseBean();
69 70
 
70 71
         TaUser userElement = getTaUser(request);
71
-        responseBean = iBillService.updateBillNameAndBillExplainAndEndDate(userElement, parameter);
72
+        responseBean = iBillService.updateBillNameAndBillExplainAndEndDate(userElement, bill);
72 73
         return responseBean;
73 74
     }
74 75
 
@@ -204,9 +205,11 @@ public class BillInvoiceController extends BaseController {
204 205
         ResponseBean responseBean = new ResponseBean();
205 206
         TaUser userElement = getTaUser(request);
206 207
         HSSFWorkbook workbook = (HSSFWorkbook) iBillInvoiceService.exportExcel(userElement, billId).getData();
207
-        this.setResponseHeader(response, "缴费单.xls");
208 208
         //响应到客户端
209 209
         try {
210
+            response.setContentType("application/octet-stream");
211
+            response.setCharacterEncoding("utf-8");
212
+            response.setHeader("Content-disposition", "attachment;filename=缴费单.xlsx");
210 213
              OutputStream os = response.getOutputStream();
211 214
              workbook.write(os);
212 215
              os.flush();

+ 82
- 6
src/main/java/com/huiju/estateagents/property/controller/BuildingOwnerInfoController.java Bestand weergeven

@@ -2,12 +2,18 @@ package com.huiju.estateagents.property.controller;
2 2
 
3 3
 
4 4
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5 6
 import com.huiju.estateagents.base.BaseController;
6 7
 import com.huiju.estateagents.base.ResponseBean;
7 8
 import com.huiju.estateagents.center.taUser.entity.TaUser;
9
+import com.huiju.estateagents.common.DateUtils;
10
+import com.huiju.estateagents.common.ExcelUtils;
11
+import com.huiju.estateagents.common.StringUtils;
12
+import com.huiju.estateagents.excel.TpBuildingOwnerInfoExport;
8 13
 import com.huiju.estateagents.property.common.UserElement;
9 14
 import com.huiju.estateagents.property.model.TaFace;
10 15
 import com.huiju.estateagents.property.model.TaUserVerify;
16
+import com.huiju.estateagents.property.model.TpBuildingOwnerInfo;
11 17
 import com.huiju.estateagents.property.service.IBuildingOwnerInfoService;
12 18
 import com.huiju.estateagents.property.service.ITaFaceService;
13 19
 import com.huiju.estateagents.property.service.ITaUserVerifyService;
@@ -24,7 +30,9 @@ import org.springframework.web.multipart.MultipartFile;
24 30
 import javax.servlet.http.HttpServletRequest;
25 31
 import javax.servlet.http.HttpServletResponse;
26 32
 import javax.servlet.http.HttpSession;
33
+import java.io.IOException;
27 34
 import java.io.OutputStream;
35
+import java.util.ArrayList;
28 36
 import java.util.List;
29 37
 import java.util.Map;
30 38
 
@@ -66,6 +74,59 @@ public class BuildingOwnerInfoController extends BaseController {
66 74
         return responseBean;
67 75
     }
68 76
 
77
+    /**
78
+     * 业主导出
79
+     * @param parameter
80
+     * @param request
81
+     * @return
82
+     */
83
+    @RequestMapping(value = "/admin/buildingInfo/list/export", method = RequestMethod.POST)
84
+    public ResponseBean getListExport(@RequestBody String parameter,
85
+                                      HttpServletRequest request,
86
+                                      HttpServletResponse response){
87
+        ResponseBean responseBean = new ResponseBean();
88
+        TaUser userElement = getTaUser(request);
89
+        responseBean = iBuildingOwnerInfoService.listQuery(parameter, userElement);
90
+
91
+        List<TpBuildingOwnerInfo> records = (List<TpBuildingOwnerInfo>) ((Map<String, Object>) responseBean.getData()).get("list");
92
+
93
+        if (null != records) {
94
+            List<TpBuildingOwnerInfoExport> list = new ArrayList<>();
95
+            for (TpBuildingOwnerInfo item: records) {
96
+                TpBuildingOwnerInfoExport ownerInfo = new TpBuildingOwnerInfoExport();
97
+                ownerInfo.setOwnerName(item.getOwnerName());
98
+                ownerInfo.setIdCard(item.getIdCard());
99
+                ownerInfo.setOwnerTel(item.getOwnerTel());
100
+                ownerInfo.setSex(getSexFromIdCard(item.getIdCard()));
101
+                ownerInfo.setRoomNoName(item.getPhaseName()+item.getBuildingName()+item.getUnitName()+item.getLevelName()+item.getRoomNoName());
102
+                ownerInfo.setRoleName(item.getRoleName());
103
+                ownerInfo.setVerifyStatus("0".equals(item.getVerifyStatus()) ? "未审核" : ("1".equals(item.getVerifyStatus()) ? "审核通过" : ("1".equals(item.getVerifyStatus()) ? "审核不通过": "") ));
104
+                ownerInfo.setCreateDate(DateUtils.format(item.getCreateDate(), "yyyy-MM-dd HH:mm"));
105
+                list.add(ownerInfo);
106
+            }
107
+
108
+            try {
109
+                ExcelUtils.flush(response, TpBuildingOwnerInfoExport.class, list, "业主记录.xlsx");
110
+                return null;
111
+            } catch (IOException e) {
112
+                return ResponseBean.error("导出 Excel 失败 "+ e.getMessage(), ResponseBean.ERROR_UNAVAILABLE);
113
+            }
114
+        }
115
+
116
+        return responseBean;
117
+    }
118
+
119
+    private String getSexFromIdCard(String idCard) {
120
+        if (StringUtils.isEmpty(idCard) || idCard.length() != 18) {
121
+            return null;
122
+        }
123
+
124
+        String sign = idCard.split("")[16];
125
+
126
+        return Integer.parseInt(sign) % 2 == 1 ? "男" : "女";
127
+    }
128
+
129
+
69 130
     // @ApiOperation(value = "获取楼栋业主审核详情", notes = "获取楼栋业主审核详情")
70 131
     @ApiImplicitParams({
71 132
             @ApiImplicitParam(paramType = "query", dataTypeClass = Integer.class, name = "userVerifyId",value = "审核Id")
@@ -159,14 +220,25 @@ public class BuildingOwnerInfoController extends BaseController {
159 220
         return responseBean;
160 221
     }
161 222
 
223
+    private List<Integer> getCommunityIdsBy(String communityIds) {
224
+        List<Integer> communityIdList = new ArrayList<>();
225
+        String[] parts = communityIds.split(",");
226
+        for (String id : parts) {
227
+            communityIdList.add(Integer.parseInt(id));
228
+        }
229
+        return communityIdList;
230
+    }
231
+
162 232
     // @ApiOperation(value = "查询 期区", notes = "查询 期区")
163 233
     @ApiImplicitParams({
164 234
     })
165 235
     @RequestMapping(value = "/admin/buildingInfo/phase",method = RequestMethod.GET)
166
-    public ResponseBean getPhaseList(HttpServletRequest request){
236
+    public ResponseBean getPhaseList(@RequestParam Integer communityId,
237
+                                     HttpServletRequest request){
167 238
         ResponseBean responseBean = new ResponseBean();
239
+
168 240
         TaUser userElement = getTaUser(request);
169
-        responseBean = iBuildingOwnerInfoService.getPhaseList(userElement.getOrgId());
241
+        responseBean = iBuildingOwnerInfoService.getPhaseList(userElement.getOrgId(), communityId);
170 242
         return responseBean;
171 243
     }
172 244
     
@@ -228,11 +300,13 @@ public class BuildingOwnerInfoController extends BaseController {
228 300
  
229 301
     // @ApiOperation(value = "上传楼栋信息并入库", notes = "上传楼栋信息并入库")
230 302
     @PostMapping(value = "/admin/buildingInfo/submitExcel", consumes = "multipart/*", headers = "content-type=multipart/form-data")
231
-    public ResponseBean submitExcel(@RequestParam("file") MultipartFile file, HttpServletRequest request) {
303
+    public ResponseBean submitExcel(@RequestParam("file") MultipartFile file,
304
+                                    @RequestParam("communityId") Integer communityId,
305
+                                    HttpServletRequest request) {
232 306
         ResponseBean responseBean = new ResponseBean();
233 307
         TaUser userElement = getTaUser(request);
234 308
         try {
235
-            responseBean = iBuildingOwnerInfoService.submitExcelData(file,userElement);
309
+            responseBean = iBuildingOwnerInfoService.submitExcelData(file, communityId, userElement);
236 310
         }catch (Exception e){
237 311
             responseBean.addError("导入数据失败" + e.getMessage());
238 312
             e.printStackTrace();
@@ -303,9 +377,11 @@ public class BuildingOwnerInfoController extends BaseController {
303 377
 
304 378
     })
305 379
     @RequestMapping(value = "/admin/buildingInfo/downloadExcel", method = RequestMethod.GET)
306
-    public void exportExcel(HttpServletResponse response, HttpServletRequest request) {
380
+    public void exportExcel(@RequestParam Integer communityId,
381
+                            HttpServletResponse response,
382
+                            HttpServletRequest request) {
307 383
         TaUser userElement = getTaUser(request);
308
-        XSSFWorkbook workbook = (XSSFWorkbook) iBuildingOwnerInfoService.downloadExcel(userElement).getData();
384
+        XSSFWorkbook workbook = (XSSFWorkbook) iBuildingOwnerInfoService.downloadExcel(communityId, userElement).getData();
309 385
 //        this.setResponseHeader(response, "业主资料库.xlsx");
310 386
         response.setContentType("application/octet-stream");
311 387
         response.setCharacterEncoding("utf-8");

+ 20
- 2
src/main/java/com/huiju/estateagents/property/controller/BuildingTreeController.java Bestand weergeven

@@ -15,6 +15,7 @@ import org.springframework.web.multipart.MultipartFile;
15 15
 
16 16
 import javax.servlet.http.HttpServletRequest;
17 17
 import javax.servlet.http.HttpSession;
18
+import java.util.Map;
18 19
 
19 20
 /**
20 21
  * @author FXF
@@ -39,10 +40,16 @@ public class BuildingTreeController extends BaseController {
39 40
 	
40 41
 	// @ApiOperation(value = "上传楼栋信息并入库", notes = "上传楼栋信息并入库")
41 42
 	@PostMapping(value = "/admin/buildingInfo/tree/submitExcel", consumes = "multipart/*", headers = "content-type=multipart/form-data")
42
-	public ResponseBean submitExcel(@RequestParam("file") MultipartFile file, HttpServletRequest request) {
43
+	public ResponseBean submitExcel(@RequestParam("file") MultipartFile file,
44
+									@RequestParam("communityId") Integer communityId,
45
+									HttpServletRequest request) {
46
+		if (null == communityId || communityId < 1) {
47
+			return ResponseBean.error("请设置上传小区", ResponseBean.ERROR_MISSING_PARAMS);
48
+		}
49
+
43 50
 		ResponseBean responseBean = new ResponseBean();
44 51
 		TaUser userElement = getTaUser(request);
45
-		responseBean = buildingTreeService.submitExcelData(file,userElement);
52
+		responseBean = buildingTreeService.submitExcelData(file, communityId, userElement);
46 53
 		return responseBean;
47 54
 	}
48 55
 	
@@ -72,6 +79,17 @@ public class BuildingTreeController extends BaseController {
72 79
 		return responseBean;
73 80
 	}
74 81
 
82
+	// @ApiOperation(value = "添加当前节点", notes = "添加当前节点")
83
+	@ApiImplicitParams({
84
+			@ApiImplicitParam(paramType = "body", dataTypeClass = String.class, name = "parameter", value = "id:当前节点;" +
85
+					"name:节点名称;type:(phase:(期),building:(栋),unit:(单元),level:(楼层),roomNo:(房间号)), roomNonodeNumber:输入的节点")
86
+	})
87
+	@RequestMapping(value = "/admin/buildingInfo/updatenode",method = RequestMethod.POST)
88
+	public ResponseBean editNode(@RequestBody Map<String, Object> parameter, HttpServletRequest request){
89
+		TaUser userElement = getTaUser(request);
90
+		return buildingTreeService.editNode(parameter, userElement.getOrgId());
91
+	}
92
+
75 93
 	// @ApiOperation(value = "删除当前节点", notes = "删除当前节点")
76 94
 	@ApiImplicitParams({
77 95
 			@ApiImplicitParam(paramType = "body", dataTypeClass = String.class, name = "parameter", value = "id:当前节点;type:(end:(房间),roomNo:(楼层),level:(单元),unit:(楼栋),building:(期))")

+ 108
- 10
src/main/java/com/huiju/estateagents/property/controller/IndexCountController.java Bestand weergeven

@@ -3,19 +3,17 @@ package com.huiju.estateagents.property.controller;
3 3
 import com.huiju.estateagents.base.BaseController;
4 4
 import com.huiju.estateagents.base.ResponseBean;
5 5
 import com.huiju.estateagents.center.taUser.entity.TaUser;
6
-import com.huiju.estateagents.property.common.UserElement;
7
-import com.huiju.estateagents.property.service.IndexCountServiceI;
6
+import com.huiju.estateagents.property.service.*;
8 7
 import com.google.common.collect.Maps;
9
-import io.swagger.annotations.ApiImplicitParam;
8
+import com.huiju.estateagents.service.ITaBuildingDynamicService;
9
+import com.huiju.estateagents.service.ITaPointsExchangeService;
10 10
 import io.swagger.annotations.ApiImplicitParams;
11
-import io.swagger.annotations.ApiOperation;
12 11
 import org.springframework.beans.factory.annotation.Autowired;
13
-import org.springframework.web.bind.annotation.RequestMapping;
14
-import org.springframework.web.bind.annotation.RequestMethod;
15
-import org.springframework.web.bind.annotation.RestController;
12
+import org.springframework.web.bind.annotation.*;
16 13
 
17 14
 import javax.servlet.http.HttpServletRequest;
18
-import javax.servlet.http.HttpSession;
15
+import java.util.HashMap;
16
+import java.util.List;
19 17
 import java.util.Map;
20 18
 
21 19
 /**
@@ -23,12 +21,33 @@ import java.util.Map;
23 21
  * @date 2019-05-28
24 22
  */
25 23
 @RestController
26
-@RequestMapping("/")
24
+@RequestMapping("/api")
27 25
 public class IndexCountController extends BaseController {
28 26
 	
29 27
 	@Autowired
30 28
 	private IndexCountServiceI indexCountService;
31
-	
29
+
30
+	@Autowired
31
+	BuildingTreeServiceI buildingTreeService;
32
+
33
+	@Autowired
34
+	IBuildingOwnerInfoService iBuildingOwnerInfoService;
35
+
36
+	@Autowired
37
+	IBillService iBillService;
38
+
39
+	@Autowired
40
+	TpTicketService tpTicketService;
41
+
42
+	@Autowired
43
+	ITaUserVerifyService iTaUserVerifyService;
44
+
45
+	@Autowired
46
+	ITaPointsExchangeService iTaPointsExchangeService;
47
+
48
+	@Autowired
49
+	ITaBuildingDynamicService iTaBuildingDynamicService;
50
+
32 51
 	// @ApiOperation(value = "获取物业端首页所有统计数据", notes = "获取物业端首页所有统计数据")
33 52
 	@ApiImplicitParams({
34 53
 
@@ -47,4 +66,83 @@ public class IndexCountController extends BaseController {
47 66
 		responseBean.addSuccess(indexCountMap);
48 67
 		return responseBean;
49 68
 	}
69
+
70
+	@GetMapping("/admin/dashboard/statis")
71
+	public ResponseBean getDashboardStatis(@RequestParam("startDate") String startDate,
72
+										   @RequestParam("endDate") String endDate,
73
+										   HttpServletRequest request) {
74
+		Integer orgId = getOrgId(request);
75
+
76
+		// 楼栋
77
+		int buildingNum = buildingTreeService.getRoomNum(orgId);
78
+		// 业主
79
+		int propNum = iBuildingOwnerInfoService.getAvailableProp(orgId);
80
+		// 缴费
81
+		int houseNum = iBillService.getBillHouse(orgId, startDate, endDate);
82
+		// 工单
83
+		int ticketNum = tpTicketService.getTicketNum(orgId, startDate, endDate);
84
+
85
+		Map<String, Object> res = new HashMap<>();
86
+		res.put("buildingNum", buildingNum);
87
+		res.put("propNum", propNum);
88
+		res.put("houseNum", houseNum);
89
+		res.put("ticketNum", ticketNum);
90
+
91
+		return ResponseBean.success(res);
92
+	}
93
+
94
+	@GetMapping("/admin/dashboard/dynamic")
95
+	public ResponseBean getDashboardDynamic(@RequestParam("startDate") String startDate,
96
+										   @RequestParam("endDate") String endDate,
97
+										   HttpServletRequest request) {
98
+		Integer orgId = getOrgId(request);
99
+
100
+		// 工单
101
+		List<Map<String, Object>> ticketList = tpTicketService.getTicketMapList(orgId, startDate, endDate);
102
+
103
+		// 业主
104
+		List<Map<String, Object>> propList = iTaUserVerifyService.getVerifyMapList(orgId, startDate, endDate);
105
+
106
+		// 缴费
107
+		List<Map<String, Object>> billList = iBillService.getBillMapList(orgId, startDate, endDate);
108
+
109
+		Map<String, Object> res = new HashMap<>();
110
+		res.put("ticketList", ticketList);
111
+		res.put("propList", propList);
112
+		res.put("billList", billList);
113
+
114
+		return ResponseBean.success(res);
115
+	}
116
+
117
+
118
+	@GetMapping("/admin/dashboard/house-verified")
119
+	public ResponseBean getDashboardHouseVerified(HttpServletRequest request) {
120
+		Integer orgId = getOrgId(request);
121
+
122
+		Map<String, Object> houseList = iBuildingOwnerInfoService.getVerifyNum(orgId);
123
+
124
+		return ResponseBean.success(houseList);
125
+	}
126
+
127
+	@GetMapping("/admin/dashboard/tips")
128
+	public ResponseBean getDashboardTips(HttpServletRequest request) {
129
+		Integer orgId = getOrgId(request);
130
+
131
+		// 待处理工单
132
+		int ticketNum = tpTicketService.getStartNum(orgId);
133
+		// 待审核业主
134
+		int verifyNum = iTaUserVerifyService.getNoVerifyNum(orgId);
135
+		// 兑换列表
136
+		int exchangeNum = iTaPointsExchangeService.getTotalNum(orgId);
137
+		// 近期在进行的活动
138
+		Map<String, Integer> enlistNum = iTaBuildingDynamicService.getLastActEnlistNum(orgId);
139
+
140
+		Map<String, Object> res = new HashMap<>();
141
+		res.put("ticketNum", ticketNum);
142
+		res.put("verifyNum", verifyNum);
143
+		res.put("exchangeNum", exchangeNum);
144
+		res.put("enlistNum", enlistNum);
145
+
146
+		return ResponseBean.success(res);
147
+	}
50 148
 }

+ 160
- 0
src/main/java/com/huiju/estateagents/property/controller/TpCommunityController.java Bestand weergeven

@@ -0,0 +1,160 @@
1
+package com.huiju.estateagents.property.controller;
2
+
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
+import com.huiju.estateagents.base.BaseController;
7
+import com.huiju.estateagents.base.ResponseBean;
8
+import com.huiju.estateagents.common.CommConstant;
9
+import io.swagger.annotations.Api;
10
+import io.swagger.annotations.ApiOperation;
11
+import io.swagger.annotations.ApiParam;
12
+import org.slf4j.Logger;
13
+import org.slf4j.LoggerFactory;
14
+import org.springframework.beans.factory.annotation.Autowired;
15
+import org.springframework.web.bind.annotation.PathVariable;
16
+import org.springframework.web.bind.annotation.RequestBody;
17
+import org.springframework.web.bind.annotation.RequestMapping;
18
+import org.springframework.web.bind.annotation.RequestMethod;
19
+import org.springframework.web.bind.annotation.RequestParam;
20
+import com.huiju.estateagents.property.service.ITpCommunityService;
21
+import com.huiju.estateagents.property.entity.TpCommunity;
22
+import org.springframework.web.bind.annotation.RestController;
23
+
24
+import javax.servlet.http.HttpServletRequest;
25
+
26
+/**
27
+ * <p>
28
+    *  前端控制器
29
+    * </p>
30
+ *
31
+ * @author yansen
32
+ * @since 2021-01-19
33
+ */
34
+
35
+@Api(tags = "")
36
+@RestController
37
+@RequestMapping("/api")
38
+public class TpCommunityController extends BaseController {
39
+
40
+    private final Logger logger = LoggerFactory.getLogger(TpCommunityController.class);
41
+
42
+    @Autowired
43
+    public ITpCommunityService iTpCommunityService;
44
+
45
+
46
+    /**
47
+     * 分页查询列表
48
+     * @param pageNum
49
+     * @param pageSize
50
+     * @return
51
+     */
52
+    @RequestMapping(value="/{client}/tpCommunity",method= RequestMethod.GET)
53
+    @ApiOperation(value="列表", notes = "列表", httpMethod = "GET", response = ResponseBean.class)
54
+    public ResponseBean tpCommunityList(@ApiParam(value = "客户端", allowableValues = "wx,admin") @PathVariable("client") String client,
55
+                                        @ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
56
+                                        @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
57
+                                        HttpServletRequest request) throws Exception{
58
+
59
+		    IPage<TpCommunity> pg = new Page<>(pageNum, pageSize);
60
+            QueryWrapper<TpCommunity> queryWrapper = new QueryWrapper<>();
61
+            queryWrapper.eq("org_id", getOrgId(request));
62
+            queryWrapper.eq("wx".equals(client), "status", CommConstant.STATUS_NORMAL);
63
+            queryWrapper.gt("admin".equals(client), "status", CommConstant.STATUS_DELETE);
64
+            queryWrapper.orderByDesc("create_date");
65
+
66
+            IPage<TpCommunity> result = iTpCommunityService.page(pg, queryWrapper);
67
+            return ResponseBean.success(result);
68
+    }
69
+
70
+    /**
71
+     * 保存对象
72
+     * @param tpCommunity 实体对象
73
+     * @return
74
+     */
75
+    @RequestMapping(value="/admin/tpCommunity",method= RequestMethod.POST)
76
+    @ApiOperation(value="保存", notes = "保存", httpMethod = "POST", response = ResponseBean.class)
77
+    public ResponseBean tpCommunityAdd(@ApiParam("保存内容") @RequestBody TpCommunity tpCommunity,
78
+                                       HttpServletRequest request) throws Exception{
79
+
80
+        tpCommunity.setOrgId(getOrgId(request));
81
+
82
+        if (iTpCommunityService.save(tpCommunity)){
83
+            return ResponseBean.success(tpCommunity);
84
+        }else {
85
+            return ResponseBean.error("保存失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
86
+        }
87
+    }
88
+
89
+    /**
90
+     * 根据id删除对象
91
+     * @param id  实体ID
92
+     */
93
+    @RequestMapping(value="/admin/tpCommunity/{id}", method= RequestMethod.DELETE)
94
+    @ApiOperation(value="删除", notes = "删除", httpMethod = "DELETE", response = ResponseBean.class)
95
+    public ResponseBean tpCommunityDelete(@ApiParam("对象ID") @PathVariable Integer id,
96
+                                          HttpServletRequest request) throws Exception{
97
+
98
+        TpCommunity tpCommunity = iTpCommunityService.getById(id);
99
+        if (null == tpCommunity || CommConstant.STATUS_DELETE.equals(tpCommunity.getStatus())) {
100
+            return ResponseBean.error("没有找到对应的社区信息", ResponseBean.ERROR_ILLEGAL_PARAMS);
101
+        }
102
+
103
+        Integer orgId = getOrgId(request);
104
+        if (!orgId.equals(tpCommunity.getOrgId())) {
105
+            return ResponseBean.error("暂无操作权限", ResponseBean.ERROR_ILLEGAL_PARAMS);
106
+        }
107
+
108
+        tpCommunity.setStatus(CommConstant.STATUS_DELETE);
109
+
110
+        return tpCommunityUpdate(id, tpCommunity, request);
111
+    }
112
+
113
+    /**
114
+     * 修改对象
115
+     * @param id  实体ID
116
+     * @param tpCommunity 实体对象
117
+     * @return
118
+     */
119
+    @RequestMapping(value="/admin/tpCommunity/{id}",method= RequestMethod.PUT)
120
+    @ApiOperation(value="更新", notes = "更新", httpMethod = "PUT", response = ResponseBean.class)
121
+    public ResponseBean tpCommunityUpdate(@ApiParam("对象ID") @PathVariable Integer id,
122
+                                          @ApiParam("更新内容") @RequestBody TpCommunity tpCommunity,
123
+                                          HttpServletRequest request) throws Exception{
124
+        tpCommunity.setId(id);
125
+
126
+        Integer orgId = getOrgId(request);
127
+        if (!orgId.equals(tpCommunity.getOrgId())) {
128
+            return ResponseBean.error("暂无操作权限", ResponseBean.ERROR_ILLEGAL_PARAMS);
129
+        }
130
+
131
+        if (iTpCommunityService.updateById(tpCommunity)){
132
+            return ResponseBean.success(iTpCommunityService.getById(id));
133
+        }else {
134
+            return ResponseBean.error("修改失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
135
+        }
136
+    }
137
+
138
+    /**
139
+     * 根据id查询对象
140
+     * @param id  实体ID
141
+     */
142
+    @RequestMapping(value="/{client}/tpCommunity/{id}",method= RequestMethod.GET)
143
+    @ApiOperation(value="详情", notes = "详情", httpMethod = "GET", response = ResponseBean.class)
144
+    public ResponseBean tpCommunityGet(@ApiParam(value = "客户端", allowableValues = "wx,admin") @PathVariable("client") String client,
145
+                                       @ApiParam("对象ID") @PathVariable Integer id,
146
+                                       HttpServletRequest request) throws Exception{
147
+
148
+        TpCommunity tpCommunity = iTpCommunityService.getById(id);
149
+        if (null == tpCommunity || CommConstant.STATUS_DELETE.equals(tpCommunity.getStatus())) {
150
+            return ResponseBean.error("没有找到对应的社区信息", ResponseBean.ERROR_ILLEGAL_PARAMS);
151
+        }
152
+
153
+        Integer orgId = getOrgId(request);
154
+        if (!orgId.equals(tpCommunity.getOrgId())) {
155
+            return ResponseBean.error("暂无操作权限", ResponseBean.ERROR_ILLEGAL_PARAMS);
156
+        }
157
+
158
+        return ResponseBean.success(tpCommunity);
159
+    }
160
+}

+ 45
- 0
src/main/java/com/huiju/estateagents/property/controller/TpRoomNoController.java Bestand weergeven

@@ -0,0 +1,45 @@
1
+package com.huiju.estateagents.property.controller;
2
+
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
4
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5
+import com.huiju.estateagents.base.BaseController;
6
+import com.huiju.estateagents.base.ResponseBean;
7
+import com.huiju.estateagents.property.model.TpRoomNo;
8
+import com.huiju.estateagents.property.service.BuildingTreeServiceI;
9
+import io.swagger.annotations.Api;
10
+import io.swagger.annotations.ApiOperation;
11
+import io.swagger.annotations.ApiParam;
12
+import org.springframework.beans.factory.annotation.Autowired;
13
+import org.springframework.web.bind.annotation.*;
14
+
15
+import javax.servlet.http.HttpServletRequest;
16
+
17
+
18
+@Api(tags = "楼栋房源信息表 ")
19
+@RestController
20
+@RequestMapping("/api/{client}/buildingInfo/building-room")
21
+public class TpRoomNoController extends BaseController {
22
+
23
+    @Autowired
24
+    BuildingTreeServiceI buildingTreeService;
25
+
26
+    @ApiOperation(value="列表", notes = "列表", httpMethod = "GET", response = ResponseBean.class)
27
+    @GetMapping("/list")
28
+    public ResponseBean getList(@ApiParam(value = "客户端", allowableValues = "admin") @PathVariable String client,
29
+                                @ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
30
+                                @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
31
+                                @ApiParam("期数ID") @RequestParam(value ="phaseId", required = false) Integer phaseId,
32
+                                @ApiParam("楼栋ID") @RequestParam(value ="buildingId", required = false) Integer buildingId,
33
+                                @ApiParam("单元ID") @RequestParam(value ="unitId", required = false) Integer unitId,
34
+                                @ApiParam("楼层ID") @RequestParam(value ="levelId", required = false) Integer levelId,
35
+                                @ApiParam("户号ID") @RequestParam(value ="roomNoId", required = false) Integer roomNoId,
36
+                                HttpServletRequest request) {
37
+        Integer orgId = getOrgId(request);
38
+        IPage<TpRoomNo> page = new Page<>(pageNum, pageSize);
39
+
40
+        IPage<TpRoomNo> result = buildingTreeService.getRoomList(page, orgId, phaseId, buildingId, unitId, levelId, roomNoId);
41
+
42
+        return ResponseBean.success(result);
43
+    }
44
+
45
+}

+ 2
- 2
src/main/java/com/huiju/estateagents/property/controller/TpTicketController.java Bestand weergeven

@@ -153,7 +153,7 @@ public class TpTicketController extends BaseController {
153 153
     @RequestMapping(value = "/admin/updateTicketStatus", method = RequestMethod.POST)
154 154
     public ResponseBean updateTicketStatus(@RequestBody String parameter, HttpServletRequest request){
155 155
         TaUser userElement = getTaUser(request);
156
-        ResponseBean  responseBean = tpTicketService.updateTicketStatus(parameter,userElement.getUserId(),userElement.getOrgId(),userElement.getUserName(),userElement.getLoginName());
156
+        ResponseBean  responseBean = tpTicketService.updateTicketStatus(parameter,userElement.getUserId(),userElement.getOrgId(),userElement.getUserName(),userElement.getPhone());
157 157
         return responseBean;
158 158
     }
159 159
 
@@ -165,7 +165,7 @@ public class TpTicketController extends BaseController {
165 165
     @RequestMapping(value = "/admin/updateTicket", method = RequestMethod.POST)
166 166
     public ResponseBean updateTicket(@RequestBody String parameter, HttpServletRequest request){
167 167
         TaUser userElement = getTaUser(request);
168
-        ResponseBean  responseBean = tpTicketService.updateTicket(parameter,userElement.getUserId(),userElement.getOrgId(),userElement.getUserName(),userElement.getLoginName());
168
+        ResponseBean  responseBean = tpTicketService.updateTicket(parameter,userElement.getUserId(),userElement.getOrgId(),userElement.getUserName(),userElement.getPhone());
169 169
         return responseBean;
170 170
     }
171 171
 

+ 4
- 2
src/main/java/com/huiju/estateagents/property/controller/UserVerifyController.java Bestand weergeven

@@ -34,13 +34,15 @@ public class UserVerifyController extends BaseController {
34 34
     @RequestMapping(value = "/admin/prop-user/verify/all", method = RequestMethod.GET)
35 35
     // @ApiOperation(value = "获取待审核的用户列表", notes = "获取待审核的用户列表")
36 36
     @ApiImplicitParams({
37
+            @ApiImplicitParam(paramType = "query", dataTypeClass = String.class, name = "communityId", value = "小区ID"),
37 38
             @ApiImplicitParam(paramType = "query", dataTypeClass = String.class, name = "phone", value = "手机号"),
38 39
             @ApiImplicitParam(paramType = "query", dataTypeClass = String.class, name = "userName", value = "用户名"),
39 40
             @ApiImplicitParam(paramType = "query", dataTypeClass = String.class, name = "idCard", value = "身份证"),
40 41
             @ApiImplicitParam(paramType = "query", dataTypeClass = String.class, name = "pageNum", value = "第几页"),
41 42
             @ApiImplicitParam(paramType = "query", dataTypeClass = String.class, name = "pageSize", value = "一页多少行"),
42 43
     })
43
-    public ResponseBean getAll(@RequestParam(value = "phone", required = false) String phone,
44
+    public ResponseBean getAll(@RequestParam(value = "communityId") Integer communityId,
45
+                               @RequestParam(value = "phone", required = false) String phone,
44 46
                                @RequestParam(value = "userName", required = false) String userName,
45 47
                                @RequestParam(value = "idCard", required = false) String idCard,
46 48
                                @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@@ -49,7 +51,7 @@ public class UserVerifyController extends BaseController {
49 51
 
50 52
         ResponseBean responseBean = new ResponseBean();
51 53
         TaUser userElement = getTaUser(request);
52
-        responseBean = iTaUserVerifyService.selectAll(phone, userName, idCard, pageNum, pageSize, userElement);
54
+        responseBean = iTaUserVerifyService.selectAll(communityId, phone, userName, idCard, pageNum, pageSize, userElement);
53 55
         return responseBean;
54 56
     }
55 57
 

+ 6
- 1
src/main/java/com/huiju/estateagents/property/dao/TaUserVerifyMapper.java Bestand weergeven

@@ -23,12 +23,13 @@ public interface TaUserVerifyMapper extends BaseMapper<TaUserVerify> {
23 23
     /**
24 24
      * 根据 手机号 、用户名、身份证
25 25
      * @param page
26
+     * @param communityId
26 27
      * @param phone
27 28
      * @param userName
28 29
      * @param idCard
29 30
      * @return
30 31
      */
31
-    IPage<TaUserVerify> selectAllByPhoneAndUserNameAndIdCard(Page page, @Param("phone") String phone, @Param("userName") String userName, @Param("idCard") String idCard, @Param("orgId") Integer orgId);
32
+    IPage<TaUserVerify> selectAllByPhoneAndUserNameAndIdCard(Page page, Integer communityId, @Param("phone") String phone, @Param("userName") String userName, @Param("idCard") String idCard, @Param("orgId") Integer orgId);
32 33
 
33 34
     /**
34 35
      * 根据 小区id 、 小区、期、栋、单元、楼层、户号 进行条件查询出 已审核通过的并且是业主
@@ -167,4 +168,8 @@ public interface TaUserVerifyMapper extends BaseMapper<TaUserVerify> {
167 168
     Page<Map<String, String>> getPropUserByPaged(Page<Map<String, String>> page, @Param("orgId") Integer orgId);
168 169
 
169 170
     Page<Map<String, String>> getPropUserByBirday(Page<Map<String, String>> page, @Param("orgId") Integer orgId, @Param("birthday") String birthday);
171
+
172
+    List<Map<String, Object>> getVerifyMapList(@Param("orgId") Integer orgId, @Param("startDate") String startDate,@Param("endDate") String endDate);
173
+
174
+    int getNoVerifyNum(Integer orgId);
170 175
 }

+ 3
- 0
src/main/java/com/huiju/estateagents/property/dao/TpBillOrderMapper.java Bestand weergeven

@@ -84,4 +84,7 @@ public interface TpBillOrderMapper extends BaseMapper<TpBillOrder> {
84 84
     List<TpBillOrder> selectByOrderBumber(@Param("orderNumber") String orderNumber);
85 85
 
86 86
 
87
+    int getBillHouse(@Param("orgId") Integer orgId, @Param("startDate") String startDate, @Param("endDate") String endDate);
88
+
89
+    List<Map<String, Object>> getBillMapList(@Param("orgId") Integer orgId, @Param("startDate") String startDate, @Param("endDate") String endDate);
87 90
 }

+ 7
- 0
src/main/java/com/huiju/estateagents/property/dao/TpBuildingMapper.java Bestand weergeven

@@ -27,4 +27,11 @@ public interface TpBuildingMapper extends BaseMapper<TpBuilding> {
27 27
     @ResultType(TpBuilding.class)
28 28
     @Select("select * from tp_building where org_id=#{orgId} and phase_id=#{phaseId}")
29 29
     List<TpBuilding> selectByAddress(@Param("orgId") Integer orgId, @Param("phaseId") Integer phaseId);
30
+
31
+    @Update("update tp_building set `name` = #{name} where id = #{id}")
32
+    int updateName(@Param("orgId") Integer orgId, @Param("id") Integer id, @Param("name") String name);
33
+
34
+    @Update("update tp_building set phase_name = #{phaseName} where org_id=#{orgId} and phase_id=#{phaseId}")
35
+    int updatePhaseName(@Param("orgId") Integer orgId,  @Param("phaseId") Integer phaseId, @Param("phaseName") String phaseName);
36
+
30 37
 }

+ 4
- 0
src/main/java/com/huiju/estateagents/property/dao/TpBuildingOwnerInfoMapper.java Bestand weergeven

@@ -10,6 +10,7 @@ import org.apache.ibatis.annotations.ResultType;
10 10
 import org.apache.ibatis.annotations.Select;
11 11
 
12 12
 import java.util.List;
13
+import java.util.Map;
13 14
 
14 15
 /**
15 16
  * <p>
@@ -80,4 +81,7 @@ public interface TpBuildingOwnerInfoMapper extends BaseMapper<TpBuildingOwnerInf
80 81
     TpBuildingOwnerInfo selectCommunityIdAndAddressName(@Param("orgId") Integer orgId, @Param("phaseName") String phaseName, @Param("buildingName") Integer buildingName, @Param("unitName") Integer unitName, @Param("levelName") Integer levelName, @Param("roomNoName") Integer roomNoName, @Param("ownerTel") String ownerTel);
81 82
 
82 83
 
84
+    int getAvailableProp(Integer orgId);
85
+
86
+    Map<String, Object> getVerifyNum(Integer orgId);
83 87
 }

+ 13
- 4
src/main/java/com/huiju/estateagents/property/dao/TpLevelMapper.java Bestand weergeven

@@ -2,10 +2,7 @@ package com.huiju.estateagents.property.dao;
2 2
 
3 3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 4
 import com.huiju.estateagents.property.model.TpLevel;
5
-import org.apache.ibatis.annotations.Mapper;
6
-import org.apache.ibatis.annotations.ResultMap;
7
-import org.apache.ibatis.annotations.ResultType;
8
-import org.apache.ibatis.annotations.Select;
5
+import org.apache.ibatis.annotations.*;
9 6
 
10 7
 import java.util.List;
11 8
 
@@ -30,4 +27,16 @@ public interface TpLevelMapper extends BaseMapper<TpLevel> {
30 27
     @ResultType(TpLevel.class)
31 28
     @Select("select * from tp_level where org_id=#{orgId} and phase_id=#{phaseId} and building_id=#{buildingId} and unit_id=#{unitId}")
32 29
     List<TpLevel> selectByAddress(Integer orgId, Integer phaseId, Integer buildingId, Integer unitId);
30
+
31
+    @Update("update tp_level set `name` = #{name} where id = #{id}")
32
+    int updateName(@Param("orgId") Integer orgId, @Param("id") Integer id, @Param("name") String name);
33
+
34
+    @Update("update tp_level set phase_name = #{phaseName} where org_id=#{orgId} and phase_id=#{phaseId}")
35
+    int updatePhaseName(@Param("orgId") Integer orgId,  @Param("phaseId") Integer phaseId, @Param("phaseName") String phaseName);
36
+
37
+    @Update("update tp_level set building_name = #{buildingName} where org_id=#{orgId} and building_id=#{buildingId}")
38
+    int updateBuildingName(@Param("orgId") Integer orgId, @Param("buildingId") Integer buildingId, @Param("buildingName") String buildingName);
39
+
40
+    @Update("update tp_level set unit_name = #{unitName} where org_id=#{orgId} and unit_id=#{unitId}")
41
+    int updateUnitName(@Param("orgId") Integer orgId, @Param("unitId") Integer unitId, @Param("unitName") String unitName);
33 42
 }

+ 2
- 0
src/main/java/com/huiju/estateagents/property/dao/TpPhaseMapper.java Bestand weergeven

@@ -26,4 +26,6 @@ public interface TpPhaseMapper extends BaseMapper<TpPhase> {
26 26
     @Select("select * from tp_phase where org_id = #{orgId}")
27 27
     List<TpPhase> selectByAddress(@Param("orgId") Integer orgId);
28 28
 
29
+    @Update("update tp_phase set `name` = #{name} where id = #{id}")
30
+    int updateName(@Param("orgId") Integer orgId, @Param("id") Integer id, @Param("name") String name);
29 31
 }

+ 23
- 2
src/main/java/com/huiju/estateagents/property/dao/TpRoomNoMapper.java Bestand weergeven

@@ -1,6 +1,7 @@
1 1
 package com.huiju.estateagents.property.dao;
2 2
 
3 3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
4 5
 import com.huiju.estateagents.property.model.TpRoomNo;
5 6
 import org.apache.ibatis.annotations.*;
6 7
 
@@ -46,7 +47,7 @@ public interface TpRoomNoMapper extends BaseMapper<TpRoomNo> {
46 47
      */
47 48
     @ResultType(TpRoomNo.class)
48 49
 //    @Select("select * from tp_room_no where org_id = #{orgId} limit #{pageNum},#{pageSize}")
49
-    List<TpRoomNo> selectCommunityIdList(@Param("orgId") Integer orgId, @Param("pageNum") Integer pageNum, @Param("pageSize") Integer pageSize);
50
+    List<TpRoomNo> selectCommunityIdList(@Param("orgId") Integer orgId, @Param("communityId") Integer communityId, @Param("pageNum") Integer pageNum, @Param("pageSize") Integer pageSize);
50 51
 
51 52
     /**
52 53
      * 查询数据,分页
@@ -55,7 +56,7 @@ public interface TpRoomNoMapper extends BaseMapper<TpRoomNo> {
55 56
      */
56 57
     @ResultType(Long.class)
57 58
 //    @Select("select count(1) from tp_room_no where org_id = #{orgId}")
58
-    Long selectCommunityIdCount(@Param("orgId") Integer orgId);
59
+    Long selectCommunityIdCount(@Param("orgId") Integer orgId, @Param("communityId") Integer communityId);
59 60
 
60 61
     @ResultType(TpRoomNo.class)
61 62
 //    @Select("select * from tp_room_no where org_id=#{orgId} " +
@@ -65,4 +66,24 @@ public interface TpRoomNoMapper extends BaseMapper<TpRoomNo> {
65 66
 //            "and level_id=#{levelId}")
66 67
     List<TpRoomNo> selectByAddress(Integer orgId, Integer phaseId, Integer buildingId, Integer unitId, Integer levelId);
67 68
 
69
+    List<TpRoomNo> selectComunityList(@Param("orgId") Integer orgId, @Param("communityId") Integer communityId, @Param("phaseId") String phaseId, @Param("buildingId") String buildingId, @Param("pageNum") Integer pageNum, @Param("pageSize") Integer pageSize);
70
+
71
+    IPage<TpRoomNo> getRoomList(IPage<TpRoomNo> page, @Param("orgId") Integer orgId,@Param("phaseId") Integer phaseId,@Param("buildingId") Integer buildingId,@Param("unitId") Integer unitId,@Param("levelId") Integer levelId,@Param("roomNoId") Integer roomNoId);
72
+
73
+    @Update("update tp_room_no set `name` = #{name} where id = #{id}")
74
+    int updateName(@Param("orgId") Integer orgId, @Param("id") Integer id, @Param("name") String name);
75
+
76
+    @Update("update tp_room_no set phase_name = #{phaseName} where org_id=#{orgId} and phase_id=#{phaseId}")
77
+    int updatePhaseName(@Param("orgId") Integer orgId,  @Param("phaseId") Integer phaseId, @Param("phaseName") String phaseName);
78
+
79
+    @Update("update tp_room_no set building_name = #{buildingName} where org_id=#{orgId} and building_id=#{buildingId}")
80
+    int updateBuildingName(@Param("orgId") Integer orgId, @Param("buildingId") Integer buildingId, @Param("buildingName") String buildingName);
81
+
82
+    @Update("update tp_room_no set unit_name = #{unitName} where org_id=#{orgId} and unit_id=#{unitId}")
83
+    int updateUnitName(@Param("orgId") Integer orgId, @Param("unitId") Integer unitId, @Param("unitName") String unitName);
84
+
85
+    @Update("update tp_room_no set level_name = #{levelName} where org_id=#{orgId} and level_id=#{levelId}")
86
+    int updateLevelName(@Param("orgId") Integer orgId, @Param("levelId") Integer levelId, @Param("levelName") String levelName);
87
+
88
+    int getRoomNum(Integer orgId);
68 89
 }

+ 6
- 0
src/main/java/com/huiju/estateagents/property/dao/TpTicketMapper.java Bestand weergeven

@@ -35,4 +35,10 @@ public interface TpTicketMapper extends BaseMapper<TpTicket> {
35 35
     TpTicket selectTpTicketName(@Param("orgId")Integer orgId, @Param("type")String type, @Param("ticketTitle")String ticketTitle);
36 36
 
37 37
     void updateTpUserId(@Param("ticketId") Integer ticketId);
38
+
39
+    int getTicketNum(@Param("orgId") Integer orgId, @Param("startDate") String startDate, @Param("endDate") String endDate);
40
+
41
+    List<Map<String, Object>> getTicketMapList(@Param("orgId") Integer orgId, @Param("startDate") String startDate,  @Param("endDate") String endDate);
42
+
43
+    int getStartNum(Integer orgId);
38 44
 }

+ 9
- 4
src/main/java/com/huiju/estateagents/property/dao/TpUnitMapper.java Bestand weergeven

@@ -2,10 +2,7 @@ package com.huiju.estateagents.property.dao;
2 2
 
3 3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 4
 import com.huiju.estateagents.property.model.TpUnit;
5
-import org.apache.ibatis.annotations.Mapper;
6
-import org.apache.ibatis.annotations.ResultMap;
7
-import org.apache.ibatis.annotations.ResultType;
8
-import org.apache.ibatis.annotations.Select;
5
+import org.apache.ibatis.annotations.*;
9 6
 
10 7
 import java.util.List;
11 8
 
@@ -31,4 +28,12 @@ public interface TpUnitMapper extends BaseMapper<TpUnit> {
31 28
     @Select("select * from tp_unit where org_id =#{orgId} and phase_id=#{phaseId} and building_id=#{buildingId}")
32 29
     List<TpUnit> selectByAddress(Integer orgId, Integer phaseId, Integer buildingId);
33 30
 
31
+    @Update("update tp_unit set `name` = #{name} where id = #{id}")
32
+    int updateName(@Param("orgId") Integer orgId, @Param("id") Integer id, @Param("name") String name);
33
+
34
+    @Update("update tp_unit set phase_name = #{phaseName} where org_id=#{orgId} and phase_id=#{phaseId}")
35
+    int updatePhaseName(@Param("orgId") Integer orgId,  @Param("phaseId") Integer phaseId, @Param("phaseName") String phaseName);
36
+
37
+    @Update("update tp_unit set building_name = #{buildingName} where org_id=#{orgId} and building_id=#{buildingId}")
38
+    int updateBuildingName(@Param("orgId") Integer orgId, @Param("buildingId") Integer buildingId, @Param("buildingName") String buildingName);
34 39
 }

+ 44
- 0
src/main/java/com/huiju/estateagents/property/entity/TaUserCommunity.java Bestand weergeven

@@ -0,0 +1,44 @@
1
+package com.huiju.estateagents.property.entity;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import io.swagger.annotations.ApiModel;
6
+import io.swagger.annotations.ApiModelProperty;
7
+import lombok.Data;
8
+import lombok.EqualsAndHashCode;
9
+import lombok.experimental.Accessors;
10
+
11
+import java.io.Serializable;
12
+import java.time.LocalDateTime;
13
+
14
+/**
15
+ * <p>
16
+ * 
17
+ * </p>
18
+ *
19
+ * @author yansen
20
+ * @since 2021-01-19
21
+ */
22
+@Data
23
+@EqualsAndHashCode(callSuper = false)
24
+@Accessors(chain = true)
25
+@ApiModel(value="TaUserCommunity对象", description="")
26
+public class TaUserCommunity implements Serializable {
27
+
28
+    private static final long serialVersionUID = 1L;
29
+
30
+    @ApiModelProperty(value = "主键")
31
+    @TableId(value = "serial_no", type = IdType.AUTO)
32
+    private Integer serialNo;
33
+
34
+    @ApiModelProperty(value = "用户ID")
35
+    private Integer userId;
36
+
37
+    @ApiModelProperty(value = "小区ID")
38
+    private Integer communityId;
39
+
40
+    @ApiModelProperty(value = "所属机构")
41
+    private Integer orgId;
42
+
43
+
44
+}

+ 47
- 0
src/main/java/com/huiju/estateagents/property/entity/TpBillType.java Bestand weergeven

@@ -0,0 +1,47 @@
1
+package com.huiju.estateagents.property.entity;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import io.swagger.annotations.ApiModel;
6
+import io.swagger.annotations.ApiModelProperty;
7
+import lombok.Data;
8
+import lombok.EqualsAndHashCode;
9
+import lombok.experimental.Accessors;
10
+
11
+import java.io.Serializable;
12
+import java.time.LocalDateTime;
13
+
14
+/**
15
+ * <p>
16
+ * 
17
+ * </p>
18
+ *
19
+ * @author yansen
20
+ * @since 2021-01-19
21
+ */
22
+@Data
23
+@EqualsAndHashCode(callSuper = false)
24
+@Accessors(chain = true)
25
+@ApiModel(value="TpBillType 对象", description="")
26
+public class TpBillType implements Serializable {
27
+
28
+    private static final long serialVersionUID = 1L;
29
+
30
+    @ApiModelProperty(value = "ID")
31
+    @TableId(value = "id", type = IdType.AUTO)
32
+    private Integer id;
33
+
34
+    @ApiModelProperty(value = "名称")
35
+    private String name;
36
+
37
+    @ApiModelProperty(value = "状态")
38
+    private Integer status;
39
+
40
+    @ApiModelProperty(value = "创建时间")
41
+    private LocalDateTime createDate;
42
+
43
+    @ApiModelProperty(value = "所属机构")
44
+    private Integer orgId;
45
+
46
+
47
+}

+ 46
- 0
src/main/java/com/huiju/estateagents/property/entity/TpCommunity.java Bestand weergeven

@@ -0,0 +1,46 @@
1
+package com.huiju.estateagents.property.entity;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import java.time.LocalDateTime;
5
+import com.baomidou.mybatisplus.annotation.TableId;
6
+import java.io.Serializable;
7
+import io.swagger.annotations.ApiModel;
8
+import io.swagger.annotations.ApiModelProperty;
9
+import lombok.Data;
10
+import lombok.EqualsAndHashCode;
11
+import lombok.experimental.Accessors;
12
+
13
+/**
14
+ * <p>
15
+ * 
16
+ * </p>
17
+ *
18
+ * @author yansen
19
+ * @since 2021-01-19
20
+ */
21
+@Data
22
+@EqualsAndHashCode(callSuper = false)
23
+@Accessors(chain = true)
24
+@ApiModel(value="TpCommunity对象", description="")
25
+public class TpCommunity implements Serializable {
26
+
27
+    private static final long serialVersionUID = 1L;
28
+
29
+    @ApiModelProperty(value = "小区ID")
30
+    @TableId(value = "id", type = IdType.AUTO)
31
+    private Integer id;
32
+
33
+    @ApiModelProperty(value = "小区名称")
34
+    private String name;
35
+
36
+    @ApiModelProperty(value = "状态")
37
+    private Integer status;
38
+
39
+    @ApiModelProperty(value = "创建时间")
40
+    private LocalDateTime createDate;
41
+
42
+    @ApiModelProperty(value = "所属机构")
43
+    private Integer orgId;
44
+
45
+
46
+}

+ 18
- 0
src/main/java/com/huiju/estateagents/property/mapper/TaUserCommunityMapper.java Bestand weergeven

@@ -0,0 +1,18 @@
1
+package com.huiju.estateagents.property.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.estateagents.property.entity.TaUserCommunity;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+/**
8
+ * <p>
9
+ *  Mapper 接口
10
+ * </p>
11
+ *
12
+ * @author yansen
13
+ * @since 2021-01-19
14
+ */
15
+@Mapper
16
+public interface TaUserCommunityMapper extends BaseMapper<TaUserCommunity> {
17
+
18
+}

+ 17
- 0
src/main/java/com/huiju/estateagents/property/mapper/TpBillTypeMapper.java Bestand weergeven

@@ -0,0 +1,17 @@
1
+package com.huiju.estateagents.property.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.estateagents.property.entity.TpBillType;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+/**
8
+ * <p>
9
+ *  Mapper 接口
10
+ * </p>
11
+ *
12
+ * @author yansen
13
+ * @since 2021-01-19
14
+ */
15
+@Mapper
16
+public interface TpBillTypeMapper extends BaseMapper<TpBillType> {
17
+}

+ 21
- 0
src/main/java/com/huiju/estateagents/property/mapper/TpCommunityMapper.java Bestand weergeven

@@ -0,0 +1,21 @@
1
+package com.huiju.estateagents.property.mapper;
2
+
3
+import com.huiju.estateagents.property.entity.TpCommunity;
4
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+import java.util.List;
8
+
9
+/**
10
+ * <p>
11
+ *  Mapper 接口
12
+ * </p>
13
+ *
14
+ * @author yansen
15
+ * @since 2021-01-19
16
+ */
17
+@Mapper
18
+public interface TpCommunityMapper extends BaseMapper<TpCommunity> {
19
+
20
+    List<TpCommunity> getListOfUser(Integer orgId, Integer userId);
21
+}

+ 3
- 1
src/main/java/com/huiju/estateagents/property/model/AnnouncementTel.java Bestand weergeven

@@ -31,10 +31,12 @@ public class AnnouncementTel implements Serializable {
31 31
     @TableId(value = "id", type = IdType.AUTO)
32 32
     private Integer id;
33 33
 
34
+    private Integer orgId;
35
+
34 36
     /**
35 37
      * 小区id
36 38
      */
37
-    private Integer orgId;
39
+    private Integer communityId;
38 40
 
39 41
     /**
40 42
      * 电话名称

+ 14
- 1
src/main/java/com/huiju/estateagents/property/model/Bill.java Bestand weergeven

@@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode;
8 8
 import lombok.experimental.Accessors;
9 9
 
10 10
 import java.io.Serializable;
11
+import java.time.LocalDateTime;
11 12
 import java.util.Date;
12 13
 
13 14
 /**
@@ -32,6 +33,8 @@ public class Bill implements Serializable {
32 33
     /**
33 34
      * 小区id
34 35
      */
36
+    private Integer communityId;
37
+
35 38
     private Integer orgId;
36 39
 
37 40
     /**
@@ -66,10 +69,12 @@ public class Bill implements Serializable {
66 69
      */
67 70
     private String billStatus;
68 71
 
72
+    private LocalDateTime startDate;
73
+
69 74
     /**
70 75
      * 截止时间
71 76
      */
72
-    private Date endDate;
77
+    private LocalDateTime endDate;
73 78
 
74 79
     /**
75 80
      * 创建人
@@ -91,5 +96,13 @@ public class Bill implements Serializable {
91 96
      */
92 97
     private Date updateDate;
93 98
 
99
+    /**
100
+     * 收费类型
101
+     */
102
+    private Integer typeId;
94 103
 
104
+    /**
105
+     * 是否工单费用
106
+     */
107
+    private Boolean isTicket;
95 108
 }

+ 2
- 3
src/main/java/com/huiju/estateagents/property/model/BillInvoice.java Bestand weergeven

@@ -30,11 +30,10 @@ public class BillInvoice implements Serializable {
30 30
     @TableId(value = "id", type = IdType.AUTO)
31 31
     private Integer id;
32 32
 
33
-    /**
34
-     * 小区id
35
-     */
36 33
     private Integer orgId;
37 34
 
35
+    private Integer communityId;
36
+
38 37
     /**
39 38
      * 收费项id
40 39
      */

+ 3
- 1
src/main/java/com/huiju/estateagents/property/model/TaUserVerify.java Bestand weergeven

@@ -33,10 +33,12 @@ public class TaUserVerify implements Serializable {
33 33
      */
34 34
     private String personId;
35 35
 
36
+    private Integer orgId;
37
+
36 38
     /**
37 39
      * 小区id
38 40
      */
39
-    private Integer orgId;
41
+    private Integer communityId;
40 42
 
41 43
     /**
42 44
      * 角色ID

+ 9
- 1
src/main/java/com/huiju/estateagents/property/model/TpAnnouncement.java Bestand weergeven

@@ -22,9 +22,11 @@ public class TpAnnouncement implements Serializable {
22 22
     @TableId(value = "id", type = IdType.AUTO)
23 23
     private Integer id;
24 24
 
25
-    /** 小区id**/
26 25
     private Integer orgId;
27 26
 
27
+    /** 小区id**/
28
+    private Integer communityId;
29
+
28 30
     /**公告标题**/
29 31
     private String announcementTitle;
30 32
 
@@ -79,4 +81,10 @@ public class TpAnnouncement implements Serializable {
79 81
     @TableField(exist = false)
80 82
     private List<String> imgList;
81 83
 
84
+    @TableField(exist = false)
85
+    private String startCreateDate;
86
+
87
+    @TableField(exist = false)
88
+    private String endCreateDate;
89
+
82 90
 }

+ 9
- 1
src/main/java/com/huiju/estateagents/property/model/TpBillOrder.java Bestand weergeven

@@ -31,10 +31,12 @@ public class TpBillOrder implements Serializable {
31 31
     @TableId(value = "id", type = IdType.AUTO)
32 32
     private Integer id;
33 33
 
34
+    private Integer orgId;
35
+
34 36
     /**
35 37
      * 小区ID
36 38
      */
37
-    private Integer orgId;
39
+    private Integer communityId;
38 40
 
39 41
     /**
40 42
      * 缴费项ID
@@ -124,4 +126,10 @@ public class TpBillOrder implements Serializable {
124 126
      */
125 127
     @TableField(exist = false)
126 128
     private List<BillInvoice> billList;
129
+
130
+    /**
131
+     * 缴费时间
132
+     */
133
+    @TableField(exist = false)
134
+    private LocalDateTime createTime;
127 135
 }

+ 4
- 1
src/main/java/com/huiju/estateagents/property/model/TpBuilding.java Bestand weergeven

@@ -16,10 +16,13 @@ public class TpBuilding implements Serializable {
16 16
 	
17 17
 	@TableId(value = "id", type = IdType.AUTO)
18 18
     private Integer id;
19
+
20
+    private Integer orgId;
21
+
19 22
     /**
20 23
      * 小区ID
21 24
      */
22
-    private Integer orgId;
25
+    private Integer communityId;
23 26
     
24 27
     /**
25 28
      * 期区id

+ 4
- 2
src/main/java/com/huiju/estateagents/property/model/TpBuildingOwnerInfo.java Bestand weergeven

@@ -32,11 +32,13 @@ public class TpBuildingOwnerInfo implements Serializable {
32 32
      */
33 33
     @TableId(value = "id", type = IdType.AUTO)
34 34
     private Integer id;
35
-    
35
+
36
+    private Integer orgId;
37
+
36 38
     /**
37 39
      * 小区id
38 40
      */
39
-    private Integer orgId;
41
+    private Integer communityId;
40 42
     
41 43
     /**
42 44
      * 身份证号码

+ 4
- 2
src/main/java/com/huiju/estateagents/property/model/TpLevel.java Bestand weergeven

@@ -28,11 +28,13 @@ public class TpLevel implements Serializable {
28 28
     
29 29
     @TableId(value = "id", type = IdType.AUTO)
30 30
     private Integer id;
31
-    
31
+
32
+    private Integer orgId;
33
+
32 34
     /**
33 35
      * 小区ID
34 36
      */
35
-    private Integer orgId;
37
+    private Integer communityId;
36 38
 
37 39
     /**
38 40
      * 期区ID

+ 6
- 4
src/main/java/com/huiju/estateagents/property/model/TpPhase.java Bestand weergeven

@@ -28,10 +28,7 @@ public class TpPhase implements Serializable {
28 28
     
29 29
     @TableId(value = "id", type = IdType.AUTO)
30 30
     private Integer id;
31
-    
32
-    /**
33
-     * 小区ID
34
-     */
31
+
35 32
     private Integer orgId;
36 33
 
37 34
     /**
@@ -43,4 +40,9 @@ public class TpPhase implements Serializable {
43 40
      * 创建时间
44 41
      */
45 42
     private LocalDateTime createDate;
43
+
44
+    /**
45
+     * 小区ID
46
+     */
47
+    private Integer communityId;
46 48
 }

+ 5
- 3
src/main/java/com/huiju/estateagents/property/model/TpRoomNo.java Bestand weergeven

@@ -28,11 +28,13 @@ public class TpRoomNo implements Serializable {
28 28
     
29 29
     @TableId(value = "id", type = IdType.AUTO)
30 30
     private Integer id;
31
-    
31
+
32
+    private Integer orgId;
33
+
32 34
     /**
33
-     * 小区id
35
+     * 小区ID
34 36
      */
35
-    private Integer orgId;
37
+    private Integer communityId;
36 38
 
37 39
     /**
38 40
      * 期区ID

+ 4
- 1
src/main/java/com/huiju/estateagents/property/model/TpTicket.java Bestand weergeven

@@ -33,10 +33,13 @@ public class TpTicket implements Serializable {
33 33
      */
34 34
     @TableId(value = "id", type = IdType.AUTO)
35 35
     private Integer id;
36
+
37
+    private Integer orgId;
38
+
36 39
     /**
37 40
      * 小区id
38 41
      */
39
-    private Integer orgId;
42
+    private Integer communityId;
40 43
 
41 44
     /**
42 45
      * 住户app的id

+ 4
- 2
src/main/java/com/huiju/estateagents/property/model/TpUnit.java Bestand weergeven

@@ -28,11 +28,13 @@ public class TpUnit implements Serializable {
28 28
     
29 29
     @TableId(value = "id", type = IdType.AUTO)
30 30
     private Integer id;
31
-    
31
+
32
+    private Integer orgId;
33
+
32 34
     /**
33 35
      * 小区ID
34 36
      */
35
-    private Integer orgId;
37
+    private Integer communityId;
36 38
 
37 39
     /**
38 40
      * 期区ID

+ 12
- 2
src/main/java/com/huiju/estateagents/property/service/BuildingTreeServiceI.java Bestand weergeven

@@ -1,10 +1,13 @@
1 1
 package com.huiju.estateagents.property.service;
2 2
 
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
3 4
 import com.huiju.estateagents.base.ResponseBean;
4 5
 import com.huiju.estateagents.center.taUser.entity.TaUser;
5
-import com.huiju.estateagents.property.common.UserElement;
6
+import com.huiju.estateagents.property.model.TpRoomNo;
6 7
 import org.springframework.web.multipart.MultipartFile;
7 8
 
9
+import java.util.Map;
10
+
8 11
 public interface BuildingTreeServiceI {
9 12
 	
10 13
 	/**
@@ -17,10 +20,11 @@ public interface BuildingTreeServiceI {
17 20
 	/**
18 21
 	 * 上传小区的基础数据
19 22
 	 * @param file
23
+	 * @param communityId
20 24
 	 * @param userElement
21 25
 	 * @return
22 26
 	 */
23
-	ResponseBean submitExcelData(MultipartFile file, TaUser userElement);
27
+	ResponseBean submitExcelData(MultipartFile file, Integer communityId, TaUser userElement);
24 28
 	
25 29
 	/**
26 30
 	 * 获取树形数据
@@ -46,4 +50,10 @@ public interface BuildingTreeServiceI {
46 50
 	 * @return
47 51
 	 */
48 52
 	ResponseBean deleteNode(String parameter, Integer orgId);
53
+
54
+	IPage<TpRoomNo> getRoomList(IPage<TpRoomNo> page, Integer orgId, Integer phaseId, Integer buildingId, Integer unitId, Integer levelId, Integer roomNoId);
55
+
56
+	ResponseBean editNode(Map<String, Object> parameter, Integer orgId);
57
+
58
+    int getRoomNum(Integer orgId);
49 59
 }

+ 9
- 6
src/main/java/com/huiju/estateagents/property/service/IBillService.java Bestand weergeven

@@ -3,11 +3,10 @@ package com.huiju.estateagents.property.service;
3 3
 import com.baomidou.mybatisplus.extension.service.IService;
4 4
 import com.huiju.estateagents.base.ResponseBean;
5 5
 import com.huiju.estateagents.center.taUser.entity.TaUser;
6
-import com.huiju.estateagents.property.common.UserElement;
7 6
 import com.huiju.estateagents.property.model.Bill;
8 7
 import org.springframework.web.multipart.MultipartFile;
9 8
 
10
-import java.util.Date;
9
+import java.time.LocalDateTime;
11 10
 import java.util.List;
12 11
 import java.util.Map;
13 12
 
@@ -28,7 +27,7 @@ public interface IBillService extends IService<Bill> {
28 27
      * @param userElement
29 28
      * @return
30 29
      */
31
-    ResponseBean updateBillNameAndBillExplainAndEndDate(TaUser userElement, String parameter);
30
+    ResponseBean updateBillNameAndBillExplainAndEndDate(TaUser userElement, Bill bill);
32 31
 
33 32
     /**
34 33
      * 根据ID查询 缴费项
@@ -48,6 +47,7 @@ public interface IBillService extends IService<Bill> {
48 47
 
49 48
 	/**
50 49
 	 * 上传excel, 解析, 但不入库
50
+	 *
51 51
 	 * @param file
52 52
 	 * @return
53 53
 	 */
@@ -57,13 +57,12 @@ public interface IBillService extends IService<Bill> {
57 57
 	 * 上传excel, 解析 入库
58 58
 	 * @param billId
59 59
 	 * @param file
60
-	 * @param billExplain
61 60
 	 * @param billName
62 61
 	 * @param endDate
63 62
 	 * @param billStatus
64 63
 	 * @return
65 64
 	 */
66
-	ResponseBean getExcelData(Integer billId, MultipartFile file, String billExplain, String billName, Date endDate, String billStatus, TaUser userElement);
65
+	ResponseBean saveExcelData(Integer billId, MultipartFile file, Integer communityId, String billName, LocalDateTime startDate, LocalDateTime endDate, String billStatus, TaUser userElement);
67 66
 
68 67
 	/**
69 68
 	 * 修改 缴费项状态
@@ -86,7 +85,7 @@ public interface IBillService extends IService<Bill> {
86 85
 	 * @param userElement
87 86
 	 * @return
88 87
 	 */
89
-	ResponseBean downloadExcel(TaUser userElement);
88
+	ResponseBean downloadExcel(TaUser userElement, Integer communityId, String phaseId,String buildingId);
90 89
 
91 90
 	/**
92 91
 	 * 根据payType分页获取缴费或未缴费的数据
@@ -119,4 +118,8 @@ public interface IBillService extends IService<Bill> {
119 118
 	 * @return
120 119
 	 */
121 120
 	ResponseBean getOrderInfo(String orderNumber);
121
+
122
+    int getBillHouse(Integer orgId, String startDate, String endDate);
123
+
124
+    List<Map<String, Object>> getBillMapList(Integer orgId, String startDate, String endDate);
122 125
 }

+ 12
- 4
src/main/java/com/huiju/estateagents/property/service/IBuildingOwnerInfoService.java Bestand weergeven

@@ -3,11 +3,11 @@ package com.huiju.estateagents.property.service;
3 3
 import com.baomidou.mybatisplus.extension.service.IService;
4 4
 import com.huiju.estateagents.base.ResponseBean;
5 5
 import com.huiju.estateagents.center.taUser.entity.TaUser;
6
-import com.huiju.estateagents.property.common.UserElement;
7 6
 import com.huiju.estateagents.property.model.TpBuildingOwnerInfo;
8 7
 import org.springframework.web.multipart.MultipartFile;
9 8
 
10 9
 import java.util.List;
10
+import java.util.Map;
11 11
 
12 12
 /**
13 13
  * <p>
@@ -61,17 +61,19 @@ public interface IBuildingOwnerInfoService extends IService<TpBuildingOwnerInfo>
61 61
      *   楼栋是根据 小区ID查询
62 62
      *
63 63
      * @param orgId
64
+     * @param communityId
64 65
      * @return
65 66
      */
66
-    ResponseBean getPhaseList(Integer orgId);
67
+    ResponseBean getPhaseList(Integer orgId, Integer communityId);
67 68
     
68 69
     /**
69 70
      * 上传excel里面的内容
70 71
      * @param file
72
+     * @param communityId
71 73
      * @param userElement
72 74
      * @return
73 75
      */
74
-    ResponseBean submitExcelData(MultipartFile file, TaUser userElement);
76
+    ResponseBean submitExcelData(MultipartFile file, Integer communityId, TaUser userElement);
75 77
 
76 78
     /**
77 79
      * 认证用户是否停用
@@ -114,10 +116,12 @@ public interface IBuildingOwnerInfoService extends IService<TpBuildingOwnerInfo>
114 116
 
115 117
     /**
116 118
      * 下载Excel模板(小区楼栋信息)
119
+     *
120
+     * @param communityId
117 121
      * @param userElement
118 122
      * @return
119 123
      */
120
-    ResponseBean downloadExcel(TaUser userElement);
124
+    ResponseBean downloadExcel(Integer communityId, TaUser userElement);
121 125
     
122 126
     /**
123 127
      * 获取楼栋信息
@@ -181,4 +185,8 @@ public interface IBuildingOwnerInfoService extends IService<TpBuildingOwnerInfo>
181 185
      * @return
182 186
      */
183 187
     ResponseBean hasBuild(String personId, Integer orgId ,Integer phaseId, Integer buildingId, Integer unitId, Integer levelId, Integer roomNoId);
188
+
189
+    int getAvailableProp(Integer orgId);
190
+
191
+    Map<String, Object> getVerifyNum(Integer orgId);
184 192
 }

+ 22
- 0
src/main/java/com/huiju/estateagents/property/service/ITaUserCommunityService.java Bestand weergeven

@@ -0,0 +1,22 @@
1
+package com.huiju.estateagents.property.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.estateagents.property.entity.TaUserCommunity;
5
+import com.huiju.estateagents.property.entity.TpCommunity;
6
+
7
+import java.util.List;
8
+
9
+/**
10
+ * <p>
11
+ *  服务类
12
+ * </p>
13
+ *
14
+ * @author yansen
15
+ * @since 2021-01-19
16
+ */
17
+public interface ITaUserCommunityService extends IService<TaUserCommunity> {
18
+
19
+    List<TpCommunity> getListBy(Integer orgId, Integer userId);
20
+
21
+    boolean addUserCommunity(Integer orgId, Integer userId, List<TpCommunity> communityList) throws Exception;
22
+}

+ 7
- 1
src/main/java/com/huiju/estateagents/property/service/ITaUserVerifyService.java Bestand weergeven

@@ -6,6 +6,7 @@ import com.huiju.estateagents.base.ResponseBean;
6 6
 import com.huiju.estateagents.center.taUser.entity.TaUser;
7 7
 import com.huiju.estateagents.property.model.TaUserVerify;
8 8
 
9
+import java.util.List;
9 10
 import java.util.Map;
10 11
 
11 12
 /**
@@ -15,6 +16,8 @@ public interface ITaUserVerifyService extends IService<TaUserVerify> {
15 16
 
16 17
     /**
17 18
      * 查询 所有审核数据
19
+     *
20
+     * @param communityId
18 21
      * @param phone
19 22
      * @param userName
20 23
      * @param idCard
@@ -23,7 +26,7 @@ public interface ITaUserVerifyService extends IService<TaUserVerify> {
23 26
      * @param userElement
24 27
      * @return
25 28
      */
26
-    ResponseBean selectAll(String phone, String userName, String idCard, Integer pageNum, Integer pageSize, TaUser userElement);
29
+    ResponseBean selectAll(Integer communityId, String phone, String userName, String idCard, Integer pageNum, Integer pageSize, TaUser userElement);
27 30
 
28 31
     /**
29 32
      * 审核 用户
@@ -97,4 +100,7 @@ public interface ITaUserVerifyService extends IService<TaUserVerify> {
97 100
      */
98 101
     Page<Map<String, String>> getPropUserByBirday(Page<Map<String, String>> page, Integer orgId, String birthday);
99 102
 
103
+    List<Map<String, Object>> getVerifyMapList(Integer orgId, String startDate, String endDate);
104
+
105
+    int getNoVerifyNum(Integer orgId);
100 106
 }

+ 19
- 0
src/main/java/com/huiju/estateagents/property/service/ITpCommunityService.java Bestand weergeven

@@ -0,0 +1,19 @@
1
+package com.huiju.estateagents.property.service;
2
+
3
+import com.huiju.estateagents.property.entity.TpCommunity;
4
+import com.baomidou.mybatisplus.extension.service.IService;
5
+
6
+import java.util.List;
7
+
8
+/**
9
+ * <p>
10
+ *  服务类
11
+ * </p>
12
+ *
13
+ * @author yansen
14
+ * @since 2021-01-19
15
+ */
16
+public interface ITpCommunityService extends IService<TpCommunity> {
17
+
18
+    List<TpCommunity> getAllByOrg(Integer orgId);
19
+}

+ 11
- 2
src/main/java/com/huiju/estateagents/property/service/TpTicketService.java Bestand weergeven

@@ -5,8 +5,11 @@ import com.huiju.estateagents.base.ResponseBean;
5 5
 import com.huiju.estateagents.center.taUser.entity.TaUser;
6 6
 import com.huiju.estateagents.property.model.TpTicket;
7 7
 import com.huiju.estateagents.property.model.TpTicketRecordComment;
8
+import org.apache.ibatis.annotations.Param;
8 9
 
9 10
 import java.io.IOException;
11
+import java.util.List;
12
+import java.util.Map;
10 13
 
11 14
 /**
12 15
  * <p>
@@ -67,7 +70,7 @@ public interface TpTicketService extends IService<TpTicket> {
67 70
      * @param id
68 71
      * @return
69 72
      */
70
-    ResponseBean updateTicketStatus(String parameter, Integer id, Integer orgId, String userNmae, String LoginName);
73
+    ResponseBean updateTicketStatus(String parameter, Integer id, Integer orgId, String userNmae, String phone);
71 74
 
72 75
     /**
73 76
      * 修改当前状态为待评价
@@ -77,7 +80,7 @@ public interface TpTicketService extends IService<TpTicket> {
77 80
      * @param userName
78 81
      * @return
79 82
      */
80
-    ResponseBean updateTicket(String parameter, Integer id, Integer orgId, String userName, String longName);
83
+    ResponseBean updateTicket(String parameter, Integer id, Integer orgId, String userName, String phone);
81 84
 
82 85
 
83 86
     /**
@@ -178,4 +181,10 @@ public interface TpTicketService extends IService<TpTicket> {
178 181
      * @return
179 182
      */
180 183
     ResponseBean getWorkerList(Integer pageNum, Integer pageSize, Integer userId, Integer orgId);
184
+
185
+    int getTicketNum(@Param("orgId") Integer orgId,@Param("startDate") String startDate,@Param("endDate") String endDate);
186
+
187
+    List<Map<String, Object>> getTicketMapList(Integer orgId, String startDate, String endDate);
188
+
189
+    int getStartNum(Integer orgId);
181 190
 }

+ 94
- 39
src/main/java/com/huiju/estateagents/property/service/impl/BillInvoiceServiceImpl.java Bestand weergeven

@@ -8,6 +8,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
8 8
 import com.huiju.estateagents.base.ResponseBean;
9 9
 import com.huiju.estateagents.center.taUser.entity.TaUser;
10 10
 import com.huiju.estateagents.center.taUser.mapper.TaUserMapper;
11
+import com.huiju.estateagents.common.DateUtils;
12
+import com.huiju.estateagents.common.StringUtils;
11 13
 import com.huiju.estateagents.property.common.UserElement;
12 14
 import com.huiju.estateagents.property.dao.*;
13 15
 import com.huiju.estateagents.property.exception.WisdomException;
@@ -120,7 +122,10 @@ public class BillInvoiceServiceImpl extends ServiceImpl<BillInvoiceMapper, BillI
120 122
         respMap.put("list", invoiceIPage.getRecords());
121 123
         respMap.put("billName", bill.getBillName());
122 124
         respMap.put("billExplain", bill.getBillExplain());
125
+        respMap.put("startDate", bill.getStartDate());
123 126
         respMap.put("endDate", bill.getEndDate());
127
+        respMap.put("communityId", bill.getCommunityId());
128
+
124 129
 
125 130
         responseBean.addSuccess(respMap);
126 131
 
@@ -262,6 +267,13 @@ public class BillInvoiceServiceImpl extends ServiceImpl<BillInvoiceMapper, BillI
262 267
         JSONObject jsonObject = JSONObject.parseObject(parameter);
263 268
         // 收费项ID
264 269
         Integer billId = jsonObject.getInteger("billId");
270
+        //
271
+        Integer communityId = jsonObject.getInteger("communityId");
272
+
273
+        if (null == billId || null == communityId) {
274
+            return ResponseBean.error("收费ID或者小区不能为空", ResponseBean.ERROR_MISSING_PARAMS);
275
+        }
276
+
265 277
         // 区/期
266 278
         Integer phase = jsonObject.getInteger("phaseId");
267 279
         // 栋
@@ -290,6 +302,7 @@ public class BillInvoiceServiceImpl extends ServiceImpl<BillInvoiceMapper, BillI
290 302
         // 校验 期/区/栋/单元/楼层/户号
291 303
         QueryWrapper<TpRoomNo> roomNoQueryWrapper = new QueryWrapper<>();
292 304
         roomNoQueryWrapper.eq("org_id", userElement.getOrgId());
305
+        roomNoQueryWrapper.eq("community_id", communityId);
293 306
         roomNoQueryWrapper.eq("phase_id", phase);
294 307
         roomNoQueryWrapper.eq("building_id", building);
295 308
         roomNoQueryWrapper.eq("unit_id", unit);
@@ -386,7 +399,10 @@ public class BillInvoiceServiceImpl extends ServiceImpl<BillInvoiceMapper, BillI
386 399
         map.put("billId", billId);
387 400
         map.put("orgId", userElement.getOrgId());
388 401
 
402
+        Bill bill = billMapper.selectById(billId);
403
+
389 404
         List<BillInvoice> billInvoices = billInvoiceMapper.selectBillInvoiceTemp(map);
405
+        billInvoices.stream().forEach(e -> e.setCommunityId(bill.getCommunityId()));
390 406
 
391 407
         responseBean.addSuccess(billInvoices);
392 408
         return responseBean;
@@ -439,7 +455,7 @@ public class BillInvoiceServiceImpl extends ServiceImpl<BillInvoiceMapper, BillI
439 455
     @Override
440 456
     public ResponseBean exportExcel(TaUser userElement, Integer billId) {
441 457
         ResponseBean responseBean = new ResponseBean();
442
-        String [] title = new String[] { "收费单号","房屋信息","收费单说明","金额(元)","流水","缴费状态","缴费人","缴费时间","新建时间","新建人","修改人","修改时间" };
458
+        String [] title = new String[] {"序号", "收费名称", "开始时间", "结束时间", "类别", "收费单号","期/区","楼栋","单元","房室","金额(元)","订单流水","缴费状态","缴费人","缴费时间" };
443 459
 
444 460
         HSSFWorkbook excel = excel(title, userElement, billId,null);
445 461
         responseBean.addSuccess(excel);
@@ -488,70 +504,109 @@ public class BillInvoiceServiceImpl extends ServiceImpl<BillInvoiceMapper, BillI
488 504
         IPage<BillInvoice> billInvoiceIPage = billInvoiceMapper.selectBillInvoiceEffective(page, map);
489 505
         List<BillInvoice> records = billInvoiceIPage.getRecords();
490 506
 
507
+        Bill bill = billMapper.selectById(billId);
508
+        if (null == bill) {
509
+            return workbook;
510
+        }
491 511
 
492 512
         // 写入内容
513
+        int line = 0;
493 514
         for (int i = 1; i<= billInvoiceIPage.getPages(); i++) {
494 515
             for (int t = 0; t<records.size(); t++) {
516
+                line ++;
517
+                BillInvoice billInvoice = records.get(t);
495 518
                 row = sheet.createRow(++rowNum);
496
-                // 收费单号
519
+
520
+                // 序号
497 521
                 cell = row.createCell(0);
498
-                cell.setCellValue(records.get(t).getId());
522
+                cell.setCellValue(line);
499 523
                 cell.setCellStyle(style);
500
-                // 房屋信息
524
+
525
+                // 收费名称
501 526
                 cell = row.createCell(1);
502
-                cell.setCellValue(records.get(t).getPhase() + records.get(t).getBuilding() + records.get(t).getUnit() + records.get(t).getRoomNo());
527
+                cell.setCellValue(StringUtils.ifNull(billInvoice.getBillInvoiceExplain(), bill.getBillName()));
503 528
                 cell.setCellStyle(style);
504
-                // 业主姓名
505
-//                cell = row.createCell(2);
506
-//                cell.setCellValue(records.get(t).getOwnerName());
507
-//                cell.setCellStyle(style);
508
-                // 收费单说明
529
+
530
+                // 开始时间
509 531
                 cell = row.createCell(2);
510
-                cell.setCellValue(records.get(t).getBillInvoiceExplain());
532
+                cell.setCellValue(DateUtils.format(bill.getStartDate(), "yyyy-MM-dd"));
511 533
                 cell.setCellStyle(style);
512
-                // 金额(元)
534
+
535
+                // 结束时间
513 536
                 cell = row.createCell(3);
514
-                double price = Double.valueOf(records.get(t).getPayPrice()) / 100.00;
515
-                cell.setCellValue(price);
537
+                cell.setCellValue(DateUtils.format(bill.getEndDate(), "yyyy-MM-dd"));
516 538
                 cell.setCellStyle(style);
517
-                if (null != records.get(t).getBillStatementId()) {
518
-                    // 流水
519
-                    cell = row.createCell(4);
520
-                    cell.setCellValue(records.get(t).getBillStatementId());
521
-                    cell.setCellStyle(style);
522
-                }
523
-                // 缴费状态
539
+
540
+                // 类别
541
+                cell = row.createCell(4);
542
+                cell.setCellValue(bill.getIsTicket() ? "维修" : "物业");
543
+                cell.setCellStyle(style);
544
+
545
+                // 收费单号
524 546
                 cell = row.createCell(5);
525
-                cell.setCellValue("0".equals(records.get(t).getBillStatus()) ? "未交费" : "1".equals(records.get(t).getBillStatus()) ? "已线上缴费" : "已线下缴费");
547
+                cell.setCellValue(billInvoice.getId());
526 548
                 cell.setCellStyle(style);
527
-                // 缴费人
549
+
550
+                // 房屋信息
528 551
                 cell = row.createCell(6);
529
-                cell.setCellValue(records.get(t).getPayName());
552
+                cell.setCellValue(billInvoice.getPhase());
530 553
                 cell.setCellStyle(style);
531
-                if (null != records.get(t).getPayDate()) {
532
-                    // 缴费时间
533
-                    cell = row.createCell(7);
534
-                    cell.setCellValue(dateFormat.format(records.get(t).getPayDate()));
535
-                    cell.setCellStyle(style);
536
-                }
537
-                // 新建时间
554
+
555
+                cell = row.createCell(7);
556
+                cell.setCellValue(billInvoice.getBuilding());
557
+                cell.setCellStyle(style);
558
+
538 559
                 cell = row.createCell(8);
539
-                cell.setCellValue(dateFormat.format(records.get(t).getCreateDate()));
560
+                cell.setCellValue(billInvoice.getUnit());
540 561
                 cell.setCellStyle(style);
541
-                // 新建人
562
+
542 563
                 cell = row.createCell(9);
543
-                cell.setCellValue(records.get(t).getCreateUserName());
564
+                cell.setCellValue(billInvoice.getRoomNo());
544 565
                 cell.setCellStyle(style);
545
-                // 修改人
566
+
567
+                // 金额(元)
546 568
                 cell = row.createCell(10);
547
-                cell.setCellValue(records.get(t).getUpdateUserName());
569
+                double price = Double.valueOf(billInvoice.getPayPrice()) / 100.00;
570
+                cell.setCellValue(price);
548 571
                 cell.setCellStyle(style);
549
-                if (null != records.get(t).getUpdateDate()) {
550
-                    // 修改时间
572
+                if (null != billInvoice.getBillStatementId()) {
573
+                    // 流水
551 574
                     cell = row.createCell(11);
552
-                    cell.setCellValue(dateFormat.format(records.get(t).getUpdateDate()));
575
+                    cell.setCellValue(billInvoice.getBillStatementId());
576
+                    cell.setCellStyle(style);
577
+                }
578
+                // 缴费状态
579
+                cell = row.createCell(12);
580
+                cell.setCellValue("0".equals(billInvoice.getBillStatus()) ? "未交费" : "1".equals(billInvoice.getBillStatus()) ? "已线上缴费" : "已线下缴费");
581
+                cell.setCellStyle(style);
582
+                // 缴费人
583
+                cell = row.createCell(13);
584
+                cell.setCellValue(billInvoice.getPayName());
585
+                cell.setCellStyle(style);
586
+                if (null != billInvoice.getPayDate()) {
587
+                    // 缴费时间
588
+                    cell = row.createCell(14);
589
+                    cell.setCellValue(dateFormat.format(billInvoice.getPayDate()));
553 590
                     cell.setCellStyle(style);
554 591
                 }
592
+//                // 新建时间
593
+//                cell = row.createCell(8);
594
+//                cell.setCellValue(dateFormat.format(billInvoice.getCreateDate()));
595
+//                cell.setCellStyle(style);
596
+//                // 新建人
597
+//                cell = row.createCell(9);
598
+//                cell.setCellValue(billInvoice.getCreateUserName());
599
+//                cell.setCellStyle(style);
600
+//                // 修改人
601
+//                cell = row.createCell(10);
602
+//                cell.setCellValue(billInvoice.getUpdateUserName());
603
+//                cell.setCellStyle(style);
604
+//                if (null != billInvoice.getUpdateDate()) {
605
+//                    // 修改时间
606
+//                    cell = row.createCell(11);
607
+//                    cell.setCellValue(dateFormat.format(billInvoice.getUpdateDate()));
608
+//                    cell.setCellStyle(style);
609
+//                }
555 610
             }
556 611
             page.setCurrent(i);
557 612
             page.setSize(500);

+ 40
- 41
src/main/java/com/huiju/estateagents/property/service/impl/BillServiceImpl.java Bestand weergeven

@@ -1,6 +1,5 @@
1 1
 package com.huiju.estateagents.property.service.impl;
2 2
 
3
-import com.alibaba.fastjson.JSONObject;
4 3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5 4
 import com.baomidou.mybatisplus.core.metadata.IPage;
6 5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -38,7 +37,6 @@ import org.springframework.web.multipart.MultipartFile;
38 37
 
39 38
 import java.io.IOException;
40 39
 import java.io.InputStream;
41
-import java.text.ParseException;
42 40
 import java.text.SimpleDateFormat;
43 41
 import java.time.LocalDateTime;
44 42
 import java.util.Date;
@@ -106,15 +104,20 @@ public class BillServiceImpl extends ServiceImpl<BillMapper, Bill> implements IB
106 104
 
107 105
     @Override
108 106
     @Transactional(rollbackFor = Exception.class)
109
-    public ResponseBean updateBillNameAndBillExplainAndEndDate(TaUser userElement, String parameter) {
107
+    public ResponseBean updateBillNameAndBillExplainAndEndDate(TaUser userElement, Bill bill) {
110 108
         ResponseBean responseBean = new ResponseBean();
111
-        Bill bill = JSONObject.parseObject(parameter, Bill.class);
109
+//        Bill bill = JSONObject.parseObject(parameter, Bill.class);
112 110
         if (StringUtils.isEmpty(bill.getBillName())) {
113 111
             responseBean.addError("收费项名称不能为空");
114 112
             return responseBean;
115 113
         }
116
-        if (StringUtils.isEmpty(bill.getBillExplain())) {
117
-            responseBean.addError("缴费项说明");
114
+//        if (StringUtils.isEmpty(bill.getBillExplain())) {
115
+//            responseBean.addError("缴费项说明");
116
+//            return responseBean;
117
+//        }
118
+
119
+        if (bill.getStartDate() == null) {
120
+            responseBean.addError("截止时间不能为空");
118 121
             return responseBean;
119 122
         }
120 123
         if (bill.getEndDate() == null) {
@@ -187,26 +190,9 @@ public class BillServiceImpl extends ServiceImpl<BillMapper, Bill> implements IB
187 190
 
188 191
     @Override
189 192
     @Transactional(rollbackFor = Exception.class)
190
-    public ResponseBean getExcelData(Integer billId, MultipartFile file, String billExplain, String billName, Date endDate, String billStatus, TaUser userElement) {
193
+    public ResponseBean saveExcelData(Integer billId, MultipartFile file, Integer communityId, String billName, LocalDateTime startDate, LocalDateTime endDate, String billStatus, TaUser userElement) {
191 194
         ResponseBean responseBean = new ResponseBean();
192 195
 
193
-        // 获取本地时间
194
-        Date date = new Date();
195
-        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
196
-        String formatDate = simpleDateFormat.format(date);
197
-        Date parse = null;
198
-        try {
199
-            parse = simpleDateFormat.parse(formatDate);
200
-        } catch (ParseException e) {
201
-            e.printStackTrace();
202
-        }
203
-
204
-        if (endDate.getTime() < parse.getTime()) {
205
-            responseBean.addError("不能小于当前时间!");
206
-            return responseBean;
207
-        }
208
-
209
-
210 196
         List<BillInvoice> records = null;
211 197
         if (billId != null) {
212 198
             // 查询出这个收费单, 存在的缴费单数据
@@ -240,8 +226,10 @@ public class BillServiceImpl extends ServiceImpl<BillMapper, Bill> implements IB
240 226
 
241 227
         // 存入缴费项表
242 228
         Bill bill = new Bill();
229
+        bill.setCommunityId(communityId);
243 230
         bill.setBillName(billName);
244
-        bill.setBillExplain(billExplain);
231
+//        bill.setBillExplain(billExplain);
232
+        bill.setStartDate(startDate);
245 233
         bill.setEndDate(endDate);
246 234
         if (StringUtils.isNotBlank(strSumDouble)) {
247 235
             strSumDouble = strSumDouble.substring(0, strSumDouble.lastIndexOf("."));
@@ -344,6 +332,7 @@ public class BillServiceImpl extends ServiceImpl<BillMapper, Bill> implements IB
344 332
             List<BillInvoice> billInvoices = tempBills.stream().map(e -> {
345 333
                 BillInvoice billInvoice = new BillInvoice();
346 334
                 billInvoice.setOrgId(userElement.getOrgId());
335
+                billInvoice.setCommunityId(communityId);
347 336
                 billInvoice.setBillId(bill.getId());
348 337
 
349 338
                 /**
@@ -354,7 +343,7 @@ public class BillServiceImpl extends ServiceImpl<BillMapper, Bill> implements IB
354 343
                     throw new WisdomException("房产:" + e.getPhase() + e.getBuilding() + e.getUnit() + e.getLevel() + e.getRoomNo() + " 不存在!请核对!");
355 344
                 }
356 345
                 billInvoice.setRoomNoId(tpRoomNo.getId());
357
-                billInvoice.setBillInvoiceExplain(e.getBillExplain());
346
+                billInvoice.setBillInvoiceExplain(billName);
358 347
                 billInvoice.setPayPrice(e.getPayPrice());
359 348
                 billInvoice.setBillStatus("0");
360 349
                 billInvoice.setCreateUser(userElement.getUserId());
@@ -472,17 +461,17 @@ public class BillServiceImpl extends ServiceImpl<BillMapper, Bill> implements IB
472 461
             String roomNo = cell.getStringCellValue().trim();
473 462
 
474 463
 
475
-            // 收费说明可以为空
476
-            cell = getCell(row.getCell(6));
477
-            String billExplain = null;
478
-            if (null != cell) {
479
-                billExplain = cell.getStringCellValue().trim();
480
-                if (billExplain.length() > 100) {
481
-                    throw new WisdomException("第" + currentRow + "行 收费说明超出100字,请精简到100字以内");
482
-                }
483
-            }
464
+//            // 收费说明可以为空
465
+//            cell = getCell(row.getCell(6));
466
+//            String billExplain = null;
467
+//            if (null != cell) {
468
+//                billExplain = cell.getStringCellValue().trim();
469
+//                if (billExplain.length() > 100) {
470
+//                    throw new WisdomException("第" + currentRow + "行 收费说明超出100字,请精简到100字以内");
471
+//                }
472
+//            }
484 473
 
485
-            cell = getCell(row.getCell(7));
474
+            cell = getCell(row.getCell(6));
486 475
             if (null == cell) {
487 476
                 throw new WisdomException("第" + currentRow + "行 金额 不能为空");
488 477
             }
@@ -496,7 +485,7 @@ public class BillServiceImpl extends ServiceImpl<BillMapper, Bill> implements IB
496 485
             temp.setUnit(unit);
497 486
             temp.setRoomNo(roomNo);
498 487
             // temp.setOwnerName(ownerName);
499
-            temp.setBillExplain(billExplain);
488
+//            temp.setBillExplain(billExplain);
500 489
 
501 490
 
502 491
             if (StringUtils.isNotBlank(money)) {
@@ -608,7 +597,7 @@ public class BillServiceImpl extends ServiceImpl<BillMapper, Bill> implements IB
608 597
     }
609 598
 
610 599
     @Override
611
-    public ResponseBean downloadExcel(TaUser userElement) {
600
+    public ResponseBean downloadExcel(TaUser userElement, Integer communityId, String phaseId,String buildingId) {
612 601
         ResponseBean responseBean = new ResponseBean();
613 602
 
614 603
         InputStream inputStream = null;
@@ -631,9 +620,9 @@ public class BillServiceImpl extends ServiceImpl<BillMapper, Bill> implements IB
631 620
         Integer pageSize = 10;
632 621
         // 分页查询
633 622
 
634
-        List<TpRoomNo> records = tpRoomNoMapper.selectCommunityIdList(userElement.getOrgId(), pageNum * pageSize, pageSize);
623
+        List<TpRoomNo> records = tpRoomNoMapper.selectComunityList(userElement.getOrgId(), communityId, phaseId,buildingId,pageNum * pageSize, pageSize);
635 624
         // 总页数
636
-        Long pages = tpRoomNoMapper.selectCommunityIdCount(userElement.getOrgId());
625
+        Long pages = tpRoomNoMapper.selectCommunityIdCount(userElement.getOrgId(), communityId);
637 626
 
638 627
 
639 628
         // 行数 默认从 第 6 行开始
@@ -662,7 +651,7 @@ public class BillServiceImpl extends ServiceImpl<BillMapper, Bill> implements IB
662 651
                 if (index == records.size()) {
663 652
                     index = 0;
664 653
                     pageNum ++;
665
-                    records = tpRoomNoMapper.selectCommunityIdList(userElement.getOrgId(), pageNum * pageSize, pageSize);
654
+                    records = tpRoomNoMapper.selectComunityList(userElement.getOrgId(), communityId, phaseId,buildingId, pageNum * pageSize, pageSize);
666 655
                 }
667 656
                 if (records.isEmpty()) {
668 657
                     break;
@@ -806,4 +795,14 @@ public class BillServiceImpl extends ServiceImpl<BillMapper, Bill> implements IB
806 795
         return responseBean;
807 796
     }
808 797
 
798
+    @Override
799
+    public int getBillHouse(Integer orgId, String startDate, String endDate) {
800
+        return tpBillOrderMapper.getBillHouse(orgId, startDate, endDate);
801
+    }
802
+
803
+    @Override
804
+    public List<Map<String, Object>> getBillMapList(Integer orgId, String startDate, String endDate) {
805
+        return tpBillOrderMapper.getBillMapList(orgId, startDate, endDate);
806
+    }
807
+
809 808
 }

+ 19
- 2
src/main/java/com/huiju/estateagents/property/service/impl/BillStatementServiceImpl.java Bestand weergeven

@@ -52,6 +52,8 @@ public class BillStatementServiceImpl extends ServiceImpl<BillStatementMapper, B
52 52
 
53 53
         Integer pageNum = jsonObject.getInteger("pageNum");
54 54
         Integer pageSize = jsonObject.getInteger("pageSize");
55
+        // 小区ID
56
+        Integer communityId = jsonObject.getInteger("communityId");
55 57
         // 订单号 orderBumber
56 58
         String orderBumber = jsonObject.getString("orderBumber");
57 59
         // 缴费项 id
@@ -62,15 +64,26 @@ public class BillStatementServiceImpl extends ServiceImpl<BillStatementMapper, B
62 64
         Integer billInvoiceId = jsonObject.getInteger("billInvoiceId");
63 65
         // 缴费人手机号
64 66
         String payPhone = jsonObject.getString("payPhone");
67
+        // 订单状态
68
+        String orderStatus = jsonObject.getString("orderStatus");
69
+        // 缴费方式
70
+        String payType = jsonObject.getString("payType");
71
+        String startCreateDate = jsonObject.getString("startCreateDate");
72
+        String endCreateDate = jsonObject.getString("endCreateDate");
65 73
 
66 74
         // 参数
67 75
         Map<String, Object> map = Maps.newHashMap();
76
+        map.put("communityId", communityId);
68 77
         map.put("orderBumber", orderBumber);
69 78
         map.put("billId", billId);
70 79
         map.put("billName", billName);
71 80
         map.put("billInvoiceId", billInvoiceId);
72 81
         map.put("payPhone", payPhone);
73 82
         map.put("orgId", userElement.getOrgId());
83
+        map.put("orderStatus", orderStatus);
84
+        map.put("payType", payType);
85
+        map.put("startCreateDate", startCreateDate);
86
+        map.put("endCreateDate", endCreateDate);
74 87
 
75 88
         Page<TpBillOrder> page = new Page<>();
76 89
         page.setCurrent(pageNum);
@@ -99,7 +112,11 @@ public class BillStatementServiceImpl extends ServiceImpl<BillStatementMapper, B
99 112
             // 总金额
100 113
             Long sumPrice = childBillOrderList.stream().mapToLong(billOrder -> {
101 114
                 BillInvoice billInvoice = billInvoiceMapper.selectById(billOrder.getTpBillInvoiceId());
102
-                return billInvoice.getPayPrice();
115
+                Integer payPrice = 0;
116
+                if (null != billInvoice){
117
+                    payPrice = billInvoice.getPayPrice();
118
+                }
119
+                return payPrice;
103 120
             }).sum();
104 121
 
105 122
             e.setBillIdList(billIdCollect);
@@ -164,7 +181,7 @@ public class BillStatementServiceImpl extends ServiceImpl<BillStatementMapper, B
164 181
 
165 182
         Page<BillStatement> page = new Page<>();
166 183
         page.setCurrent(1);
167
-        page.setSize(500);
184
+        page.setSize(9999);
168 185
         IPage<BillStatement> billInvoiceIPage = billStatementMapper.getBillStatementAll(page, map);
169 186
         List<BillStatement> records = billInvoiceIPage.getRecords();
170 187
 

+ 47
- 30
src/main/java/com/huiju/estateagents/property/service/impl/BuildingOwnerInfoServiceImpl.java Bestand weergeven

@@ -13,8 +13,6 @@ import com.huiju.estateagents.center.taUser.mapper.TaUserMapper;
13 13
 import com.huiju.estateagents.entity.TaPerson;
14 14
 import com.huiju.estateagents.mapper.TaPersonMapper;
15 15
 import com.huiju.estateagents.property.common.Constant;
16
-import com.huiju.estateagents.property.common.UserElement;
17
-import com.huiju.estateagents.property.common.base.messagePush;
18 16
 import com.huiju.estateagents.property.dao.*;
19 17
 import com.huiju.estateagents.property.exception.WisdomException;
20 18
 import com.huiju.estateagents.property.model.*;
@@ -24,13 +22,11 @@ import com.google.common.collect.Maps;
24 22
 import lombok.extern.slf4j.Slf4j;
25 23
 import org.apache.commons.collections.CollectionUtils;
26 24
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
27
-import org.apache.poi.poifs.filesystem.POIFSFileSystem;
28 25
 import org.apache.poi.ss.usermodel.*;
29 26
 import org.apache.poi.xssf.usermodel.*;
30 27
 import org.slf4j.Logger;
31 28
 import org.slf4j.LoggerFactory;
32 29
 import org.springframework.beans.factory.annotation.Autowired;
33
-import org.springframework.beans.factory.annotation.Qualifier;
34 30
 import org.springframework.stereotype.Service;
35 31
 import org.springframework.transaction.annotation.Transactional;
36 32
 import org.springframework.web.multipart.MultipartFile;
@@ -115,6 +111,7 @@ public class BuildingOwnerInfoServiceImpl extends ServiceImpl<TpBuildingOwnerInf
115 111
         tpBuildingOwnerInfo.setOrgId(userElement.getOrgId());
116 112
         Long pageNum = jsonObject.getLong("pageNum") == null ? 1 : jsonObject.getLong("pageNum");
117 113
         Long pageSize = jsonObject.getLong("pageSize") == null ? 10 : jsonObject.getLong("pageSize");
114
+        tpBuildingOwnerInfo.setVerifyStatus(jsonObject.getString("verifyStatus"));
118 115
 
119 116
         Page page = new Page(pageNum,pageSize);
120 117
 
@@ -129,6 +126,11 @@ public class BuildingOwnerInfoServiceImpl extends ServiceImpl<TpBuildingOwnerInf
129 126
                 }
130 127
             }
131 128
 
129
+            TaUser taUser = taUserMapper.selectById(e.getUpdateName());
130
+            if (null != taUser){
131
+                e.setUpdateName(taUser.getUserName());
132
+            }
133
+
132 134
         });
133 135
 
134 136
         Map<String, Object> retMap = Maps.newHashMap();
@@ -182,13 +184,13 @@ public class BuildingOwnerInfoServiceImpl extends ServiceImpl<TpBuildingOwnerInf
182 184
         taUserVerifyMapper.updateById(userVerify);
183 185
 
184 186
         // app 用户信息
185
-        TaPerson person = taPersonMapper.selectById(userVerify.getPersonId());
187
+//        TaPerson person = taPersonMapper.selectById(userVerify.getPersonId());
186 188
 
187 189
 //         审核通过后,往楼栋资料库添加数据
188 190
         if ("1".equals(verify)) {
189
-            TpBuildingOwnerInfo tpBuildingOwnerInfo = insertTpBuildingOwnerInfo(userVerify.getPhaseId(), userVerify.getBuildingId(), userVerify.getUnitId(),
191
+            TpBuildingOwnerInfo tpBuildingOwnerInfo = insertTpBuildingOwnerInfo(userVerify.getCommunityId(), userVerify.getPhaseId(), userVerify.getBuildingId(), userVerify.getUnitId(),
190 192
                     userVerify.getLevelId(), userVerify.getRoomNoId(), userElement.getOrgId(), userElement.getUserId(),
191
-                    userVerify.getGender(), person.getNickname(), person.getPhone());
193
+                    userVerify.getGender(), userVerify.getOwnerName(), userVerify.getPhone(), userVerify.getIdCard());
192 194
 
193 195
             // 设置审核id
194 196
             tpBuildingOwnerInfo.setTaUserVerifyId(userVerify.getId());
@@ -251,9 +253,9 @@ public class BuildingOwnerInfoServiceImpl extends ServiceImpl<TpBuildingOwnerInf
251 253
 //        tpBuildingOwnerInfo.setOwnerName(appUser.getUserName());
252 254
 
253 255
         // 插入楼栋资料库
254
-        tpBuildingOwnerInfo = insertTpBuildingOwnerInfo(tpBuildingOwnerInfo.getPhaseId(), tpBuildingOwnerInfo.getBuildingId(), tpBuildingOwnerInfo.getUnitId(),
256
+        tpBuildingOwnerInfo = insertTpBuildingOwnerInfo(tpBuildingOwnerInfo.getCommunityId(), tpBuildingOwnerInfo.getPhaseId(), tpBuildingOwnerInfo.getBuildingId(), tpBuildingOwnerInfo.getUnitId(),
255 257
                 tpBuildingOwnerInfo.getLevelId(), tpBuildingOwnerInfo.getRoomNoId(), userElement.getOrgId(), userElement.getUserId(),
256
-                tpBuildingOwnerInfo.getGender(), tpBuildingOwnerInfo.getOwnerName(), tpBuildingOwnerInfo.getOwnerTel());
258
+                tpBuildingOwnerInfo.getGender(), tpBuildingOwnerInfo.getOwnerName(), tpBuildingOwnerInfo.getOwnerTel(), tpBuildingOwnerInfo.getIdCard());
257 259
 
258 260
         // 更新 APP 端用户姓名
259 261
 //        appUser.setUserName(tpBuildingOwnerInfo.getOwnerName());
@@ -345,6 +347,7 @@ public class BuildingOwnerInfoServiceImpl extends ServiceImpl<TpBuildingOwnerInf
345 347
 
346 348
     /**
347 349
      * 插入 楼栋资料库
350
+     * @param communityId
348 351
      * @param phaseId
349 352
      * @param buildingId
350 353
      * @param unitId
@@ -356,9 +359,9 @@ public class BuildingOwnerInfoServiceImpl extends ServiceImpl<TpBuildingOwnerInf
356 359
      * @param ownerName
357 360
      * @param ownerTel
358 361
      */
359
-    private TpBuildingOwnerInfo insertTpBuildingOwnerInfo (Integer phaseId, Integer buildingId, Integer unitId,
360
-                                                           Integer levelId, Integer roomNoId, Integer orgId,
361
-                                                           Integer userId, String gender, String ownerName, String ownerTel) {
362
+    private TpBuildingOwnerInfo insertTpBuildingOwnerInfo(Integer communityId, Integer phaseId, Integer buildingId, Integer unitId,
363
+                                                          Integer levelId, Integer roomNoId, Integer orgId,
364
+                                                          Integer userId, String gender, String ownerName, String ownerTel, String idCard) {
362 365
         TpBuildingOwnerInfo tpBuildingOwnerInfo = new TpBuildingOwnerInfo();
363 366
 
364 367
         // 查询 期/楼栋/单元/层/户号
@@ -370,6 +373,7 @@ public class BuildingOwnerInfoServiceImpl extends ServiceImpl<TpBuildingOwnerInf
370 373
 
371 374
         // 主键是自增的, 所以设置为 null
372 375
         tpBuildingOwnerInfo.setId(null);
376
+        tpBuildingOwnerInfo.setCommunityId(communityId);
373 377
         tpBuildingOwnerInfo.setPhaseId(phaseId);
374 378
         tpBuildingOwnerInfo.setPhaseName(phase.getName());
375 379
         tpBuildingOwnerInfo.setBuildingId(buildingId);
@@ -382,6 +386,7 @@ public class BuildingOwnerInfoServiceImpl extends ServiceImpl<TpBuildingOwnerInf
382 386
         tpBuildingOwnerInfo.setRoomNoName(roomNo.getName());
383 387
         tpBuildingOwnerInfo.setOwnerName(ownerName);
384 388
         tpBuildingOwnerInfo.setOwnerTel(ownerTel);
389
+        tpBuildingOwnerInfo.setIdCard(idCard);
385 390
         tpBuildingOwnerInfo.setGender(gender);
386 391
         tpBuildingOwnerInfo.setUpdateUser(userId);
387 392
         tpBuildingOwnerInfo.setUpdateDate(LocalDateTime.now());
@@ -389,8 +394,6 @@ public class BuildingOwnerInfoServiceImpl extends ServiceImpl<TpBuildingOwnerInf
389 394
         tpBuildingOwnerInfo.setCreateUser(userId);
390 395
         tpBuildingOwnerInfo.setVerifyStatus("0");
391 396
         tpBuildingOwnerInfo.setPairStatus("0");
392
-
393
-        // 添加的时候, 默认是当前操作的小区
394 397
         tpBuildingOwnerInfo.setOrgId(orgId);
395 398
 
396 399
         int row = tpBuildingOwnerInfoMapper.insert(tpBuildingOwnerInfo);
@@ -419,7 +422,7 @@ public class BuildingOwnerInfoServiceImpl extends ServiceImpl<TpBuildingOwnerInf
419 422
 
420 423
 
421 424
     @Override
422
-    public ResponseBean getPhaseList(Integer orgId) {
425
+    public ResponseBean getPhaseList(Integer orgId, Integer communityId) {
423 426
 
424 427
         ResponseBean responseBean = new ResponseBean();
425 428
         if (null == orgId || "".equals(orgId)) {
@@ -429,6 +432,7 @@ public class BuildingOwnerInfoServiceImpl extends ServiceImpl<TpBuildingOwnerInf
429 432
         Map<String, Object> map = Maps.newHashMap();
430 433
         // 小区
431 434
         map.put("org_id", orgId);
435
+        map.put("community_id", communityId);
432 436
         QueryWrapper<TpPhase> queryWrapper = new QueryWrapper<>();
433 437
         queryWrapper.allEq(map, false);
434 438
     
@@ -442,12 +446,13 @@ public class BuildingOwnerInfoServiceImpl extends ServiceImpl<TpBuildingOwnerInf
442 446
      * 上传excel里面的内容
443 447
      *
444 448
      * @param file
449
+     * @param communityId
445 450
      * @param userElement
446 451
      * @return
447 452
      */
448 453
     @Override
449 454
     @Transactional(rollbackFor = Exception.class)
450
-    public ResponseBean submitExcelData(MultipartFile file, TaUser userElement) {
455
+    public ResponseBean submitExcelData(MultipartFile file, Integer communityId, TaUser userElement) {
451 456
         ResponseBean responseBean = new ResponseBean();
452 457
         responseBean = getExcelData(file);
453 458
 
@@ -464,6 +469,7 @@ public class BuildingOwnerInfoServiceImpl extends ServiceImpl<TpBuildingOwnerInf
464 469
             e.setOrgId(userElement.getOrgId());
465 470
             e.setVerifyStatus("0");
466 471
             e.setPairStatus("0");
472
+            e.setCommunityId(communityId);
467 473
             e.setCreateUser(userElement.getUserId());
468 474
             e.setCreateDate(LocalDateTime.now());
469 475
         });
@@ -685,9 +691,9 @@ public class BuildingOwnerInfoServiceImpl extends ServiceImpl<TpBuildingOwnerInf
685 691
                 cell = row.getCell(3);
686 692
                 cell.setCellType(Cell.CELL_TYPE_STRING);
687 693
                 String ownerTel = cell.getStringCellValue().trim();
688
-                cell = row.getCell(4);
689
-                cell.setCellType(Cell.CELL_TYPE_STRING);
690
-                String ownerRole = cell.getStringCellValue().trim();
694
+//                cell = row.getCell(4);
695
+//                cell.setCellType(Cell.CELL_TYPE_STRING);
696
+//                String ownerRole = cell.getStringCellValue().trim();
691 697
                 int currentRow = j+1;
692 698
                 if (StringUtils.isEmpty(buildingInfo)){
693 699
                     responseBean.addError("第" + currentRow + "行" + "房产信息不能为空!");
@@ -712,10 +718,10 @@ public class BuildingOwnerInfoServiceImpl extends ServiceImpl<TpBuildingOwnerInf
712 718
                     return responseBean;
713 719
                 }
714 720
 
715
-                if (StringUtils.isEmpty(ownerRole)){
716
-                    responseBean.addError("第" + currentRow + "行" + "身份不能为空!");
717
-                    return responseBean;
718
-                }
721
+//                if (StringUtils.isEmpty(ownerRole)){
722
+//                    responseBean.addError("第" + currentRow + "行" + "身份不能为空!");
723
+//                    return responseBean;
724
+//                }
719 725
                 LambdaQueryWrapper<TpBuildingOwnerInfo> ownerInfoQueryWrapper = new LambdaQueryWrapper<>();
720 726
                 ownerInfoQueryWrapper.eq(TpBuildingOwnerInfo::getOwnerTel,ownerTel);
721 727
                 ownerInfoQueryWrapper.eq(TpBuildingOwnerInfo::getRoomNoId,roomNoId);
@@ -736,7 +742,7 @@ public class BuildingOwnerInfoServiceImpl extends ServiceImpl<TpBuildingOwnerInf
736 742
                 //构建数据
737 743
                 TpBuildingOwnerInfo checkOwnerInfo = new TpBuildingOwnerInfo();
738 744
                 checkOwnerInfo.setId(null);
739
-                checkOwnerInfo.setRoleName(ownerRole);
745
+//                checkOwnerInfo.setRoleName(ownerRole);
740 746
                 checkOwnerInfo.setOwnerName(ownerName);
741 747
                 checkOwnerInfo.setOwnerTel(ownerTel);
742 748
                 checkOwnerInfo.setPhaseId(tpRoomNo.getPhaseId());
@@ -976,7 +982,7 @@ public class BuildingOwnerInfoServiceImpl extends ServiceImpl<TpBuildingOwnerInf
976 982
     }
977 983
 
978 984
     @Override
979
-    public ResponseBean downloadExcel(TaUser userElement) {
985
+    public ResponseBean downloadExcel(Integer communityId, TaUser userElement) {
980 986
         ResponseBean responseBean = new ResponseBean();
981 987
 
982 988
         InputStream inputStream = null;
@@ -999,9 +1005,9 @@ public class BuildingOwnerInfoServiceImpl extends ServiceImpl<TpBuildingOwnerInf
999 1005
         Integer pageSize = 10;
1000 1006
 
1001 1007
         // 分页查询
1002
-        List<TpRoomNo> records = tpRoomNoMapper.selectCommunityIdList(userElement.getOrgId(),pageNum * pageSize, pageSize);
1008
+        List<TpRoomNo> records = tpRoomNoMapper.selectCommunityIdList(userElement.getOrgId(), communityId,pageNum * pageSize, pageSize);
1003 1009
         // 总页数
1004
-        Long pages = tpRoomNoMapper.selectCommunityIdCount(userElement.getOrgId());
1010
+        Long pages = tpRoomNoMapper.selectCommunityIdCount(userElement.getOrgId(), communityId);
1005 1011
 
1006 1012
 
1007 1013
         // 行数 默认从 第 3 行开始
@@ -1050,7 +1056,7 @@ public class BuildingOwnerInfoServiceImpl extends ServiceImpl<TpBuildingOwnerInf
1050 1056
                 if (index == records.size()) {
1051 1057
                     index = 0;
1052 1058
                     pageNum ++;
1053
-                    records = tpRoomNoMapper.selectCommunityIdList(userElement.getOrgId(),pageNum * pageSize, pageSize);
1059
+                    records = tpRoomNoMapper.selectCommunityIdList(userElement.getOrgId(), communityId, pageNum * pageSize, pageSize);
1054 1060
                 }
1055 1061
                 if (records.isEmpty()) {
1056 1062
                     break;
@@ -1233,8 +1239,9 @@ public class BuildingOwnerInfoServiceImpl extends ServiceImpl<TpBuildingOwnerInf
1233 1239
     @Override
1234 1240
     public ResponseBean hasBuild(String personId, Integer orgId ,Integer phaseId, Integer buildingId, Integer unitId, Integer levelId, Integer roomNoId) {
1235 1241
         ResponseBean responseBean = new ResponseBean();
1242
+        TaPerson taPerson = taPersonMapper.selectById(personId);
1236 1243
         // 1.检验该用户关联有没有这个 户号,审核通过的
1237
-        List<TaUserVerify> taUserVerifyEqVerifyStatus1 = taUserVerifyMapper.selectWxCommunityAndAddress(personId,1, phaseId, buildingId, unitId, levelId, roomNoId, 1);
1244
+        List<TaUserVerify> taUserVerifyEqVerifyStatus1 = taUserVerifyMapper.selectWxCommunityAndAddress(personId,taPerson.getOrgId(), phaseId, buildingId, unitId, levelId, roomNoId, 1);
1238 1245
         // List<TaUserVerify> taUserVerify = taUserVerifyMapper.selectCommunityAndAddressAndNotVerifyStatus2(userElement.getId(),userElement.getCommunityId(), phaseId, buildingId, unitId, levelId, roomNoId);
1239 1246
         if (null != taUserVerifyEqVerifyStatus1 && taUserVerifyEqVerifyStatus1.size() > 0) {
1240 1247
             responseBean.addError("你已关联此房间,无法再次关联!");
@@ -1242,7 +1249,7 @@ public class BuildingOwnerInfoServiceImpl extends ServiceImpl<TpBuildingOwnerInf
1242 1249
         }
1243 1250
 
1244 1251
         // 1.检验该用户关联有没有这个 户号,待审核
1245
-        List<TaUserVerify> taUserVerifyEqVerifyStatus0 = taUserVerifyMapper.selectWxCommunityAndAddress(personId,1, phaseId, buildingId, unitId, levelId, roomNoId, 0);
1252
+        List<TaUserVerify> taUserVerifyEqVerifyStatus0 = taUserVerifyMapper.selectWxCommunityAndAddress(personId,taPerson.getOrgId(), phaseId, buildingId, unitId, levelId, roomNoId, 0);
1246 1253
         if (null != taUserVerifyEqVerifyStatus0 && taUserVerifyEqVerifyStatus0.size() > 0) {
1247 1254
             responseBean.addError("您已提交了这个房产的审核!请等待户主或者物业审核后,再进行下一步操作!");
1248 1255
             return responseBean;
@@ -1266,4 +1273,14 @@ public class BuildingOwnerInfoServiceImpl extends ServiceImpl<TpBuildingOwnerInf
1266 1273
         responseBean.addSuccess(result);
1267 1274
         return responseBean;
1268 1275
     }
1276
+
1277
+    @Override
1278
+    public int getAvailableProp(Integer orgId) {
1279
+        return tpBuildingOwnerInfoMapper.getAvailableProp(orgId);
1280
+    }
1281
+
1282
+    @Override
1283
+    public Map<String, Object> getVerifyNum(Integer orgId) {
1284
+        return tpBuildingOwnerInfoMapper.getVerifyNum(orgId);
1285
+    }
1269 1286
 }

+ 154
- 48
src/main/java/com/huiju/estateagents/property/service/impl/BuildingTreeServiceImpl.java Bestand weergeven

@@ -2,18 +2,16 @@ package com.huiju.estateagents.property.service.impl;
2 2
 
3 3
 import com.alibaba.fastjson.JSONObject;
4 4
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5
+import com.baomidou.mybatisplus.core.metadata.IPage;
5 6
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
6 7
 import com.huiju.estateagents.base.ResponseBean;
7 8
 import com.huiju.estateagents.center.taUser.entity.TaUser;
8 9
 import com.huiju.estateagents.property.common.Constant;
9
-import com.huiju.estateagents.property.common.UserElement;
10 10
 import com.huiju.estateagents.property.dao.*;
11 11
 import com.huiju.estateagents.property.model.*;
12 12
 import com.huiju.estateagents.property.service.BuildingTreeServiceI;
13 13
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
14
-import org.apache.poi.ss.usermodel.Row;
15
-import org.apache.poi.ss.usermodel.Sheet;
16
-import org.apache.poi.ss.usermodel.Workbook;
14
+import org.apache.poi.ss.usermodel.*;
17 15
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
18 16
 import org.slf4j.Logger;
19 17
 import org.slf4j.LoggerFactory;
@@ -100,13 +98,24 @@ public class BuildingTreeServiceImpl implements BuildingTreeServiceI {
100 98
 			for (int j = 3; j <= lastRowNum; j++) {
101 99
 				Row row = sheet.getRow(j);
102 100
 				TpBuildingOwnerInfo tpBuildingOwnerInfo = new TpBuildingOwnerInfo();
103
-				String phase = row.getCell(0).getStringCellValue().trim();
104
-				String building = row.getCell(1).getStringCellValue().trim();
105
-				String unit = row.getCell(2).getStringCellValue().trim();
106
-				String level = row.getCell(3).getStringCellValue().trim();
107
-				String roomNo = row.getCell(4).getStringCellValue().trim();
108
-				
101
+				String phase = null;
102
+				String building = null;
103
+				String unit = null;
104
+				String level = null;
105
+				String roomNo = null;
109 106
 				int currentRow = j+1;
107
+				try {
108
+					phase = getStringOfCell(row.getCell(0));
109
+					building = getStringOfCell(row.getCell(1));
110
+					unit = getStringOfCell(row.getCell(2));
111
+					level = getStringOfCell(row.getCell(3));
112
+					roomNo = getStringOfCell(row.getCell(4));
113
+				} catch (Exception e) {
114
+					e.printStackTrace();
115
+					responseBean.addError(String.format("第 %d 行, 格式错误, 数据只能为字符或数字格式", currentRow));
116
+					return responseBean;
117
+				}
118
+
110 119
 				if (StringUtils.isEmpty(phase)){
111 120
 					responseBean.addError("第" + currentRow + "行" + "期/区不能为空!");
112 121
 					return responseBean;
@@ -154,16 +163,28 @@ public class BuildingTreeServiceImpl implements BuildingTreeServiceI {
154 163
 		responseBean.addSuccess(data);
155 164
 		return responseBean;
156 165
 	}
166
+
167
+	private String getStringOfCell(Cell cell) throws Exception {
168
+		CellType cellTypeEnum = cell.getCellTypeEnum();
169
+		if (cellTypeEnum.equals(CellType.STRING)) {
170
+			return cell.getStringCellValue().trim();
171
+		} else if (cellTypeEnum.equals(CellType.NUMERIC)) {
172
+			return String.valueOf((int) cell.getNumericCellValue()).trim();
173
+		} else {
174
+			throw new Exception("数据内容格式错误");
175
+		}
176
+	}
157 177
 	
158 178
 	/**
159 179
 	 * 上传小区的基础数据
160 180
 	 *
161 181
 	 * @param file
182
+	 * @param communityId
162 183
 	 * @param userElement
163 184
 	 * @return
164 185
 	 */
165 186
 	@Override
166
-	public ResponseBean submitExcelData(MultipartFile file, TaUser userElement) {
187
+	public ResponseBean submitExcelData(MultipartFile file, Integer communityId, TaUser userElement) {
167 188
 		ResponseBean responseBean = new ResponseBean();
168 189
 		responseBean = getExcelData(file);
169 190
 //		if (!responseBean.getCode().equals(Constant.RESPONSE_SUCCESS)){
@@ -177,7 +198,7 @@ public class BuildingTreeServiceImpl implements BuildingTreeServiceI {
177 198
 		Integer orgId = userElement.getOrgId();
178 199
 		
179 200
 		//保存数据到表中--拆分数据
180
-		saveBuildingTreeData(orgId,list);
201
+		saveBuildingTreeData(orgId, communityId, list);
181 202
 		responseBean.addSuccess("success");
182 203
 		return responseBean;
183 204
 	}
@@ -275,6 +296,8 @@ public class BuildingTreeServiceImpl implements BuildingTreeServiceI {
275 296
 		 String type= object.getString("type");
276 297
 		 //当前输入的节点内容
277 298
 		 String nodeNumber= object.getString("nodeNumber");
299
+		 // 小区
300
+		Integer communityId = object.getInteger("communityId");
278 301
 
279 302
 		/*查询出期*/
280 303
 		if(type.equals("phase")) {
@@ -290,8 +313,10 @@ public class BuildingTreeServiceImpl implements BuildingTreeServiceI {
290 313
 			TpPhase tpPhase= new TpPhase();
291 314
 					tpPhase.setOrgId(orgId);
292 315
 					tpPhase.setName(nodeNumber);
316
+					tpPhase.setCommunityId(communityId);
293 317
 					tpPhase.setCreateDate(LocalDateTime.now());
294 318
 					tpPhaseMapper.insert(tpPhase);
319
+			return ResponseBean.success(tpPhase);
295 320
 		}
296 321
 		TpPhase	tpPhase= tpPhaseMapper.selectById(id);
297 322
 		if(type.equals("building")){
@@ -311,8 +336,10 @@ public class BuildingTreeServiceImpl implements BuildingTreeServiceI {
311 336
 						 .setPhaseId(tpPhase.getId())
312 337
 						 .setPhaseName(tpPhase.getName())
313 338
 						 .setName(nodeNumber)
339
+							.setCommunityId(communityId)
314 340
 						 .setCreateDate(LocalDateTime.now());
315 341
 			tpBuildingMapper.insert(tpBuilding);
342
+			return ResponseBean.success(tpBuilding);
316 343
 		}
317 344
 		//查询栋,维护单元
318 345
 		 TpBuilding selectTpBuilding= tpBuildingMapper.selectById(id);
@@ -335,8 +362,10 @@ public class BuildingTreeServiceImpl implements BuildingTreeServiceI {
335 362
 						.setBuildingName(selectTpBuilding.getName())
336 363
 						.setBuildingId(selectTpBuilding.getId())
337 364
 						.setName(nodeNumber)
365
+						.setCommunityId(communityId)
338 366
 						.setCreateDate(LocalDateTime.now());
339 367
 		 	 tpUnitMapper.insert(tpUnit);
368
+			return ResponseBean.success(tpUnit);
340 369
 		 }
341 370
 
342 371
 		//查询单元,维护楼层
@@ -364,8 +393,10 @@ public class BuildingTreeServiceImpl implements BuildingTreeServiceI {
364 393
 				.setUnitId(selectTpUnit.getId())
365 394
 				.setUnitName(selectTpUnit.getName())
366 395
 				.setName(nodeNumber)
396
+				.setCommunityId(communityId)
367 397
 				.setCreateDate(LocalDateTime.now());
368 398
 			 tpLevelMapper.insert(tpLevel);
399
+			return ResponseBean.success(tpLevel);
369 400
 			}
370 401
 		 //房间号
371 402
 	 	TpLevel selectTpLevel= tpLevelMapper.selectById(id);
@@ -392,8 +423,10 @@ public class BuildingTreeServiceImpl implements BuildingTreeServiceI {
392 423
 							.setLevelId(selectTpLevel.getId())
393 424
 							.setLevelName(selectTpLevel.getName())
394 425
 							.setName(nodeNumber)
426
+					.setCommunityId(communityId)
395 427
 							.setCreateDate(LocalDateTime.now());
396 428
 			tpRoomNoMapper.insert(tpRoomNo);
429
+			return ResponseBean.success(tpRoomNo);
397 430
 		}
398 431
 		responseBean.addSuccess("成功");
399 432
 		return responseBean;
@@ -497,10 +530,11 @@ public class BuildingTreeServiceImpl implements BuildingTreeServiceI {
497 530
 							tpRoomNoMapper.delete(tpRoomNoQueryWrapper);
498 531
 						}
499 532
 				}
533
+
534
+					//删除所有楼层
535
+					tpLevelMapper.delete(tpLevel);
500 536
 			  }
501 537
 			}
502
-			//删除所有楼层
503
-			tpLevelMapper.delete(tpLevel);
504 538
 			//删除此单元
505 539
 			tpUnitMapper.delete(tpUnit);
506 540
 			//删除栋
@@ -515,47 +549,46 @@ public class BuildingTreeServiceImpl implements BuildingTreeServiceI {
515 549
 			building.eq("name", phase.getName());
516 550
 			List<TpBuilding> tpBuildingList= tpBuildingMapper.selectList(building);
517 551
 			for (TpBuilding tpBuilding:tpBuildingList){
518
-			//删除单元-楼层-房间
519
-			QueryWrapper<TpUnit> tpUnit = new QueryWrapper<>();
520
-			List<TpUnit> unitList=null;
521
-			if (null!=tpBuilding) {
552
+				//删除单元-楼层-房间
553
+				QueryWrapper<TpUnit> tpUnit = new QueryWrapper<>();
522 554
 				tpUnit.eq("org_id", tpBuilding.getOrgId());
523 555
 				tpUnit.eq("phase_id", tpBuilding.getPhaseId());
524 556
 				tpUnit.eq("building_id", tpBuilding.getId());
525 557
 				tpUnit.eq("building_name", tpBuilding.getName());
526
-				unitList= tpUnitMapper.selectList(tpUnit);
527
-			}
528
-			//先查询楼层
529
-			QueryWrapper<TpLevel> tpLevel = new QueryWrapper<>();
530
-			if (null!=unitList) {
531
-				for (TpUnit unit : unitList) {
532
-					tpLevel.eq("phase_id", unit.getPhaseId());
533
-					tpLevel.eq("org_id", unit.getOrgId());
534
-					tpLevel.eq("building_id", unit.getBuildingId());
535
-					tpLevel.eq("unit_id", unit.getId());
536
-					tpLevel.eq("unit_name", unit.getName());
537
-					//查询房间
538
-					List<TpLevel> levelList = tpLevelMapper.selectList(tpLevel);
539
-					if (null != levelList) {
540
-						for (TpLevel level : levelList) {
541
-							QueryWrapper<TpRoomNo> tpRoomNoQueryWrapper = new QueryWrapper<>();
542
-							tpRoomNoQueryWrapper.eq("phase_id", level.getPhaseId());
543
-							tpRoomNoQueryWrapper.eq("org_id", level.getOrgId());
544
-							tpRoomNoQueryWrapper.eq("building_id", level.getBuildingId());
545
-							tpRoomNoQueryWrapper.eq("unit_id", level.getUnitId());
546
-							tpRoomNoQueryWrapper.eq("level_id", level.getId());
547
-							tpRoomNoQueryWrapper.eq("level_name", level.getName());
548
-							//先删除所有房间
549
-							tpRoomNoMapper.delete(tpRoomNoQueryWrapper);
558
+
559
+				List<TpUnit> unitList = tpUnitMapper.selectList(tpUnit);
560
+
561
+				//先查询楼层
562
+				QueryWrapper<TpLevel> tpLevel = new QueryWrapper<>();
563
+				if (null!=unitList) {
564
+					for (TpUnit unit : unitList) {
565
+						tpLevel.eq("phase_id", unit.getPhaseId());
566
+						tpLevel.eq("org_id", unit.getOrgId());
567
+						tpLevel.eq("building_id", unit.getBuildingId());
568
+						tpLevel.eq("unit_id", unit.getId());
569
+						tpLevel.eq("unit_name", unit.getName());
570
+						//查询房间
571
+						List<TpLevel> levelList = tpLevelMapper.selectList(tpLevel);
572
+						if (null != levelList) {
573
+							for (TpLevel level : levelList) {
574
+								QueryWrapper<TpRoomNo> tpRoomNoQueryWrapper = new QueryWrapper<>();
575
+								tpRoomNoQueryWrapper.eq("phase_id", level.getPhaseId());
576
+								tpRoomNoQueryWrapper.eq("org_id", level.getOrgId());
577
+								tpRoomNoQueryWrapper.eq("building_id", level.getBuildingId());
578
+								tpRoomNoQueryWrapper.eq("unit_id", level.getUnitId());
579
+								tpRoomNoQueryWrapper.eq("level_id", level.getId());
580
+								tpRoomNoQueryWrapper.eq("level_name", level.getName());
581
+								//先删除所有房间
582
+								tpRoomNoMapper.delete(tpRoomNoQueryWrapper);
583
+							}
550 584
 						}
585
+						//再删除所有楼层
586
+						tpLevelMapper.delete(tpLevel);
551 587
 					}
552
-					//再删除所有楼层
553
-					tpLevelMapper.delete(tpLevel);
554 588
 				}
589
+				//删除此单元
590
+				tpUnitMapper.delete(tpUnit);
555 591
 			}
556
-			//删除此单元
557
-			tpUnitMapper.delete(tpUnit);
558
-	}
559 592
 			//删除栋
560 593
 			tpBuildingMapper.delete(building);
561 594
 			//删除整个期
@@ -565,7 +598,74 @@ public class BuildingTreeServiceImpl implements BuildingTreeServiceI {
565 598
 		return responseBean;
566 599
 	}
567 600
 
568
-	private void saveBuildingTreeData(Integer orgId, List<TpBuildingOwnerInfo> list) {
601
+	@Override
602
+	public IPage<TpRoomNo> getRoomList(IPage<TpRoomNo> page, Integer orgId, Integer phaseId, Integer buildingId, Integer unitId, Integer levelId, Integer roomNoId) {
603
+		return tpRoomNoMapper.getRoomList(page, orgId, phaseId, buildingId, unitId, levelId, roomNoId);
604
+	}
605
+
606
+	@Override
607
+	public ResponseBean editNode(Map<String, Object> parameter, Integer orgId) {
608
+		if (null == parameter) {
609
+			return ResponseBean.error("编辑内容不能为空", ResponseBean.ERROR_MISSING_PARAMS);
610
+		}
611
+
612
+		Integer id = (Integer) parameter.get("id");
613
+		String type = (String) parameter.get("type");
614
+		String name = (String) parameter.get("name");
615
+
616
+		if (null == id || StringUtils.isEmpty(type) || StringUtils.isEmpty(name)) {
617
+			return ResponseBean.error("部分编辑内容不能为空", ResponseBean.ERROR_MISSING_PARAMS);
618
+		}
619
+
620
+		// 如果是期数
621
+		if ("phase".equals(type)) {
622
+			tpPhaseMapper.updateName(orgId, id, name);
623
+			tpBuildingMapper.updatePhaseName(orgId, id, name);
624
+			tpUnitMapper.updatePhaseName(orgId, id, name);
625
+			tpLevelMapper.updatePhaseName(orgId, id, name);
626
+			tpRoomNoMapper.updatePhaseName(orgId, id, name);
627
+			return ResponseBean.success("success");
628
+		}
629
+
630
+		// 如果是楼栋
631
+		if ("building".equals(type)) {
632
+			tpBuildingMapper.updateName(orgId, id, name);
633
+			tpUnitMapper.updateBuildingName(orgId, id, name);
634
+			tpLevelMapper.updateBuildingName(orgId, id, name);
635
+			tpRoomNoMapper.updateBuildingName(orgId, id, name);
636
+			return ResponseBean.success("success");
637
+		}
638
+
639
+		// 如果是单元
640
+		if ("unit".equals(type)) {
641
+			tpUnitMapper.updateName(orgId, id, name);
642
+			tpLevelMapper.updateUnitName(orgId, id, name);
643
+			tpRoomNoMapper.updateUnitName(orgId, id, name);
644
+			return ResponseBean.success("success");
645
+		}
646
+
647
+		// 如果是楼层
648
+		if ("level".equals(type)) {
649
+			tpLevelMapper.updateName(orgId, id, name);
650
+			tpRoomNoMapper.updateLevelName(orgId, id, name);
651
+			return ResponseBean.success("success");
652
+		}
653
+
654
+		// 如果是房间
655
+		if ("roomNo".equals(type)) {
656
+			tpRoomNoMapper.updateName(orgId, id, name);
657
+			return ResponseBean.success("success");
658
+		}
659
+
660
+		return ResponseBean.error("数据类型不正确", ResponseBean.ERROR_ILLEGAL_PARAMS);
661
+	}
662
+
663
+	@Override
664
+	public int getRoomNum(Integer orgId) {
665
+		return tpRoomNoMapper.getRoomNum(orgId);
666
+	}
667
+
668
+	private void saveBuildingTreeData(Integer orgId, Integer communityId, List<TpBuildingOwnerInfo> list) {
569 669
 		String lastPhaseName = "";
570 670
 		String lastBuildingName = "";
571 671
 		String lastUnitName = "";
@@ -583,9 +683,11 @@ public class BuildingTreeServiceImpl implements BuildingTreeServiceI {
583 683
 				tpPhase.setName(tpBuildingOwnerInfo.getPhaseName());
584 684
 				tpPhase.setOrgId(orgId);
585 685
 				tpPhase.setCreateDate(LocalDateTime.now());
686
+			tpPhase.setCommunityId(communityId);
586 687
 
587 688
 				QueryWrapper<TpPhase> phaseQueryWrapper = new QueryWrapper<>();
588 689
 				phaseQueryWrapper.eq("org_id", orgId);
690
+			phaseQueryWrapper.eq("community_id", communityId);
589 691
 				phaseQueryWrapper.eq("`NAME`", tpBuildingOwnerInfo.getPhaseName());
590 692
 				TpPhase selectPhase = tpPhaseMapper.selectOne(phaseQueryWrapper);
591 693
 				// 判断是否存在库里
@@ -609,6 +711,7 @@ public class BuildingTreeServiceImpl implements BuildingTreeServiceI {
609 711
 				tpBuilding.setPhaseName(lastPhaseName);
610 712
 				tpBuilding.setName(tpBuildingOwnerInfo.getBuildingName());
611 713
 				tpBuilding.setCreateDate(LocalDateTime.now());
714
+				tpBuilding.setCommunityId(communityId);
612 715
 
613 716
 				QueryWrapper<TpBuilding> buildingQueryWrapper = new QueryWrapper<>();
614 717
 				buildingQueryWrapper.eq("org_id", orgId);
@@ -633,6 +736,7 @@ public class BuildingTreeServiceImpl implements BuildingTreeServiceI {
633 736
 				tpUnit.setBuildingName(lastBuildingName);
634 737
 				tpUnit.setName(tpBuildingOwnerInfo.getUnitName());
635 738
 				tpUnit.setCreateDate(LocalDateTime.now());
739
+				tpUnit.setCommunityId(communityId);
636 740
 
637 741
 				QueryWrapper<TpUnit> unitQueryWrapper = new QueryWrapper<>();
638 742
 				unitQueryWrapper.eq("org_id", orgId);
@@ -662,6 +766,7 @@ public class BuildingTreeServiceImpl implements BuildingTreeServiceI {
662 766
 				tpLevel.setUnitName(lastUnitName);
663 767
 				tpLevel.setName(tpBuildingOwnerInfo.getLevelName());
664 768
 				tpLevel.setCreateDate(LocalDateTime.now());
769
+				tpLevel.setCommunityId(communityId);
665 770
 
666 771
 				QueryWrapper<TpLevel> levelQueryWrapper = new QueryWrapper<>();
667 772
 				levelQueryWrapper.eq("org_id", orgId);
@@ -693,6 +798,7 @@ public class BuildingTreeServiceImpl implements BuildingTreeServiceI {
693 798
 				tpRoomNo.setLevelName(lastLevelName);
694 799
 				tpRoomNo.setName(tpBuildingOwnerInfo.getRoomNoName());
695 800
 				tpRoomNo.setCreateDate(LocalDateTime.now());
801
+				tpRoomNo.setCommunityId(communityId);
696 802
 
697 803
 				QueryWrapper<TpRoomNo> roomNoQueryWrapper = new QueryWrapper<>();
698 804
 				roomNoQueryWrapper.eq("org_id", orgId);

+ 63
- 0
src/main/java/com/huiju/estateagents/property/service/impl/TaUserCommunityServiceImpl.java Bestand weergeven

@@ -0,0 +1,63 @@
1
+package com.huiju.estateagents.property.service.impl;
2
+
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
5
+import com.huiju.estateagents.property.entity.TaUserCommunity;
6
+import com.huiju.estateagents.property.entity.TpCommunity;
7
+import com.huiju.estateagents.property.mapper.TaUserCommunityMapper;
8
+import com.huiju.estateagents.property.mapper.TpCommunityMapper;
9
+import com.huiju.estateagents.property.service.ITaUserCommunityService;
10
+import org.springframework.beans.factory.annotation.Autowired;
11
+import org.springframework.stereotype.Service;
12
+
13
+import java.util.ArrayList;
14
+import java.util.List;
15
+
16
+
17
+/**
18
+ * <p>
19
+ *  服务实现类
20
+ * </p>
21
+ *
22
+ * @author yansen
23
+ * @since 2021-01-19
24
+ */
25
+@Service
26
+public class TaUserCommunityServiceImpl extends ServiceImpl<TaUserCommunityMapper, TaUserCommunity> implements ITaUserCommunityService {
27
+
28
+    @Autowired
29
+    TaUserCommunityMapper taUserCommunityMapper;
30
+
31
+    @Autowired
32
+    TpCommunityMapper tpCommunityMapper;
33
+
34
+    @Override
35
+    public List<TpCommunity> getListBy(Integer orgId, Integer userId) {
36
+        return tpCommunityMapper.getListOfUser(orgId, userId);
37
+    }
38
+
39
+    @Override
40
+    public boolean addUserCommunity(Integer orgId, Integer userId, List<TpCommunity> communityList) throws Exception {
41
+        if (null == orgId || null == userId || null == communityList) {
42
+            throw new Exception("未找到授权小区需要操作的记录");
43
+        }
44
+
45
+        // 先删除原有授权记录
46
+        QueryWrapper<TaUserCommunity> deleteQuery = new QueryWrapper<>();
47
+        deleteQuery.eq("org_id", orgId);
48
+        deleteQuery.eq("user_id", userId);
49
+        remove(deleteQuery);
50
+
51
+        // 新增记录
52
+        List<TaUserCommunity> list = new ArrayList<>();
53
+        for (TpCommunity community: communityList) {
54
+            TaUserCommunity userCommunity = new TaUserCommunity();
55
+            userCommunity.setOrgId(orgId);
56
+            userCommunity.setUserId(userId);
57
+            userCommunity.setCommunityId(community.getId());
58
+            list.add(userCommunity);
59
+        }
60
+
61
+        return saveBatch(list);
62
+    }
63
+}

+ 26
- 14
src/main/java/com/huiju/estateagents/property/service/impl/TaUserVerifyServiceImpl.java Bestand weergeven

@@ -12,7 +12,6 @@ import com.huiju.estateagents.entity.TaPerson;
12 12
 import com.huiju.estateagents.event.EventBus;
13 13
 import com.huiju.estateagents.mapper.TaPersonMapper;
14 14
 import com.huiju.estateagents.property.common.Constant;
15
-import com.huiju.estateagents.property.common.UserElement;
16 15
 import com.huiju.estateagents.property.common.base.messagePush;
17 16
 import com.huiju.estateagents.property.dao.*;
18 17
 import com.huiju.estateagents.property.exception.WisdomException;
@@ -20,15 +19,12 @@ import com.huiju.estateagents.property.model.*;
20 19
 import com.huiju.estateagents.property.service.ITaUserVerifyService;
21 20
 import lombok.extern.slf4j.Slf4j;
22 21
 import org.apache.commons.lang3.StringUtils;
23
-import org.apache.poi.ss.formula.functions.T;
24 22
 import org.springframework.beans.factory.annotation.Autowired;
25 23
 import org.springframework.context.ApplicationContext;
26 24
 import org.springframework.stereotype.Service;
27 25
 import org.springframework.transaction.annotation.Transactional;
28 26
 
29 27
 import java.time.LocalDateTime;
30
-import java.util.Date;
31
-import java.util.HashMap;
32 28
 import java.util.List;
33 29
 import java.util.Map;
34 30
 
@@ -78,14 +74,14 @@ public class TaUserVerifyServiceImpl extends ServiceImpl<TaUserVerifyMapper, TaU
78 74
     private ApplicationContext applicationContext;
79 75
 
80 76
     @Override
81
-    public ResponseBean selectAll(String phone, String userName, String idCard, Integer pageNum, Integer pageSize, TaUser userElement) {
77
+    public ResponseBean selectAll(Integer communityId, String phone, String userName, String idCard, Integer pageNum, Integer pageSize, TaUser userElement) {
82 78
         ResponseBean responseBean = new ResponseBean();
83 79
 
84 80
         Page<TaUserVerify> page = new Page<>();
85 81
         page.setCurrent(pageNum);
86 82
         page.setSize(pageSize);
87 83
 
88
-        IPage<TaUserVerify> userVerifyIPage = taUserVerifyMapper.selectAllByPhoneAndUserNameAndIdCard(page, phone, userName, idCard, userElement.getOrgId());
84
+        IPage<TaUserVerify> userVerifyIPage = taUserVerifyMapper.selectAllByPhoneAndUserNameAndIdCard(page, communityId, phone, userName, idCard, userElement.getOrgId());
89 85
         responseBean.addSuccess(userVerifyIPage);
90 86
 
91 87
         return responseBean;
@@ -111,7 +107,10 @@ public class TaUserVerifyServiceImpl extends ServiceImpl<TaUserVerifyMapper, TaU
111 107
         userVerify.setVerifyStatus(status);
112 108
 
113 109
         // 校验房产
114
-        hasUserVerify(userElement, userVerify, true);
110
+//        hasUserVerify(userElement, userVerify, true);
111
+        // 2020年12月31日 yansen
112
+        hasUserVerify(userElement, userVerify, Integer.valueOf(1).equals(userVerify.getRoleId()));
113
+
115 114
 
116 115
         TaUser user = taUserMapper.selectById(userElement.getUserId());
117 116
 
@@ -248,7 +247,9 @@ public class TaUserVerifyServiceImpl extends ServiceImpl<TaUserVerifyMapper, TaU
248 247
         userVerify.setVerifyStatus(verifyStatus);
249 248
 
250 249
         //判断审核数据是否冲突
251
-        hasUserVerify(userElement,  userVerify,  true);
250
+//        hasUserVerify(userElement,  userVerify,  true);
251
+        // 2020年12月31日 yansen
252
+        hasUserVerify(userElement,  userVerify,  Integer.valueOf(1).equals(userVerify.getRoleId()));
252 253
 
253 254
         // 被审核的用户
254 255
         TaPerson taPerson = taPersonMapper.selectById(userVerify.getPersonId());
@@ -335,14 +336,15 @@ public class TaUserVerifyServiceImpl extends ServiceImpl<TaUserVerifyMapper, TaU
335 336
             return responseBean;
336 337
         }
337 338
 
338
-        // 校验是否有审核通过的业主
339
-        TaUserVerify hasUserVerify = taUserVerifyMapper.selectWxCommunityAndAddressAndRoleId(taUserVerify.getOrgId(), taUserVerify.getPhaseId(), taUserVerify.getBuildingId(), taUserVerify.getUnitId(), taUserVerify.getLevelId(), taUserVerify.getRoomNoId());
340
-        if (null != hasUserVerify) {
341
-            responseBean.addError("此房产已存在户主!");
342
-            return responseBean;
339
+        if (Constant.OWNER.equals(roleName)){
340
+            // 校验是否有审核通过的业主
341
+            TaUserVerify hasUserVerify = taUserVerifyMapper.selectWxCommunityAndAddressAndRoleId(taUserVerify.getOrgId(), taUserVerify.getPhaseId(), taUserVerify.getBuildingId(), taUserVerify.getUnitId(), taUserVerify.getLevelId(), taUserVerify.getRoomNoId());
342
+            if (null != hasUserVerify) {
343
+                responseBean.addError("此房产已存在户主!");
344
+                return responseBean;
345
+            }
343 346
         }
344 347
 
345
-
346 348
         // 校验该用户是否已经提交了一个当前房产的审核, 包含 待审核和已审核通过
347 349
         List<TaUserVerify> userVerifyList = taUserVerifyMapper.selectCommunityAndAddressAndNotVerifyStatus2(taUserVerify.getPersonId(), taUserVerify.getOrgId(),
348 350
                 taUserVerify.getPhaseId(), taUserVerify.getBuildingId(), taUserVerify.getUnitId(),
@@ -494,4 +496,14 @@ public class TaUserVerifyServiceImpl extends ServiceImpl<TaUserVerifyMapper, TaU
494 496
     public Page<Map<String, String>> getPropUserByBirday(Page<Map<String, String>> page, Integer orgId, String birthday) {
495 497
         return taUserVerifyMapper.getPropUserByBirday(page, orgId, birthday);
496 498
     }
499
+
500
+    @Override
501
+    public List<Map<String, Object>> getVerifyMapList(Integer orgId, String startDate, String endDate) {
502
+        return taUserVerifyMapper.getVerifyMapList(orgId, startDate, endDate);
503
+    }
504
+
505
+    @Override
506
+    public int getNoVerifyNum(Integer orgId) {
507
+        return taUserVerifyMapper.getNoVerifyNum(orgId);
508
+    }
497 509
 }

+ 5
- 0
src/main/java/com/huiju/estateagents/property/service/impl/TpAnnouncementServiceImpl.java Bestand weergeven

@@ -65,6 +65,7 @@ private  TpAnnouncementMapper tpAnnouncementMapper;
65 65
         Integer announcementNumber = jsonobject.getInteger("announcementNumber");
66 66
         Integer pageSize = jsonobject.getInteger("pageSize");
67 67
         String announcementTitle = jsonobject.getString("announcementTitle");
68
+
68 69
         tpAnnouncement.setId(announcementNumber);
69 70
         if (!StringUtils.isEmpty(announcementTitle)) {
70 71
             tpAnnouncement.setAnnouncementTitle(announcementTitle);
@@ -74,6 +75,10 @@ private  TpAnnouncementMapper tpAnnouncementMapper;
74 75
             tpAnnouncement.setAnnType(annType);
75 76
         }
76 77
 
78
+        tpAnnouncement.setStatus(jsonobject.getString("status"));
79
+        tpAnnouncement.setStartCreateDate(jsonobject.getString("startCreateDate"));
80
+        tpAnnouncement.setEndCreateDate(jsonobject.getString("endCreateDate"));
81
+
77 82
         // 分页
78 83
         Page<TpBuildingOwnerInfo> page = new Page<>();
79 84
         page.setSize(pageSize == null ? 10 : pageSize);

+ 32
- 0
src/main/java/com/huiju/estateagents/property/service/impl/TpCommunityServiceImpl.java Bestand weergeven

@@ -0,0 +1,32 @@
1
+package com.huiju.estateagents.property.service.impl;
2
+
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.huiju.estateagents.common.CommConstant;
5
+import com.huiju.estateagents.property.entity.TpCommunity;
6
+import com.huiju.estateagents.property.mapper.TpCommunityMapper;
7
+import com.huiju.estateagents.property.service.ITpCommunityService;
8
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
9
+import org.springframework.stereotype.Service;
10
+
11
+import java.util.List;
12
+
13
+/**
14
+ * <p>
15
+ *  服务实现类
16
+ * </p>
17
+ *
18
+ * @author yansen
19
+ * @since 2021-01-19
20
+ */
21
+@Service
22
+public class TpCommunityServiceImpl extends ServiceImpl<TpCommunityMapper, TpCommunity> implements ITpCommunityService {
23
+
24
+    @Override
25
+    public List<TpCommunity> getAllByOrg(Integer orgId) {
26
+        QueryWrapper<TpCommunity> queryWrapper = new QueryWrapper<>();
27
+        queryWrapper.eq("org_id", orgId);
28
+        queryWrapper.eq("status", CommConstant.STATUS_NORMAL);
29
+
30
+        return list(queryWrapper);
31
+    }
32
+}

+ 157
- 33
src/main/java/com/huiju/estateagents/property/service/impl/TpTicketServiceImpl.java Bestand weergeven

@@ -11,7 +11,13 @@ import com.google.common.collect.Maps;
11 11
 import com.huiju.estateagents.base.ResponseBean;
12 12
 import com.huiju.estateagents.center.taUser.entity.TaUser;
13 13
 import com.huiju.estateagents.center.taUser.mapper.TaUserMapper;
14
+import com.huiju.estateagents.common.CommConstant;
15
+import com.huiju.estateagents.common.DateUtils;
16
+import com.huiju.estateagents.common.WxUtils;
17
+import com.huiju.estateagents.entity.TaMiniapp;
18
+import com.huiju.estateagents.entity.TaMpTemplate;
14 19
 import com.huiju.estateagents.entity.TaPerson;
20
+import com.huiju.estateagents.mapper.TaMiniappMapper;
15 21
 import com.huiju.estateagents.mapper.TaPersonMapper;
16 22
 import com.huiju.estateagents.property.common.Constant;
17 23
 import com.huiju.estateagents.property.dao.*;
@@ -21,11 +27,27 @@ import com.huiju.estateagents.property.mapper.TpRepairTypeMapper;
21 27
 import com.huiju.estateagents.property.model.*;
22 28
 import com.huiju.estateagents.property.service.TpTicketService;
23 29
 import com.huiju.estateagents.property.vo.TpTicketVO;
30
+import com.huiju.estateagents.redpack.entity.TaMpMiniapp;
31
+import com.huiju.estateagents.redpack.entity.TaMpPerson;
32
+import com.huiju.estateagents.redpack.mapper.TaMpMiniappMapper;
33
+import com.huiju.estateagents.redpack.mapper.TaMpPersonMapper;
34
+import com.huiju.estateagents.redpack.service.ITaMpPersonService;
35
+import com.huiju.estateagents.service.IMiniAppService;
24 36
 import com.huiju.estateagents.service.ISysSmsEventService;
37
+import com.huiju.estateagents.service.ITaMpTemplateService;
38
+import com.huiju.estateagents.service.ITaPersonService;
39
+import com.huiju.estateagents.third.entity.TaMpInfo;
40
+import com.huiju.estateagents.third.service.ITaMpInfoService;
41
+import me.chanjar.weixin.common.error.WxErrorException;
42
+import me.chanjar.weixin.mp.api.WxMpService;
43
+import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage;
44
+import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
45
+import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
25 46
 import org.apache.commons.lang3.StringUtils;
26 47
 import org.checkerframework.checker.units.qual.A;
27 48
 import org.springframework.beans.BeanUtils;
28 49
 import org.springframework.beans.factory.annotation.Autowired;
50
+import org.springframework.beans.factory.annotation.Value;
29 51
 import org.springframework.stereotype.Service;
30 52
 import org.springframework.transaction.annotation.Transactional;
31 53
 
@@ -33,6 +55,7 @@ import java.io.IOException;
33 55
 import java.time.LocalDateTime;
34 56
 import java.time.ZoneId;
35 57
 import java.time.ZoneOffset;
58
+import java.time.temporal.TemporalAdjusters;
36 59
 import java.util.*;
37 60
 
38 61
 /**
@@ -83,6 +106,33 @@ public class TpTicketServiceImpl extends ServiceImpl<TpTicketMapper, TpTicket> i
83 106
     @Autowired
84 107
     private ISysSmsEventService sysSmsEventService;
85 108
 
109
+    @Autowired
110
+    ITaMpInfoService iTaMpInfoService;
111
+
112
+    @Autowired
113
+    ITaMpPersonService iTaMpPersonService;
114
+
115
+    @Autowired
116
+    ITaPersonService iTaPersonService;
117
+
118
+    @Autowired
119
+    private IMiniAppService iMiniAppService;
120
+
121
+    @Autowired
122
+    private ITaMpTemplateService iTaMpTemplateService;
123
+
124
+    @Autowired
125
+    WxUtils wxUtils;
126
+
127
+    @Value("${wx.miniapp.ticket}")
128
+    String miniAppTicket;
129
+
130
+    @Autowired
131
+    private TaMpMiniappMapper taMpMiniappMapper;
132
+
133
+    @Autowired
134
+    private TaMpPersonMapper taMpPersonMapper;
135
+
86 136
     @Override
87 137
     public ResponseBean ticketLiset(String parameter,Integer orgId) {
88 138
          ResponseBean response= new ResponseBean<>();
@@ -118,6 +168,16 @@ public class TpTicketServiceImpl extends ServiceImpl<TpTicketMapper, TpTicket> i
118 168
 
119 169
             TaPerson person =taPersonMapper.selectById(tpTicket.getCreateUser());
120 170
             tpTicketVO.setCreateUserNmae(StringUtils.isNotEmpty(person.getName()) ? person.getName() : person.getNickname());
171
+
172
+            // 获取房产信息
173
+            LambdaQueryWrapper<TaUserVerify> userVerifyLambdaQueryWrapper = new LambdaQueryWrapper<>();
174
+            userVerifyLambdaQueryWrapper.eq(TaUserVerify::getPersonId,person.getPersonId());
175
+            List<TaUserVerify> taUserVerifies = taUserVerifyMapper.selectList(userVerifyLambdaQueryWrapper);
176
+            if (taUserVerifies.size() > 0){
177
+                TaUserVerify taUserVerify = taUserVerifies.get(0);
178
+                tpTicketVO.setAddress(taUserVerify.getPhaseName()+taUserVerify.getBuildingName()+taUserVerify.getUnitName()+taUserVerify.getLevelName()+taUserVerify.getRoomNoName());
179
+            }
180
+
121 181
             tpTicketArrayList.add(tpTicketVO);
122 182
         }
123 183
         HashMap map=new HashMap<>();
@@ -298,7 +358,7 @@ public class TpTicketServiceImpl extends ServiceImpl<TpTicketMapper, TpTicket> i
298 358
         TpTicketRecord tpTicketRecord= new TpTicketRecord();
299 359
         tpTicketRecord.setOrgId(orgId);
300 360
         tpTicketRecord.setTicketId(ticketId);
301
-        tpTicketRecord.setContent("您的联系单已经分配给物业处理人员" + taUser.getUserName()+",联系方式:" + taUser.getLoginName());
361
+        tpTicketRecord.setContent("您的联系单已经分配给物业处理人员" + taUser.getUserName()+",联系方式:" + taUser.getPhone());
302 362
         tpTicketRecord.setStatus("3");
303 363
         tpTicketRecord.setCreateUser(user.toString());
304 364
         tpTicketRecord.setCreateDate(LocalDateTime.now());
@@ -309,37 +369,82 @@ public class TpTicketServiceImpl extends ServiceImpl<TpTicketMapper, TpTicket> i
309 369
         queryWrapper.eq("id", ticketId);
310 370
         queryWrapper.eq("org_id", orgId);
311 371
         TpTicket ticket = tpTicketMapper.selectOne(queryWrapper);
312
-        Message message = new Message();
313
-        message.setOrgId(orgId);
314
-        message.setMessageType(ticket.getType());
315
-        message.setTicketId(ticket.getId());
316
-        message.setAdviceType("4");
317
-        message.setUuid(userID.toString());
318
-        message.setModelType("2");
319
-        message.setUuidType("2");
320
-        message.setSource("2");
321
-        message.setMessageContent("工单“" + ticket.getTicketTitle() + "”已被分配给您,点击查看并处理");
322
-        message.setStatus("1");
323
-        message.setReadStatus("0");
324
-        message.setCreateUser(user.toString());
325
-        message.setCreateDate(LocalDateTime.now());
326
-        message.setTicketId(ticketId);
327
-//        messageMapper.insert(message);
328
-        //如果分配给本人维护消息模板
329
-        if (null!=userID&userID.equals(user)){
330
-            message.setModelType("1");
331
-//            messageMapper.insert(message);
372
+        // 发送消息给管家的公众号
373
+        LambdaQueryWrapper<TaPerson> taPersonLambdaQueryWrapper = new LambdaQueryWrapper<>();
374
+        taPersonLambdaQueryWrapper.eq(TaPerson::getOrgId,orgId);
375
+        taPersonLambdaQueryWrapper.eq(TaPerson::getUserId,taUser.getUserId());
376
+        TaPerson taPerson = taPersonMapper.selectOne(taPersonLambdaQueryWrapper);
377
+        if (null != taPerson){
378
+            LambdaQueryWrapper<TaMpMiniapp> taMpMiniappLambdaQueryWrapper = new LambdaQueryWrapper<>();
379
+            taMpMiniappLambdaQueryWrapper.eq(TaMpMiniapp::getMiniappPersonId,taPerson.getPersonId());
380
+            TaMpMiniapp taMpMiniapp = taMpMiniappMapper.selectOne(taMpMiniappLambdaQueryWrapper);
381
+            if (null != taMpMiniapp){
382
+                TaMpPerson taMpPerson = taMpPersonMapper.selectById(taMpMiniapp.getMpPersonId());
383
+                sendMpTicketMessage(ticket,taMpPerson);
384
+            }
385
+
332 386
         }
333
-        //分配成功后推送app
334
-        message.setUuidType("1");
335
-        message.setUuid(ticket.getCreateUser());
336
-        message.setMessageContent("工单“" + ticket.getTicketTitle() + "”已被分配给:"+taUser.getUserName());
337
-        message.setAdviceType("1");
338
-//        messageMapper.insert(message);
387
+
339 388
         response.addSuccess("成功");
340 389
         return response;
341 390
     }
342 391
 
392
+    /**
393
+     * 发送消息给管家
394
+     * @param ticket
395
+     * @param person
396
+     */
397
+    private void sendMpTicketMessage(TpTicket ticket,TaMpPerson person) {
398
+        WxMpService mpService = wxUtils.getMpService(ticket.getOrgId());
399
+
400
+        // 对应表数据
401
+        TaMpInfo mpInfo = iTaMpInfoService.getByOrgId(ticket.getOrgId());
402
+
403
+        TaMiniapp taMiniapp = iMiniAppService.getAppByOrg(mpInfo.getOrgId());
404
+
405
+        WxMpKefuMessage kefuMessage = WxMpKefuMessage.MINIPROGRAMPAGE().appId(taMiniapp.getMiniappId())
406
+                .toUser(person.getMpOpenid())
407
+                .title("您有一个新的工单待处理")
408
+                .pagePath(miniAppTicket + ticket.getId())
409
+                .thumbMediaId(mpInfo.getMiniappMedia())
410
+                .build();
411
+
412
+        try {
413
+            mpService.getKefuService().sendKefuMessage(kefuMessage);
414
+        } catch (WxErrorException e) {
415
+            e.printStackTrace();
416
+
417
+            // 如果客服消息发送失败, 则发送普通模板消息
418
+            List<TaMpTemplate> mpTemplateList = iTaMpTemplateService.getAvailableList(ticket.getOrgId(), CommConstant.TP_MESSAGE_TICKET);
419
+            if (null == mpTemplateList || mpTemplateList.size() < 1) {
420
+                return;
421
+            }
422
+            TaMpTemplate mpTemplate = mpTemplateList.get(0);
423
+
424
+            try {
425
+                TaPerson propOwner = iTaPersonService.getById(ticket.getPersonId());
426
+                String message = String.format("业主电话: %s ; 报修内容: %s", propOwner.getPhone(), ticket.getTicketTitle());
427
+                String remark = String.format("请及时进入【%s】小程序进行处理", taMiniapp.getName());
428
+
429
+                WxUtils.sendTemplateMessage(mpService,
430
+                        person.getMpOpenid(),
431
+                        mpTemplate.getTemplateCode(),
432
+                        null,
433
+                        new ArrayList<WxMpTemplateData>(){{
434
+                            add(new WxMpTemplateData("first", "工单提醒"));
435
+                            add(new WxMpTemplateData("keyword1", "您有一个新的工单"));
436
+                            add(new WxMpTemplateData("keyword2", DateUtils.today()));
437
+                            add(new WxMpTemplateData("keyword3", message));
438
+                            add(new WxMpTemplateData("remark", remark));
439
+                        }}
440
+                );
441
+            } catch (Exception e2) {
442
+                e2.printStackTrace();
443
+            }
444
+
445
+        }
446
+    }
447
+
343 448
     @Override
344 449
     public ResponseBean addWxRecord(String parameter, Integer user, Integer orgId) {
345 450
         ResponseBean response=new ResponseBean();
@@ -362,7 +467,7 @@ public class TpTicketServiceImpl extends ServiceImpl<TpTicketMapper, TpTicket> i
362 467
         TpTicketRecord tpTicketRecord= new TpTicketRecord();
363 468
         tpTicketRecord.setOrgId(orgId);
364 469
         tpTicketRecord.setTicketId(ticketId);
365
-//        tpTicketRecord.setContent("您的联系单已经分配给物业处理人员" + userName.getUserName()+",联系方式:" + userName.getLoginName());
470
+//        tpTicketRecord.setContent("您的联系单已经分配给物业处理人员" + userName.getUserName()+",联系方式:" + userName.getPhone());
366 471
         tpTicketRecord.setContent("您的联系单已经分配给维修人员" + taUser.getUserName()+",联系方式:" + taUser.getPhone());
367 472
         tpTicketRecord.setStatus("3");
368 473
         tpTicketRecord.setCreateUser(user.toString());
@@ -412,7 +517,7 @@ public class TpTicketServiceImpl extends ServiceImpl<TpTicketMapper, TpTicket> i
412 517
     }
413 518
 
414 519
     @Override
415
-    public ResponseBean updateTicketStatus(String parameter, Integer id,Integer orgId,String userName,String LoginName) {
520
+    public ResponseBean updateTicketStatus(String parameter, Integer id,Integer orgId,String userName,String phone) {
416 521
         /*拒绝处理仅在待分配的情况下修改,由前台控制拒绝处理的按钮是否显示*/
417 522
         ResponseBean response=  new ResponseBean();
418 523
         JSONObject object= JSONObject.parseObject(parameter);
@@ -428,7 +533,7 @@ public class TpTicketServiceImpl extends ServiceImpl<TpTicketMapper, TpTicket> i
428 533
 
429 534
         TpTicketRecord tpTicketRecord= new TpTicketRecord();
430 535
         tpTicketRecord.setTicketId(ticketId);
431
-        tpTicketRecord.setContent("您的报修被物业人员"+userName+"拒绝接受理,原因:"+textContent+",有问题可以联系"+userName+":联系方式:"+LoginName);
536
+        tpTicketRecord.setContent("您的报修被物业人员"+userName+"拒绝接受理,原因:"+textContent+",有问题可以联系"+userName+":联系方式:"+phone);
432 537
         tpTicketRecord.setOrgId(orgId);
433 538
         tpTicketRecord.setStatus("1");
434 539
         tpTicketRecord.setCreateUser(id.toString());
@@ -478,7 +583,7 @@ public class TpTicketServiceImpl extends ServiceImpl<TpTicketMapper, TpTicket> i
478 583
     }
479 584
 
480 585
     @Override
481
-    public ResponseBean updateTicket(String parameter, Integer id, Integer orgId, String userName,String longName) {
586
+    public ResponseBean updateTicket(String parameter, Integer id, Integer orgId, String userName,String phone) {
482 587
         ResponseBean response=new ResponseBean();
483 588
         JSONObject object= JSONObject.parseObject(parameter);
484 589
         String  content = object.getString("content");
@@ -495,7 +600,7 @@ public class TpTicketServiceImpl extends ServiceImpl<TpTicketMapper, TpTicket> i
495 600
        TpTicket tpTicketUserID= tpTicketMapper.selectById(ticketId);
496 601
 //        User userNameTpUserId= userMapper.selectById(tpTicketUserID.getTpUserId());
497 602
 //        TaUser taUser = taUserMapper.selectById(tpTicketUserID.getTaUserId());
498
-        tpTicketRecord.setContent("物业工作人员"+userName+"已经处理结束,如果没有问题请给好评,联系方式:"+longName);
603
+        tpTicketRecord.setContent("物业工作人员"+userName+"已经处理结束,如果没有问题请给好评,联系方式:"+phone);
499 604
         tpTicketRecord.setStatus("4");
500 605
         tpTicketRecord.setCreateUser(id.toString());
501 606
         tpTicketRecord.setCreateDate(LocalDateTime.now());
@@ -1119,9 +1224,11 @@ public class TpTicketServiceImpl extends ServiceImpl<TpTicketMapper, TpTicket> i
1119 1224
 
1120 1225
         // 新建缴费项
1121 1226
         Bill bill = new Bill();
1227
+        bill.setIsTicket(true);
1122 1228
         bill.setBillName(tpTicket.getTicketTitle());
1123 1229
         bill.setBillExplain(ticket.getPriceExplain());
1124
-        bill.setEndDate(Date.from(LocalDateTime.now().plusMonths(1).atZone( ZoneId.systemDefault()).toInstant()));
1230
+        // 当前时间的下个月初 - 1秒 = 本月月末的最后时间
1231
+        bill.setEndDate(LocalDateTime.now().plusMonths(1).with(TemporalAdjusters.firstDayOfMonth()).minusSeconds(1));
1125 1232
         bill.setPayPrice(ticket.getPrice().toString());
1126 1233
 
1127 1234
         bill.setPayedNum(0);
@@ -1129,6 +1236,7 @@ public class TpTicketServiceImpl extends ServiceImpl<TpTicketMapper, TpTicket> i
1129 1236
         bill.setCreateDate(new Date());
1130 1237
         bill.setCreateUser(userId);
1131 1238
         bill.setOrgId(orgId);
1239
+        bill.setCommunityId(tpTicket.getCommunityId());
1132 1240
         bill.setPayTotalNum(1);
1133 1241
         bill.setUnpayedNum(1);
1134 1242
         billMapper.insert(bill);
@@ -1136,6 +1244,7 @@ public class TpTicketServiceImpl extends ServiceImpl<TpTicketMapper, TpTicket> i
1136 1244
         // 新增缴费单
1137 1245
         BillInvoice billInvoice = new BillInvoice();
1138 1246
         billInvoice.setOrgId(orgId);
1247
+        billInvoice.setCommunityId(tpTicket.getCommunityId());
1139 1248
         billInvoice.setBillId(bill.getId());
1140 1249
 
1141 1250
         // 获取房间号
@@ -1222,4 +1331,19 @@ public class TpTicketServiceImpl extends ServiceImpl<TpTicketMapper, TpTicket> i
1222 1331
 
1223 1332
         return ResponseBean.success(map);
1224 1333
     }
1334
+
1335
+    @Override
1336
+    public int getTicketNum(Integer orgId, String startDate, String endDate) {
1337
+        return tpTicketMapper.getTicketNum(orgId, startDate, endDate);
1338
+    }
1339
+
1340
+    @Override
1341
+    public List<Map<String, Object>> getTicketMapList(Integer orgId, String startDate, String endDate) {
1342
+        return tpTicketMapper.getTicketMapList(orgId, startDate, endDate);
1343
+    }
1344
+
1345
+    @Override
1346
+    public int getStartNum(Integer orgId) {
1347
+        return tpTicketMapper.getStartNum(orgId);
1348
+    }
1225 1349
 }

+ 2
- 0
src/main/java/com/huiju/estateagents/property/vo/TpTicketVO.java Bestand weergeven

@@ -87,4 +87,6 @@ public class TpTicketVO extends TpTicket {
87 87
     private Boolean isPay;
88 88
 
89 89
     private List<TaUserVerify> userVerifyList;
90
+
91
+    private String address;
90 92
 }

+ 3
- 0
src/main/java/com/huiju/estateagents/service/ITaBuildingDynamicService.java Bestand weergeven

@@ -13,6 +13,7 @@ import com.huiju.estateagents.excel.HelpInitiateRecordSucceed;
13 13
 import java.time.LocalDateTime;
14 14
 import java.util.HashMap;
15 15
 import java.util.List;
16
+import java.util.Map;
16 17
 
17 18
 /**
18 19
  * <p>
@@ -140,4 +141,6 @@ public interface ITaBuildingDynamicService extends IService<TaBuildingDynamic> {
140 141
      * @return
141 142
      */
142 143
     ResponseBean iBuildingDynamicSelectedList(Integer pageNum, Integer pageSize, String name, String buildingId, Integer cityId, String isEnlist, LocalDateTime time, String title, Integer orgId, String activityStatus,List<TaPersonBuilding> personBuildingList);
144
+
145
+    Map<String, Integer> getLastActEnlistNum(Integer orgId);
143 146
 }

+ 2
- 0
src/main/java/com/huiju/estateagents/service/ITaPersonService.java Bestand weergeven

@@ -118,4 +118,6 @@ public interface ITaPersonService extends IService<TaPerson> {
118 118
                    TaCustomerFrom customerFrom) throws Exception;
119 119
 
120 120
     ResponseBean updateUserPhoto(String photoUrl, String openId);
121
+
122
+    IPage<TaPerson> getPersonBy(IPage<TaPerson> page, Integer orgId, String name, String phone, String recommended);
121 123
 }

+ 2
- 0
src/main/java/com/huiju/estateagents/service/ITaPointsExchangeService.java Bestand weergeven

@@ -19,4 +19,6 @@ import java.util.List;
19 19
 public interface ITaPointsExchangeService extends IService<TaPointsExchange> {
20 20
 	
21 21
 	ResponseBean selectList(Integer pageNum, Integer pageSize, TaPointsExchange taPointsExchange, List<TaPersonBuilding> taPersonBuildingList);
22
+
23
+    int getTotalNum(Integer orgId);
22 24
 }

+ 1
- 1
src/main/java/com/huiju/estateagents/service/ITpNewsService.java Bestand weergeven

@@ -15,5 +15,5 @@ import com.huiju.estateagents.entity.TpNews;
15 15
  */
16 16
 public interface ITpNewsService extends IService<TpNews> {
17 17
 
18
-    IPage<TpNews> getListBy(IPage<TpNews> page, Integer orgId, String newsName, Integer status,String newsTypeId);
18
+    IPage<TpNews> getListBy(IPage<TpNews> page, Integer orgId, String newsName, Integer status, String newsTypeId, String startCreateDate, String endCreateDate);
19 19
 }

+ 6
- 4
src/main/java/com/huiju/estateagents/service/impl/TaBuildingDynamicServiceImpl.java Bestand weergeven

@@ -31,10 +31,7 @@ import java.time.Instant;
31 31
 import java.time.LocalDateTime;
32 32
 import java.time.ZoneId;
33 33
 import java.time.ZoneOffset;
34
-import java.util.ArrayList;
35
-import java.util.Date;
36
-import java.util.HashMap;
37
-import java.util.List;
34
+import java.util.*;
38 35
 
39 36
 /**
40 37
  * <p>
@@ -399,6 +396,11 @@ public class TaBuildingDynamicServiceImpl extends ServiceImpl<TaBuildingDynamicM
399 396
         return ResponseBean.success(hashMap);
400 397
     }
401 398
 
399
+    @Override
400
+    public Map<String, Integer> getLastActEnlistNum(Integer orgId) {
401
+        return taActivityDynamicEnlistMapper.getLastActEnlistNum(orgId);
402
+    }
403
+
402 404
     /**
403 405
      * 获取我的活动列表
404 406
      * @param pageNumber

+ 6
- 0
src/main/java/com/huiju/estateagents/service/impl/TaPersonServiceImpl.java Bestand weergeven

@@ -950,6 +950,7 @@ public class TaPersonServiceImpl extends ServiceImpl<TaPersonMapper, TaPerson> i
950 950
         if (userList.size() > 0){
951 951
             TaUser taUser = userList.get(0);
952 952
             person.setPersonType(taUser.getType());
953
+            person.setUserId(taUser.getUserId());
953 954
         }
954 955
         updateById(person);
955 956
 
@@ -1322,4 +1323,9 @@ public class TaPersonServiceImpl extends ServiceImpl<TaPersonMapper, TaPerson> i
1322 1323
         responseBean.addSuccess("修改成功");
1323 1324
         return responseBean;
1324 1325
     }
1326
+
1327
+    @Override
1328
+    public IPage<TaPerson> getPersonBy(IPage<TaPerson> page, Integer orgId, String name, String phone, String recommended) {
1329
+        return taPersonMapper.getPersonBy(page, orgId, name, phone, recommended);
1330
+    }
1325 1331
 }

+ 5
- 0
src/main/java/com/huiju/estateagents/service/impl/TaPointsExchangeServiceImpl.java Bestand weergeven

@@ -42,4 +42,9 @@ public class TaPointsExchangeServiceImpl extends ServiceImpl<TaPointsExchangeMap
42 42
 		page.setRecords(list);
43 43
 		return ResponseBean.success(page);
44 44
 	}
45
+
46
+	@Override
47
+	public int getTotalNum(Integer orgId) {
48
+		return taPointsExchangeMapper.getTotalNum(orgId);
49
+	}
45 50
 }

+ 4
- 0
src/main/java/com/huiju/estateagents/service/impl/TaPointsRecordsServiceImpl.java Bestand weergeven

@@ -523,6 +523,10 @@ public class TaPointsRecordsServiceImpl extends ServiceImpl<TaPointsRecordsMappe
523 523
         // 缴费金额乘以积分加积分
524 524
         BillInvoice tpBillInvoice = tpBillInvoiceMapper.selectById(source.getTpBillInvoiceId());
525 525
         int money = tpBillInvoice.getPayPrice() / 100;
526
+        if (money == 0) {
527
+            return;
528
+        }
529
+
526 530
         // 发放积分
527 531
         TaPerson person = taPersonMapper.selectById(source.getCreateUser());
528 532
         if (savePoints(person, changeType, null, pointsAmount * money, orgId)) {

+ 4
- 1
src/main/java/com/huiju/estateagents/service/impl/TpNewsServiceImpl.java Bestand weergeven

@@ -22,13 +22,16 @@ import org.springframework.stereotype.Service;
22 22
 public class TpNewsServiceImpl extends ServiceImpl<TpNewsMapper, TpNews> implements ITpNewsService {
23 23
 
24 24
     @Override
25
-    public IPage<TpNews> getListBy(IPage<TpNews> page, Integer orgId, String newsName, Integer status,String newsTypeId) {
25
+    public IPage<TpNews> getListBy(IPage<TpNews> page, Integer orgId, String newsName, Integer status, String newsTypeId, String startCreateDate, String endCreateDate) {
26 26
         QueryWrapper<TpNews> queryWrapper = new QueryWrapper<>();
27 27
         queryWrapper.eq("org_id", orgId);
28 28
         queryWrapper.eq(!StringUtils.isEmpty(newsTypeId),"news_type_id", newsTypeId);
29 29
         queryWrapper.eq(status != null, "status", status);
30 30
         queryWrapper.gt(status == null, "status", CommConstant.STATUS_DELETE);
31 31
         queryWrapper.like(!StringUtils.isEmpty(newsName), "news_name", "%" + newsName + "%");
32
+        if (!StringUtils.isEmpty(startCreateDate)){
33
+            queryWrapper.between("create_date",startCreateDate,endCreateDate);
34
+        }
32 35
         queryWrapper.orderByDesc("weight");
33 36
         queryWrapper.orderByDesc("create_date");
34 37
 

+ 1
- 1
src/main/resources/application-dev.yml Bestand weergeven

@@ -80,7 +80,7 @@ pay-refund: https://dev.fangdeal.cn/api/refund/
80 80
 
81 81
 # 支付回调
82 82
 pay-new-notify:
83
-  wx-bill-notify: https://a.t.njyunzhi.com/api/wxBillNotify
83
+  wx-bill-notify: https://xs.njyunzhi.com/api/wxBillNotify
84 84
   ali-bill-notify:
85 85
   wx-car-notify:
86 86
   ali-car-notify:

+ 1
- 1
src/main/resources/application-prod.yml Bestand weergeven

@@ -86,7 +86,7 @@ pay-refund: https://wx.fangdeal.cn/api/refund/
86 86
 
87 87
 # 支付回调
88 88
 pay-new-notify:
89
-  wx-bill-notify: https://a.t.njyunzhi.com/api/wxBillNotify
89
+  wx-bill-notify: https://xs.njyunzhi.com/api/wxBillNotify
90 90
   ali-bill-notify:
91 91
   wx-car-notify:
92 92
   ali-car-notify:

+ 3
- 2
src/main/resources/application.yml Bestand weergeven

@@ -14,6 +14,7 @@ sms-service:
14 14
 wx:
15 15
   miniapp:
16 16
     index: /pages/ShouYe/index
17
+    ticket: /pages/WoDe/YeZhuBaoXiu/index?id=
17 18
   mp:
18
-    festivalH5: https://xs.ycjcjy.com/jierih5.html
19
-    birthdayH5: https://xs.ycjcjy.com/shengrih5.html
19
+    festivalH5: https://xs.njyunzhi.com/jierih5.html
20
+    birthdayH5: https://xs.njyunzhi.com/shengrih5.html

+ 21
- 1
src/main/resources/mapper/TaActivityDynamicEnlistMapper.xml Bestand weergeven

@@ -37,7 +37,7 @@
37 37
             select ifnull(sum( attend_num ), 0) from ta_activity_dynamic_enlist where dynamic_id = #{dynamicId} and org_id = #{orgId}
38 38
         </select>
39 39
 
40
-    <select id="getTaActivityDynamicEnlistExport" resultType="com.huiju.estateagents.excel.TaActivityDynamicEnlistExport">
40
+    <select id="getTaActivityDynamicEnlistExport" resultType="com.huiju.estateagents.excel.HelpInitiateRecordSucceed">
41 41
 
42 42
         SELECT
43 43
         tade.*,
@@ -66,4 +66,24 @@
66 66
         group by tade.person_id
67 67
         limit #{pageCode}, #{pageSize}
68 68
     </select>
69
+    <select id="getLastActEnlistNum" resultType="java.util.Map">
70
+        SELECT
71
+            t.dynamic_id as dynamicId,
72
+            t.title,
73
+            count( IFNULL( s.attend_num, 0 ) ) as num
74
+        FROM
75
+            ta_building_dynamic t
76
+            LEFT JOIN ta_activity_dynamic_enlist s ON s.dynamic_id = t.dynamic_id
77
+        WHERE
78
+            t.org_id = #{orgId}
79
+            AND t.end_date &gt;= now( )
80
+            AND t.start_date &lt;= now( )
81
+            AND t.`status` = 1
82
+            AND t.is_enlist = 1
83
+        GROUP BY
84
+            t.dynamic_id
85
+        ORDER BY
86
+            t.end_date DESC
87
+        LIMIT 1
88
+    </select>
69 89
 </mapper>

+ 24
- 0
src/main/resources/mapper/TaPersonMapper.xml Bestand weergeven

@@ -639,6 +639,30 @@ FROM
639 639
             INNER JOIN td_city b ON b.citycode = a.citycode
640 640
             AND b.leveltype = 2
641 641
     </select>
642
+    <select id="getPersonBy" resultType="com.huiju.estateagents.entity.TaPerson">
643
+        SELECT
644
+            t.*,
645
+            s.nickname AS share_person_name
646
+        FROM
647
+            ta_person t
648
+            LEFT JOIN ta_person s ON s.org_id = t.org_id
649
+            AND t.recommend_person = s.person_id
650
+        WHERE
651
+            t.org_id = #{orgId}
652
+        <if test="name != null and '' != name">
653
+            AND t.nickname LIKE CONCAT( '%', #{name}, '%' )
654
+        </if>
655
+        <if test="phone != null and '' != phone">
656
+            AND t.phone = 123
657
+        </if>
658
+        <if test="recommended != null and '' != recommended">
659
+            AND s.nickname LIKE CONCAT( '%', #{recommended}, '%' )
660
+        </if>
661
+            AND IFNULL( t.avatarurl, '' ) > ''
662
+            AND t.`status` > - 1
663
+        ORDER BY
664
+            t.create_date DESC
665
+    </select>
642 666
 
643 667
     <insert id="savePersonPosition" parameterType="com.huiju.estateagents.entity.TaPersonPositon">
644 668
         insert into ta_person_position

+ 0
- 0
src/main/resources/mapper/TaUserAuthMenuMapper.xml Bestand weergeven


Some files were not shown because too many files changed in this diff