yansen 4 年之前
父節點
當前提交
ec3065a18a

+ 38
- 8
src/main/java/com/huiju/estateagents/center/taUser/controller/TaUserController.java 查看文件

8
 import com.huiju.estateagents.base.ResponseBean;
8
 import com.huiju.estateagents.base.ResponseBean;
9
 import com.huiju.estateagents.center.sysUser.entity.SysToken;
9
 import com.huiju.estateagents.center.sysUser.entity.SysToken;
10
 import com.huiju.estateagents.center.sysUser.service.ISysTokenService;
10
 import com.huiju.estateagents.center.sysUser.service.ISysTokenService;
11
-import com.huiju.estateagents.center.taUser.entity.TaTagUser;
12
-import com.huiju.estateagents.center.taUser.entity.TaTags;
13
-import com.huiju.estateagents.center.taUser.entity.TaUser;
14
-import com.huiju.estateagents.center.taUser.entity.TaUserRole;
11
+import com.huiju.estateagents.center.taUser.entity.*;
15
 import com.huiju.estateagents.center.taUser.service.*;
12
 import com.huiju.estateagents.center.taUser.service.*;
16
-import com.huiju.estateagents.common.CommConstant;
17
-import com.huiju.estateagents.common.JWTUtils;
18
-import com.huiju.estateagents.common.MD5Utils;
13
+import com.huiju.estateagents.common.*;
19
 import com.huiju.estateagents.entity.*;
14
 import com.huiju.estateagents.entity.*;
20
 import com.huiju.estateagents.mapper.TaRoleMapper;
15
 import com.huiju.estateagents.mapper.TaRoleMapper;
21
 import com.huiju.estateagents.service.ITaMiniappService;
16
 import com.huiju.estateagents.service.ITaMiniappService;
82
     @Autowired
77
     @Autowired
83
     private ITaMiniappService iTaMiniappService;
78
     private ITaMiniappService iTaMiniappService;
84
 
79
 
80
+    @Autowired
81
+    private SMSUtils smsUtils;
82
+
85
     /**
83
     /**
86
      * 分页查询列表
84
      * 分页查询列表
87
      * @param pageNum
85
      * @param pageNum
296
             taUser.setButtons((List<SysButtonInMenu>) authButton.getData());
294
             taUser.setButtons((List<SysButtonInMenu>) authButton.getData());
297
             taUser.setRoles(roles);
295
             taUser.setRoles(roles);
298
             taUser.setLoginPassword("");
296
             taUser.setLoginPassword("");
299
-            taUser.setMiniAppName(taMiniapp.getName());
297
+            taUser.setMiniapp(taMiniapp);
300
 
298
 
301
             //获取所有菜单
299
             //获取所有菜单
302
             List<SysMenu> allMenus = (List<SysMenu>) iTaUserAuthMenuService.getAllMenu(null, null,taUser.getOrgId(), roles).getData();
300
             List<SysMenu> allMenus = (List<SysMenu>) iTaUserAuthMenuService.getAllMenu(null, null,taUser.getOrgId(), roles).getData();
555
         responseBean = iTaUserService.departureUser(userId, customerIdList, consultantUserId);
553
         responseBean = iTaUserService.departureUser(userId, customerIdList, consultantUserId);
556
         return responseBean;
554
         return responseBean;
557
     }
555
     }
556
+
557
+    @PostMapping("/officeweb/signup")
558
+    public ResponseBean officeSignUp(@RequestBody OfficeSignUpEntity signUpEntity) {
559
+        if (StringUtils.isEmpty(signUpEntity.getCompany())) {
560
+            return ResponseBean.error("请填写公司", ResponseBean.ERROR_ILLEGAL_PARAMS);
561
+        }
562
+        if (StringUtils.isEmpty(signUpEntity.getPhone())) {
563
+            return ResponseBean.error("请填写手机号", ResponseBean.ERROR_ILLEGAL_PARAMS);
564
+        }
565
+        if (StringUtils.isEmpty(signUpEntity.getCaptcha())) {
566
+            return ResponseBean.error("请填写验证码", ResponseBean.ERROR_ILLEGAL_PARAMS);
567
+        }
568
+        if (StringUtils.isEmpty(signUpEntity.getPassword())) {
569
+            return ResponseBean.error("请填写密码", ResponseBean.ERROR_ILLEGAL_PARAMS);
570
+        }
571
+        if (null == signUpEntity.getCity()) {
572
+            return ResponseBean.error("请选择城市", ResponseBean.ERROR_ILLEGAL_PARAMS);
573
+        }
574
+
575
+        if (!smsUtils.checkCaptcha(signUpEntity.getPhone(), signUpEntity.getCaptcha())) {
576
+            return ResponseBean.error("手机验证码不正确", ResponseBean.ERROR_ILLEGAL_PARAMS);
577
+        }
578
+
579
+        try {
580
+            TaUser taUser = iTaUserService.officeSignUp(signUpEntity);
581
+            return ResponseBean.success(taUser);
582
+        } catch (Exception e) {
583
+            e.printStackTrace();
584
+            return ResponseBean.error(e.getMessage(), ResponseBean.ERROR_UNAVAILABLE);
585
+        }
586
+    }
587
+
558
 }
588
 }

+ 31
- 0
src/main/java/com/huiju/estateagents/center/taUser/entity/OfficeSignUpEntity.java 查看文件

1
+package com.huiju.estateagents.center.taUser.entity;
2
+
3
+import lombok.Data;
4
+
5
+@Data
6
+public class OfficeSignUpEntity {
7
+    /**
8
+     * 公司
9
+     */
10
+    String company;
11
+
12
+    /**
13
+     * 手机
14
+     */
15
+    String phone;
16
+
17
+    /**
18
+     * 验证码
19
+     */
20
+    String captcha;
21
+
22
+    /**
23
+     * 密码
24
+     */
25
+    String password;
26
+
27
+    /**
28
+     * 城市
29
+     */
30
+    Integer city;
31
+}

+ 11
- 1
src/main/java/com/huiju/estateagents/center/taUser/entity/TaUser.java 查看文件

125
      */
125
      */
126
     private Boolean isConsultant;
126
     private Boolean isConsultant;
127
 
127
 
128
+    /**
129
+     * 是否官网注册
130
+     */
131
+    private Boolean isOffice;
132
+
133
+    /**
134
+     * 是否试用中
135
+     */
136
+    private Boolean onTrial;
137
+
128
     /**
138
     /**
129
      * 公司水印
139
      * 公司水印
130
      */
140
      */
184
      * 前台传值城市
194
      * 前台传值城市
185
      */
195
      */
186
     @TableField(exist = false)
196
     @TableField(exist = false)
187
-    private ArrayList<String> selectCityTree;
197
+    private List<String> selectCityTree;
188
 
198
 
189
     /**
199
     /**
190
      * 城市ID
200
      * 城市ID

+ 3
- 0
src/main/java/com/huiju/estateagents/center/taUser/service/ITaUserService.java 查看文件

3
 import com.baomidou.mybatisplus.core.metadata.IPage;
3
 import com.baomidou.mybatisplus.core.metadata.IPage;
4
 import com.baomidou.mybatisplus.extension.service.IService;
4
 import com.baomidou.mybatisplus.extension.service.IService;
5
 import com.huiju.estateagents.base.ResponseBean;
5
 import com.huiju.estateagents.base.ResponseBean;
6
+import com.huiju.estateagents.center.taUser.entity.OfficeSignUpEntity;
6
 import com.huiju.estateagents.center.taUser.entity.TaTags;
7
 import com.huiju.estateagents.center.taUser.entity.TaTags;
7
 import com.huiju.estateagents.center.taUser.entity.TaUser;
8
 import com.huiju.estateagents.center.taUser.entity.TaUser;
8
 import com.huiju.estateagents.entity.TaPersonBuilding;
9
 import com.huiju.estateagents.entity.TaPersonBuilding;
75
      * @return
76
      * @return
76
      */
77
      */
77
     TaUser getUserInfoById(Integer userId, Integer orgId);
78
     TaUser getUserInfoById(Integer userId, Integer orgId);
79
+
80
+    TaUser officeSignUp(OfficeSignUpEntity signUpEntity) throws Exception;
78
 }
81
 }

+ 32
- 6
src/main/java/com/huiju/estateagents/center/taUser/service/impl/TaUserServiceImpl.java 查看文件

6
 import com.baomidou.mybatisplus.core.metadata.IPage;
6
 import com.baomidou.mybatisplus.core.metadata.IPage;
7
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
8
 import com.huiju.estateagents.base.ResponseBean;
8
 import com.huiju.estateagents.base.ResponseBean;
9
-import com.huiju.estateagents.center.taUser.entity.TaTagUser;
10
-import com.huiju.estateagents.center.taUser.entity.TaTags;
11
-import com.huiju.estateagents.center.taUser.entity.TaUser;
12
-import com.huiju.estateagents.center.taUser.entity.TaUserRole;
9
+import com.huiju.estateagents.center.taUser.entity.*;
13
 import com.huiju.estateagents.center.taUser.mapper.TaTagUserMapper;
10
 import com.huiju.estateagents.center.taUser.mapper.TaTagUserMapper;
14
 import com.huiju.estateagents.center.taUser.mapper.TaUserMapper;
11
 import com.huiju.estateagents.center.taUser.mapper.TaUserMapper;
15
 import com.huiju.estateagents.center.taUser.mapper.TaUserRoleMapper;
12
 import com.huiju.estateagents.center.taUser.mapper.TaUserRoleMapper;
222
     }
219
     }
223
 
220
 
224
     // 维护公司所在城市
221
     // 维护公司所在城市
225
-    public void addAndupdate(ArrayList<String> selectCityTree, boolean isA, Integer orgid) {
222
+    public void addAndupdate(List<String> selectCityTree, boolean isA, Integer orgid) {
226
         // 查询当前所有的市
223
         // 查询当前所有的市
227
         QueryWrapper<TdCity> tdCityQuery = new QueryWrapper<>();
224
         QueryWrapper<TdCity> tdCityQuery = new QueryWrapper<>();
228
         tdCityQuery.eq("leveltype", 2);
225
         tdCityQuery.eq("leveltype", 2);
262
     }
259
     }
263
 
260
 
264
     // 判断当前城市是否存在
261
     // 判断当前城市是否存在
265
-    public void verificationCity(ArrayList<String> selectCityTree, Integer city) throws Exception {
262
+    public void verificationCity(List<String> selectCityTree, Integer city) throws Exception {
266
         for (String id : selectCityTree) {
263
         for (String id : selectCityTree) {
267
             if (id.equals(String.valueOf(city))) {
264
             if (id.equals(String.valueOf(city))) {
268
                 return;
265
                 return;
685
         return getOne(userQueryWrapper);
682
         return getOne(userQueryWrapper);
686
     }
683
     }
687
 
684
 
685
+    @Override
686
+    public TaUser officeSignUp(OfficeSignUpEntity signUpEntity) throws Exception {
687
+        // 如果此处为 NULL, 需要手动插入一条网络推广的代理数据
688
+        TaChannelProxy taChannelProxy = taChannelProxyMapper.getOfficeWebProxy();
689
+        LocalDateTime now = LocalDateTime.now();
690
+        List<String> cities = new ArrayList<>();
691
+        cities.add(signUpEntity.getCity().toString());
692
+
693
+        TaUser taUser = new TaUser();
694
+        taUser.setUserName(signUpEntity.getCompany());
695
+        taUser.setPhone(signUpEntity.getPhone());
696
+        taUser.setLoginPassword(signUpEntity.getPassword());
697
+        taUser.setStatus(CommConstant.STATUS_NORMAL);
698
+        taUser.setCreateDate(now);
699
+        taUser.setExpDate(now.plusDays(7));     // 默认 7 天有效期
700
+        taUser.setIsAdmin(true);
701
+        taUser.setIsConsultant(false);
702
+        taUser.setOrgName(signUpEntity.getCompany());
703
+        taUser.setOrgNum(10);       // 默认创建 10 个楼盘
704
+        taUser.setDefaultCityId(signUpEntity.getCity());
705
+        taUser.setSelectCityTree(cities);
706
+        taUser.setIsOffice(true);
707
+        taUser.setOnTrial(true);
708
+
709
+        taUser = newUserAndOrg(taUser, taChannelProxy.getChannelId());
710
+
711
+        return taUser;
712
+    }
713
+
688
     private boolean updateUserStatus(TaUser user) {
714
     private boolean updateUserStatus(TaUser user) {
689
         UpdateWrapper<TaUser> updateWrapper = new UpdateWrapper<>();
715
         UpdateWrapper<TaUser> updateWrapper = new UpdateWrapper<>();
690
         updateWrapper.eq("user_id", user.getUserId());
716
         updateWrapper.eq("user_id", user.getUserId());

+ 2
- 0
src/main/java/com/huiju/estateagents/channel/sysChannel/entity/TaChannelProxy.java 查看文件

36
 
36
 
37
     private LocalDateTime createTime;
37
     private LocalDateTime createTime;
38
 
38
 
39
+    private Boolean isOffice;
40
+
39
     @TableField(exist = false)
41
     @TableField(exist = false)
40
     private Integer appCurrentNum;
42
     private Integer appCurrentNum;
41
 }
43
 }

+ 4
- 0
src/main/java/com/huiju/estateagents/channel/sysChannel/mapper/TaChannelProxyMapper.java 查看文件

5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
 import com.huiju.estateagents.channel.sysChannel.entity.TaChannelProxy;
6
 import com.huiju.estateagents.channel.sysChannel.entity.TaChannelProxy;
7
 import org.apache.ibatis.annotations.Mapper;
7
 import org.apache.ibatis.annotations.Mapper;
8
+import org.apache.ibatis.annotations.Select;
8
 
9
 
9
 @Mapper
10
 @Mapper
10
 public interface TaChannelProxyMapper extends BaseMapper<TaChannelProxy> {
11
 public interface TaChannelProxyMapper extends BaseMapper<TaChannelProxy> {
11
     IPage<TaChannelProxy> getChannelList(IPage page);
12
     IPage<TaChannelProxy> getChannelList(IPage page);
13
+
14
+    @Select("select * from ta_channel_proxy where is_office = 1 and status = 1 limit 1")
15
+    TaChannelProxy getOfficeWebProxy();
12
 }
16
 }

+ 35
- 14
src/main/java/com/huiju/estateagents/common/SMSUtils.java 查看文件

56
      * @return
56
      * @return
57
      */
57
      */
58
     public boolean checkCaptcha(String tel, String smsCaptcha) {
58
     public boolean checkCaptcha(String tel, String smsCaptcha) {
59
-        Phone phone = allPhones.get(tel);
60
-        if (null == phone) {
61
-            log.error("手机号 {} 的验证码未找到", tel);
62
-            return false;
59
+        return checkCaptcha(tel, smsCaptcha, true);
60
+    }
61
+
62
+    public boolean checkCaptcha(String tel, String smsCaptcha, boolean mustRemove) {
63
+        if (!isTestNo(smsCaptcha)) {
64
+            Phone phone = allPhones.get(tel);
65
+            if (null == phone) {
66
+                log.error("手机号 {} 的验证码未找到", tel);
67
+                return false;
68
+            }
69
+
70
+            if (null == smsCaptcha || !smsCaptcha.equals(phone.getCaptcha())) {
71
+                log.error("手机号 {} 校验验证码出错, 正确: {}, 错误: {}", tel, phone.getCaptcha(), smsCaptcha);
72
+                return false;
73
+            }
74
+
75
+            LocalDateTime now = LocalDateTime.now();
76
+            if (now.isAfter(phone.getExpire())) {
77
+                log.error("手机号 {} 的验证码已过期", tel);
78
+                return false;
79
+            }
63
         }
80
         }
64
 
81
 
65
-        if (null == smsCaptcha || !smsCaptcha.equals(phone.getCaptcha())) {
66
-            log.error("手机号 {} 校验验证码出错, 正确: {}, 错误: {}", tel, phone.getCaptcha(), smsCaptcha);
67
-            return false;
82
+        // 如果验证成功, 则从缓存中删除
83
+        if (mustRemove) {
84
+            allPhones.remove(tel);
68
         }
85
         }
86
+        return true;
87
+    }
69
 
88
 
89
+    /**
90
+     * 万能验证码 0 + 今年第几天
91
+     * @param smsCaptcha
92
+     * @return
93
+     */
94
+    private boolean isTestNo(String smsCaptcha) {
70
         LocalDateTime now = LocalDateTime.now();
95
         LocalDateTime now = LocalDateTime.now();
71
-        if (now.isAfter(phone.getExpire())) {
72
-            log.error("手机号 {} 的验证码已过期", tel);
73
-            return false;
74
-        }
96
+        String day = String.valueOf(now.getDayOfYear());
97
+        String godNo = StringUtils.lpad(day, "0", 4);
75
 
98
 
76
-        // 如果验证成功, 则从缓存中删除
77
-        allPhones.remove(tel);
78
-        return true;
99
+        return godNo.equals(smsCaptcha);
79
     }
100
     }
80
 
101
 
81
     public boolean sendVisitor(String tel, String name) {
102
     public boolean sendVisitor(String tel, String name) {

+ 3
- 1
src/main/java/com/huiju/estateagents/controller/CommonController.java 查看文件

124
 
124
 
125
     @PostMapping("{plat}/check/captcha")
125
     @PostMapping("{plat}/check/captcha")
126
     public ResponseBean sendCaptcha(@RequestParam String tel,@RequestParam String captcha) {
126
     public ResponseBean sendCaptcha(@RequestParam String tel,@RequestParam String captcha) {
127
-        boolean success = smsUtils.checkCaptcha(tel,captcha);
127
+        boolean success = smsUtils.checkCaptcha(tel,captcha, false);
128
         if (success) {
128
         if (success) {
129
             return ResponseBean.success("验证码校验成功");
129
             return ResponseBean.success("验证码校验成功");
130
         } else {
130
         } else {
197
             return ResponseBean.error("暂时不支持的字典请求", ResponseBean.ERROR_ILLEGAL_PARAMS);
197
             return ResponseBean.error("暂时不支持的字典请求", ResponseBean.ERROR_ILLEGAL_PARAMS);
198
         }
198
         }
199
     }
199
     }
200
+
201
+
200
 }
202
 }

+ 18
- 14
src/main/java/com/huiju/estateagents/controller/MiniAppController.java 查看文件

231
                 return ResponseBean.error("发生未知错误", ResponseBean.ERROR_UNAVAILABLE);
231
                 return ResponseBean.error("发生未知错误", ResponseBean.ERROR_UNAVAILABLE);
232
             }
232
             }
233
 
233
 
234
-            Map<Object, Object> map = new HashMap<>();
235
-            map.put("openId", session.getOpenid());
236
-            map.put("orgId", orgId);
237
-            map.put("personId", taPerson.getPersonId());
238
-            miniResp.put("token", JWTUtils.newTokenByMap(map));
239
-            if (StringUtils.isEmpty(taPerson.getFromCode())) {
240
-                taPerson.setFromCode(from);
241
-            }
242
-            if (StringUtils.isEmpty(taPerson.getRecommendPerson())) {
243
-                taPerson.setRecommendPerson(recommender);
244
-                TaPerson type = taPersonService.getById(recommender);
245
-                if (null != type) {
246
-                    if (!StringUtils.isEmpty(type.getPersonType())) {
247
-                        taPerson.setRecommendPersonType(type.getPersonType());
234
+            if ((new Boolean(true)).equals(taPerson.getIsNew())) {
235
+                if (StringUtils.isEmpty(taPerson.getFromCode())) {
236
+                    taPerson.setFromCode(from);
237
+                }
238
+                if (StringUtils.isEmpty(taPerson.getRecommendPerson())) {
239
+                    taPerson.setRecommendPerson(recommender);
240
+                    TaPerson type = taPersonService.getById(recommender);
241
+                    if (null != type) {
242
+                        if (!StringUtils.isEmpty(type.getPersonType())) {
243
+                            taPerson.setRecommendPersonType(type.getPersonType());
244
+                        }
248
                     }
245
                     }
249
                 }
246
                 }
250
             }
247
             }
248
+
251
             taPerson.setMiniappId(appid);
249
             taPerson.setMiniappId(appid);
252
             taPersonService.updateById(taPerson);
250
             taPersonService.updateById(taPerson);
253
 
251
 
252
+            Map<Object, Object> map = new HashMap<>();
253
+            map.put("openId", session.getOpenid());
254
+            map.put("orgId", orgId);
255
+            map.put("personId", taPerson.getPersonId());
256
+            miniResp.put("token", JWTUtils.newTokenByMap(map));
257
+
254
             // 增加积分线程 --- 3.5.23版本授权手机分享者增加积分,单纯分享不增加积分
258
             // 增加积分线程 --- 3.5.23版本授权手机分享者增加积分,单纯分享不增加积分
255
 //            ExecutorService threadPool = Executors.newCachedThreadPool();
259
 //            ExecutorService threadPool = Executors.newCachedThreadPool();
256
 //            threadPool.execute(() -> {
260
 //            threadPool.execute(() -> {

+ 6
- 0
src/main/java/com/huiju/estateagents/entity/TaPerson.java 查看文件

340
      * 推广码ID
340
      * 推广码ID
341
      */
341
      */
342
     private Integer qrCodeId;
342
     private Integer qrCodeId;
343
+
344
+    /**
345
+     * 临时变量, 用于记录是否新增
346
+     */
347
+    @TableField(exist = false)
348
+    private Boolean isNew;
343
 }
349
 }

+ 2
- 1
src/main/java/com/huiju/estateagents/interceptor/AccessInterceptor.java 查看文件

76
             "/api/refund/",//微信退款所有回调放过
76
             "/api/refund/",//微信退款所有回调放过
77
             "/api/fadd/",//所有的法大大回调放过
77
             "/api/fadd/",//所有的法大大回调放过
78
             "/api/third",
78
             "/api/third",
79
-            "/api/third/redirect/"
79
+            "/api/third/redirect/",
80
+            "/api/officeweb/signup"     // 官网注册
80
     };
81
     };
81
 
82
 
82
     /*
83
     /*

+ 1
- 1
src/main/java/com/huiju/estateagents/service/impl/TaPersonServiceImpl.java 查看文件

565
             taPerson.setStatus(CommConstant.STATUS_NORMAL);
565
             taPerson.setStatus(CommConstant.STATUS_NORMAL);
566
             taPerson.setCreateDate(LocalDateTime.now());
566
             taPerson.setCreateDate(LocalDateTime.now());
567
             if (taPersonMapper.insert(taPerson) > 0) {
567
             if (taPersonMapper.insert(taPerson) > 0) {
568
+                taPerson.setIsNew(true);
568
                 return taPerson;
569
                 return taPerson;
569
             }
570
             }
570
         } else {
571
         } else {
571
             return taPersons.get(0);
572
             return taPersons.get(0);
572
         }
573
         }
573
 
574
 
574
-
575
         return null;
575
         return null;
576
     }
576
     }
577
 
577
 

+ 0
- 2
src/main/resources/mapper/redpack/TaRedPacketHistoryMapper.xml 查看文件

1
 <?xml version="1.0" encoding="UTF-8"?>
1
 <?xml version="1.0" encoding="UTF-8"?>
2
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
2
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
 <mapper namespace="com.huiju.estateagents.redpack.mapper.TaRedPacketHistoryMapper">
3
 <mapper namespace="com.huiju.estateagents.redpack.mapper.TaRedPacketHistoryMapper">
4
-
5
-
6
     <select id="getRanking" resultType="com.huiju.estateagents.redpack.entity.TaRedPacketHistory">
4
     <select id="getRanking" resultType="com.huiju.estateagents.redpack.entity.TaRedPacketHistory">
7
         SELECT
5
         SELECT
8
         t.helpPersonNum as help_person_num,
6
         t.helpPersonNum as help_person_num,