package com.ruoyi.admin.service.impl;
import cn.hutool.core.util.RandomUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.admin.entity.MasterWorker;
import com.ruoyi.admin.entity.WorkerProcess;
import com.ruoyi.admin.mapper.WorkerProcessMapper;
import com.ruoyi.admin.service.MasterWorkerService;
import com.ruoyi.admin.service.WorkerProcessService;
import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.domain.R;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
/**
*
* 师傅入驻审核表 服务实现类
*
*
* @author hjl
* @since 2024-05-29
*/
@Service
public class WorkerProcessServiceImpl extends ServiceImpl implements WorkerProcessService {
@Resource
private MasterWorkerService masterWorkerService;
@Override
@Transactional(rollbackFor = Exception.class)
public R examine(Integer id, Integer state, String opinion) {
WorkerProcess workerProcess = lambdaQuery().eq(WorkerProcess::getState, 0).eq(WorkerProcess::getIsDelete, 0)
.eq(WorkerProcess::getId, id).one();
if (null == workerProcess) {
return R.fail("当前入驻申请已被审核!");
}
workerProcess.setState(state);
workerProcess.setOpinion(opinion);
if (Constants.PASS_THROUGH_NUMBER.equals(state)) {
// 审核状态为 1 已通过时,生成登录账号
MasterWorker masterWorker = new MasterWorker();
masterWorker.setCity(workerProcess.getCity());
masterWorker.setRealName(workerProcess.getRealName());
masterWorker.setIdNumber(workerProcess.getIdNumber());
masterWorker.setVehicleType(workerProcess.getVehicleType());
masterWorker.setVehicleNumber(workerProcess.getVehicleNumber());
masterWorker.setPhone(workerProcess.getPhone());
masterWorker.setIdentityPhoto(workerProcess.getIdentityPhoto());
masterWorker.setDrivingLicense(workerProcess.getDrivingLicense());
masterWorker.setIsEnable(1);
// MD5加密登录密码(新)
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
String encodePassword = passwordEncoder.encode(Constants.DEFAULT_PASSWORD);
masterWorker.setPassword(encodePassword);
masterWorker.setUserNumber(Constants.DEFAULT_USER_NUMBER_PRE + RandomUtil.randomNumbers(10));
masterWorker.setCityStr(workerProcess.getCityStr());
masterWorker.setCityCode(workerProcess.getCityCode());
masterWorker.setProfilePicture(workerProcess.getProfilePicture());
masterWorkerService.save(masterWorker);
}
return updateById(workerProcess) ? R.ok() : R.fail("当前入驻申请审核失败!");
}
}