魏超 vor 5 Jahren
Ursprung
Commit
74d46cdd32

+ 6
- 0
pom.xml Datei anzeigen

@@ -129,6 +129,12 @@
129 129
 			<version>2.7.0</version>
130 130
 		</dependency>
131 131
 
132
+        <!-- aop 依赖 -->
133
+        <dependency>
134
+            <groupId>org.springframework.boot</groupId>
135
+            <artifactId>spring-boot-starter-aop</artifactId>
136
+        </dependency>
137
+
132 138
 
133 139
 		<dependency>
134 140
 			<groupId>fadada</groupId>

+ 11
- 0
src/main/java/com/huiju/estateagents/common/CommConstant.java Datei anzeigen

@@ -206,6 +206,17 @@ public class CommConstant {
206 206
      */
207 207
     public static final String BANNER_INDEX = "index";
208 208
 
209
+    /**
210
+     * 首屏广告_发布位置——项目
211
+     */
212
+    public static final String BANNER_BUILDING = "building";
213
+
214
+    //首页资讯
215
+    public static final String INDEX_NEWS = "indexNews";
216
+
217
+    //首页分享类型
218
+    public static final String IMG_TYPE = "imgType";
219
+
209 220
     //=================  首屏广告 / 轮播图 end =======================
210 221
 
211 222
     /**

+ 2
- 1
src/main/java/com/huiju/estateagents/controller/ExtendContentController.java Datei anzeigen

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
5 5
 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
+import com.huiju.estateagents.common.CommConstant;
8 9
 import com.huiju.estateagents.entity.*;
9 10
 import com.huiju.estateagents.service.*;
10 11
 import com.huiju.estateagents.service.impl.HelpActivityServiceImpl;
@@ -172,7 +173,7 @@ public class ExtendContentController extends BaseController {
172 173
         //一个城市只能有一个开屏广告
173 174
         boolean existFlag = iExtendContentService.advertistExistFlag(extendContent, getOrgId(request));
174 175
         if (!existFlag){
175
-            responseBean.addError("该城市已有开屏广告,请勿再次上架");
176
+            responseBean.addError("该发布位置已有开屏广告,请勿再次上架");
176 177
             return responseBean;
177 178
         }
178 179
 

+ 1
- 1
src/main/java/com/huiju/estateagents/controller/HelpActivityController.java Datei anzeigen

@@ -458,7 +458,7 @@ public class HelpActivityController extends BaseController {
458 458
     })
459 459
     @RequestMapping(value = "/wx/helpActivity/{helpActivityId}", method = RequestMethod.GET)
460 460
     public ResponseBean wxHelpActivityGet(@PathVariable(value = "helpActivityId") Integer helpActivityId,
461
-                                          @RequestParam(value = "initiateId",required = false) Integer initiateId,HttpServletRequest request) {
461
+                                          HttpServletRequest request, @RequestParam(value = "initiateId",required = false) Integer initiateId) {
462 462
         ResponseBean responseBean = new ResponseBean();
463 463
         Integer orgId = getOrgId(request);
464 464
         String openid = getOpenId(request);

+ 28
- 2
src/main/java/com/huiju/estateagents/controller/TaCustomImgController.java Datei anzeigen

@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.*;
16 16
 
17 17
 import javax.servlet.http.HttpServletRequest;
18 18
 import java.time.LocalDateTime;
19
+import java.util.ArrayList;
19 20
 import java.util.List;
20 21
 
21 22
 /**
@@ -82,9 +83,34 @@ public class TaCustomImgController extends BaseController {
82 83
                 return responseBean;
83 84
             }
84 85
 
85
-            taCustomImg.setOrgId(getOrgId(request));
86 86
             taCustomImg.setStatus(CommConstant.STATUS_NORMAL);
87
-            if (iTaCustomImgService.save(taCustomImg)){
87
+            taCustomImg.setOrgId(getOrgId(request));
88
+
89
+            List<TaCustomImg> taCustomImgs = new ArrayList<>();
90
+            taCustomImgs.add(taCustomImg);
91
+            if (CommConstant.IMG_TYPE.equals(taCustomImg.getImgType())){
92
+                TaCustomImg customImg = new TaCustomImg();
93
+                customImg.setCreateTime(LocalDateTime.now());
94
+                customImg.setUpdateTime(LocalDateTime.now());
95
+                customImg.setOrgId(getOrgId(request));
96
+                customImg.setStatus(CommConstant.STATUS_NORMAL);
97
+                customImg.setImgUrl("https://estateagents.oss-cn-shanghai.aliyuncs.com/miniapp/upload/images/1574145199853-97feda7895c65be33aa234a7b81b37f.jpg");
98
+                customImg.setImgType(CommConstant.BANNER_INDEX);
99
+                customImg.setImgDesc("小程序首页分享配图");
100
+                taCustomImgs.add(customImg);
101
+            }
102
+            if (CommConstant.BANNER_INDEX.equals(taCustomImg.getImgType())){
103
+                TaCustomImg customImg = new TaCustomImg();
104
+                customImg.setCreateTime(LocalDateTime.now());
105
+                customImg.setUpdateTime(LocalDateTime.now());
106
+                customImg.setOrgId(getOrgId(request));
107
+                customImg.setStatus(CommConstant.STATUS_NORMAL);
108
+                customImg.setImgUrl("http://njcj.oss-cn-shanghai.aliyuncs.com/icon.png");
109
+                customImg.setImgType(CommConstant.INDEX_NEWS);
110
+                customImg.setImgDesc("首页资讯logo");
111
+                taCustomImgs.add(customImg);
112
+            }
113
+            if (iTaCustomImgService.saveBatch(taCustomImgs)){
88 114
                 responseBean.addSuccess(taCustomImg);
89 115
             }else {
90 116
                 responseBean.addError("fail");

+ 3
- 1
src/main/java/com/huiju/estateagents/controller/TaShareActivityController.java Datei anzeigen

@@ -7,6 +7,7 @@ import com.huiju.estateagents.base.BaseController;
7 7
 import com.huiju.estateagents.base.ResponseBean;
8 8
 import com.huiju.estateagents.common.CommConstant;
9 9
 import com.huiju.estateagents.entity.*;
10
+import com.huiju.estateagents.reportCustomerAop.ReportCustomer;
10 11
 import com.huiju.estateagents.service.*;
11 12
 import com.huiju.estateagents.service.ITaPersonService;
12 13
 import com.huiju.estateagents.service.ITaShareActivityService;
@@ -360,8 +361,9 @@ public class TaShareActivityController extends BaseController {
360 361
      * @param groupActivityId  实体ID
361 362
      */
362 363
     @RequestMapping(value="/wx/taShareActivity/{groupActivityId}",method= RequestMethod.GET)
364
+    @ReportCustomer(type = "group")
363 365
     public ResponseBean wxShareActivityGet(@PathVariable Integer groupActivityId,
364
-                                           @RequestParam(value = "recordId",required = false) Integer recordId, HttpServletRequest request){
366
+                                           HttpServletRequest request, @RequestParam(value = "recordId",required = false) Integer recordId ){
365 367
         ResponseBean responseBean = new ResponseBean();
366 368
         String openid = getOpenId(request);
367 369
         Integer orgId = getOrgId(request);

+ 1
- 1
src/main/java/com/huiju/estateagents/drainage/controller/TaDrainageController.java Datei anzeigen

@@ -332,7 +332,7 @@ public class TaDrainageController extends BaseController {
332 332
      * @param id  实体ID
333 333
      */
334 334
     @RequestMapping(value="/wx/taDrainage/{id}",method= RequestMethod.GET)
335
-    public ResponseBean wxDrainageGet(@PathVariable Integer id){
335
+    public ResponseBean wxDrainageGet(@PathVariable Integer id, HttpServletRequest request){
336 336
         ResponseBean responseBean = new ResponseBean();
337 337
         try {
338 338
             responseBean.addSuccess(iTaDrainageService.getById(id));

+ 16
- 0
src/main/java/com/huiju/estateagents/reportCustomerAop/ReportCustomer.java Datei anzeigen

@@ -0,0 +1,16 @@
1
+package com.huiju.estateagents.reportCustomerAop;
2
+
3
+import java.lang.annotation.Documented;
4
+import java.lang.annotation.ElementType;
5
+import java.lang.annotation.Retention;
6
+import java.lang.annotation.RetentionPolicy;
7
+import java.lang.annotation.Target;
8
+
9
+import javax.servlet.http.HttpServletRequest;
10
+
11
+@Retention(RetentionPolicy.RUNTIME)
12
+@Target({ElementType.METHOD})
13
+@Documented
14
+public @interface ReportCustomer {
15
+    String type() default "" ;
16
+}

+ 123
- 0
src/main/java/com/huiju/estateagents/reportCustomerAop/ReportCustomerAspect.java Datei anzeigen

@@ -0,0 +1,123 @@
1
+package com.huiju.estateagents.reportCustomerAop;
2
+
3
+import java.time.LocalDateTime;
4
+import java.util.ArrayList;
5
+import java.util.Arrays;
6
+import java.util.List;
7
+
8
+import javax.servlet.http.HttpServletRequest;
9
+
10
+import org.aspectj.lang.JoinPoint;
11
+import org.aspectj.lang.ProceedingJoinPoint;
12
+import org.aspectj.lang.annotation.Around;
13
+import org.aspectj.lang.annotation.Aspect;
14
+import org.aspectj.lang.annotation.Before;
15
+import org.aspectj.lang.annotation.Pointcut;
16
+import org.aspectj.lang.reflect.MethodSignature;
17
+import org.springframework.beans.factory.annotation.Autowired;
18
+import org.springframework.stereotype.Component;
19
+
20
+import com.alibaba.fastjson.JSONObject;
21
+import com.huiju.estateagents.base.BaseController;
22
+import com.huiju.estateagents.base.ResponseBean;
23
+import com.huiju.estateagents.common.CommConstant;
24
+import com.huiju.estateagents.common.StringUtils;
25
+import com.huiju.estateagents.entity.TaBuilding;
26
+import com.huiju.estateagents.entity.TaCustomerFrom;
27
+import com.huiju.estateagents.entity.TaPerson;
28
+import com.huiju.estateagents.mapper.TaBuildingMapper;
29
+import com.huiju.estateagents.mapper.TaPersonMapper;
30
+import com.huiju.estateagents.service.ITaRecommendCustomerService;
31
+
32
+import io.swagger.models.auth.In;
33
+
34
+@Aspect
35
+@Component
36
+public class ReportCustomerAspect extends BaseController {
37
+
38
+    @Autowired
39
+    private ITaRecommendCustomerService iTaRecommendCustomerService;
40
+
41
+    @Autowired
42
+    TaPersonMapper taPersonMapper;
43
+
44
+    @Autowired
45
+    private TaBuildingMapper taBuildingMapper;
46
+
47
+
48
+    /** 以自定义 @ReportCustomer 注解为切点 */
49
+    @Pointcut("@annotation(com.huiju.estateagents.reportCustomerAop.ReportCustomer)")
50
+    public void reportCustomer() {
51
+
52
+    }
53
+
54
+    @Before("reportCustomer()")
55
+    public ResponseBean doAround(JoinPoint proceedingJoinPoint) throws Throwable {
56
+        ResponseBean responseBean = new ResponseBean();
57
+        try{
58
+            ReportCustomer reportCustomer = ((MethodSignature)proceedingJoinPoint.getSignature()).getMethod().getAnnotation(ReportCustomer.class);
59
+            //获取请求参数
60
+            Object[] args = proceedingJoinPoint.getArgs();
61
+            HttpServletRequest request = (HttpServletRequest)args[1];
62
+
63
+            if (request == null){
64
+                responseBean.addError("未授权,不进行操作");
65
+                return responseBean;
66
+            }
67
+
68
+            String params = request.getHeader("reportInfo");
69
+            JSONObject paramObject = JSONObject.parseObject(params);
70
+
71
+            List<TaPerson> persons = getPersonsByOpenId(getOpenId(request));
72
+            TaPerson taPerson = persons.get(0);
73
+            Integer orgId = getOrgId(request);
74
+
75
+            // 楼盘ID
76
+            String buildingId = paramObject.getString("buildingId");
77
+            // 场景ID
78
+            String sceneId = paramObject.getString("sceneId");
79
+            // 访问目标
80
+            String targetType = reportCustomer.type();
81
+            // 目标ID
82
+            String targetId = paramObject.getString("targetId");
83
+            // 目标名称
84
+            String targetName = paramObject.getString("targetName");
85
+            // 推广用户
86
+            String promoter = paramObject.getString("promoter");
87
+
88
+            TaCustomerFrom  taCustomerFrom = assembleVO(taPerson, targetType, targetId, targetName, orgId, sceneId);
89
+            // 推广人
90
+            TaPerson recPerson = StringUtils.isEmpty(promoter) ? null : taPersonMapper.getById(promoter);
91
+            // 是否置业顾问
92
+            boolean isConsultant = null != recPerson && CommConstant.PERSON_REALTY_CONSULTANT.equals(recPerson.getPersonType());
93
+            // 推荐楼盘
94
+            TaBuilding building = StringUtils.isEmpty(buildingId) ? null : taBuildingMapper.selectById(buildingId);
95
+
96
+            iTaRecommendCustomerService.newCustomer(orgId, taPerson, recPerson, isConsultant ? recPerson : null, building, taCustomerFrom);
97
+            responseBean.addSuccess("绑定成功");
98
+
99
+        }catch (Exception e){
100
+            responseBean.addError("失败");
101
+        }
102
+        return responseBean;
103
+    }
104
+
105
+    public TaCustomerFrom assembleVO(TaPerson person, String targetType, String targetId, String targetName, Integer orgId, String sceneId){
106
+        // 客户来源
107
+        TaCustomerFrom customerFrom = new TaCustomerFrom();
108
+        customerFrom.setPersonId(person.getPersonId());
109
+        customerFrom.setPersonName(StringUtils.ifNull(person.getName(), person.getNickname()));
110
+        customerFrom.setTargetType(targetType);
111
+        customerFrom.setTargetId(targetId);
112
+        customerFrom.setTargetName(targetName);
113
+        customerFrom.setOrgId(orgId);
114
+        customerFrom.setSceneId(sceneId);
115
+        customerFrom.setCreateDate(LocalDateTime.now());
116
+
117
+        return customerFrom;
118
+    }
119
+
120
+    public List<TaPerson> getPersonsByOpenId(String openId){
121
+        return taPersonMapper.getPersonByOpenId(openId);
122
+    }
123
+}

+ 4
- 1
src/main/java/com/huiju/estateagents/service/impl/ExtendContentServiceImpl.java Datei anzeigen

@@ -174,7 +174,7 @@ public class ExtendContentServiceImpl extends ServiceImpl<ExtendContentMapper, E
174 174
 
175 175
     @Override
176 176
     public boolean advertistExistFlag(ExtendContent extendContent, Integer orgId) {
177
-        //一个城市只能有一个开屏广告
177
+        //一个城市、项目只能有一个开屏广告
178 178
         if (extendContent.getStatus() == 1 && CommConstant.OPEN_SCREEN.equals(extendContent.getShowType())){
179 179
             QueryWrapper<ExtendContent> taExtendContentQueryWrapper = new QueryWrapper<>();
180 180
             if (extendContent.getCityId() == null){
@@ -190,6 +190,9 @@ public class ExtendContentServiceImpl extends ServiceImpl<ExtendContentMapper, E
190 190
             if (null != extendContent.getContentId()){
191 191
                 taExtendContentQueryWrapper.ne("content_id", extendContent.getContentId());
192 192
             }
193
+            if (CommConstant.BANNER_BUILDING.equals(extendContent.getShowPosition())){
194
+                taExtendContentQueryWrapper.eq("building_id", extendContent.getBuildingId());
195
+            }
193 196
             List<ExtendContent> extContentInfo = extendContentMapper.selectList(taExtendContentQueryWrapper);
194 197
             if (!Collections.isEmpty(extContentInfo)){
195 198
                 return false;

+ 4
- 4
src/main/resources/mapper/TaRecommendCustomerMapper.xml Datei anzeigen

@@ -945,15 +945,15 @@
945 945
         <!--   sum( IF ( t.building_id IN ( 'foo', 'bar' ), 1, 0 ) ) AS consultNum,     -->
946 946
         <choose>
947 947
             <when test="consultBuildingIds != null and consultBuildingIds.size > 0">
948
-                sum( IF ( t.building_id IN <foreach collection="consultBuildingIds" item="id" open="(" close=")" separator=",">#{id}</foreach>
948
+                COALESCE(sum( IF ( t.building_id IN <foreach collection="consultBuildingIds" item="id" open="(" close=")" separator=",">#{id}</foreach>
949 949
             </when>
950 950
             <otherwise>
951
-                sum( IF ( t.building_id IN ('****')
951
+                COALESCE(sum( IF ( t.building_id IN ('****')
952 952
             </otherwise>
953 953
         </choose>
954
-            , 1, 0 ) ) AS consultNum,
954
+            , 1, 0 ) ), 0) AS consultNum,
955 955
 
956
-            sum( IF ( t.building_id = #{buildingId}, 1, 0 ) ) AS buildingNum
956
+            COALESCE(sum( IF ( t.building_id = #{buildingId}, 1, 0 ) ), 0) AS buildingNum
957 957
         FROM
958 958
             ta_recommend_customer t
959 959
         WHERE