|
|
@@ -17,9 +17,13 @@ import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
+import java.time.Duration;
|
|
|
import java.time.LocalDate;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.ZoneId;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
+import java.util.Optional;
|
|
|
|
|
|
@Component("qwTask")
|
|
|
public class qwTask {
|
|
|
@@ -265,6 +269,88 @@ public class qwTask {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 定时清除 占着茅坑不拉屎的ipad 账号
|
|
|
+ */
|
|
|
+ public void selectQwUserByUnbindIpadNew(){
|
|
|
+
|
|
|
+ //查询所有状态为 绑定了AI主机的
|
|
|
+ List<QwUser> list = qwUserMapper.selectQwUserByTest();
|
|
|
+ for (QwUser qwUser : list) {
|
|
|
+ try {
|
|
|
+
|
|
|
+ Long serverId = qwUser.getServerId();
|
|
|
+
|
|
|
+ if (serverId==null){
|
|
|
+ System.out.println("serverId不存在");
|
|
|
+ }else {
|
|
|
+ //没绑定销售 或者 已经离职
|
|
|
+ if (qwUser.getStatus()==0 || qwUser.getIsDel()==2){
|
|
|
+
|
|
|
+ updateIpadStatusNew(qwUser,serverId);
|
|
|
+ }
|
|
|
+
|
|
|
+ //绑定了销售-也绑定了ipad,但是长时间离线的(离线状态,无操作超过2天的,也自动解绑)
|
|
|
+ if(qwUser.getCreateTime()!=null){
|
|
|
+ Date createTime = qwUser.getCreateTime();
|
|
|
+ Integer serverStatus = qwUser.getServerStatus();
|
|
|
+ Integer ipadStatus = qwUser.getIpadStatus();
|
|
|
+
|
|
|
+ boolean result = isCreateTimeMoreThanDaysWithOptional(createTime, 2);
|
|
|
+ //大于2天 ,绑定了ipad,离线
|
|
|
+ if(result && serverStatus==1 && ipadStatus==0){
|
|
|
+ updateIpadStatusNew(qwUser,serverId);
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ System.out.println("解绑ipad报错"+e);
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public void updateIpadStatusNew(QwUser qwUser,Long serverId){
|
|
|
+// QwUser u = new QwUser();
|
|
|
+// u.setId(qwUser.getId());
|
|
|
+// u.setVid(null);
|
|
|
+// u.setServerStatus(0);
|
|
|
+ qwUserMapper.updateQwUserByUnbindIpad(qwUser.getId());
|
|
|
+ ipadServerService.addServer(serverId);
|
|
|
+ QwIpadServerLog qwIpadServerLog = new QwIpadServerLog();
|
|
|
+ qwIpadServerLog.setType(2);
|
|
|
+ qwIpadServerLog.setTilie("解绑");
|
|
|
+ qwIpadServerLog.setServerId(serverId);
|
|
|
+ qwIpadServerLog.setQwUserId(qwUser.getId());
|
|
|
+ qwIpadServerLog.setCompanyUserId(qwUser.getCompanyUserId());
|
|
|
+ qwIpadServerLog.setCompanyId(qwUser.getCompanyId());
|
|
|
+ qwIpadServerLog.setCreateTime(new Date());
|
|
|
+ qwIpadServerLogService.insertQwIpadServerLog(qwIpadServerLog);
|
|
|
+ qwIpadServerUserService.deleteQwIpadServerUserByQwUserId(qwUser.getId());
|
|
|
+ WxWorkGetQrCodeDTO wxWorkGetQrCodeDTO = new WxWorkGetQrCodeDTO();
|
|
|
+ wxWorkGetQrCodeDTO.setUuid(qwUser.getUid());
|
|
|
+ wxWorkService.LoginOut(wxWorkGetQrCodeDTO,qwUser.getServerId());
|
|
|
+ updateIpadStatus(qwUser.getId(),0);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static boolean isCreateTimeMoreThanDaysWithOptional(Date createTime, int days) {
|
|
|
+ return Optional.ofNullable(createTime)
|
|
|
+ .map(time -> {
|
|
|
+ LocalDateTime createDateTime = time.toInstant()
|
|
|
+ .atZone(ZoneId.systemDefault())
|
|
|
+ .toLocalDateTime();
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ Duration duration = Duration.between(createDateTime, now);
|
|
|
+ return duration.toDays() > days;
|
|
|
+ })
|
|
|
+ .orElse(false); // 为null时返回false,可根据需求调整
|
|
|
+ }
|
|
|
|
|
|
void updateIpadStatus(Long id ,Integer status){
|
|
|
QwUser u = new QwUser();
|