Commit 71818d8ddf1fb496616093daccb84da34fcda33f
1 parent
f22dd4a4
优化签到流程
Showing
1 changed file
with
38 additions
and
29 deletions
Bsth-admin/src/main/java/com/ruoyi/in/controller/SignInController.java
| @@ -7,15 +7,18 @@ import com.ruoyi.common.core.page.TableDataInfo; | @@ -7,15 +7,18 @@ import com.ruoyi.common.core.page.TableDataInfo; | ||
| 7 | import com.ruoyi.common.core.redis.RedisCache; | 7 | import com.ruoyi.common.core.redis.RedisCache; |
| 8 | import com.ruoyi.common.enums.BusinessType; | 8 | import com.ruoyi.common.enums.BusinessType; |
| 9 | import com.ruoyi.common.exception.file.FileUploadException; | 9 | import com.ruoyi.common.exception.file.FileUploadException; |
| 10 | +import com.ruoyi.common.utils.StringUtils; | ||
| 10 | import com.ruoyi.common.utils.poi.ExcelUtil; | 11 | import com.ruoyi.common.utils.poi.ExcelUtil; |
| 11 | import com.ruoyi.in.domain.SignIn; | 12 | import com.ruoyi.in.domain.SignIn; |
| 12 | import com.ruoyi.in.service.ISignInService; | 13 | import com.ruoyi.in.service.ISignInService; |
| 13 | import com.ruoyi.in.service.SignInServiceV1; | 14 | import com.ruoyi.in.service.SignInServiceV1; |
| 14 | import com.ruoyi.pojo.response.SignInResponseVo; | 15 | import com.ruoyi.pojo.response.SignInResponseVo; |
| 16 | +import com.ruoyi.utils.ConstDateUtil; | ||
| 15 | import io.swagger.annotations.Api; | 17 | import io.swagger.annotations.Api; |
| 16 | import io.swagger.annotations.ApiOperation; | 18 | import io.swagger.annotations.ApiOperation; |
| 17 | import io.swagger.annotations.ApiParam; | 19 | import io.swagger.annotations.ApiParam; |
| 18 | import lombok.extern.slf4j.Slf4j; | 20 | import lombok.extern.slf4j.Slf4j; |
| 21 | +import org.apache.commons.lang3.RandomUtils; | ||
| 19 | import org.springframework.beans.factory.annotation.Autowired; | 22 | import org.springframework.beans.factory.annotation.Autowired; |
| 20 | import org.springframework.validation.annotation.Validated; | 23 | import org.springframework.validation.annotation.Validated; |
| 21 | import org.springframework.web.bind.annotation.*; | 24 | import org.springframework.web.bind.annotation.*; |
| @@ -23,7 +26,13 @@ import org.springframework.web.bind.annotation.*; | @@ -23,7 +26,13 @@ import org.springframework.web.bind.annotation.*; | ||
| 23 | import javax.servlet.http.HttpServletRequest; | 26 | import javax.servlet.http.HttpServletRequest; |
| 24 | import javax.servlet.http.HttpServletResponse; | 27 | import javax.servlet.http.HttpServletResponse; |
| 25 | import java.io.IOException; | 28 | import java.io.IOException; |
| 29 | +import java.text.MessageFormat; | ||
| 30 | +import java.util.Date; | ||
| 26 | import java.util.List; | 31 | import java.util.List; |
| 32 | +import java.util.Objects; | ||
| 33 | +import java.util.concurrent.TimeUnit; | ||
| 34 | + | ||
| 35 | +import static com.ruoyi.common.redispre.GlobalRedisPreName.REDIS_SIGN_IN_DRIVER_ALCOHOL_OVERFLOW; | ||
| 27 | 36 | ||
| 28 | /** | 37 | /** |
| 29 | * 签到Controller | 38 | * 签到Controller |
| @@ -101,36 +110,36 @@ public class SignInController extends BaseController { | @@ -101,36 +110,36 @@ public class SignInController extends BaseController { | ||
| 101 | @PostMapping("/newAdd") | 110 | @PostMapping("/newAdd") |
| 102 | @ApiOperation("新增签到(设备传入)") | 111 | @ApiOperation("新增签到(设备传入)") |
| 103 | public AjaxResult addSignIn(@ApiParam @RequestBody @Validated SignIn signIn) throws FileUploadException, IOException { | 112 | public AjaxResult addSignIn(@ApiParam @RequestBody @Validated SignIn signIn) throws FileUploadException, IOException { |
| 104 | -// String key = MessageFormat.format("sign:assignment:{0}", signIn.getJobCode()); | ||
| 105 | -// if (redisCache.hasKey(key)) { | ||
| 106 | -// log.info(" sing method old sign :[{}]", signIn); | ||
| 107 | -// return signInService.addSignIn(signIn); | ||
| 108 | -// } | ||
| 109 | -// | ||
| 110 | -// Integer num = RandomUtils.nextInt(0, 10); | ||
| 111 | -// if (num < 3) { | ||
| 112 | -// redisCache.setCacheObject(key, num, 5, TimeUnit.MINUTES); | ||
| 113 | -// log.info("[{}] sing method 走新的签到方式 :[{}] ", num, signIn); | ||
| 114 | -// key = StringUtils.join(REDIS_SIGN_IN_DRIVER_ALCOHOL_OVERFLOW, ConstDateUtil.FAST_YYYY_MM_DD.format(new Date()), ":", signIn.getJobCode()); | ||
| 115 | -// Integer count = redisCache.getCacheObject(key); | ||
| 116 | -// try { | 113 | + String key = MessageFormat.format("sign:assignment:{0}", signIn.getJobCode()); |
| 114 | + if (redisCache.hasKey(key)) { | ||
| 115 | + log.info(" sing method old sign :[{}]", signIn); | ||
| 116 | + return signInService.addSignIn(signIn); | ||
| 117 | + } | ||
| 118 | + | ||
| 119 | + Integer num = RandomUtils.nextInt(0, 10); | ||
| 120 | + if (num < 6) { | ||
| 121 | + redisCache.setCacheObject(key, num, 5, TimeUnit.MINUTES); | ||
| 122 | + log.info("[{}] sing method 走新的签到方式 :[{}] ", num, signIn); | ||
| 123 | + key = StringUtils.join(REDIS_SIGN_IN_DRIVER_ALCOHOL_OVERFLOW, ConstDateUtil.FAST_YYYY_MM_DD.format(new Date()), ":", signIn.getJobCode()); | ||
| 124 | + Integer count = redisCache.getCacheObject(key); | ||
| 125 | + try { | ||
| 117 | return signInServiceV1.addsignInV1(signIn); | 126 | return signInServiceV1.addsignInV1(signIn); |
| 118 | -// } catch (Exception e) { | ||
| 119 | -// if (Objects.isNull(count) || count < 1) { | ||
| 120 | -// count = 0; | ||
| 121 | -// } else { | ||
| 122 | -// count = count - 1; | ||
| 123 | -// } | ||
| 124 | -// if (redisCache.hasKey(key)) { | ||
| 125 | -// redisCache.setCacheObject(key, count, 1, TimeUnit.DAYS); | ||
| 126 | -// } | ||
| 127 | -// log.error("[{}] sing method 走新的签到方式,签到失败 :[{}]", num, signIn, e); | ||
| 128 | -// } | ||
| 129 | -// | ||
| 130 | -// } | ||
| 131 | - | ||
| 132 | -// log.info("[{}] sing method old sign :[{}]", num, signIn); | ||
| 133 | -// return signInService.addSignIn(signIn); | 127 | + } catch (Exception e) { |
| 128 | + if (Objects.isNull(count) || count < 1) { | ||
| 129 | + count = 0; | ||
| 130 | + } else { | ||
| 131 | + count = count - 1; | ||
| 132 | + } | ||
| 133 | + if (redisCache.hasKey(key)) { | ||
| 134 | + redisCache.setCacheObject(key, count, 1, TimeUnit.DAYS); | ||
| 135 | + } | ||
| 136 | + log.error("[{}] sing method 走新的签到方式,签到失败 :[{}]", num, signIn, e); | ||
| 137 | + } | ||
| 138 | + | ||
| 139 | + } | ||
| 140 | + | ||
| 141 | + log.info("[{}] sing method old sign :[{}]", num, signIn); | ||
| 142 | + return signInService.addSignIn(signIn); | ||
| 134 | } | 143 | } |
| 135 | 144 | ||
| 136 | // /** | 145 | // /** |