Explorar o código

增加日志过程

xiewenjie %!s(int64=3) %!d(string=hai) anos
pai
achega
cfe3be0ebd

+ 23 - 7
sxz-application/src/main/java/com.fdkk.sxz/main.java

@@ -1,13 +1,29 @@
 package com.fdkk.sxz;
 
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-
-import java.io.*;
-import java.nio.charset.Charset;
-import java.util.LinkedList;
-import java.util.List;
+import cn.hutool.core.date.TimeInterval;
+import cn.hutool.core.lang.Console;
+import cn.hutool.core.thread.ThreadUtil;
 
 public class main {
+    public static void main(String[] args) {
+        final TimeInterval timer = new TimeInterval();
+
+// 分组1
+        timer.start();
+        ThreadUtil.sleep(800);
+        Console.log("Timer 1 took {} ms", timer.intervalMs());
+
+        timer.intervalRestart();
+        ThreadUtil.sleep(1500);
+
+        Console.log("Timer 2 took {} Second", timer.intervalMs());
+
+        Console.log("Timer 2 took {} intervalRestart", timer.intervalRestart());
+
+        ThreadUtil.sleep(3500);
+        timer.restart();
+        ThreadUtil.sleep(1200);
+        Console.log("Timer 3 took {} Second", timer.intervalMs());
 
+    }
 }

+ 3 - 8
sxz-application/src/main/resources/application.properties

@@ -1,18 +1,13 @@
-
 #?? dev ,?? uat ,?? prod
 spring.profiles.active=@package.environment@
-
-
 system.defaultPwd=123456
-system.defaultRoleId=100
-system.defaultOrgId=0
+system.defaultRoleId=4
+system.defaultOrgId=1
 system.noDataFilterRole=DATA_NO_FILTER
 system.smsTimes=25
 system.expireTime={web: 10800000l, app: 15768000000l}
-
 #??controller???????method
-
-controller.scanPackage= classpath*:com/fdkk/sxz/*/controller/*.class,classpath*:com/fdkk/sxz/*/controller/*.class
+controller.scanPackage=classpath*:com/fdkk/sxz/*/controller/*.class,classpath*:com/fdkk/sxz/*/controller/*.class
 
 
 

+ 37 - 11
sxz-base/src/main/java/com/fdkk/sxz/Interceptor/OkHttpLogInterceptor.java

@@ -2,7 +2,9 @@ package com.fdkk.sxz.Interceptor;
 
 import lombok.extern.slf4j.Slf4j;
 import okhttp3.Interceptor;
+import okhttp3.Request;
 import okhttp3.Response;
+import okhttp3.ResponseBody;
 import org.jetbrains.annotations.NotNull;
 
 import java.io.IOException;
@@ -10,20 +12,44 @@ import java.io.IOException;
 @Slf4j
 public class OkHttpLogInterceptor implements Interceptor {
 
+    public int maxRetry;//最大重试次数
+    private int retryNum = 3;//假如设置为3次重试的话,则最大可能请求4次(默认1次+3次重试)
+
+    public OkHttpLogInterceptor(int maxRetry) {
+        this.maxRetry = maxRetry;
+    }
+
 
     @NotNull
     @Override
     public Response intercept(@NotNull Chain chain) throws IOException {
-        long startTime = System.currentTimeMillis();
-        log.info("----------Start-OkHttp----------------");
-        Response response = chain.proceed(chain.request());
-        long endTime = System.currentTimeMillis();
-        long duration = endTime - startTime;
-        okhttp3.MediaType mediaType = response.body().contentType();
-        String content = response.body().string();
-        log.info("----------End-OkHttp:" + duration + "毫秒----------");
-        return response.newBuilder()
-                .body(okhttp3.ResponseBody.create(mediaType, content))
-                .build();
+        //这个chain里面包含了request和response,所以你要什么都可以从这里拿
+        Request request = chain.request();
+
+        long t1 = System.nanoTime();//请求发起的时间
+        OkHttpLogInterceptor.log.info(String.format("发送请求 %s on %s%n%s",
+                request.url(), chain.connection(), request.headers()));
+
+        Response response = chain.proceed(request);
+
+        long t2 = System.nanoTime();//收到响应的时间
+
+        //这里不能直接使用response.body().string()的方式输出日志
+        //因为response.body().string()之后,response中的流会被关闭,程序会报错,我们需要创建出一
+        //个新的response给应用层处理
+        ResponseBody responseBody = response.peekBody(1024 * 1024);
+
+
+        OkHttpLogInterceptor.log.info(String.format("接收响应: [%s] %n返回json:【%s】 %.1fms%n%s",
+                response.request().url(),
+                responseBody.string(),
+                (t2 - t1) / 1e6d,
+                response.headers()));
+        while (!response.isSuccessful() && retryNum < maxRetry) {
+            retryNum++;
+            OkHttpLogInterceptor.log.info("重试次数retryNum=" + retryNum);
+            response = chain.proceed(request);
+        }
+        return response;
     }
 }

+ 7 - 8
sxz-base/src/main/java/com/fdkk/sxz/util/OkHttpUtils.java

@@ -28,11 +28,11 @@ public class OkHttpUtils {
     private static final String HTTP_FORM = "application/x-www-form-urlencoded; charset=utf-8";
 
 
-    private final static int READ_TIMEOUT = 3000;
+    private final static int READ_TIMEOUT = 30;
 
-    private final static int CONNECT_TIMEOUT = 3000;
+    private final static int CONNECT_TIMEOUT = 30;
 
-    private final static int WRITE_TIMEOUT = 3000;
+    private final static int WRITE_TIMEOUT = 30;
 
     private static volatile OkHttpClient okHttpClient;
 
@@ -40,14 +40,13 @@ public class OkHttpUtils {
 
         okhttp3.OkHttpClient.Builder clientBuilder = new okhttp3.OkHttpClient.Builder();
         //读取超时
-        clientBuilder.readTimeout(OkHttpUtils.READ_TIMEOUT, TimeUnit.SECONDS);
+        clientBuilder.readTimeout(OkHttpUtils.READ_TIMEOUT, TimeUnit.MINUTES);
         //连接超时
-        clientBuilder.connectTimeout(OkHttpUtils.CONNECT_TIMEOUT, TimeUnit.SECONDS);
+        clientBuilder.connectTimeout(OkHttpUtils.CONNECT_TIMEOUT, TimeUnit.MINUTES);
         //写入超时
-        clientBuilder.writeTimeout(OkHttpUtils.WRITE_TIMEOUT, TimeUnit.SECONDS);
+        clientBuilder.writeTimeout(OkHttpUtils.WRITE_TIMEOUT, TimeUnit.MINUTES);
         //自定义连接池最大空闲连接数和等待时间大小,否则默认最大5个空闲连接
-        clientBuilder.connectionPool(new ConnectionPool(32, 5, TimeUnit.MINUTES));
-
+        clientBuilder.connectionPool(new ConnectionPool(32, 30, TimeUnit.MINUTES));
         OkHttpUtils.okHttpClient = clientBuilder.build();
     }
 

+ 44 - 7
sxz-core/src/main/java/com/fdkk/sxz/other/listener/RunBuild.java

@@ -1,6 +1,7 @@
 package com.fdkk.sxz.other.listener;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.date.TimeInterval;
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.io.file.FileReader;
 import cn.hutool.core.thread.ThreadUtil;
@@ -88,6 +89,10 @@ public class RunBuild {
     @Value("${prefix.ali}")
     private String prefix;
 
+    @Autowired
+    private IModelHandelStepService modelHandelStepService;
+
+
     @RabbitHandler
     @RabbitListener(queues = TopicRabbitConfig.CHANGE)
     public void change(String str) {
@@ -824,14 +829,25 @@ public class RunBuild {
                 String max = new File(maxPath).getName();
                 Thread.sleep(1000);
                 RunBuild.log.info("开始运行maxToDatasmith");
+                ModelHandelStepEntity modelHandelStep = new ModelHandelStepEntity();
+                modelHandelStep.setStep(1);
+                modelHandelStep.setStepRemarks("开始运行maxToDataSmith");
+                modelHandelStep.setType(Integer.valueOf(UploadType));
+                modelHandelStep.setParentId(Long.valueOf(modelUploadId));
+                modelHandelStepService.save(modelHandelStep);
+                TimeInterval timer = cn.hutool.core.date.DateUtil.timer();
+                //开始计时
+                timer.start();
                 String maxUrl = maxObjUrl + "maxToDatasmith?uuid=" + fileId + "&max=" + maxName + "&flag=" + flag;
-                RunBuild.log.info("请求maxToDatasmith地址-{}", maxUrl);
+                RunBuild.log.info("请求maxToDataSmith地址-{}", maxUrl);
                 OkHttpUtils.httpGet(maxUrl);
-                RunBuild.log.info("运行maxToDatasmith结束-{}", fileId);
+                RunBuild.log.info("运行maxToDataSmith结束-{}", fileId);
+                modelHandelStep.setUseTime(String.valueOf(timer.intervalMs()));
+                modelHandelStepService.updateById(modelHandelStep);
 
                 String filesTxt = filePath + max.replace(".max", "") + "/files.txt";
                 if (!new File(filesTxt).exists()) {
-                    RunBuild.log.info("运行maxToDatasmith失败,没有files.txt文件:" + filesTxt);
+                    RunBuild.log.info("运行maxToDataSmith失败,没有files.txt文件:" + filesTxt);
                     throw new RuntimeException(fileId + ":运行maxToDatasmith失败,没有files.txt文件");
                 }
 
@@ -888,7 +904,17 @@ public class RunBuild {
                         jsonObject.put("postfix", modelType);
 //            String buildResult = OkHttpUtils.httpPostJson(buildUrl + "pro", jsonObject.toJSONString());
 
+
+                        modelHandelStep = new ModelHandelStepEntity();
+                        modelHandelStep.setStep(2);
+                        modelHandelStep.setStepRemarks("通知3D渲染业务端发送渲染请求:请求PRO接口");
+                        modelHandelStep.setType(Integer.valueOf(UploadType));
+                        modelHandelStep.setParentId(Long.valueOf(modelUploadId));
+                        modelHandelStepService.save(modelHandelStep);
+                        timer.restart();
                         postJson(fileId, filePath, jsonObject);
+                        modelHandelStep.setUseTime(String.valueOf(timer.intervalMs()));
+                        modelHandelStepService.updateById(modelHandelStep);
 
                         Thread.sleep(1000L);
 
@@ -912,13 +938,20 @@ public class RunBuild {
                             String ossDownlUrl = "domain/eHome/furniture/ue4data/" + fileId;
                             CreateObjUtil.ossCommonUtilCp(ossDownlUrl, filePath);
                             RunBuild.log.info("oss下载datasmith-{}", ossDownlUrl);
-
                             if (new File(filePath + fileId + "-base.obj").exists()) {
                                 facesNum = ObjProcess.findFacesNum(filePath + fileId + "-base.obj");
-
+                                modelHandelStep = new ModelHandelStepEntity();
+                                modelHandelStep.setStep(3);
+                                modelHandelStep.setStepRemarks("obj转成obj并进行压缩:objToObj");
+                                modelHandelStep.setType(Integer.valueOf(UploadType));
+                                modelHandelStep.setParentId(Long.valueOf(modelUploadId));
+                                modelHandelStepService.save(modelHandelStep);
+                                timer.restart();
                                 String maxObjUrlGet = maxObjUrl + "objToObj?uuid=" + fileId + "&inObj=" + fileId +
                                         "-base.obj&outObj=" + fileId + ".obj&r=3000";
                                 OkHttpUtils.httpGet(maxObjUrlGet);
+                                modelHandelStep.setUseTime(String.valueOf(timer.intervalMs()));
+                                modelHandelStepService.updateById(modelHandelStep);
                                 RunBuild.log.info("请求maxObj地址-{}", maxObjUrlGet);
                             }
                         }
@@ -1190,8 +1223,12 @@ public class RunBuild {
                         componentModelUploadService.updateById(componentModelUploadEntity);
                     }
                 }
-
-
+                ModelHandelStepEntity errorModelHandelStep = new ModelHandelStepEntity();
+                errorModelHandelStep.setStep(-1);
+                errorModelHandelStep.setStepRemarks("报错" + e.getMessage());
+                errorModelHandelStep.setType(Integer.valueOf(UploadType));
+                errorModelHandelStep.setParentId(Long.valueOf(modelUploadId));
+                modelHandelStepService.save(errorModelHandelStep);
             } finally {
                 MDC.clear();
                 if (token != null) {

+ 8 - 3
sxz-core/src/main/java/com/fdkk/sxz/system/service/IUserService.java

@@ -1,20 +1,20 @@
 package com.fdkk.sxz.system.service;
 
+import com.fdkk.sxz.base.IBaseService;
+import com.fdkk.sxz.entity.system.User;
 import com.fdkk.sxz.system.dto.CreateUser;
 import com.fdkk.sxz.system.dto.QueryUser;
 import com.fdkk.sxz.system.dto.UpdateUser;
 import com.fdkk.sxz.system.dto.UserInfo;
-import com.fdkk.sxz.entity.system.User;
-import com.fdkk.sxz.base.IBaseService;
 import com.github.pagehelper.Page;
 import com.github.pagehelper.PageInfo;
 
 import java.util.List;
 
 /**
+ * @author Xiewj
  * @ClassName: IUserService
  * @Description: 用户相关操接口
- * @author Xiewj
  * @date 2018年5月18日 下午3:19:33
  */
 public interface IUserService extends IBaseService<User> {
@@ -28,6 +28,8 @@ public interface IUserService extends IBaseService<User> {
      */
     boolean createUser(CreateUser user);
 
+    boolean getUsersExists(CreateUser user);
+
     /**
      * 更新用户
      *
@@ -39,6 +41,7 @@ public interface IUserService extends IBaseService<User> {
 
     /**
      * 删除用户
+     *
      * @param userId
      * @return
      */
@@ -46,6 +49,7 @@ public interface IUserService extends IBaseService<User> {
 
     /**
      * 批量删除用户
+     *
      * @param userIds
      * @return
      */
@@ -61,6 +65,7 @@ public interface IUserService extends IBaseService<User> {
 
     /**
      * 分页查询用户
+     *
      * @param page
      * @param user
      * @return

+ 49 - 61
sxz-core/src/main/java/com/fdkk/sxz/system/service/impl/UserServiceImpl.java

@@ -1,22 +1,22 @@
 package com.fdkk.sxz.system.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fdkk.sxz.base.impl.BaseServiceImpl;
 import com.fdkk.sxz.constant.Constant;
+import com.fdkk.sxz.entity.system.DataPermission;
+import com.fdkk.sxz.entity.system.OrganizationUser;
+import com.fdkk.sxz.entity.system.User;
+import com.fdkk.sxz.entity.system.UserRole;
 import com.fdkk.sxz.exception.BusinessException;
-import com.fdkk.sxz.base.impl.BaseServiceImpl;
+import com.fdkk.sxz.system.dto.CreateUser;
+import com.fdkk.sxz.system.dto.QueryUser;
+import com.fdkk.sxz.system.dto.UpdateUser;
+import com.fdkk.sxz.system.dto.UserInfo;
 import com.fdkk.sxz.system.mapper.UserMapper;
 import com.fdkk.sxz.system.service.IDataPermissionService;
 import com.fdkk.sxz.system.service.IOrganizationUserService;
 import com.fdkk.sxz.system.service.IUserRoleService;
 import com.fdkk.sxz.system.service.IUserService;
-import com.fdkk.sxz.system.dto.CreateUser;
-import com.fdkk.sxz.system.dto.QueryUser;
-import com.fdkk.sxz.system.dto.UpdateUser;
-import com.fdkk.sxz.system.dto.UserInfo;
-import com.fdkk.sxz.entity.system.DataPermission;
-import com.fdkk.sxz.entity.system.OrganizationUser;
-import com.fdkk.sxz.entity.system.User;
-import com.fdkk.sxz.entity.system.UserRole;
 import com.fdkk.sxz.util.RedisUtil;
 import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
@@ -34,9 +34,9 @@ import org.springframework.util.StringUtils;
 import java.util.List;
 
 /**
+ * @author Xiewj
  * @ClassName: UserServiceImpl
  * @Description: 用户相关操作接口实现类
- * @author Xiewj
  * @date 2018年5月18日 下午3:20:30
  */
 @Service
@@ -70,29 +70,18 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
     @Override
     public PageInfo<UserInfo> selectUserList(Page<UserInfo> page, QueryUser user) {
         PageHelper.startPage(page.getPageNum(), page.getPageSize(), true);
-        List<UserInfo> list = userMapper.selectUserList( user);
+        List<UserInfo> list = userMapper.selectUserList(user);
         PageInfo<UserInfo> pageInfo = new PageInfo<>(list);
         return pageInfo;
     }
 
     @Override
     public boolean createUser(CreateUser user) {
-        QueryWrapper<User> ew = new QueryWrapper<>();
-        ew.and(e -> e.eq("user_account", user.getUserAccount()).or().eq("user_account", user.getUserNickName()).or()
-                .eq("user_account", user.getUserEmail()).or().eq("user_account", user.getUserMobile()).or()
-                .eq("user_nick_name", user.getUserAccount()).or().eq("user_nick_name", user.getUserNickName()).or()
-                .eq("user_nick_name", user.getUserEmail()).or().eq("user_nick_name", user.getUserMobile()).or()
-                .eq("user_email", user.getUserAccount()).or().eq("user_email", user.getUserNickName()).or()
-                .eq("user_email", user.getUserEmail()).or().eq("user_email", user.getUserMobile()).or()
-                .eq("user_mobile", user.getUserAccount()).or().eq("user_mobile", user.getUserNickName()).or()
-                .eq("user_mobile", user.getUserEmail()).or().eq("user_mobile", user.getUserMobile()));
-        List<User> userList = this.list(ew);
-        if (!CollectionUtils.isEmpty(userList)) {
+        boolean userExists = getUsersExists(user);
+        if (userExists) {
             throw new BusinessException("账号已经存在");
         }
-
-        if(null == user.getOrganizationId())
-        {
+        if (null == user.getOrganizationId()) {
             user.setOrganizationId(defaultOrgId);
         }
 
@@ -139,16 +128,12 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
             user.setUserPassword(cryptPwd);
             UserRole userRole = new UserRole();
             userRole.setUserId(userEntity.getId());
-            if(!CollectionUtils.isEmpty(roleIds))
-            {
-                for (Long role : roleIds)
-                {
+            if (!CollectionUtils.isEmpty(roleIds)) {
+                for (Long role : roleIds) {
                     userRole.setRoleId(role);
                     result = userRoleService.save(userRole);
                 }
-            }
-            else
-            {
+            } else {
                 userRole.setRoleId(roleId);
                 result = userRoleService.save(userRole);
             }
@@ -157,6 +142,24 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
     }
 
     @Override
+    public boolean getUsersExists(CreateUser user) {
+        QueryWrapper<User> ew = new QueryWrapper<>();
+        ew.and(e -> e.eq("user_account", user.getUserAccount()).or().eq("user_account", user.getUserNickName()).or()
+                .eq("user_account", user.getUserEmail()).or().eq("user_account", user.getUserMobile()).or()
+                .eq("user_nick_name", user.getUserAccount()).or().eq("user_nick_name", user.getUserNickName()).or()
+                .eq("user_nick_name", user.getUserEmail()).or().eq("user_nick_name", user.getUserMobile()).or()
+                .eq("user_email", user.getUserAccount()).or().eq("user_email", user.getUserNickName()).or()
+                .eq("user_email", user.getUserEmail()).or().eq("user_email", user.getUserMobile()).or()
+                .eq("user_mobile", user.getUserAccount()).or().eq("user_mobile", user.getUserNickName()).or()
+                .eq("user_mobile", user.getUserEmail()).or().eq("user_mobile", user.getUserMobile()));
+        List<User> userList = this.list(ew);
+        if (!CollectionUtils.isEmpty(userList)) {
+            return true;
+        }
+        return false;
+    }
+
+    @Override
     @CacheEvict(value = "users", key = "'id_'.concat(#user.id)")
     public boolean updateUser(UpdateUser user) {
         QueryWrapper<User> ew = new QueryWrapper<>();
@@ -193,12 +196,10 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
 
         //修改后更新缓存
         redisUtil.set("users", "account_" + oldInfo.getUserAccount());
-        if (!StringUtils.isEmpty(oldInfo.getUserEmail()))
-        {
+        if (!StringUtils.isEmpty(oldInfo.getUserEmail())) {
             redisUtil.set("users", "account_" + oldInfo.getUserEmail());
         }
-        if (!StringUtils.isEmpty(oldInfo.getUserMobile()))
-        {
+        if (!StringUtils.isEmpty(oldInfo.getUserMobile())) {
             redisUtil.set("users", "account_" + oldInfo.getUserMobile());
         }
 
@@ -206,8 +207,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
         QueryWrapper<OrganizationUser> organizationUserWrapper = new QueryWrapper<>();
         organizationUserWrapper.eq("user_id", userEntity.getId()).eq("organization_id", organizationId);
         OrganizationUser orgUserOld = organizationUserService.getOne(organizationUserWrapper);
-        if (null == orgUserOld && null != organizationId)
-        {
+        if (null == orgUserOld && null != organizationId) {
             QueryWrapper<OrganizationUser> organizationUserRemoveWrapper = new QueryWrapper<>();
             organizationUserRemoveWrapper.eq("user_id", userEntity.getId());
             OrganizationUser orgUserRemove = organizationUserService.getOne(organizationUserRemoveWrapper);
@@ -231,18 +231,15 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
 
         List<Long> roleIds = user.getRoleIds();
         if (result && (null != user.getRoleId() || !CollectionUtils.isEmpty(roleIds))) {
-            if(!CollectionUtils.isEmpty(roleIds))
-            {
+            if (!CollectionUtils.isEmpty(roleIds)) {
                 //删除不存在的权限
                 QueryWrapper<UserRole> wp = new QueryWrapper<>();
                 wp.eq("user_id", userEntity.getId());
                 List<UserRole> urList = userRoleService.list(wp);
                 if (!CollectionUtils.isEmpty(urList)) {
-                    for (UserRole role : urList)
-                    {
+                    for (UserRole role : urList) {
                         //如果这个权限不存在,则删除
-                        if (!roleIds.contains(role.getRoleId()))
-                        {
+                        if (!roleIds.contains(role.getRoleId())) {
                             QueryWrapper<UserRole> wpd = new QueryWrapper<>();
                             wpd.eq("user_id", userEntity.getId()).eq("role_id", role.getRoleId());
                             userRoleService.remove(wpd);
@@ -251,23 +248,19 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
                 }
 
                 //新增库里不存在的权限
-                for (Long role : roleIds)
-                {
+                for (Long role : roleIds) {
                     QueryWrapper<UserRole> oldWp = new QueryWrapper<>();
                     oldWp.eq("user_id", userEntity.getId()).eq("role_id", role);
                     UserRole oldUserRole = userRoleService.getOne(oldWp);
                     //查询出库中存在的角色列表,如果更新中的存在则不操作,如果不存在则新增
-                    if(null == oldUserRole)
-                    {
+                    if (null == oldUserRole) {
                         UserRole userRole = new UserRole();
                         userRole.setUserId(userEntity.getId());
                         userRole.setRoleId(role);
                         result = userRoleService.save(userRole);
                     }
                 }
-            }
-            else if(null != user.getRoleId())
-            {
+            } else if (null != user.getRoleId()) {
                 UserRole userRole = new UserRole();
                 userRole.setUserId(userEntity.getId());
                 userRole.setRoleId(user.getRoleId());
@@ -296,12 +289,10 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
         boolean result = this.removeById(userId);
         if (result) {
             redisUtil.set("users", "account_" + oldInfo.getUserAccount());
-            if (!StringUtils.isEmpty(oldInfo.getUserEmail()))
-            {
+            if (!StringUtils.isEmpty(oldInfo.getUserEmail())) {
                 redisUtil.set("users", "account_" + oldInfo.getUserEmail());
             }
-            if (!StringUtils.isEmpty(oldInfo.getUserMobile()))
-            {
+            if (!StringUtils.isEmpty(oldInfo.getUserMobile())) {
                 redisUtil.set("users", "account_" + oldInfo.getUserMobile());
             }
             redisUtil.set("roles", "user_id_" + userId);
@@ -312,15 +303,12 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
     @Override
     public boolean batchDeleteUser(List<Long> userIds) {
         List<User> userList = (List<User>) this.listByIds(userIds);
-        for (User oldInfo : userList)
-        {
+        for (User oldInfo : userList) {
             redisUtil.set("users", "account_" + oldInfo.getUserAccount());
-            if (!StringUtils.isEmpty(oldInfo.getUserEmail()))
-            {
+            if (!StringUtils.isEmpty(oldInfo.getUserEmail())) {
                 redisUtil.set("users", "account_" + oldInfo.getUserEmail());
             }
-            if (!StringUtils.isEmpty(oldInfo.getUserMobile()))
-            {
+            if (!StringUtils.isEmpty(oldInfo.getUserMobile())) {
                 redisUtil.set("users", "account_" + oldInfo.getUserMobile());
             }
             redisUtil.set("users", "id_" + oldInfo.getId());

+ 16 - 3
sxz-core/src/main/java/com/fdkk/sxz/webApi/controller/LoginController.java

@@ -7,13 +7,15 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.fdkk.sxz.annotation.auth.NoAuthentication;
 import com.fdkk.sxz.annotation.log.AroundLog;
 import com.fdkk.sxz.base.BaseController;
+import com.fdkk.sxz.base.Result;
 import com.fdkk.sxz.constant.CodeConstant;
 import com.fdkk.sxz.entity.StatisticsEntity;
-import com.fdkk.sxz.webApi.service.IStatisticsService;
+import com.fdkk.sxz.system.dto.CreateUser;
+import com.fdkk.sxz.system.service.IUserService;
 import com.fdkk.sxz.util.DateUtil;
 import com.fdkk.sxz.util.OkHttpUtils;
-import com.fdkk.sxz.base.Result;
 import com.fdkk.sxz.vo.request.RequestUser;
+import com.fdkk.sxz.webApi.service.IStatisticsService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -45,6 +47,8 @@ public class LoginController extends BaseController {
     @Autowired
     private IStatisticsService statisticsService;
 
+    @Autowired
+    private IUserService userService;
 
     /**
      * 登陆
@@ -67,12 +71,21 @@ public class LoginController extends BaseController {
         data.put("password", user.getPassword());
         data.put("cameraType", 4);
 
-        JSONObject object =  OkHttpUtils.httpPostJson(mainUrl + "api/sso/user/login", data.toJSONString(), null) ;
+        JSONObject object = OkHttpUtils.httpPostJson(mainUrl + "api/sso/user/login", data.toJSONString(), null);
         if ("88888888888".equals(user.getPhoneNum())) {
             object.put("isAdmin", 1);
         } else {
             object.put("isAdmin", 0);
         }
+
+        CreateUser createUser = new CreateUser();
+        createUser.setUserName(object.getString("nickName"));
+        createUser.setUserAccount(user.getPhoneNum());
+        createUser.setUserMobile(user.getPhoneNum());
+        boolean usersExists = userService.getUsersExists(createUser);
+        if (!usersExists) {
+            userService.createUser(createUser);
+        }
         LambdaQueryWrapper<StatisticsEntity> wrapper = Wrappers.lambdaQuery();
         wrapper.eq(StatisticsEntity::getStatisticsDate, DateUtil.date2String(new Date(), DateUtil.YYYY_MM_DD_DATE_FORMAT));
         List<StatisticsEntity> statisticsEntityList = statisticsService.list(wrapper);

+ 16 - 0
sxz-core/src/main/java/com/fdkk/sxz/webApi/mapper/IModelHandelStepMapper.java

@@ -0,0 +1,16 @@
+package com.fdkk.sxz.webApi.mapper;
+
+import com.fdkk.sxz.base.IBaseMapper;
+import com.fdkk.sxz.entity.ModelHandelStepEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @description: 模型处理步骤记录 Model
+ * @author: Xiewj
+ * @date: 2021-10-25 14:28:07
+ */
+@Mapper
+public interface IModelHandelStepMapper extends IBaseMapper<ModelHandelStepEntity> {
+
+
+}

+ 15 - 0
sxz-core/src/main/java/com/fdkk/sxz/webApi/service/IModelHandelStepService.java

@@ -0,0 +1,15 @@
+package com.fdkk.sxz.webApi.service;
+
+import com.fdkk.sxz.base.IBaseService;
+import com.fdkk.sxz.entity.ModelHandelStepEntity;
+
+
+/**
+ * @description: ModelHandelStep 相关的服务接口类
+ * @author: Xiewj
+ * @date: 2021-10-25 14:28:07
+ **/
+public interface IModelHandelStepService extends IBaseService<ModelHandelStepEntity> {
+
+
+}

+ 21 - 0
sxz-core/src/main/java/com/fdkk/sxz/webApi/service/impl/ModelHandelStepServiceImpl.java

@@ -0,0 +1,21 @@
+package com.fdkk.sxz.webApi.service.impl;
+
+import com.fdkk.sxz.base.impl.BaseServiceImpl;
+import com.fdkk.sxz.entity.ModelHandelStepEntity;
+import com.fdkk.sxz.webApi.mapper.IModelHandelStepMapper;
+import com.fdkk.sxz.webApi.service.IModelHandelStepService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @description: ModelHandelStep 相关的服务实现类
+ * @author: Xiewj
+ * @date: 2021-10-25 14:28:07
+ **/
+@Service
+public class ModelHandelStepServiceImpl extends BaseServiceImpl<IModelHandelStepMapper, ModelHandelStepEntity> implements IModelHandelStepService {
+
+    @Autowired
+    private IModelHandelStepMapper modelHandelStepMapper;
+
+}

+ 57 - 0
sxz-modules/src/main/java/com/fdkk/sxz/entity/ModelHandelStepEntity.java

@@ -0,0 +1,57 @@
+package com.fdkk.sxz.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * @description: 模型处理步骤记录 Model
+ * @author: Xiewj
+ * @date: 2021-10-25 14:28:07
+ */
+@Data
+@TableName("tb_model_handel_step")
+@ApiModel(value = "模型处理步骤记录", description = "ModelHandelStepEntity")
+public class ModelHandelStepEntity extends BaseEntity {
+
+    private static final long serialVersionUID = 1635143287296L;
+
+    /**
+     * 上传模型表id
+     */
+    @TableField("parent_id")
+    @ApiModelProperty(value = "上传模型表id", name = "parent_id")
+    private Long parentId;
+
+    /**
+     * 1,普通 2 定制 3定制组件
+     */
+    @TableField("type")
+    @ApiModelProperty(value = "1,普通 2 定制 3定制组件", name = "type")
+    private Integer type;
+
+    /**
+     * 耗时
+     */
+    @TableField("use_time")
+    @ApiModelProperty(value = "耗时", name = "use_time")
+    private String useTime;
+
+    /**
+     * 步骤说明
+     */
+    @TableField("step_remarks")
+    @ApiModelProperty(value = "步骤说明", name = "step_remarks")
+    private String stepRemarks;
+    /**
+     * -1为失败
+     */
+    @TableField("step")
+    @ApiModelProperty(value = "-1为失败", name = "step")
+    private Integer step;
+
+
+}