yansen před 4 roky
rodič
revize
ec3065a18a

+ 38
- 8
src/main/java/com/huiju/estateagents/center/taUser/controller/TaUserController.java Zobrazit soubor

@@ -8,14 +8,9 @@ import com.huiju.estateagents.base.BaseController;
8 8
 import com.huiju.estateagents.base.ResponseBean;
9 9
 import com.huiju.estateagents.center.sysUser.entity.SysToken;
10 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 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 14
 import com.huiju.estateagents.entity.*;
20 15
 import com.huiju.estateagents.mapper.TaRoleMapper;
21 16
 import com.huiju.estateagents.service.ITaMiniappService;
@@ -82,6 +77,9 @@ public class TaUserController extends BaseController {
82 77
     @Autowired
83 78
     private ITaMiniappService iTaMiniappService;
84 79
 
80
+    @Autowired
81
+    private SMSUtils smsUtils;
82
+
85 83
     /**
86 84
      * 分页查询列表
87 85
      * @param pageNum
@@ -296,7 +294,7 @@ public class TaUserController extends BaseController {
296 294
             taUser.setButtons((List<SysButtonInMenu>) authButton.getData());
297 295
             taUser.setRoles(roles);
298 296
             taUser.setLoginPassword("");
299
-            taUser.setMiniAppName(taMiniapp.getName());
297
+            taUser.setMiniapp(taMiniapp);
300 298
 
301 299
             //获取所有菜单
302 300
             List<SysMenu> allMenus = (List<SysMenu>) iTaUserAuthMenuService.getAllMenu(null, null,taUser.getOrgId(), roles).getData();
@@ -555,4 +553,36 @@ public class TaUserController extends BaseController {
555 553
         responseBean = iTaUserService.departureUser(userId, customerIdList, consultantUserId);
556 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 Zobrazit soubor

@@ -0,0 +1,31 @@
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 Zobrazit soubor

@@ -125,6 +125,16 @@ public class TaUser implements Serializable {
125 125
      */
126 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,7 +194,7 @@ public class TaUser implements Serializable {
184 194
      * 前台传值城市
185 195
      */
186 196
     @TableField(exist = false)
187
-    private ArrayList<String> selectCityTree;
197
+    private List<String> selectCityTree;
188 198
 
189 199
     /**
190 200
      * 城市ID

+ 3
- 0
src/main/java/com/huiju/estateagents/center/taUser/service/ITaUserService.java Zobrazit soubor

@@ -3,6 +3,7 @@ package com.huiju.estateagents.center.taUser.service;
3 3
 import com.baomidou.mybatisplus.core.metadata.IPage;
4 4
 import com.baomidou.mybatisplus.extension.service.IService;
5 5
 import com.huiju.estateagents.base.ResponseBean;
6
+import com.huiju.estateagents.center.taUser.entity.OfficeSignUpEntity;
6 7
 import com.huiju.estateagents.center.taUser.entity.TaTags;
7 8
 import com.huiju.estateagents.center.taUser.entity.TaUser;
8 9
 import com.huiju.estateagents.entity.TaPersonBuilding;
@@ -75,4 +76,6 @@ public interface ITaUserService extends IService<TaUser> {
75 76
      * @return
76 77
      */
77 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 Zobrazit soubor

@@ -6,10 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
6 6
 import com.baomidou.mybatisplus.core.metadata.IPage;
7 7
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
8 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 10
 import com.huiju.estateagents.center.taUser.mapper.TaTagUserMapper;
14 11
 import com.huiju.estateagents.center.taUser.mapper.TaUserMapper;
15 12
 import com.huiju.estateagents.center.taUser.mapper.TaUserRoleMapper;
@@ -222,7 +219,7 @@ public class TaUserServiceImpl extends ServiceImpl<TaUserMapper, TaUser> impleme
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 224
         QueryWrapper<TdCity> tdCityQuery = new QueryWrapper<>();
228 225
         tdCityQuery.eq("leveltype", 2);
@@ -262,7 +259,7 @@ public class TaUserServiceImpl extends ServiceImpl<TaUserMapper, TaUser> impleme
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 263
         for (String id : selectCityTree) {
267 264
             if (id.equals(String.valueOf(city))) {
268 265
                 return;
@@ -685,6 +682,35 @@ public class TaUserServiceImpl extends ServiceImpl<TaUserMapper, TaUser> impleme
685 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 714
     private boolean updateUserStatus(TaUser user) {
689 715
         UpdateWrapper<TaUser> updateWrapper = new UpdateWrapper<>();
690 716
         updateWrapper.eq("user_id", user.getUserId());

+ 2
- 0
src/main/java/com/huiju/estateagents/channel/sysChannel/entity/TaChannelProxy.java Zobrazit soubor

@@ -36,6 +36,8 @@ public class TaChannelProxy {
36 36
 
37 37
     private LocalDateTime createTime;
38 38
 
39
+    private Boolean isOffice;
40
+
39 41
     @TableField(exist = false)
40 42
     private Integer appCurrentNum;
41 43
 }

+ 4
- 0
src/main/java/com/huiju/estateagents/channel/sysChannel/mapper/TaChannelProxyMapper.java Zobrazit soubor

@@ -5,8 +5,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
5 5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6 6
 import com.huiju.estateagents.channel.sysChannel.entity.TaChannelProxy;
7 7
 import org.apache.ibatis.annotations.Mapper;
8
+import org.apache.ibatis.annotations.Select;
8 9
 
9 10
 @Mapper
10 11
 public interface TaChannelProxyMapper extends BaseMapper<TaChannelProxy> {
11 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 Zobrazit soubor

@@ -56,26 +56,47 @@ public class SMSUtils {
56 56
      * @return
57 57
      */
58 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 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 102
     public boolean sendVisitor(String tel, String name) {

+ 3
- 1
src/main/java/com/huiju/estateagents/controller/CommonController.java Zobrazit soubor

@@ -124,7 +124,7 @@ public class CommonController extends BaseController {
124 124
 
125 125
     @PostMapping("{plat}/check/captcha")
126 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 128
         if (success) {
129 129
             return ResponseBean.success("验证码校验成功");
130 130
         } else {
@@ -197,4 +197,6 @@ public class CommonController extends BaseController {
197 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 Zobrazit soubor

@@ -231,26 +231,30 @@ public class MiniAppController extends BaseController {
231 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 249
             taPerson.setMiniappId(appid);
252 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 258
             // 增加积分线程 --- 3.5.23版本授权手机分享者增加积分,单纯分享不增加积分
255 259
 //            ExecutorService threadPool = Executors.newCachedThreadPool();
256 260
 //            threadPool.execute(() -> {

+ 6
- 0
src/main/java/com/huiju/estateagents/entity/TaPerson.java Zobrazit soubor

@@ -340,4 +340,10 @@ public class TaPerson implements Serializable {
340 340
      * 推广码ID
341 341
      */
342 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 Zobrazit soubor

@@ -76,7 +76,8 @@ public class AccessInterceptor implements HandlerInterceptor {
76 76
             "/api/refund/",//微信退款所有回调放过
77 77
             "/api/fadd/",//所有的法大大回调放过
78 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 Zobrazit soubor

@@ -565,13 +565,13 @@ public class TaPersonServiceImpl extends ServiceImpl<TaPersonMapper, TaPerson> i
565 565
             taPerson.setStatus(CommConstant.STATUS_NORMAL);
566 566
             taPerson.setCreateDate(LocalDateTime.now());
567 567
             if (taPersonMapper.insert(taPerson) > 0) {
568
+                taPerson.setIsNew(true);
568 569
                 return taPerson;
569 570
             }
570 571
         } else {
571 572
             return taPersons.get(0);
572 573
         }
573 574
 
574
-
575 575
         return null;
576 576
     }
577 577
 

+ 0
- 2
src/main/resources/mapper/redpack/TaRedPacketHistoryMapper.xml Zobrazit soubor

@@ -1,8 +1,6 @@
1 1
 <?xml version="1.0" encoding="UTF-8"?>
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.redpack.mapper.TaRedPacketHistoryMapper">
4
-
5
-
6 4
     <select id="getRanking" resultType="com.huiju.estateagents.redpack.entity.TaRedPacketHistory">
7 5
         SELECT
8 6
         t.helpPersonNum as help_person_num,