From c257996813629f5d4ddd2103e5306da3531ada16 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 31 八月 2022 16:09:52 +0800
Subject: [PATCH] 更新部分接口

---
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java |  172 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 171 insertions(+), 1 deletions(-)

diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
index c2ce65d..4bed438 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
@@ -119,7 +119,6 @@
                 sb.append((int) (random.nextDouble() * 10));
             }
             String authCode = sb.toString();
-            authCode="1234";
             String sms = "短信验证码【" + authCode + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!";
 
             //发送验证码短信
@@ -468,6 +467,7 @@
         loginWarpper.setToken(token);
         loginWarpper.setAppid(UUIDUtil.getRandomCode());
         loginWarpper.setPhone(ToolUtil.isNotEmpty(userInfo.getPhone()) ? 2 : 1);
+        loginWarpper.setEmail(ToolUtil.isNotEmpty(userInfo.getEmail()) ? 2 : 1);
         loginWarpper.setEmergencyContact(userInfo.getEmergencyContact());
         loginWarpper.setEmergencyContactNumber(userInfo.getEmergencyContactNumber());
         if(uid!=null){
@@ -537,8 +537,114 @@
         loginWarpper.setToken(token);
         loginWarpper.setAppid(UUIDUtil.getRandomCode());
         loginWarpper.setPhone(ToolUtil.isNotEmpty(userInfo.getPhone()) ? 2 : 1);
+        loginWarpper.setEmail(ToolUtil.isNotEmpty(userInfo.getEmail()) ? 2 : 1);
         loginWarpper.setEmergencyContact(userInfo.getEmergencyContact());
         loginWarpper.setEmergencyContactNumber(userInfo.getEmergencyContactNumber());
+        return ResultUtil.success(loginWarpper);
+    }
+
+
+    @Override
+    public ResultUtil facebookLogin(String id, String name, String email, String registAreaCode, Integer uid) throws Exception {
+        UserInfo userInfo = this.selectOne(new EntityWrapper<UserInfo>().eq("faceBookId", id).ne("flag", 3));
+        if(null == userInfo){
+            userInfo = new UserInfo();
+            userInfo.setEmail(email);
+            userInfo.setNickName(name);
+            userInfo.setIsAuth(1);
+            userInfo.setConsumption(0D);
+            userInfo.setBalance(0D);
+            userInfo.setIntegral(0);
+            userInfo.setPassWord(ShiroKit.md5("", salt));
+            userInfo.setFaceBookId(id);
+            userInfo.setState(1);
+            userInfo.setFlag(1);
+            userInfo.setInsertTime(new Date());
+            userInfo.setFreeMoney(new BigDecimal(0));
+
+            Double money = this.userInfoMapper.queryFreeMOney();
+            if(money!=null){
+                userInfo.setFreeMoney(BigDecimal.valueOf(money));
+            }
+            if(null!=uid){
+                userInfo.setUid(uid);
+                //微信登录只能是乘客用户分享
+                userInfo.setuType(1);
+            }
+            //用户所属企业
+            if(null != registAreaCode){
+                Company query = companyCityService.query(registAreaCode);
+                userInfo.setCompanyId(null != query ? query.getId() : null);
+                userInfo.setRegistAreaCode(registAreaCode);
+            }
+            this.insert(userInfo);
+
+            this.addCoupon(userInfo);//添加优惠券
+
+            UserInfo finalUserInfo = userInfo;
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    if(pushMinistryOfTransport){
+                        //上传数据
+                        pushMinistryOfTransportUtil.baseInfoPassenger(finalUserInfo.getId());
+                    }
+                }
+            }).start();
+        }
+
+        if(userInfo.getState() == 2){
+            return ResultUtil.error("账号被冻结");
+        }
+
+        //调用单点登录的逻辑
+        this.singlePointLogin(userInfo.getId());
+
+        String token = this.getToken(userInfo, "");
+        LoginWarpper loginWarpper = new LoginWarpper();
+        loginWarpper.setId(userInfo.getId());
+        loginWarpper.setToken(token);
+        loginWarpper.setAppid(UUIDUtil.getRandomCode());
+        loginWarpper.setPhone(ToolUtil.isNotEmpty(userInfo.getPhone()) ? 2 : 1);
+        loginWarpper.setEmail(ToolUtil.isNotEmpty(userInfo.getEmail()) ? 2 : 1);
+        loginWarpper.setEmergencyContact(userInfo.getEmergencyContact());
+        loginWarpper.setEmergencyContactNumber(userInfo.getEmergencyContactNumber());
+        if(uid!=null){
+            userInfo = userInfoMapper.selectById(uid);
+            List<Map<String, Object>> query = userActivityInviteMapper.query(userInfo.getCompanyId());
+            Date date = new Date();
+            for(Map<String, Object> map : query){
+                Double lavePrice = Double.valueOf(map.get("lavePrice").toString());
+                for(int i = Integer.valueOf(String.valueOf(map.get("totalNum"))); i > 0; i--){
+                    //判断当前优惠券金额是否大于可发放剩余总金额
+                    if(Double.valueOf(String.valueOf(map.get("money"))).compareTo(lavePrice) > 0){
+                        break;
+                    }
+                    UserCouponRecord userCouponRecord = new UserCouponRecord();
+                    userCouponRecord.setActivityType(3);
+                    userCouponRecord.setCouponActivityId(Integer.valueOf(String.valueOf(map.get("id"))));
+                    userCouponRecord.setCouponId(Integer.valueOf(String.valueOf(map.get("couponId"))));
+                    userCouponRecord.setState(1);
+                    Calendar calendar = Calendar.getInstance();
+                    calendar.setTime(date);
+                    calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) + Integer.valueOf(String.valueOf(map.get("effective"))));
+                    userCouponRecord.setExpirationTime(calendar.getTime());
+                    userCouponRecord.setCouponType(Integer.valueOf(String.valueOf(map.get("couponType"))));
+                    userCouponRecord.setCouponUseType(Integer.valueOf(String.valueOf(map.get("couponUseType"))));
+                    userCouponRecord.setInsertTime(date);
+                    userCouponRecord.setFullMoney(Double.valueOf(String.valueOf(map.get("fullMoney"))));
+                    userCouponRecord.setMoney(Double.valueOf(String.valueOf(map.get("money"))));
+                    userCouponRecord.setCompanyId(userInfo.getCompanyId());
+                    userCouponRecord.setUserId(uid);
+                    userCouponRecordService.insert(userCouponRecord);
+                    //修改剩余可发放总金额
+                    lavePrice -= Double.valueOf(String.valueOf(map.get("money")));
+                }
+                UserActivityInvite uai = userActivityInviteMapper.selectById(Integer.valueOf(map.get("id").toString()));
+                uai.setLavePrice(new BigDecimal(lavePrice).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+                userActivityInviteMapper.updateById(uai);
+            }
+        }
         return ResultUtil.success(loginWarpper);
     }
 
@@ -628,6 +734,7 @@
             loginWarpper.setToken(token);
             loginWarpper.setAppid(UUIDUtil.getRandomCode());
             loginWarpper.setPhone(2);
+            loginWarpper.setEmail(2);
             return ResultUtil.success(loginWarpper);
         }
 
@@ -640,6 +747,67 @@
         return ResultUtil.success(new LoginWarpper());
     }
 
+
+    @Override
+    public ResultUtil bindingEmail(Integer uid, Integer type, String email, String code) throws Exception {
+        boolean b = this.checkCaptcha(email, code);
+        if(!b){
+            return ResultUtil.error("验证码无效");
+        }
+        UserInfo userInfo = this.selectById(uid);
+        UserInfo userInfo1 = userInfoMapper.queryByEmail(email);
+        if(null != userInfo1){
+            userInfo1.setOpenId(userInfo.getOpenId());
+            userInfo1.setUnionid(userInfo.getUnionid());
+            userInfo1.setAppletsOpenId(userInfo.getAppletsOpenId());
+            userInfo1.setAvatar(userInfo.getAvatar());
+            userInfo1.setSex(userInfo.getSex());
+            userInfo1.setNickName(userInfo.getNickName());
+            this.updateById(userInfo1);
+
+            this.deleteById(userInfo.getId());//删除原有数据
+            //还原之前账号领取的注册优惠券
+            List<UserCouponRecord> list = userCouponRecordService.selectList(new EntityWrapper<UserCouponRecord>().eq("userId", userInfo.getId()));
+            for(UserCouponRecord ucr : list){
+                if(ucr.getActivityType() == 1){//赠送
+
+                }
+                if(ucr.getActivityType() == 2){//注册
+                    UserActivityRegistered userActivityRegistered = userActivityRegisteredService.selectById(ucr.getCouponActivityId());
+                    userActivityRegistered.setLaveNum(userActivityRegistered.getLaveNum() + 1);
+                    userActivityRegistered.setLavePrice(userActivityRegistered.getLavePrice() + ucr.getMoney());
+                    userActivityRegisteredService.updateById(userActivityRegistered);
+                }
+                if(ucr.getActivityType() == 3){//邀请
+
+                }
+                if(ucr.getActivityType() == 4){//充值
+
+                }
+                userCouponRecordService.deleteById(ucr.getId());
+            }
+
+
+            //获取新的token等数据
+            String token = this.getToken(userInfo1, "");
+            LoginWarpper loginWarpper = new LoginWarpper();
+            loginWarpper.setId(userInfo1.getId());
+            loginWarpper.setToken(token);
+            loginWarpper.setAppid(UUIDUtil.getRandomCode());
+            loginWarpper.setPhone(2);
+            loginWarpper.setEmail(2);
+            return ResultUtil.success(loginWarpper);
+        }
+
+        userInfo.setEmail(email);
+        userInfo.setUpdateTime(new Date());
+        userInfo.setUpdateUser(userInfo.getId());
+        this.updateById(userInfo);
+        if(type == 1){//注册成功后发送邮件
+            EmailUtil.getMimeMessage(email, "注册账户", "");
+        }
+        return ResultUtil.success(new LoginWarpper());
+    }
 
     /**
      * 从redis中获取数据
@@ -784,6 +952,8 @@
         UserInfo userInfo = this.selectById(uid);
         userInfo.setPassWord(ShiroKit.md5(password, salt));
         this.updateById(userInfo);
+        //发送邮件
+        EmailUtil.getMimeMessage(userInfo.getEmail(), "修改密码", "");
         return ResultUtil.success();
     }
 

--
Gitblit v1.7.1