顾绍勇 5 anos atrás
pai
commit
321d5e175e

+ 29
- 0
src/main/java/com/huiju/estateagents/bo/request/QrCodeStatisticResponseBO.java Ver arquivo

@@ -0,0 +1,29 @@
1
+package com.huiju.estateagents.bo.request;
2
+
3
+import lombok.Data;
4
+
5
+/**
6
+ * 二维码统计返回实体
7
+ *
8
+ * @author gusy
9
+ * @date 2020/5/21 13:53
10
+ */
11
+@Data
12
+public class QrCodeStatisticResponseBO {
13
+
14
+    /**
15
+     * 访问人数
16
+     */
17
+    private Integer visitPersons;
18
+
19
+    /**
20
+     * 访问次数
21
+     */
22
+    private Integer visitNum;
23
+
24
+    /**
25
+     * 新增用户
26
+     */
27
+    private Integer newPersons;
28
+
29
+}

+ 90
- 0
src/main/java/com/huiju/estateagents/common/MiniAppPageEnum.java Ver arquivo

@@ -0,0 +1,90 @@
1
+package com.huiju.estateagents.common;
2
+
3
+/**
4
+ * 小程序页面枚举
5
+ *
6
+ * @author gusy
7
+ * @date 2020/5/21 15:58
8
+ */
9
+public enum MiniAppPageEnum {
10
+
11
+    /**
12
+     * 项目
13
+     */
14
+    PROJECT("project", "targetId=%s&targetType=%S&channelId=%s&qrCodeId=%s&buildingId=%s", "pages/project/detail/index"),
15
+
16
+    /**
17
+     * 报名活动
18
+     */
19
+    ACTIVITY("activity", "targetId=%s&targetType=%S&channelId=%s&qrCodeId=%s&buildingId=%s", "pages/activity/detail/index"),
20
+
21
+    /**
22
+     * 助力活动
23
+     */
24
+    HELP("help", "targetId=%s&targetType=%S&channelId=%s&qrCodeId=%s&buildingId=%s", "pages/activity/detail/assistance"),
25
+
26
+    /**
27
+     * 拼团活动
28
+     */
29
+    GROUP("group", "targetId=%s&targetType=%S&channelId=%s&qrCodeId=%s&buildingId=%s", "pages/activity/detail/assemble"),
30
+
31
+    /**
32
+     * h5活动
33
+     */
34
+    H5("h5", "targetId=%s&targetType=%S&channelId=%s&qrCodeId=%s&buildingId=%s", "pages/project/h5Page"),
35
+
36
+    /**
37
+     * 直播活动
38
+     */
39
+    LIVE("live", "targetId=%s&targetType=%S&channelId=%s&qrCodeId=%s&buildingId=%s", "onlineSelling/pages/live/index"),
40
+
41
+    /**
42
+     * 资讯
43
+     */
44
+    NEWS("news", "targetId=%s&targetType=%S&channelId=%s&qrCodeId=%s&buildingId=%s", "pages/news/detail/index"),
45
+
46
+    /**
47
+     * 在线选房
48
+     */
49
+    SALESBATCH("salesBatch", "targetId=%s&targetType=%S&channelId=%s&qrCodeId=%s&buildingId=%s", "onlineSelling/pages/houseList/index");
50
+
51
+    private String type;
52
+    private String scene;
53
+    private String page;
54
+
55
+    MiniAppPageEnum(String type, String scene, String page) {
56
+        this.type = type;
57
+        this.scene = scene;
58
+        this.page = page;
59
+    }
60
+
61
+    public String getType() {
62
+        return type;
63
+    }
64
+
65
+    public String getScene() {
66
+        return scene;
67
+    }
68
+
69
+    public String getPage() {
70
+        return page;
71
+    }
72
+
73
+    public static String getSceneByType(String type) {
74
+        for (MiniAppPageEnum pageEnum : MiniAppPageEnum.values()) {
75
+            if (type.equals(pageEnum.getType())) {
76
+                return pageEnum.getScene();
77
+            }
78
+        }
79
+        return null;
80
+    }
81
+
82
+    public static String getPageByType(String type) {
83
+        for (MiniAppPageEnum pageEnum : MiniAppPageEnum.values()) {
84
+            if (type.equals(pageEnum.getType())) {
85
+                return pageEnum.getPage();
86
+            }
87
+        }
88
+        return null;
89
+    }
90
+}

+ 33
- 0
src/main/java/com/huiju/estateagents/common/WxQrCodeUtils.java Ver arquivo

@@ -0,0 +1,33 @@
1
+package com.huiju.estateagents.common;
2
+
3
+import com.alibaba.fastjson.JSONObject;
4
+import org.apache.commons.lang3.StringUtils;
5
+
6
+/**
7
+ * 微信二维码生成工具类
8
+ *
9
+ * @author gusy
10
+ * @date 2020/5/21 15:40
11
+ */
12
+public class WxQrCodeUtils {
13
+
14
+    /**
15
+     * 生成scene和页面
16
+     *
17
+     * @param type
18
+     * @param scene  为空则使用配置的通用模板
19
+     * @param params scene为空是必须按照模板内容填写
20
+     * @return
21
+     */
22
+    public static String generateSceneAndPage(String type, String scene, String... params) {
23
+        if (StringUtils.isBlank(scene)) {
24
+            String sceneTemplate = MiniAppPageEnum.getSceneByType(type);
25
+            scene = String.format(sceneTemplate, params);
26
+        }
27
+
28
+        JSONObject obj = new JSONObject();
29
+        obj.put("scene", scene);
30
+        obj.put("page", MiniAppPageEnum.getPageByType(type));
31
+        return obj.toJSONString();
32
+    }
33
+}

+ 32
- 25
src/main/java/com/huiju/estateagents/controller/TaQrcodeController.java Ver arquivo

@@ -1,5 +1,6 @@
1 1
 package com.huiju.estateagents.controller;
2 2
 
3
+import com.alibaba.fastjson.JSONObject;
3 4
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4 5
 import com.baomidou.mybatisplus.core.metadata.IPage;
5 6
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -7,7 +8,10 @@ import com.google.gson.JsonObject;
7 8
 import com.huiju.estateagents.base.BaseController;
8 9
 import com.huiju.estateagents.base.ResponseBean;
9 10
 import com.huiju.estateagents.common.CommConstant;
11
+import com.huiju.estateagents.common.WxQrCodeUtils;
12
+import com.huiju.estateagents.entity.TaMiniapp;
10 13
 import com.huiju.estateagents.entity.TaQrcode;
14
+import com.huiju.estateagents.service.IMiniAppService;
11 15
 import com.huiju.estateagents.service.ITaQrcodeService;
12 16
 import org.apache.commons.lang3.StringUtils;
13 17
 import org.slf4j.Logger;
@@ -36,6 +40,9 @@ public class TaQrcodeController extends BaseController {
36 40
     @Autowired
37 41
     public ITaQrcodeService iTaQrcodeService;
38 42
 
43
+    @Autowired
44
+    private IMiniAppService iMiniAppService;
45
+
39 46
 
40 47
     /**
41 48
      * 分页查询列表
@@ -45,7 +52,7 @@ public class TaQrcodeController extends BaseController {
45 52
      * @return
46 53
      */
47 54
     @RequestMapping(value = "/admin/listQrCode", method = RequestMethod.GET)
48
-    public ResponseBean taQrcodeList(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
55
+    public ResponseBean listQrCodeByCondition(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
49 56
                                      @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
50 57
                                      String targetType, String targetName, Integer channelId, String buildingId,
51 58
                                      HttpServletRequest request) {
@@ -53,18 +60,7 @@ public class TaQrcodeController extends BaseController {
53 60
                 targetType, targetName, channelId, buildingId);
54 61
         ResponseBean responseBean = new ResponseBean();
55 62
         try {
56
-            //使用分页插件
57
-            IPage<TaQrcode> pg = new Page<>(pageNum, pageSize);
58
-            QueryWrapper<TaQrcode> queryWrapper = new QueryWrapper<>();
59
-            queryWrapper.eq(StringUtils.isNotBlank(targetType), "target_type", targetType);
60
-            queryWrapper.eq(StringUtils.isNotBlank(targetName), "target_name", targetName);
61
-            queryWrapper.eq(channelId != null, "channel_id", channelId);
62
-            queryWrapper.eq(StringUtils.isNotBlank(buildingId), "buildingId", buildingId);
63
-            queryWrapper.eq("org_id", getOrgId(request));
64
-            queryWrapper.orderByDesc("create_date");
65
-
66
-            IPage<TaQrcode> result = iTaQrcodeService.page(pg, queryWrapper);
67
-            responseBean.addSuccess(result);
63
+            responseBean = iTaQrcodeService.listQrCodeByCondition(pageNum,pageSize,targetType,targetName,channelId,buildingId,getOrgId(request));
68 64
         } catch (Exception e) {
69 65
             e.printStackTrace();
70 66
             logger.error("taQrcodeList -=- {}", e.toString());
@@ -80,22 +76,13 @@ public class TaQrcodeController extends BaseController {
80 76
      * @return
81 77
      */
82 78
     @RequestMapping(value = "/admin/taQrcode", method = RequestMethod.POST)
83
-    public ResponseBean taQrcodeAdd(@RequestBody TaQrcode taQrcode, HttpServletRequest request) {
79
+    public ResponseBean saveQrcode(@RequestBody TaQrcode taQrcode, HttpServletRequest request) {
84 80
         ResponseBean responseBean = new ResponseBean();
85 81
         try {
86
-            taQrcode.setOrgId(getOrgId(request));
87
-            taQrcode.setCreateUser(getUserId(request));
88
-            taQrcode.setCreateDate(LocalDateTime.now());
89
-            taQrcode.setStatus(CommConstant.STATUS_NORMAL);
90
-
91
-            if (iTaQrcodeService.save(taQrcode)) {
92
-                responseBean.addSuccess(taQrcode);
93
-            } else {
94
-                responseBean.addError("fail");
95
-            }
82
+            responseBean = iTaQrcodeService.saveQrcode(taQrcode, getUserId(request), getOrgId(request));
96 83
         } catch (Exception e) {
97 84
             e.printStackTrace();
98
-            logger.error("taQrcodeAdd -=- {}", e.toString());
85
+            logger.error("saveQrcode -=- {}", e.toString());
99 86
             responseBean.addError(e.getMessage());
100 87
         }
101 88
         return responseBean;
@@ -190,4 +177,24 @@ public class TaQrcodeController extends BaseController {
190 177
         }
191 178
         return responseBean;
192 179
     }
180
+
181
+    /**
182
+     * 获取二维码统计信息
183
+     *
184
+     * @param request
185
+     * @return
186
+     */
187
+    @RequestMapping("/admin/qrCode/getStatisticData")
188
+    public ResponseBean getStatisticData(Integer qrCodeId, HttpServletRequest request) {
189
+        logger.info("getStatisticData 接收参数:qrCodeId:{}", qrCodeId);
190
+        ResponseBean responseBean = new ResponseBean();
191
+        try {
192
+            responseBean = iTaQrcodeService.getStatisticData(qrCodeId, getOrgId(request));
193
+            logger.info("getStatisticData 返回结果:{}", JSONObject.toJSONString(responseBean));
194
+        } catch (Exception e) {
195
+            logger.error("getStatisticData 异常:", e);
196
+            responseBean.addError(e.getMessage());
197
+        }
198
+        return responseBean;
199
+    }
193 200
 }

+ 3
- 6
src/main/java/com/huiju/estateagents/controller/TaRaiseController.java Ver arquivo

@@ -7,23 +7,20 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
7 7
 import com.huiju.estateagents.base.BaseController;
8 8
 import com.huiju.estateagents.base.ResponseBean;
9 9
 import com.huiju.estateagents.common.CommConstant;
10
-import com.huiju.estateagents.common.StringUtils;
11 10
 import com.huiju.estateagents.entity.TaPersonBuilding;
12 11
 import com.huiju.estateagents.entity.TaRaise;
13
-import com.huiju.estateagents.entity.TaRaiseInvite;
14 12
 import com.huiju.estateagents.entity.TaSalesBatch;
15
-import com.huiju.estateagents.service.*;
13
+import com.huiju.estateagents.service.ITaRaiseService;
14
+import com.huiju.estateagents.service.ITaSalesBatchService;
15
+import com.huiju.estateagents.service.ITdCityService;
16 16
 import com.huiju.estateagents.service.impl.TaRaiseInviteServiceImpl;
17
-import io.swagger.models.auth.In;
18 17
 import org.slf4j.Logger;
19 18
 import org.slf4j.LoggerFactory;
20 19
 import org.springframework.beans.factory.annotation.Autowired;
21 20
 import org.springframework.web.bind.annotation.*;
22 21
 
23 22
 import javax.servlet.http.HttpServletRequest;
24
-import java.lang.reflect.Array;
25 23
 import java.time.LocalDateTime;
26
-import java.util.ArrayList;
27 24
 import java.util.List;
28 25
 
29 26
 /**

+ 12
- 0
src/main/java/com/huiju/estateagents/entity/TaQrcode.java Ver arquivo

@@ -84,4 +84,16 @@ public class TaQrcode implements Serializable {
84 84
 
85 85
     @TableField(exist = false)
86 86
     private List<TaQrcode> qrcodeList;
87
+
88
+    /**
89
+     * 楼盘名称
90
+     */
91
+    @TableField(exist = false)
92
+    private String buildingName;
93
+
94
+    /**
95
+     * 渠道名称
96
+     */
97
+    @TableField(exist = false)
98
+    private String channelName;
87 99
 }

+ 2
- 0
src/main/java/com/huiju/estateagents/mapper/TaMiniappMapper.java Ver arquivo

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 4
 import com.huiju.estateagents.entity.TaMiniapp;
5 5
 import com.huiju.estateagents.entity.TaMiniappTemplate;
6 6
 import org.apache.ibatis.annotations.Mapper;
7
+import org.springframework.stereotype.Component;
7 8
 
8 9
 import java.util.List;
9 10
 
@@ -16,6 +17,7 @@ import java.util.List;
16 17
  * @since 2019-09-11
17 18
  */
18 19
 @Mapper
20
+@Component
19 21
 public interface TaMiniappMapper extends BaseMapper<TaMiniapp> {
20 22
 
21 23
     List<TaMiniapp> getAllAvaliableMiniapps();

+ 14
- 0
src/main/java/com/huiju/estateagents/mapper/TaQrcodeMapper.java Ver arquivo

@@ -1,8 +1,13 @@
1 1
 package com.huiju.estateagents.mapper;
2 2
 
3 3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
+import com.huiju.estateagents.bo.request.QrCodeStatisticResponseBO;
4 7
 import com.huiju.estateagents.entity.TaQrcode;
5 8
 import org.apache.ibatis.annotations.Mapper;
9
+import org.apache.ibatis.annotations.Param;
10
+import org.springframework.stereotype.Component;
6 11
 
7 12
 /**
8 13
  * <p>
@@ -13,6 +18,15 @@ import org.apache.ibatis.annotations.Mapper;
13 18
  * @since 2020-05-20
14 19
  */
15 20
 @Mapper
21
+@Component
16 22
 public interface TaQrcodeMapper extends BaseMapper<TaQrcode> {
17 23
 
24
+    QrCodeStatisticResponseBO getStatisticData(@Param("orgId") Integer orgId);
25
+
26
+    IPage<TaQrcode> listQrCodeByCondition(IPage<TaQrcode> page,
27
+                                          @Param("targetType") String targetType,
28
+                                          @Param("targetName") String targetName,
29
+                                          @Param("channelId") Integer channelId,
30
+                                          @Param("buildingId") String buildingId,
31
+                                          @Param("orgId") Integer orgId);
18 32
 }

+ 10
- 0
src/main/java/com/huiju/estateagents/service/ITaQrcodeService.java Ver arquivo

@@ -1,7 +1,11 @@
1 1
 package com.huiju.estateagents.service;
2 2
 
3
+import com.huiju.estateagents.base.ResponseBean;
3 4
 import com.huiju.estateagents.entity.TaQrcode;
4 5
 import com.baomidou.mybatisplus.extension.service.IService;
6
+import org.springframework.web.bind.annotation.RequestParam;
7
+
8
+import javax.servlet.http.HttpServletRequest;
5 9
 
6 10
 /**
7 11
  * <p>
@@ -13,4 +17,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
13 17
  */
14 18
 public interface ITaQrcodeService extends IService<TaQrcode> {
15 19
 
20
+    ResponseBean listQrCodeByCondition(Integer pageNum, Integer pageSize, String targetType, String targetName, Integer channelId, String buildingId, Integer orgId);
21
+
22
+    ResponseBean saveQrcode(TaQrcode taQrcode, Integer userId, Integer orgId);
23
+
24
+    ResponseBean getStatisticData(Integer qrCodeId, Integer orgId);
25
+
16 26
 }

+ 120
- 0
src/main/java/com/huiju/estateagents/service/impl/TaQrcodeServiceImpl.java Ver arquivo

@@ -1,11 +1,28 @@
1 1
 package com.huiju.estateagents.service.impl;
2 2
 
3
+import com.alibaba.fastjson.JSONObject;
4
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5
+import com.baomidou.mybatisplus.core.metadata.IPage;
6
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
3 7
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
8
+import com.huiju.estateagents.base.ResponseBean;
9
+import com.huiju.estateagents.bo.request.QrCodeStatisticResponseBO;
10
+import com.huiju.estateagents.common.CommConstant;
11
+import com.huiju.estateagents.common.WxQrCodeUtils;
12
+import com.huiju.estateagents.entity.TaMiniapp;
4 13
 import com.huiju.estateagents.entity.TaQrcode;
14
+import com.huiju.estateagents.mapper.TaMiniappMapper;
5 15
 import com.huiju.estateagents.mapper.TaQrcodeMapper;
16
+import com.huiju.estateagents.service.IMiniAppService;
6 17
 import com.huiju.estateagents.service.ITaQrcodeService;
18
+import org.checkerframework.checker.units.qual.A;
19
+import org.slf4j.Logger;
20
+import org.slf4j.LoggerFactory;
21
+import org.springframework.beans.factory.annotation.Autowired;
7 22
 import org.springframework.stereotype.Service;
8 23
 
24
+import java.time.LocalDateTime;
25
+
9 26
 /**
10 27
  * <p>
11 28
  * 二维码管理表 服务实现类
@@ -17,4 +34,107 @@ import org.springframework.stereotype.Service;
17 34
 @Service
18 35
 public class TaQrcodeServiceImpl extends ServiceImpl<TaQrcodeMapper, TaQrcode> implements ITaQrcodeService {
19 36
 
37
+    private Logger logger = LoggerFactory.getLogger(TaQrcodeServiceImpl.class);
38
+
39
+    @Autowired
40
+    private TaQrcodeMapper taQrcodeMapper;
41
+
42
+    @Autowired
43
+    private TaMiniappMapper taMiniappMapper;
44
+
45
+    @Autowired
46
+    private IMiniAppService iMiniAppService;
47
+
48
+    /**
49
+     * 条件查询二维码列表
50
+     *
51
+     * @param pageNum
52
+     * @param pageSize
53
+     * @param targetType
54
+     * @param targetName
55
+     * @param channelId
56
+     * @param buildingId
57
+     * @param orgId
58
+     * @return
59
+     */
60
+    @Override
61
+    public ResponseBean listQrCodeByCondition(Integer pageNum, Integer pageSize, String targetType, String targetName, Integer channelId, String buildingId, Integer orgId) {
62
+        ResponseBean responseBean = new ResponseBean();
63
+        IPage<TaQrcode> pg = new Page<>(pageNum, pageSize);
64
+        responseBean.addSuccess(taQrcodeMapper.listQrCodeByCondition(pg, targetType, targetName, channelId, buildingId, orgId));
65
+        return responseBean;
66
+    }
67
+
68
+    /**
69
+     * 保存二维码信息
70
+     *
71
+     * @param taQrcode
72
+     * @param userId
73
+     * @param orgId
74
+     * @return
75
+     */
76
+    @Override
77
+    public ResponseBean saveQrcode(TaQrcode taQrcode, Integer userId, Integer orgId) {
78
+        ResponseBean responseBean = new ResponseBean();
79
+
80
+        // 保存数据
81
+        taQrcode.setOrgId(orgId);
82
+        taQrcode.setCreateUser(userId);
83
+        taQrcode.setCreateDate(LocalDateTime.now());
84
+        taQrcode.setStatus(CommConstant.STATUS_NORMAL);
85
+        if (!save(taQrcode)) {
86
+            responseBean.addError("fail");
87
+            return responseBean;
88
+        }
89
+
90
+        // 获取appId
91
+        QueryWrapper<TaMiniapp> taMiniappQuery = new QueryWrapper<>();
92
+        taMiniappQuery.eq("org_id", orgId);
93
+        TaMiniapp taMiniapp = taMiniappMapper.selectOne(taMiniappQuery);
94
+
95
+        // 生成二维码
96
+        String paramsStr = WxQrCodeUtils.generateSceneAndPage(taQrcode.getTargetType(), "",
97
+                taQrcode.getTargetId(), taQrcode.getTargetType(), taQrcode.getChannelId() + "", taQrcode.getQrCodeId() + "", taQrcode.getBuildingId());
98
+        ResponseBean qrCodeResult = iMiniAppService.getQrCode(paramsStr, taMiniapp.getMiniappId());
99
+        if (qrCodeResult != null && ResponseBean.CODE_SUCCESS == qrCodeResult.getCode()) {
100
+            // 更新数据
101
+            taQrcode.setQrCodeUrl(qrCodeResult.getCode() + "");
102
+            if (updateById(taQrcode)) {
103
+                responseBean.addSuccess(taQrcode);
104
+                return responseBean;
105
+            }
106
+        }
107
+        removeById(taQrcode.getQrCodeId());
108
+        responseBean.addError("fail");
109
+        return responseBean;
110
+    }
111
+
112
+    /**
113
+     * 获取二维码统计
114
+     *
115
+     * @param qrCodeId
116
+     * @param orgId
117
+     * @return
118
+     */
119
+    @Override
120
+    public ResponseBean getStatisticData(Integer qrCodeId, Integer orgId) {
121
+        ResponseBean responseBean = new ResponseBean();
122
+
123
+        // 获取二维码信息
124
+        TaQrcode taQrcode = taQrcodeMapper.selectById(qrCodeId);
125
+        if (taQrcode == null) {
126
+            responseBean.addError("fail");
127
+            return responseBean;
128
+        }
129
+
130
+        // 获取统计数据
131
+        QrCodeStatisticResponseBO statisticData = taQrcodeMapper.getStatisticData(orgId);
132
+
133
+        // 组装反参
134
+        JSONObject resultObj = new JSONObject();
135
+        resultObj.put("statistic", statisticData);
136
+        resultObj.put("qrCodeInfo", taQrcode);
137
+        responseBean.addSuccess(resultObj);
138
+        return responseBean;
139
+    }
20 140
 }

+ 1
- 1
src/main/java/com/huiju/estateagents/third/controller/TaThirdPartyMiniappConfigController.java Ver arquivo

@@ -165,7 +165,7 @@ public class TaThirdPartyMiniappConfigController extends BaseController {
165 165
     }
166 166
 
167 167
     /**
168
-     * 第三方生成二维码
168
+     * 第三方生成
169 169
      * @return
170 170
      */
171 171
     @PostMapping("/third/qrcode")

+ 32
- 0
src/main/resources/mapper/TaQrcodeMapper.xml Ver arquivo

@@ -2,4 +2,36 @@
2 2
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3 3
 <mapper namespace="com.huiju.estateagents.mapper.TaQrcodeMapper">
4 4
 
5
+    <select id="listQrCodeByCondition" resultType="com.huiju.estateagents.entity.TaQrcode">
6
+    SELECT
7
+        t.*,
8
+        t2.building_name,
9
+        t3.channel_name
10
+    FROM
11
+        ta_qrcode t
12
+        LEFT JOIN ta_building t2 ON t.building_id = t2.building_id
13
+        LEFT JOIN ta_channel t3 ON t.channel_id = t3.channel_id
14
+    WHERE
15
+        t.`status` > - 1
16
+        AND t.org_id = #{orgId}
17
+        <if test = "buildingId == '' or buildingId == null">
18
+            AND t.building_id = #{buildingId}
19
+        </if>
20
+        <if test = "targetType == '' or targetType == null">
21
+            AND t.target_type = #{targetType}
22
+        </if>
23
+        <if test = "targetName == '' or targetName == null">
24
+            AND t.target_name = #{targetName}
25
+        </if>
26
+        <if test = "channelId == null">
27
+            AND t.channel_id = #{channelId}
28
+        </if>
29
+      ORDER BY
30
+        t.create_date DESC
31
+    </select>
32
+
33
+    <select id="getStatisticData" resultType="com.huiju.estateagents.bo.request.QrCodeStatisticResponseBO">
34
+
35
+    </select>
36
+
5 37
 </mapper>