Explorar o código

modeling 调试,platform 管理后台

lyhzzz %!s(int64=3) %!d(string=hai) anos
pai
achega
5d92cbb1d9
Modificáronse 33 ficheiros con 1038 adicións e 88 borrados
  1. 1 0
      4dkankan-center-modeling/src/main/java/com/fdkankan/modeling/service/impl/SceneProServiceImpl.java
  2. 0 14
      4dkankan-center-platform/src/main/java/com/fdkankan/FeignConfiguration.java
  3. 0 18
      4dkankan-center-platform/src/main/java/com/fdkankan/TestController.java
  4. 4 3
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/agent/service/impl/AgentServiceImpl.java
  5. 41 10
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/agent/service/impl/VaildCamerasServiceImpl.java
  6. 10 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/common/DefaultConfig.java
  7. 3 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/mapper/ICameraDetailMapper.java
  8. 2 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/service/ICameraDetailService.java
  9. 2 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/service/ICameraService.java
  10. 5 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/service/impl/CameraDetailServiceImpl.java
  11. 18 10
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/service/impl/CameraServiceImpl.java
  12. 3 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/service/ISpaceSdkService.java
  13. 22 1
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/service/impl/SpaceSdkServiceImpl.java
  14. 65 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/controller/api/UserAppController.java
  15. 2 2
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/agent/controller/api/AgentLoginController.java
  16. 115 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/controller/sso/SsoAppController.java
  17. 59 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/controller/sso/SsoManagerController.java
  18. 3 3
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/controller/api/SsoUserController.java
  19. 29 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/request/RequestManager.java
  20. 51 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/request/RequestSdkVersion.java
  21. 2 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/IManagerService.java
  22. 3 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/IUserService.java
  23. 19 1
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/impl/ManagerServiceImpl.java
  24. 22 1
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/impl/UserServiceImpl.java
  25. 249 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/sso/AppService.java
  26. 10 21
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/LoginService.java
  27. 18 1
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/MsgService.java
  28. 4 3
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/RegisterService.java
  29. 97 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/sso/SsoManagerService.java
  30. 18 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/vo/SSOManagerVo.java
  31. 1 0
      4dkankan-common/src/main/java/com/fdkankan/common/constant/ErrorCode.java
  32. 111 0
      4dkankan-common/src/main/java/com/fdkankan/common/constant/SceneConstant.java
  33. 49 0
      4dkankan-common/src/main/java/com/fdkankan/common/util/RandomUtil.java

+ 1 - 0
4dkankan-center-modeling/src/main/java/com/fdkankan/modeling/service/impl/SceneProServiceImpl.java

@@ -59,6 +59,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         this.updateById(scenePro);
 
         sceneProExt.setSceneStatus(-2);
+        sceneProExt.setPayStatus(payStatus);
         sceneProExt.setSpace(space);
         sceneProExt.setComputeTime(computeTime);
         sceneProExtService.updateById(sceneProExt);

+ 0 - 14
4dkankan-center-platform/src/main/java/com/fdkankan/FeignConfiguration.java

@@ -1,14 +0,0 @@
-package com.fdkankan;
-
-import feign.Logger;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class FeignConfiguration {
-    @Bean
-    Logger.Level feignLoggerLevel() {
-        return Logger.Level.FULL;
-    }
-
-}

+ 0 - 18
4dkankan-center-platform/src/main/java/com/fdkankan/TestController.java

@@ -1,18 +0,0 @@
-package com.fdkankan;
-
-//import com.fdkankan.common.rocketmq.producer.MqSendMessage;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-
-@RestController
-public class TestController {
-//    @Resource
-//    MqSendMessage mqSendMessage;
-//    @GetMapping("/send")
-//    private String sendTest(){
-//        mqSendMessage.sendMessage("hello");
-//        return "success";
-//    }
-}

+ 4 - 3
4dkankan-center-platform/src/main/java/com/fdkankan/platform/agent/service/impl/AgentServiceImpl.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.common.constant.LoginType;
 import com.fdkankan.platform.agent.entity.Agent;
 import com.fdkankan.platform.agent.mapper.IAgentMapper;
 import com.fdkankan.platform.agent.request.RequestAgent;
@@ -20,6 +21,7 @@ import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.util.JwtUtil;
 import com.fdkankan.common.util.PasswordUtils;
 import com.fdkankan.common.util.SsoUtil;
+import com.fdkankan.platform.common.DefaultConfig;
 import com.fdkankan.platform.goods.entity.Camera;
 import com.fdkankan.platform.goods.entity.CameraDetail;
 import com.fdkankan.platform.goods.service.ICameraDetailService;
@@ -82,9 +84,8 @@ public class AgentServiceImpl extends ServiceImpl<IAgentMapper, Agent> implement
             throw new BusinessException(ErrorCode.PASSWORD_ERROR);
         }
         String key = SsoUtil.PREFIX_CACHE_AGENT + agent.getAgentId();
-        redisTemplate.delete(key);
-        String token = JwtUtil.createJWT(-1, key,"agent");
-        redisTemplate.opsForValue().set(key,token,21600, TimeUnit.SECONDS);
+        String token = JwtUtil.createJWT(-1, key, LoginType.AGENT.name());
+        redisTemplate.opsForValue().set(key,token, DefaultConfig.USER_EXPIRE_TIME, DefaultConfig.DEFAULT_TIME_UNIT);
         JSONObject obj = new JSONObject();
         obj.put("token", token);
         return obj;

+ 41 - 10
4dkankan-center-platform/src/main/java/com/fdkankan/platform/agent/service/impl/VaildCamerasServiceImpl.java

@@ -4,17 +4,15 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fdkankan.platform.agent.entity.VaildCameras;
-import com.fdkankan.platform.agent.mapper.IVaildCamerasMapper;
-import com.fdkankan.platform.agent.service.IVaildCamerasService;
-import com.fdkankan.common.constant.CameraConstant;
-import com.fdkankan.common.constant.ConstantFilePath;
-import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.constant.*;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.util.AesUtil;
 import com.fdkankan.common.util.FileUtil;
 import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.common.util.RSAEncrypt;
+import com.fdkankan.platform.agent.entity.VaildCameras;
+import com.fdkankan.platform.agent.mapper.IVaildCamerasMapper;
+import com.fdkankan.platform.agent.service.IVaildCamerasService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Value;
@@ -45,8 +43,6 @@ public class VaildCamerasServiceImpl extends ServiceImpl<IVaildCamerasMapper, Va
     @Override
     public HashMap<String,Object> getVaildCameras(String file, String companyName) throws Exception{
         if(StringUtils.isEmpty(file) || StringUtils.isEmpty(companyName)){
-            log.info("file:" + file);
-            log.info("companyName:" + companyName);
             throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
         }
         List<VaildCameras> vaildCamerasEntityList = getListByCompanyName(companyName);
@@ -94,17 +90,52 @@ public class VaildCamerasServiceImpl extends ServiceImpl<IVaildCamerasMapper, Va
 
     @Override
     public String addVaildCameras(String macId, String wifiName, String companyName) {
-        return null;
+        if(StringUtils.isEmpty(macId) || StringUtils.isEmpty(companyName)){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        String regex = "^[a-z0-9A-Z#]+$";
+        if(!macId.matches(regex) || macId.length() != 25 || macId.indexOf("#") != 12){
+            throw new BusinessException(SceneConstant.FAILURE_CODE_5012, SceneConstant.FAILURE_MSG_5012);
+        }
+        VaildCameras vaildCamerasEntity = this.getByCompanyNameAndDevicemac(companyName, macId);
+        if(vaildCamerasEntity != null){
+            throw new BusinessException(CameraConstant.FAILURE_6001);
+        }
+        vaildCamerasEntity = new VaildCameras();
+        vaildCamerasEntity.setDevicemac(macId);
+        vaildCamerasEntity.setWifiName(wifiName);
+        vaildCamerasEntity.setCompanyName(companyName);
+        this.save(vaildCamerasEntity);
+        return ServerCode.SUCCESS.message();
     }
 
     @Override
     public String deleteVaildCameras(String macId, String companyName) {
-        return null;
+        if(StringUtils.isEmpty(macId) || StringUtils.isEmpty(companyName)){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        VaildCameras vaildCamerasEntity = this.getByCompanyNameAndDevicemac(companyName, macId);
+        if(vaildCamerasEntity != null){
+            this.removeById(vaildCamerasEntity);
+        }
+        return ServerCode.SUCCESS.message();
     }
 
+
+
     public List<VaildCameras> getListByCompanyName(String companyName){
         QueryWrapper<VaildCameras> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(VaildCameras::getCompanyName,companyName);
         return this.list(queryWrapper);
     }
+    public VaildCameras getByCompanyNameAndDevicemac(String companyName,String devicemac){
+        QueryWrapper<VaildCameras> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(VaildCameras::getCompanyName,companyName);
+        queryWrapper.lambda().eq(VaildCameras::getDevicemac,devicemac);
+        List<VaildCameras> list = this.list(queryWrapper);
+        if(list == null || list.size() <= 0){
+            return null;
+        }
+        return list.get(0);
+    }
 }

+ 10 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/common/DefaultConfig.java

@@ -0,0 +1,10 @@
+package com.fdkankan.platform.common;
+
+import java.util.concurrent.TimeUnit;
+
+public class DefaultConfig {
+    public static final int DEFAULT_EXPIRE_TIME = 7200;  // redis默认过期时间,单位/秒, 60*60*2=2H, 两小时
+    public static final TimeUnit DEFAULT_TIME_UNIT = TimeUnit.SECONDS; //redis默认过期时间单位
+    public static final int CAMERA_EXPIRE_TIME = 604800;  // 相机登陆7天有效期
+    public static final int USER_EXPIRE_TIME = 21600;  // agent用户有效期
+}

+ 3 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/mapper/ICameraDetailMapper.java

@@ -28,4 +28,7 @@ public interface ICameraDetailMapper extends BaseMapper<CameraDetail> {
     @Select("SELECT type as cameraType,count(1) as cameraTypenum FROM t_camera_detail " +
             "WHERE user_id = #{userId}  GROUP BY type ")
     List<CameraDetailNumEntity> selectTypeNumAll(@Param("userId") Long userId);
+
+    @Select(" SELECT sum(balance) FROM t_camera_detail WHERE user_id = #{userId} AND REC_STATUS = 'A' ")
+    long getSumBalanceByUserId(@Param("userId") Long userId);
 }

+ 2 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/service/ICameraDetailService.java

@@ -48,4 +48,6 @@ public interface ICameraDetailService extends IService<CameraDetail> {
     void bind(Long userId, Long cameraId);
 
     CameraDetail updateCameraDetailByCameraIdAndSpace(Long cameraId, Long space);
+
+    Long getSumBalanceByUserId(Long userId);
 }

+ 2 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/service/ICameraService.java

@@ -40,4 +40,6 @@ public interface ICameraService extends IService<Camera> {
     List<Camera> findLikeChildName(String trim);
 
     Camera getBySnCode(String snCode);
+
+    Camera getByChildNameAndChildPassword(String appUserName, String appPassword);
 }

+ 5 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/service/impl/CameraDetailServiceImpl.java

@@ -391,4 +391,9 @@ public class CameraDetailServiceImpl extends ServiceImpl<ICameraDetailMapper, Ca
         }
         return cameraDetail;
     }
+
+    @Override
+    public Long getSumBalanceByUserId(Long userId) {
+        return cameraDetailMapper.getSumBalanceByUserId(userId);
+    }
 }

+ 18 - 10
4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/service/impl/CameraServiceImpl.java

@@ -98,11 +98,7 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
     public Camera getByChildName(String childName){
         QueryWrapper<Camera> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(Camera::getChildName,childName);
-        List<Camera> list = this.list(queryWrapper);
-        if(list == null || list.size()<=0){
-            return null;
-        }
-        return list.get(0);
+        return this.getEntityByQuery(queryWrapper);
     }
 
     @Override
@@ -246,11 +242,7 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
     public Camera getBySnCode(String snCode) {
         QueryWrapper<Camera> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(Camera::getSnCode,snCode);
-        List<Camera> list = this.list(queryWrapper);
-        if(list == null || list.size()<=0){
-            return null;
-        }
-        return list.get(0);
+        return this.getEntityByQuery(queryWrapper);
     }
 
     @Override
@@ -306,6 +298,22 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
     }
 
     @Override
+    public Camera getByChildNameAndChildPassword(String appUserName, String appPassword) {
+        QueryWrapper<Camera> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(Camera::getChildName,appUserName);
+        queryWrapper.lambda().eq(Camera::getChildPassword,appPassword);
+        return this.getEntityByQuery(queryWrapper);
+    }
+
+    private Camera getEntityByQuery(QueryWrapper<Camera> queryWrapper ){
+        List<Camera> list = this.list(queryWrapper);
+        if(list == null || list.size() <= 0){
+            return null;
+        }
+        return list.get(0);
+    }
+
+    @Override
     public HSSFWorkbook export(String token, HttpServletResponse response) throws Exception {
 
         String fileName = "我的相机";

+ 3 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/service/ISpaceSdkService.java

@@ -1,7 +1,9 @@
 package com.fdkankan.platform.order.service;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.platform.order.entity.SpaceSdk;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.platform.user.request.RequestSdkVersion;
 
 /**
  * <p>
@@ -13,4 +15,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface ISpaceSdkService extends IService<SpaceSdk> {
 
+    Page<SpaceSdk> getPageByParam(RequestSdkVersion param);
 }

+ 22 - 1
4dkankan-center-platform/src/main/java/com/fdkankan/platform/order/service/impl/SpaceSdkServiceImpl.java

@@ -1,9 +1,14 @@
 package com.fdkankan.platform.order.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.platform.order.entity.SpaceSdk;
 import com.fdkankan.platform.order.mapper.ISpaceSdkMapper;
 import com.fdkankan.platform.order.service.ISpaceSdkService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.platform.user.request.RequestSdkVersion;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
 /**
@@ -17,4 +22,20 @@ import org.springframework.stereotype.Service;
 @Service
 public class SpaceSdkServiceImpl extends ServiceImpl<ISpaceSdkMapper, SpaceSdk> implements ISpaceSdkService {
 
+    @Override
+    public Page<SpaceSdk> getPageByParam(RequestSdkVersion param) {
+        LambdaQueryWrapper<SpaceSdk> queryWrapper = Wrappers.lambdaQuery();
+        if(param.getStatus()!=null){
+            queryWrapper.eq(SpaceSdk::getStatus,param.getStatus());
+        }
+        if(StringUtils.isNotEmpty(param.getSearchKey()) && !param.getSearchKey().equals("%")){
+            queryWrapper.like(SpaceSdk::getVersion,param.getSearchKey());
+        }
+        if(StringUtils.isNotEmpty(param.getPlatformType())){
+            queryWrapper.like(SpaceSdk::getPlatformType,param.getPlatformType());
+        }
+        queryWrapper.orderByDesc(SpaceSdk::getIsTop,SpaceSdk::getPublishTime);
+        Page<SpaceSdk> page = new Page<>(param.getPageNum(),param.getPageSize());
+        return this.page(page, queryWrapper);
+    }
 }

+ 65 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/controller/api/UserAppController.java

@@ -0,0 +1,65 @@
+package com.fdkankan.platform.user.controller.api;
+
+import com.fdkankan.platform.user.request.RequestUser;
+import com.fdkankan.platform.user.service.sso.AppService;
+import com.fdkankan.platform.user.vo.ResponseUser;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 个人中心-app模块
+ */
+@RestController
+@RequestMapping("/api/app/user/")
+public class UserAppController {
+
+    @Autowired
+    private AppService appService;
+
+    /**
+     * app修改密码
+     */
+    @PostMapping(value = "/changePassword")
+    public String changePassword(@RequestBody RequestUser user) throws Exception {
+        return appService.resetPassword(user);
+    }
+
+    /**
+     * app上传头像
+     * head         用户头像
+     * phoneNum     用户名(手机号)
+     * @return
+     */
+    @PostMapping(value = "/uploadHead")
+    public String uploadHead(@RequestBody RequestUser user) throws Exception {
+        return appService.uploadHead(user);
+    }
+    /**
+     * 获取账号点数
+     * phoneNum     用户名(手机号)
+     * @return
+     */
+    @PostMapping(value = "/getSubPointsFromUserName")
+    public Long getSubPointsFromUserName(@RequestBody RequestUser user) throws Exception {
+        return appService.getSubPointsFromUserName(user);
+    }
+    /**
+     * 获取用户信息
+     * phoneNum     用户名(手机号)
+     * cameraType    相机类型,1双目,4八目  9:转台
+     * @return
+     */
+    @PostMapping(value = "/getUserInfo")
+    public ResponseUser getUserInfo(@RequestBody RequestUser user) throws Exception {
+        return appService.getUserInfo(user);
+    }
+    /**
+     * 更改昵称
+     * nickName     昵称
+     * phoneNum     用户名(手机号)
+     */
+    @PostMapping(value = "/updateNickName")
+    public String updateNickName(@RequestBody RequestUser user) throws Exception {
+        return appService.updateNickName(user);
+    }
+}

+ 2 - 2
4dkankan-center-platform/src/main/java/com/fdkankan/platform/agent/controller/api/AgentLoginController.java

@@ -1,4 +1,4 @@
-package com.fdkankan.platform.agent.controller.api;
+package com.fdkankan.platform.user.controller.sso;
 
 import com.alibaba.fastjson.JSONObject;
 import com.fdkankan.platform.agent.request.RequestAgent;
@@ -18,7 +18,7 @@ import javax.annotation.Resource;
  */
 @RestController
 @RequestMapping("/api/sso/agent")
-public class AgentLoginController  {
+public class SsoAgentController {
 
     @Autowired
     private IAgentService agentService;

+ 115 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/controller/sso/SsoAppController.java

@@ -0,0 +1,115 @@
+package com.fdkankan.platform.user.controller.sso;
+
+import com.fdkankan.platform.user.request.RequestUser;
+import com.fdkankan.platform.user.service.sso.AppService;
+import com.fdkankan.platform.user.vo.ResponseUser;
+import com.fdkankan.platform.user.vo.SSOUserVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+
+/**
+ * 登陆管理-app登陆模块
+ */
+@RestController
+@RequestMapping("/api/sso/app")
+public class SsoAppController {
+
+    @Autowired
+    private AppService appService;
+
+    /**
+     * APP扫码登录
+     * appUserName      相机设备码
+     * appPassword      相机密码
+     * uuid  uuid
+     * @return
+     */
+    @PostMapping(value = "/login")
+    public String qrCodeLogin(@RequestBody RequestUser user) throws Exception {
+        return appService.qrCodeLogin(user);
+    }
+
+    /**
+     * App登录
+     * appUserName      相机设备码
+     * appPassword      相机密码
+     * @return
+     */
+    @PostMapping(value = "/login2")
+    public HashMap<String, String> passwordLogin(@RequestBody RequestUser user) throws Exception {
+        return appService.passwordLogin(user);
+    }
+    /**
+     * 用户名登录
+     * phoneNum      手机号
+     * cameraType    相机类型,1双目,4八目
+     * password      密码
+     * @return
+     */
+    @PostMapping(value = "/userLogin")
+    public SSOUserVo userNameLogin(@RequestBody RequestUser user) throws Exception {
+        return appService.userNameLogin(user);
+    }
+    /**
+     * 验证码登陆
+     * phoneNum      手机号
+     * cameraType    相机类型,1双目,4八目
+     * msgAuthCode   验证码
+     */
+    @PostMapping(value = "/quickLogin")
+    public SSOUserVo quickLogin(@RequestBody RequestUser user) throws Exception {
+        return appService.quickLogin(user);
+    }
+    /**
+     * 登出
+     */
+    @PostMapping(value = "/logout")
+    public String logout(@RequestHeader String token) throws Exception {
+        return appService.logout(token);
+    }
+    /**
+     * app注册
+     * phoneNum      用户名
+     * password      密码
+     * msgAuthCode   验证码
+     * nickName     昵称
+     * country      国家
+     * @return
+     */
+    @PostMapping(value = "/register")
+    public String register(@RequestBody RequestUser user) throws Exception {
+        return appService.register(user);
+    }
+    /**
+     * app获取随机昵称
+     * @return
+     */
+    @PostMapping(value = "/getNickName")
+    public ResponseUser getRandomNickName() throws Exception {
+        return appService.getRandomNickName();
+    }
+    /**
+     * app检验用户名
+     * appUserName      app用户昵称
+     * @return
+     */
+    @PostMapping(value = "/checkUserName")
+    public String checkUserName(@RequestBody RequestUser user) throws Exception {
+        return appService.checkUserName(user);
+    }
+    /**
+     * app修改密码
+     * password      用户密码
+     * phoneNum      用户名(手机号)
+     * msgAuthCode      手机验证码
+     * @return
+     */
+    @PostMapping(value = "/resetPassword")
+    public String resetPassword(@RequestBody RequestUser user) throws Exception {
+        return appService.resetPassword(user);
+    }
+
+
+}

+ 59 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/controller/sso/SsoManagerController.java

@@ -0,0 +1,59 @@
+package com.fdkankan.platform.user.controller.sso;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.platform.order.entity.SpaceSdk;
+import com.fdkankan.platform.user.request.RequestManager;
+import com.fdkankan.platform.user.request.RequestSdkVersion;
+import com.fdkankan.platform.user.service.sso.SsoManagerService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 登陆管理-app登陆模块
+ */
+@RestController
+@RequestMapping("/api/sso/manager")
+public class SsoManagerController {
+
+    @Autowired
+    private SsoManagerService ssoManagerService;
+
+    /**
+     * 管理员登录
+     * userName      手机号
+     * password      密码
+     * @return
+     */
+    @PostMapping(value = "/login")
+    public JSONObject login(@RequestBody RequestManager param) throws Exception {
+        return ssoManagerService.login(param);
+    }
+    /**
+     * 追溯后台管理登陆
+     * userName      手机号
+     * password      密码
+     * @return
+     */
+    @PostMapping(value = "/companyLogin")
+    public JSONObject companyLogin(@RequestBody RequestManager param) throws Exception {
+        return ssoManagerService.companyLogin(param);
+    }
+    /**
+     * 登出
+     */
+    @PostMapping(value = "/logout")
+    public String logout(@RequestHeader String token) throws Exception {
+        return ssoManagerService.logout(token);
+    }
+    /**
+     * 获取sdk列表
+     * @return
+     */
+    @PostMapping(value = "/space/list")
+    public Page<SpaceSdk> spaceList(@RequestBody RequestSdkVersion param) throws Exception {
+        return ssoManagerService.spaceList(param);
+    }
+
+
+}

+ 3 - 3
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/controller/api/SsoUserController.java

@@ -1,4 +1,4 @@
-package com.fdkankan.platform.user.controller.api;
+package com.fdkankan.platform.user.controller.sso;
 
 import com.alibaba.fastjson.JSONObject;
 import com.fdkankan.common.constant.ErrorCode;
@@ -7,8 +7,8 @@ import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.platform.user.entity.User;
 import com.fdkankan.platform.user.request.RequestUser;
 import com.fdkankan.platform.user.service.IUserService;
-import com.fdkankan.platform.user.service.LoginService;
-import com.fdkankan.platform.user.service.MsgService;
+import com.fdkankan.platform.user.service.sso.LoginService;
+import com.fdkankan.platform.user.service.sso.MsgService;
 import com.fdkankan.platform.user.vo.SSOUserVo;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;

+ 29 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/request/RequestManager.java

@@ -0,0 +1,29 @@
+package com.fdkankan.platform.user.request;
+
+import com.fdkankan.common.request.RequestBase;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class RequestManager extends RequestBase implements Serializable {
+
+    private static final long serialVersionUID = -5024048396577407229L;
+
+    private Long id;
+
+    private String userName;
+
+    private String password;
+
+    private String newPassword;
+
+    private String confirmPwd;
+
+    private String nickname;
+
+    private Long agentFrameworkId;
+
+    private Long managerRoleId;
+
+}

+ 51 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/request/RequestSdkVersion.java

@@ -0,0 +1,51 @@
+package com.fdkankan.platform.user.request;
+
+import com.fdkankan.common.request.RequestBase;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class RequestSdkVersion extends RequestBase implements Serializable {
+
+    private static final long serialVersionUID = 2345798398902100085L;
+
+    /**
+     * 版本
+     */
+    private String version;
+
+    /**
+     * 版本说明
+     */
+    private String imprint;
+
+
+    private Date publishTime;
+
+    /**
+     * 是否置顶 1 -置顶  0-不置顶
+     */
+
+    private Integer isTop;
+
+    /**
+     * 状态 0 - 未发布 1 -发布  2-下架
+     */
+
+    private Integer status;
+
+    /**
+     * 1 : Unity  2: UE4
+     */
+
+    private String platformType;
+
+    private Long id;
+
+    private String searchKey;
+
+
+
+}

+ 2 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/IManagerService.java

@@ -16,4 +16,6 @@ import java.util.List;
 public interface IManagerService extends IService<Manager> {
 
     List<Manager> getByFrameworkId(Long parentId);
+
+    Manager getByUserName(String userName);
 }

+ 3 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/IUserService.java

@@ -39,6 +39,7 @@ public interface IUserService extends IService<User> {
     SSOUserVo getUserInfoByUser(Integer cameraType, User dbUser, String token);
 
     ResponseUser getUserInfoByParam(RequestUser user, String token);
+    ResponseUser getUserInfoBySsoUserVo(SSOUserVo ssoUserVo) ;
 
     String uploadHead(RequestUser user,String token)throws Exception;
 
@@ -79,4 +80,6 @@ public interface IUserService extends IService<User> {
     String sceneResourceByCameraId(RequestCamera camera);
 
     SSOUser getSSOUserByUserId(Long userId);
+
+    SSOUser getByNickName(String nickName);
 }

+ 19 - 1
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/impl/ManagerServiceImpl.java

@@ -20,10 +20,28 @@ import java.util.List;
 @Service
 public class ManagerServiceImpl extends ServiceImpl<IManagerMapper, Manager> implements IManagerService {
 
+    QueryWrapper<Manager> queryWrapper;
+
     @Override
     public List<Manager> getByFrameworkId(Long parentId) {
-        QueryWrapper<Manager> queryWrapper = new QueryWrapper<>();
+        queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(Manager::getAgentFrameworkId,parentId);
         return  this.list(queryWrapper);
     }
+
+    @Override
+    public Manager getByUserName(String userName) {
+        queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(Manager::getUsername,userName);
+        return getEntityByQuery(queryWrapper);
+    }
+
+
+    private Manager getEntityByQuery(QueryWrapper<Manager> queryWrapper){
+        List<Manager> list = this.list(queryWrapper);
+        if(list == null || list.size() <= 0 ){
+            return null;
+        }
+        return list.get(0);
+    }
 }

+ 22 - 1
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/impl/UserServiceImpl.java

@@ -23,7 +23,7 @@ import com.fdkankan.platform.user.request.RequestUser;
 import com.fdkankan.platform.user.service.IReceiverInfoService;
 import com.fdkankan.platform.user.service.IUserIncrementService;
 import com.fdkankan.platform.user.service.IUserService;
-import com.fdkankan.platform.user.service.RegisterService;
+import com.fdkankan.platform.user.service.sso.RegisterService;
 import com.fdkankan.platform.user.vo.ReceiverInfoVo;
 import com.fdkankan.platform.user.vo.ResponseCamera;
 import com.fdkankan.platform.user.vo.ResponseUser;
@@ -142,6 +142,15 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
         vo.setIncrementBindNum(incrementBindCount);
         return vo;
     }
+    @Override
+    public ResponseUser getUserInfoBySsoUserVo(SSOUserVo ssoUserVo) {
+        ResponseUser vo = ssoUserVo.getResponseUser();
+        Integer incrementCount = userIncrementService.getCountByUserId(vo.getId(),0);
+        Integer incrementBindCount = userIncrementService.getCountBindByUserId(vo.getId());
+        vo.setIncrementNum(incrementCount);
+        vo.setIncrementBindNum(incrementBindCount);
+        return vo;
+    }
 
     @Override
     public String uploadHead(RequestUser param,String token) throws Exception{
@@ -452,4 +461,16 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
         User user = this.getById(userId);
         return this.getSsoUserByUserName(user,user.getUserName());
     }
+
+    @Override
+    public SSOUser getByNickName(String nickName) {
+        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(User ::getNickName,nickName);
+        List<User> list = this.list(queryWrapper);
+        if(list == null || list.size()<=0){
+            return null;
+        }
+        User user = list.get(0);
+        return  this.getSsoUserByUserName(user,user.getUserName());
+    }
 }

+ 249 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/sso/AppService.java

@@ -0,0 +1,249 @@
+package com.fdkankan.platform.user.service.sso;
+
+import com.fdkankan.common.constant.*;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.user.SSOUser;
+import com.fdkankan.common.util.JwtUtil;
+import com.fdkankan.common.util.RandomUtil;
+import com.fdkankan.common.util.SecurityUtil;
+import com.fdkankan.common.util.SsoUtil;
+import com.fdkankan.common.validation.Variable;
+import com.fdkankan.platform.common.DefaultConfig;
+import com.fdkankan.platform.goods.entity.Camera;
+import com.fdkankan.platform.goods.entity.CameraDetail;
+import com.fdkankan.platform.goods.service.ICameraDetailService;
+import com.fdkankan.platform.goods.service.ICameraService;
+import com.fdkankan.platform.user.entity.User;
+import com.fdkankan.platform.user.request.RequestUser;
+import com.fdkankan.platform.user.service.IUserService;
+import com.fdkankan.platform.user.vo.ResponseUser;
+import com.fdkankan.platform.user.vo.SSOUserVo;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Set;
+
+@Service
+public class AppService {
+    private static Logger log = LoggerFactory.getLogger("programLog");
+
+    @Autowired
+    private ICameraService cameraService;
+    @Autowired
+    private ICameraDetailService cameraDetailService;
+    @Autowired
+    private IUserService userService;
+    @Autowired
+    private MsgService msgService;
+    @Autowired
+    private RegisterService registerService;
+    @Resource
+    private RedisTemplate<String,String> redisTemplate;
+
+    public String qrCodeLogin(RequestUser user) {
+        if(StringUtils.isEmpty(user.getAppUserName()) || StringUtils.isEmpty(user.getAppPassword())
+                || StringUtils.isEmpty(user.getUuid())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        Camera dbCameraEntity = cameraService.getByChildNameAndChildPassword(user.getAppUserName(),user.getAppPassword());
+        if (dbCameraEntity == null){
+            throw new BusinessException(CameraConstant.FAILURE_6003);
+        }
+        CameraDetail entity = cameraDetailService.getByCameraId(dbCameraEntity.getId());
+        if (entity == null ){
+            throw new BusinessException(AppConstant.FAILURE_CODE_4012, AppConstant.FAILURE_MSG_4012);
+        }
+        redisTemplate.opsForValue().set(user.getUuid(),user.getAppUserName(), DefaultConfig.DEFAULT_EXPIRE_TIME, DefaultConfig.DEFAULT_TIME_UNIT);
+        return ServerCode.SUCCESS.message();
+    }
+
+    public HashMap<String, String> passwordLogin(RequestUser user) {
+        if(StringUtils.isEmpty(user.getAppUserName()) || StringUtils.isEmpty(user.getAppPassword())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        Camera cameraEntity = cameraService.getByChildNameAndChildPassword(user.getAppUserName(),user.getAppPassword());
+        if (cameraEntity == null){
+            throw new BusinessException(ErrorCode.PASSWORD_ERROR);
+        }
+        String token = JwtUtil.createJWT(-1, cameraEntity.getChildName(), LoginType.APP.name());
+        String key = SsoUtil.PREFIX_CACHE_CAMERA + cameraEntity.getChildName();
+        redisTemplate.opsForValue().set(key, token, DefaultConfig.CAMERA_EXPIRE_TIME,DefaultConfig.DEFAULT_TIME_UNIT);
+        HashMap<String,String> obj = new HashMap<>();
+        obj.put("token", token);
+        return obj;
+    }
+
+    public SSOUserVo userNameLogin(RequestUser user) {
+        User dbUser = userService.getUserByUserName(user.getPhoneNum());
+        SSOUser ssoUser = userService.getSsoUserByUserName(dbUser,user.getPhoneNum());
+        if(ssoUser == null){
+            throw new BusinessException(ErrorCode.USER_NOT_EXIST);
+        }
+        String passwordCode = SecurityUtil.MD5(user.getPassword());
+        if (!passwordCode.equals(ssoUser.getPassword())){
+            throw new BusinessException(ErrorCode.PASSWORD_ERROR);
+        }
+        return this.setRedisToken(ssoUser,dbUser,user.getCameraType());
+    }
+
+    public SSOUserVo quickLogin(RequestUser user) {
+        User dbUser = msgService.checkMsgAuth(user);
+        SSOUser ssoUser = userService.getSsoUserByUserName(dbUser,user.getPhoneNum());
+        if(ssoUser == null){
+            throw new BusinessException(ErrorCode.USER_NOT_EXIST);
+        }
+        redisTemplate.delete(SsoUtil.PREFIX_MSG_AUTH_CODE + user.getPhoneNum());
+        return this.setRedisToken(ssoUser,dbUser,user.getCameraType());
+    }
+
+    private SSOUserVo setRedisToken(SSOUser ssoUser,User userEntity,Integer CameraType){
+        String key = SsoUtil.PREFIX_CACHE_CAMERA + ssoUser.getUserName();
+        String token = JwtUtil.createJWT(-1, ssoUser.getUserName(),LoginType.APP.name());
+        redisTemplate.opsForValue().set(key, token, DefaultConfig.USER_EXPIRE_TIME,DefaultConfig.DEFAULT_TIME_UNIT);
+        Integer cameraType = CameraType == null ? 4 : CameraType;
+        return userService.getUserInfoByUser(cameraType, userEntity, token);
+    }
+
+    public String logout(String token) {
+        String userName = JwtUtil.getUsername(token);
+        if(redisTemplate.hasKey(SsoUtil.PREFIX_CACHE_CAMERA + userName)){
+            redisTemplate.delete(SsoUtil.PREFIX_CACHE_CAMERA + userName);
+        }
+        return ServerCode.SUCCESS.message();
+    }
+
+    public String register(RequestUser user) {
+        user.setConfirmPwd(user.getPassword());
+        registerService.register(user);
+        return ServerCode.SUCCESS.message();
+    }
+
+    public ResponseUser getRandomNickName() {
+        String nickName = null;
+
+        while(nickName == null){
+            nickName = "mob" + RandomUtil.generateShortUuid();
+            SSOUser ssoUser = userService.getByNickName(nickName);
+            if(ssoUser != null){
+                nickName = null;
+                log.info("昵称已存在:" + nickName);
+            }
+        }
+        ResponseUser vo = new ResponseUser();
+        vo.setNickName(nickName);
+        log.info("获取的随机昵称:" + nickName);
+        return vo;
+    }
+
+    public String checkUserName(RequestUser user) {
+        if(StringUtils.isEmpty(user.getAppUserName())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+
+        User dbUser = userService.getUserByUserName(user.getAppUserName());
+        if(dbUser != null){
+            throw new BusinessException(ErrorCode.PHONE_EXIST);
+        }
+        return ServerCode.SUCCESS.message();
+    }
+
+    public String resetPassword(RequestUser user) {
+        if(StringUtils.isEmpty(user.getPhoneNum()) || StringUtils.isEmpty(user.getPassword()) ||
+                StringUtils.isEmpty(user.getMsgAuthCode())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+
+        //正则判断密码是否符合规则(8位以上并且数字英文组合)
+        if(!user.getPassword().matches(ConstantRegex.PASSWORD_REGEX)){
+            throw new BusinessException(ErrorCode.PASSWORD_VIOLATION);
+        }
+
+        User userEntity = userService.getUserByUserName(user.getPhoneNum());
+        if(userEntity == null){
+            throw new BusinessException(ErrorCode.USER_NOT_EXIST);
+        }
+
+        //验证码校验
+        String codeValue = redisTemplate.opsForValue().get(SsoUtil.PREFIX_MSG_AUTH_CODE + user.getPhoneNum());
+        if (StringUtils.isEmpty(codeValue)){
+            throw new BusinessException(ErrorCode.V_CODE_ERROR);
+        }
+        if (!codeValue.equals(user.getMsgAuthCode())){
+            throw new BusinessException(ErrorCode.V_CODE_ERROR);
+        }
+        userEntity.setPassword(SecurityUtil.MD5(user.getPassword()));
+        redisTemplate.delete(SsoUtil.PREFIX_MSG_AUTH_CODE + user.getPhoneNum());
+        if(!userService.updateById(userEntity)){
+            throw new BusinessException(ErrorCode.ERROR_MSG);
+        }
+        registerService.removeAllToken(user.getPhoneNum());
+        return ServerCode.SUCCESS.message();
+    }
+
+    public String uploadHead(RequestUser user) {
+        if(StringUtils.isEmpty(user.getPhoneNum()) || StringUtils.isEmpty(user.getHead())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+
+        User userEntity = userService.getUserByUserName(user.getPhoneNum());
+        if(userEntity == null){
+            throw new BusinessException(ErrorCode.USER_NOT_EXIST);
+        }
+
+        userEntity.setHead(user.getHead() + "?t=" + System.currentTimeMillis());
+        if(!userService.updateById(userEntity)){
+            throw new BusinessException(ErrorCode.ERROR_MSG);
+        }
+        return ServerCode.SUCCESS.message();
+    }
+
+    public Long getSubPointsFromUserName(RequestUser user) {
+        if(StringUtils.isEmpty(user.getPhoneNum())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        User userEntity = userService.getUserByUserName(user.getPhoneNum());
+        if(userEntity == null){
+            throw new BusinessException(ErrorCode.USER_NOT_EXIST);
+        }
+        return cameraDetailService.getSumBalanceByUserId(userEntity.getId());
+    }
+
+    public ResponseUser getUserInfo(RequestUser user) {
+        if(StringUtils.isEmpty(user.getPhoneNum())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        User userEntity = userService.getUserByUserName(user.getPhoneNum());
+        if(userEntity == null){
+            throw new BusinessException(ErrorCode.USER_NOT_EXIST);
+        }
+        Integer cameraType = user.getCameraType() == null ? 4 : user.getCameraType();
+        SSOUserVo ssoUserVo = userService.getUserInfoByUser(cameraType, userEntity, "");
+        return userService.getUserInfoBySsoUserVo(ssoUserVo);
+    }
+
+    public String updateNickName(RequestUser user) {
+        if (StringUtils.isEmpty(user.getNickName()) || StringUtils.isEmpty(user.getPhoneNum())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        //检验昵称敏感词
+        Set<String> set = Variable.sensitiveWord.getSensitiveWord(user.getNickName(), 1);
+        if (set != null && set.size() > 0){
+            throw new BusinessException(ErrorCode.NICKNAME_ERROR);
+        }
+        User userEntity = userService.getUserByUserName(user.getPhoneNum());
+        if(userEntity == null){
+            throw new BusinessException(ErrorCode.USER_NOT_EXIST);
+        }
+        userEntity.setNickName(user.getNickName());
+        if(!userService.updateById(userEntity)){
+            throw new BusinessException(ErrorCode.ERROR_MSG);
+        }
+        return ServerCode.SUCCESS.message();
+    }
+}

+ 10 - 21
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/LoginService.java

@@ -1,9 +1,10 @@
-package com.fdkankan.platform.user.service;
+package com.fdkankan.platform.user.service.sso;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.fdkankan.common.constant.ConstantFilePath;
 import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.constant.LoginType;
 import com.fdkankan.common.constant.ServerCode;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.util.*;
@@ -12,6 +13,7 @@ import com.fdkankan.platform.user.common.util.MatrixToImageWriterUtil;
 import com.fdkankan.common.user.SSOUser;
 import com.fdkankan.platform.user.entity.User;
 import com.fdkankan.platform.user.request.RequestUser;
+import com.fdkankan.platform.user.service.IUserService;
 import com.fdkankan.platform.user.vo.SSOUserVo;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,9 +29,11 @@ public class LoginService {
     @Resource
     private RedisTemplate<String,String> redisTemplate;
     @Autowired
-    private  IUserService userService;
+    private IUserService userService;
     @Autowired
     private SSOLoginHelper ssoLoginHelper;
+    @Autowired
+    private MsgService msgService;
     @Value("${main.url}")
     private String mainUrl;
 
@@ -52,23 +56,9 @@ public class LoginService {
 
 
     public SSOUserVo quickLogin(RequestUser param) {
-        if(StringUtils.isEmpty(param.getPhoneNum()) || StringUtils.isEmpty(param.getMsgAuthCode())){
-            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
-        }
-        //验证码校验
-        String codeValue = redisTemplate.opsForValue().get(SsoUtil.PREFIX_MSG_AUTH_CODE + param.getPhoneNum());
-        if (StringUtils.isEmpty(codeValue)){
-            throw new BusinessException(ErrorCode.V_CODE_ERROR);
-        }
-        if (!codeValue.equals(param.getMsgAuthCode())){
-            throw new BusinessException(ErrorCode.V_CODE_ERROR);
-        }
-        User dbUser = userService.getUserByUserName(param.getPhoneNum());
+        User dbUser = msgService.checkMsgAuth(param);
         SSOUser ssoUser = userService.getSsoUserByUserName(dbUser,param.getPhoneNum());
-        if(ssoUser == null){
-            throw new BusinessException(ErrorCode.USER_NOT_EXIST);
-        }
-        String token = JwtUtil.createJWT(-1, ssoUser.getUserName(),"user");
+        String token = JwtUtil.createJWT(-1, ssoUser.getUserName(), LoginType.USER.name());
         ssoLoginHelper.login(token, ssoUser);
         removeTimeOutToken(param.getPhoneNum(),token);
         return  userService.getUserInfoByUser( param.getCameraType(), dbUser,token);
@@ -170,7 +160,7 @@ public class LoginService {
         SSOUser dbUser = new SSOUser();
         dbUser.setUserName(childName);
 
-        String token = JwtUtil.createJWT(-1, childName,"user");
+        String token = JwtUtil.createJWT(-1, childName,LoginType.USER.name());
         ssoLoginHelper.login(token, dbUser);
 
         JSONObject object = new JSONObject();
@@ -189,8 +179,7 @@ public class LoginService {
         if (!passwordCode.equals(ssoUser.getPassword())){
             throw new BusinessException(ErrorCode.PASSWORD_ERROR);
         }
-
-        String token = JwtUtil.createJWT(-1, ssoUser.getUserName(),"user");
+        String token = JwtUtil.createJWT(-1, ssoUser.getUserName(),LoginType.USER.name());
         ssoLoginHelper.login(token, ssoUser);
         return token;
     }

+ 18 - 1
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/MsgService.java

@@ -1,4 +1,4 @@
-package com.fdkankan.platform.user.service;
+package com.fdkankan.platform.user.service.sso;
 
 import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.constant.ServerCode;
@@ -7,7 +7,9 @@ import com.fdkankan.common.sms.SendMailAcceUtils;
 import com.fdkankan.common.sms.SmsService;
 import com.fdkankan.common.util.PatternUtils;
 import com.fdkankan.common.util.SsoUtil;
+import com.fdkankan.platform.user.entity.User;
 import com.fdkankan.platform.user.request.RequestUser;
+import com.fdkankan.platform.user.service.IUserService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -89,4 +91,19 @@ public class MsgService {
         redisTemplate.opsForValue().set(SsoUtil.PREFIX_MSG_AUTH_CODE + param.getPhoneNum(), code, 300, TimeUnit.SECONDS);
         return ServerCode.SUCCESS.message();
     }
+
+    public User checkMsgAuth(RequestUser user){
+        if(StringUtils.isEmpty(user.getPhoneNum()) || org.apache.commons.lang.StringUtils.isEmpty(user.getMsgAuthCode())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        String codeValue = redisTemplate.opsForValue().get(SsoUtil.PREFIX_MSG_AUTH_CODE + user.getPhoneNum());
+        //验证码校验
+        if (StringUtils.isEmpty(codeValue)){
+            throw new BusinessException(ErrorCode.V_CODE_ERROR);
+        }
+        if (!codeValue.equals(user.getMsgAuthCode())){
+            throw new BusinessException(ErrorCode.V_CODE_ERROR);
+        }
+        return  userService.getUserByUserName(user.getPhoneNum());
+    }
 }

+ 4 - 3
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/RegisterService.java

@@ -1,4 +1,4 @@
-package com.fdkankan.platform.user.service;
+package com.fdkankan.platform.user.service.sso;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -14,6 +14,7 @@ import com.fdkankan.common.validation.Variable;
 import com.fdkankan.common.user.SSOLoginHelper;
 import com.fdkankan.platform.user.entity.User;
 import com.fdkankan.platform.user.request.RequestUser;
+import com.fdkankan.platform.user.service.IUserService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -32,7 +33,7 @@ public class RegisterService {
     @Resource
     private RedisTemplate<String,String> redisTemplate;
     @Autowired
-    private  IUserService userService;
+    private IUserService userService;
     @Autowired
     private SSOLoginHelper ssoLoginHelper;
 
@@ -114,7 +115,7 @@ public class RegisterService {
         return ServerCode.SUCCESS.message();
     }
 
-    private void removeAllToken(String phone){
+    public void removeAllToken(String phone){
         //删除缓存
         redisTemplate.delete(SsoUtil.PREFIX_MSG_AUTH_CODE + phone);
         JSONArray tokenArray = new JSONArray();

+ 97 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/sso/SsoManagerService.java

@@ -0,0 +1,97 @@
+package com.fdkankan.platform.user.service.sso;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.constant.LoginType;
+import com.fdkankan.common.constant.ServerCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.util.Base64Converter;
+import com.fdkankan.common.util.JwtUtil;
+import com.fdkankan.common.util.PasswordUtils;
+import com.fdkankan.common.util.SsoUtil;
+import com.fdkankan.platform.common.DefaultConfig;
+import com.fdkankan.platform.order.entity.SpaceSdk;
+import com.fdkankan.platform.order.service.ISpaceSdkService;
+import com.fdkankan.platform.user.entity.Manager;
+import com.fdkankan.platform.user.request.RequestManager;
+import com.fdkankan.platform.user.request.RequestSdkVersion;
+import com.fdkankan.platform.user.service.IManagerService;
+import com.fdkankan.platform.user.vo.SSOManagerVo;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+@Service
+public class SsoManagerService {
+
+    @Autowired
+    private IManagerService managerService;
+    @Autowired
+    private ISpaceSdkService spaceSdkService;
+    @Resource
+    private RedisTemplate<String,String> redisTemplate;
+
+    public JSONObject login(RequestManager param) {
+        SSOManagerVo managerEntity = getVoByUserName(param.getUserName());
+        if (managerEntity == null){
+            throw new BusinessException(ErrorCode.USER_NOT_EXIST);
+        }
+        if(managerEntity.getIsCompany() != 0){
+            throw new BusinessException(ErrorCode.NOT_PERMISSION);
+        }
+      return this.loginCommon(param,managerEntity);
+    }
+
+    public JSONObject companyLogin(RequestManager param) {
+        SSOManagerVo managerEntity = getVoByUserName(param.getUserName());
+        if (managerEntity == null){
+            throw new BusinessException(ErrorCode.USER_NOT_EXIST);
+        }
+        if(managerEntity.getIsCompany() != 1){
+            throw new BusinessException(ErrorCode.NOT_PERMISSION);
+        }
+        return this.loginCommon(param,managerEntity);
+    }
+
+    private JSONObject loginCommon(RequestManager param, SSOManagerVo managerEntity){
+        //对前端传的密码解密
+        String password = Base64Converter.decode(Base64Converter.subText(param.getPassword()));
+        param.setPassword(password);
+        String encryptPwd = PasswordUtils.encrypt(param.getUserName(), param.getPassword(), PasswordUtils.getStaticSalt());
+        if (!encryptPwd.equals(managerEntity.getPassword())){
+            throw new BusinessException(ErrorCode.PASSWORD_ERROR);
+        }
+        String key = SsoUtil.PREFIX_CACHE_MANAGER + managerEntity.getUserName();
+        String token = JwtUtil.createJWT(-1, key, LoginType.MANAGER.name());
+        redisTemplate.opsForValue().set(key, token, DefaultConfig.USER_EXPIRE_TIME,DefaultConfig.DEFAULT_TIME_UNIT);
+        JSONObject obj = new JSONObject();
+        obj.put("token", token);
+        return obj;
+    }
+
+    public String logout(String token) {
+        String userName = JwtUtil.getUsername(token);
+        if (redisTemplate.hasKey(userName)){
+            redisTemplate.delete(userName);
+        }
+        return ServerCode.SUCCESS.message();
+    }
+
+    public Page<SpaceSdk> spaceList(RequestSdkVersion param) {
+        return spaceSdkService.getPageByParam(param);
+    }
+
+    private SSOManagerVo getVoByUserName(String userName){
+        SSOManagerVo vo = null;
+        Manager manager = managerService.getByUserName(userName);
+        if(manager!=null){
+            vo = new SSOManagerVo();
+            BeanUtils.copyProperties(manager,vo);
+        }
+        return vo;
+    }
+}

+ 18 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/vo/SSOManagerVo.java

@@ -0,0 +1,18 @@
+package com.fdkankan.platform.user.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class SSOManagerVo implements Serializable {
+
+    private static final long serialVersionUID = -5887311592557530658L;
+
+    private String userName;
+
+    private String password;
+
+    private Integer isCompany;
+
+}

+ 1 - 0
4dkankan-common/src/main/java/com/fdkankan/common/constant/ErrorCode.java

@@ -37,6 +37,7 @@ public enum ErrorCode {
     CAMERA_NOT_OWN(40026, "不能将相机分配给自己"),
     CAMERA_GIVEN(40027, "当前相机已被授权,请选择另外相机绑定"),
     FILE_NOT_EXIST(40027, "需要上传或使用的文件不存在"),
+    NOT_PERMISSION(40027, "登录失败,账号无权访问"),
 
 
 

+ 111 - 0
4dkankan-common/src/main/java/com/fdkankan/common/constant/SceneConstant.java

@@ -0,0 +1,111 @@
+
+package com.fdkankan.common.constant;
+
+// 5001-6000 场景状态码
+public class SceneConstant {
+
+    public static final int FAILURE_CODE_5001 = 5001;
+    public static final String FAILURE_MSG_5001 = "modeldata.json为空";
+
+    public static final int FAILURE_CODE_5002 = 5002;
+    public static final String FAILURE_MSG_5002 = "order值为空";
+
+    public static final int FAILURE_CODE_5003 = 5003;
+    public static final String FAILURE_MSG_5003 = "guideSid或order值为空";
+
+    public static final int FAILURE_CODE_5004 = 5004;
+    public static final String FAILURE_MSG_5004 = "guideSid或guideName值为空";
+
+    public static final int FAILURE_CODE_5005 = 5005;
+    public static final String FAILURE_MSG_5005 = "场景为空";
+
+    public static final int FAILURE_CODE_5006 = 5006;
+    public static final String FAILURE_MSG_5006 = "余额不足";
+
+    public static final int FAILURE_CODE_5007 = 5007;
+    public static final String FAILURE_MSG_5007 = "非八目场景";
+
+    public static final int FAILURE_CODE_5008 = 5008;
+    public static final String FAILURE_MSG_5008 = "该场景已经被封存,无法删除";
+
+    public static final int FAILURE_CODE_5009 = 5009;
+    public static final String FAILURE_MSG_5009 = "场景被删除";
+
+	public static final int FAILURE_CODE_5010 = 5010;
+    public static final String FAILURE_MSG_5010 = "场景不属于该相机";
+
+    public static final int FAILURE_CODE_5011 = 5011;
+    public static final String FAILURE_MSG_5011 = "创建";
+
+    public static final int FAILURE_CODE_5012 = 5012;
+    public static final String FAILURE_MSG_5012 = "数据不正常";
+
+    public static final int FAILURE_CODE_5013 = 5013;
+    public static final String FAILURE_MSG_5013 = "场景对应的用户名为空";
+
+    public static final int FAILURE_CODE_5014 = 5014;
+    public static final String FAILURE_MSG_5014 = "该用户无权操作该场景";
+
+    public static final int FAILURE_CODE_5015 = 5015;
+    public static final String FAILURE_MSG_5015 = "该场景不属于当前登录账号";
+
+    public static final int FAILURE_CODE_5016 = 5016;
+    public static final String FAILURE_MSG_5016 = "热点外链场景不对";
+
+    public static final int FAILURE_CODE_5017 = 5017;
+    public static final String FAILURE_MSG_5017 = "*上传模型失败,请参照右侧教程";
+
+    public static final int FAILURE_CODE_5018 = 5018;
+    public static final String FAILURE_MSG_5018 = "zip文件只能有一层目录或无目录";
+
+    public static final int FAILURE_CODE_5019 = 5019;
+    public static final String FAILURE_MSG_5019 = "必须有且仅有一个obj和mtl文件";
+
+    public static final int FAILURE_CODE_5020 = 5020;
+    public static final String FAILURE_MSG_5020 = "贴图需控制在1.5M以内,obj文件需要控制在20M以内。";
+
+    public static final int FAILURE_CODE_5021 = 5021;
+    public static final String FAILURE_MSG_5021 = "场景密钥不正确";
+
+    public static final int FAILURE_CODE_5022 = 5022;
+    public static final String FAILURE_MSG_5022 = "上传文件格式,名称不一致";
+
+    public static final int FAILURE_CODE_5023 = 5023;
+    public static final String FAILURE_MSG_5023 = "上传文件格式不正确,只能是jpg或mp4格式";
+
+    public static final int FAILURE_CODE_5024 = 5024;
+    public static final String FAILURE_MSG_5024 = "有场景打包中,请稍后重试";
+
+    public static final int FAILURE_CODE_5025 = 5025;
+    public static final String FAILURE_MSG_5025 = "数据包不存在,请先打成zip包";
+
+    public static final int FAILURE_CODE_5026 = 5026;
+    public static final String FAILURE_MSG_5026 = "上传的压缩包类型不正确";
+
+    public static final int FAILURE_CODE_5027 = 5027;
+    public static final String FAILURE_MSG_5027 = "文件夹不存在";
+
+    public static final int FAILURE_CODE_5028 = 5028;
+    public static final String FAILURE_MSG_5028 = "无权修改该文件夹";
+
+    public static final int FAILURE_CODE_5029 = 5029;
+    public static final String FAILURE_MSG_5029 = "场景下载失败,请稍后重试";
+
+    public static final int FAILURE_CODE_5030 = 5030;
+    public static final String FAILURE_MSG_5030 = "同级文件夹名称不能重复";
+
+    public static final int FAILURE_CODE_5031 = 5031;
+    public static final String FAILURE_MSG_5031 = "场景打包中不能重复操作";
+
+    public static final int FAILURE_CODE_5032 = 5032;
+    public static final String FAILURE_MSG_5032 = "三维家打包记录不存在";
+
+    public static final int FAILURE_CODE_5033 = 5033;
+    public static final String FAILURE_MSG_5033 = "该场景正在计算中";
+
+    public static final int FAILURE_CODE_5034 = 5034;
+    public static final String FAILURE_MSG_5034 = "该场景已封存";
+
+    public static final int FAILURE_CODE_5035 = 5035;
+    public static final String FAILURE_MSG_5035 = "任务已存在";
+}

+ 49 - 0
4dkankan-common/src/main/java/com/fdkankan/common/util/RandomUtil.java

@@ -0,0 +1,49 @@
+package com.fdkankan.common.util;
+
+import java.util.Random;
+import java.util.UUID;
+
+public class RandomUtil {
+    public static String[] chars = new String[] { "a", "b", "c", "d", "e", "f",
+            "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s",
+            "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5",
+            "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I",
+            "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V",
+            "W", "X", "Y", "Z" };
+
+    public static String generateShortUuid() {
+        StringBuffer shortBuffer = new StringBuffer();
+        String uuid = UUID.randomUUID().toString().replace("-", "");
+        int index = 0;
+        for (int i = 0; i < 10; i++) {
+            index = i;
+            if(index >= 8){
+                index = i % 8;
+                uuid = UUID.randomUUID().toString().replace("-", "");
+            }
+            String str = uuid.substring(index * 4, index * 4 + 4);
+            int x = Integer.parseInt(str, 16);
+            shortBuffer.append(chars[x % 0x3E]);
+        }
+        return shortBuffer.toString();
+
+    }
+
+    /**
+     * 获取随机字符串(相机sn码)
+     *
+     * @param num
+     * @return
+     */
+    public static String getRandomNum(Integer num) {
+        String base = "0123456789ABCDEF";
+        Random random = new Random();
+        StringBuffer sb = new StringBuffer();
+        for (int i = 0; i < num; i++) {
+            int number = random.nextInt(base.length());
+            sb.append(base.charAt(number));
+        }
+        return sb.toString();
+    }
+
+}