执行钱包缺失添加任务
This commit is contained in:
parent
71efdfb07c
commit
c7ac9932cc
|
|
@ -0,0 +1,106 @@
|
|||
package com.bonus.canteen.core.account.task;
|
||||
|
||||
import com.bonus.canteen.core.account.domain.AccWalletInfo;
|
||||
import com.bonus.canteen.core.account.domain.AccountInfo;
|
||||
import com.bonus.canteen.core.account.mapper.AccInfoMapper;
|
||||
import com.bonus.canteen.core.account.mapper.AccWalletInfoMapper;
|
||||
import com.bonus.canteen.core.account.service.IAccInfoService;
|
||||
import com.bonus.canteen.core.android.service.UserService;
|
||||
import com.bonus.common.log.annotation.SysLog;
|
||||
import com.bonus.common.log.enums.OperaType;
|
||||
import com.bonus.common.security.utils.SecurityUtils;
|
||||
import com.bonus.system.api.domain.SysUser;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
@Component
|
||||
public class AccInfoTask {
|
||||
private static final Logger logger = LoggerFactory.getLogger(AccInfoTask.class);
|
||||
|
||||
@Resource
|
||||
private UserService userService;
|
||||
|
||||
@Resource
|
||||
private AccInfoMapper accInfoMapper;
|
||||
|
||||
@Resource
|
||||
private AccWalletInfoMapper accWalletInfoMapper;
|
||||
|
||||
//@XxlJob("cookRecipeHandler")
|
||||
// @Scheduled(fixedDelay = 60*1000*60*24) // 每天时执行一次
|
||||
@SysLog(title = "每日自动匹配钱包", businessType = OperaType.INSERT, logType = 1,module = "钱包任务->每日自动匹配钱包")
|
||||
public void accInfoHandler() {
|
||||
//查询人员列表
|
||||
List<SysUser> userList = userService.getUserList();
|
||||
Set<Long> idSet = userList.stream().map(SysUser::getUserId).collect(Collectors.toSet());
|
||||
|
||||
//查询账户资料表信息
|
||||
AccountInfo accountInfo = new AccountInfo();
|
||||
accountInfo.setDelFlag("0");
|
||||
List<AccountInfo> accInfoList = accInfoMapper.selectAccInfoList(accountInfo);
|
||||
Set<Long> accIdSet = accInfoList.stream().map(AccountInfo::getUserId).collect(Collectors.toSet());
|
||||
|
||||
//钱包详情信息
|
||||
AccWalletInfo accWalletInfo = new AccWalletInfo();
|
||||
accWalletInfo.setDelFlag("0");
|
||||
List<AccWalletInfo> accWalletInfoList = accWalletInfoMapper.selectAccWalletInfoList(accWalletInfo);
|
||||
Set<Long> accWalletSet = accWalletInfoList.stream().map(AccWalletInfo::getUserId).collect(Collectors.toSet());
|
||||
|
||||
if(idSet == null || idSet.size() ==0){
|
||||
logger.info("账户资料定时任务:无用户信息");
|
||||
return;
|
||||
}
|
||||
|
||||
// idSet中有而accIdSet中没有的元素
|
||||
List<Long> difference1 = idSet.stream()
|
||||
.filter(id -> !accIdSet.contains(id))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
//新增
|
||||
if(difference1 !=null && difference1.size() >0){
|
||||
for(Long userId : difference1){
|
||||
//新增账户资料
|
||||
AccountInfo newAccInfo = new AccountInfo();
|
||||
newAccInfo.setUserId(userId);
|
||||
newAccInfo.setAccountStatus(0);
|
||||
accInfoMapper.insertAccInfo(newAccInfo);
|
||||
//新增钱包详情信息
|
||||
AccWalletInfo newAccWalletInfo = new AccWalletInfo();
|
||||
newAccWalletInfo.setUserId(userId);
|
||||
newAccWalletInfo.setAccountId(newAccInfo.getAccountId());
|
||||
newAccWalletInfo.setCreateBy("admin");
|
||||
newAccWalletInfo.setCreateTime(new java.util.Date());
|
||||
for(int i=1;i<3;i++){
|
||||
newAccWalletInfo.setWalletType(i);
|
||||
accWalletInfoMapper.insertAccWalletInfo(newAccWalletInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// accIdSet中有而idSet中没有的元素
|
||||
List<Long> difference2 = accIdSet.stream()
|
||||
.filter(accId -> !idSet.contains(accId))
|
||||
.collect(Collectors.toList());
|
||||
if(difference2 !=null && difference2.size() >0){
|
||||
for(Long userId : difference2){
|
||||
//删除账户资料
|
||||
accInfoMapper.deleteAccInfoByUserId(userId);
|
||||
//删除钱包详情信息
|
||||
accWalletInfoMapper.deleteAccWalletInfoByUserId(userId);
|
||||
}
|
||||
}
|
||||
|
||||
System.err.println("idList中有而accIdList中没有: " + difference1);
|
||||
System.err.println("accIdList中有而idList中没有: " + difference2);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -2,6 +2,7 @@ package com.bonus.canteen.core.android.mapper;
|
|||
|
||||
import com.bonus.canteen.core.android.dto.AppDTO;
|
||||
import com.bonus.canteen.core.android.vo.UserInfoVo;
|
||||
import com.bonus.system.api.domain.SysUser;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -24,4 +25,6 @@ public interface UserMapper {
|
|||
List<UserInfoVo> getMoneyList();
|
||||
|
||||
List<UserInfoVo> getKitchenUserInfo(AppDTO dto);
|
||||
|
||||
List<SysUser> getUserList();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,9 @@ package com.bonus.canteen.core.android.service;
|
|||
|
||||
import com.bonus.canteen.core.android.dto.AppDTO;
|
||||
import com.bonus.common.core.web.domain.AjaxResult;
|
||||
import com.bonus.system.api.domain.SysUser;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author 19814
|
||||
|
|
@ -16,4 +19,6 @@ public interface UserService {
|
|||
AjaxResult getUserInfo(AppDTO dto);
|
||||
|
||||
AjaxResult getKitchenUserInfo(AppDTO dto);
|
||||
|
||||
List<SysUser> getUserList();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import com.bonus.canteen.core.android.service.UserService;
|
|||
import com.bonus.canteen.core.android.vo.UserInfoVo;
|
||||
import com.bonus.common.core.web.domain.AjaxResult;
|
||||
import com.bonus.common.houqin.utils.SM4EncryptUtils;
|
||||
import com.bonus.system.api.domain.SysUser;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
|
@ -55,4 +56,8 @@ public class UserServiceImpl implements UserService {
|
|||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysUser> getUserList() {
|
||||
return mapper.getUserList();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,4 +59,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="getUserList" resultType="com.bonus.system.api.domain.SysUser">
|
||||
select user_id as userId,
|
||||
user_code as userCode,
|
||||
user_name as userName,
|
||||
nick_name as nickName
|
||||
from sys_user where del_flag = 0 and `status` = 0
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
Loading…
Reference in New Issue