ソースを参照

增加转换接口v5

xiewenjie 3 年 前
コミット
3142d02b41

+ 1 - 1
pom.xml

@@ -301,7 +301,7 @@
             <dependency>
                 <groupId>cn.hutool</groupId>
                 <artifactId>hutool-all</artifactId>
-                <version>5.7.7</version>
+                <version>5.8.2</version>
             </dependency>
 
             <!--lettuce-->

+ 8 - 4
sxz-application/src/main/java/com.fdkk.sxz/main.java

@@ -1,7 +1,7 @@
 package com.fdkk.sxz;
 
 
-import com.fdkk.sxz.util.FileUtils;
+import cn.hutool.core.date.DateUtil;
 
 public class main {
     //public static void main(String[] args) throws IOException {
@@ -198,8 +198,12 @@ public class main {
     //}
 
     public static void main(String[] args) {
-        boolean b = FileUtils.downLoadFromUrl("https://4dkk.4dage.com/data/datat-sEPz6Eq/houst_f123123123loor.json?t=" + System.currentTimeMillis(),
-                "floor.json", "d://temp//");
-        System.out.println(b);
+        System.out.println(DateUtil.parse(DateUtil.today()));
+        boolean between = DateUtil.isIn(DateUtil.parse("2022-06-06 00:00:01"),
+                DateUtil.parse("2022-06-07 00:00:00"),
+                DateUtil.parse("2022-06-09 00:00:00")
+        );
+
+        System.out.println(between);
     }
 }

+ 3 - 1
sxz-base/src/main/java/com/fdkk/sxz/constant/ResponseConstant.java

@@ -1,9 +1,9 @@
 package com.fdkk.sxz.constant;
 
 /**
+ * @author Xiewj
  * @ClassName: PublicResultConstant
  * @Description: TODO
- * @author Xiewj
  * @date 2018年5月18日 下午11:49:45
  */
 public enum ResponseConstant {
@@ -27,6 +27,8 @@ public enum ResponseConstant {
      * 参数错误
      */
     PARAM_ERROR(90000003, "参数错误"),
+    ACCOUNT_EXPIRED(90000004, "不在授权时间范围内,请联系客服查询"),
+
     /**
      * 验证码错误
      */

+ 37 - 0
sxz-core/src/main/java/com/fdkk/sxz/system/controller/SysLoginController.java

@@ -1,6 +1,8 @@
 package com.fdkk.sxz.system.controller;
 
 import cn.hutool.captcha.GifCaptcha;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -10,6 +12,7 @@ import com.fdkk.sxz.base.BaseController;
 import com.fdkk.sxz.base.Result;
 import com.fdkk.sxz.constant.Constant;
 import com.fdkk.sxz.constant.ResponseConstant;
+import com.fdkk.sxz.entity.LoginCheckEntity;
 import com.fdkk.sxz.entity.system.Resource;
 import com.fdkk.sxz.entity.system.Role;
 import com.fdkk.sxz.entity.system.User;
@@ -20,6 +23,7 @@ import com.fdkk.sxz.system.service.IResourceService;
 import com.fdkk.sxz.system.service.IUserRoleService;
 import com.fdkk.sxz.system.service.IUserService;
 import com.fdkk.sxz.util.RedisUtil;
+import com.fdkk.sxz.webApi.service.ILoginCheckService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
@@ -58,6 +62,8 @@ public class SysLoginController extends BaseController {
 
     @Autowired
     private IUserService userService;
+    @Autowired
+    private ILoginCheckService loginCheckService;
 
     @Autowired
     private IUserRoleService userRoleService;
@@ -97,6 +103,37 @@ public class SysLoginController extends BaseController {
         }
     }
 
+    @PostMapping("/applogin")
+    @NoAuthentication
+    @ApiOperation(value = "执行登录先验证是否在时间范围内", notes = "返回token")
+    public Result<String> applogin(@RequestBody LoginUser loginUser, HttpServletRequest request) throws Exception {
+        String userAccount = loginUser.getUserAccount();
+        String userPassword = loginUser.getUserPassword();
+        if (StringUtils.isEmpty(userAccount) || StringUtils.isEmpty(userPassword)) {
+            return error(ResponseConstant.PARAM_ERROR);
+        }
+
+        LoginCheckEntity checkEntity = loginCheckService.findByUserAccount(userAccount);
+        if (ObjectUtil.isNotNull(checkEntity)) {
+            if (!DateUtil.isIn(checkEntity.getStartExpirationTime(),
+                    checkEntity.getEndExpirationTime()
+                    , DateUtil.parse(DateUtil.now()))) {
+                return error(ResponseConstant.ACCOUNT_EXPIRED);
+            }
+        }
+        // 查询用户是否存在
+        QueryWrapper<User> ew = new QueryWrapper<>();
+        ew.eq("user_account", userAccount).or().eq("user_mobile", userAccount).or().eq("user_email", userAccount);
+        User user = userService.getOne(ew);
+        if (StringUtils.isEmpty(user) || !BCrypt.checkpw(user.getUserAccount() + userPassword, user.getUserPassword())) {
+            return error(ResponseConstant.INVALID_USERNAME_PASSWORD);
+        }
+        String token = jwtComponent.sign(user.getUserAccount(), user.getUserPassword(), Constant.ExpTimeType.WEB);
+        long expTime = expireTime.get(Constant.ExpTimeType.WEB);
+        redisUtil.setEx("userLoginToken:" + token, JSON.toJSONString(user), expTime, TimeUnit.MILLISECONDS);
+        return successPut(token);
+    }
+
     @PostMapping("/login")
     @NoAuthentication
     @ApiOperation(value = "执行登录", notes = "返回token")

+ 15 - 0
sxz-core/src/main/java/com/fdkk/sxz/webApi/mapper/LoginCheckMapper.java

@@ -0,0 +1,15 @@
+package com.fdkk.sxz.webApi.mapper;
+
+import com.fdkk.sxz.base.IBaseMapper;
+import com.fdkk.sxz.entity.LoginCheckEntity;
+
+/**
+ * <p>
+ * Mapper 接口
+ * </p>
+ *
+ * @author jeebase
+ * @since 2018-10-24
+ */
+public interface LoginCheckMapper extends IBaseMapper<LoginCheckEntity> {
+}

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

@@ -0,0 +1,15 @@
+package com.fdkk.sxz.webApi.service;
+
+import com.fdkk.sxz.base.IBaseService;
+import com.fdkk.sxz.entity.LoginCheckEntity;
+
+/**
+ * @author Xiewj
+ * @ClassName: IUserService
+ * @Description: 用户相关操接口
+ * @date 2018年5月18日 下午3:19:33
+ */
+public interface ILoginCheckService extends IBaseService<LoginCheckEntity> {
+    LoginCheckEntity findByUserAccount(String userAccount);
+
+}

+ 31 - 0
sxz-core/src/main/java/com/fdkk/sxz/webApi/service/impl/LoginCheckServiceImpl.java

@@ -0,0 +1,31 @@
+package com.fdkk.sxz.webApi.service.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.fdkk.sxz.base.impl.BaseServiceImpl;
+import com.fdkk.sxz.entity.LoginCheckEntity;
+import com.fdkk.sxz.webApi.mapper.LoginCheckMapper;
+import com.fdkk.sxz.webApi.service.ILoginCheckService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 服务实现类
+ * </p>
+ *
+ * @author jeebase
+ * @since 2018-10-24
+ */
+@Service
+public class LoginCheckServiceImpl extends BaseServiceImpl<LoginCheckMapper, LoginCheckEntity> implements ILoginCheckService {
+    @Override
+    public LoginCheckEntity findByUserAccount(String userAccount) {
+        LambdaQueryWrapper<LoginCheckEntity> wrapper = Wrappers.lambdaQuery();
+        if (ObjectUtil.isNotNull(userAccount) && StrUtil.isNotEmpty(userAccount)) {
+            wrapper.in(LoginCheckEntity::getUserAccount, userAccount);
+        }
+        return getOne(wrapper);
+    }
+}

+ 48 - 0
sxz-modules/src/main/java/com/fdkk/sxz/entity/LoginCheckEntity.java

@@ -0,0 +1,48 @@
+package com.fdkk.sxz.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * <p>
+ * 用户表
+ * </p>
+ *
+ * @author Xiewj
+ * @since 2018-10-24
+ */
+@TableName("tb_login_check")
+@ApiModel(value = "用户验证", description = "账户验证表")
+@Data
+public class LoginCheckEntity extends BaseEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "账号")
+    @TableField("user_account")
+    private String userAccount;
+
+
+    @ApiModelProperty(value = "密码")
+    @TableField("user_password")
+    private String userPassword;
+
+    @ApiModelProperty(value = "开始过期时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")//set
+    @TableField(value = "start_expiration_time")
+    private Date startExpirationTime;
+
+    @ApiModelProperty(value = "结束过期时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")//set
+    @TableField(value = "end_expiration_time")
+    private Date endExpirationTime;
+}