33333333333
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
package com.ruoyi.cai.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.ruoyi.cai.domain.BatchAddUser;
|
||||
|
||||
/**
|
||||
* 批量新增用户脚本Service接口
|
||||
*
|
||||
* @author 777
|
||||
* @date 2025-02-12
|
||||
*/
|
||||
public interface BatchAddUserService extends IService<BatchAddUser> {
|
||||
|
||||
void run(String id);
|
||||
|
||||
void addUser(String id);
|
||||
}
|
||||
@@ -0,0 +1,125 @@
|
||||
package com.ruoyi.cai.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.cai.auth.CaiLoginManager;
|
||||
import com.ruoyi.cai.auth.CaiRegisterUser;
|
||||
import com.ruoyi.cai.domain.BatchAddUser;
|
||||
import com.ruoyi.cai.domain.User;
|
||||
import com.ruoyi.cai.enums.GenderEnum;
|
||||
import com.ruoyi.cai.enums.SystemConfigEnum;
|
||||
import com.ruoyi.cai.manager.SystemConfigManager;
|
||||
import com.ruoyi.cai.mapper.BatchAddUserMapper;
|
||||
import com.ruoyi.cai.service.AnchorService;
|
||||
import com.ruoyi.cai.service.BatchAddUserService;
|
||||
import com.ruoyi.cai.service.UserService;
|
||||
import com.ruoyi.common.exception.base.BaseException;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import lombok.Data;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 批量新增用户脚本Service业务层处理
|
||||
*
|
||||
* @author 777
|
||||
* @date 2025-02-12
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
@Slf4j
|
||||
public class BatchAddUserServiceImpl extends ServiceImpl<BatchAddUserMapper,BatchAddUser> implements BatchAddUserService {
|
||||
|
||||
@Autowired
|
||||
private CaiLoginManager caiLoginManager;
|
||||
@Autowired
|
||||
private SystemConfigManager systemConfigManager;
|
||||
@Autowired
|
||||
private UserService userService;
|
||||
@Autowired
|
||||
private AnchorService anchorService;
|
||||
@Autowired
|
||||
private BatchAddUserService batchAddUserService;
|
||||
|
||||
@Override
|
||||
public void run(String id) {
|
||||
boolean update = this.update(Wrappers.lambdaUpdate(BatchAddUser.class).eq(BatchAddUser::getId, id)
|
||||
.eq(BatchAddUser::getRunStatus, 0).set(BatchAddUser::getRunStatus, 1));
|
||||
if(!update){
|
||||
throw new BaseException("无法重复执行");
|
||||
}
|
||||
new Thread(() -> {
|
||||
try {
|
||||
batchAddUserService.addUser(id);
|
||||
}catch (Exception e){
|
||||
log.error("新增用户失败 id={}", id,e);
|
||||
this.update(Wrappers.lambdaUpdate(BatchAddUser.class).eq(BatchAddUser::getId, id)
|
||||
.set(BatchAddUser::getRunTime, LocalDateTime.now())
|
||||
.set(BatchAddUser::getRunStatus, 2)
|
||||
.set(BatchAddUser::getRunFail, e.getMessage()));
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void addUser(String id){
|
||||
BatchAddUser batchAddUser = this.getById(id);
|
||||
Integer phoneSuffixStart = batchAddUser.getPhoneSuffixStart();
|
||||
List<RunResult> runResults = new ArrayList<>();
|
||||
for (int i = 0; i < batchAddUser.getAddNum(); i++) {
|
||||
String phone = String.format("%s%04d", batchAddUser.getPhonePrefix(), phoneSuffixStart+i);
|
||||
if(phone.length() != 11){
|
||||
log.error("新增用户:手机号非法 mobile={}",phone);
|
||||
continue;
|
||||
}
|
||||
String password = String.format("%s%s", batchAddUser.getPasswordPrefix(), batchAddUser.getPasswordSuffixStart()+i);
|
||||
String code = systemConfigManager.getSystemConfig(SystemConfigEnum.SMS_CODE_ADMIN);
|
||||
CaiRegisterUser registerUser = new CaiRegisterUser();
|
||||
registerUser.setUsername(phone);
|
||||
registerUser.setPassword(password);
|
||||
registerUser.setPasswordCheck(password);
|
||||
registerUser.setCode(code);
|
||||
registerUser.setInviteId(batchAddUser.getInviteUserCode());
|
||||
registerUser.setSystemOp(true);
|
||||
caiLoginManager.register(registerUser);
|
||||
User user = userService.getByUsername(phone);
|
||||
userService.update(Wrappers.lambdaUpdate(User.class).eq(User::getId,user.getId())
|
||||
.set(User::getBirthday, LocalDate.now().plusYears(-18))
|
||||
.set(User::getAge, 18)
|
||||
.set(User::getGender, GenderEnum.WOMEN.getCode())
|
||||
.set(User::getCityId, "140882")
|
||||
.set(User::getCity, "河津"));
|
||||
anchorService.joinAnchor(user.getId(),true);
|
||||
runResults.add(new RunResult(phone,password));
|
||||
}
|
||||
this.update(Wrappers.lambdaUpdate(BatchAddUser.class).eq(BatchAddUser::getId,id)
|
||||
.set(BatchAddUser::getRunStatus, 3)
|
||||
.set(BatchAddUser::getRunResult, JSON.toJSONString(runResults))
|
||||
.set(BatchAddUser::getRunTime, LocalDateTime.now()));
|
||||
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class RunResult {
|
||||
private String phone;
|
||||
private String password;
|
||||
|
||||
public RunResult() {
|
||||
}
|
||||
|
||||
public RunResult(String phone, String password) {
|
||||
this.phone = phone;
|
||||
this.password = password;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user