This commit is contained in:
777
2025-06-30 11:52:47 +08:00
parent 9ece5093d7
commit 64518bf580
10 changed files with 139 additions and 5 deletions

View File

@@ -1,9 +1,12 @@
package com.ruoyi.web.controller.cai.admin; package com.ruoyi.web.controller.cai.admin;
import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.AccountBlack; import com.ruoyi.cai.domain.AccountBlack;
import com.ruoyi.cai.dto.admin.export.AccountBlackExportVo;
import com.ruoyi.cai.dto.admin.vo.UserAdminVo; import com.ruoyi.cai.dto.admin.vo.UserAdminVo;
import com.ruoyi.cai.mapper.AccountBlackMapper; import com.ruoyi.cai.mapper.AccountBlackMapper;
import com.ruoyi.cai.mapper.AccountMapper; import com.ruoyi.cai.mapper.AccountMapper;
@@ -13,18 +16,29 @@ import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.excel.ExcelResult;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.domain.vo.SysUserExportVo;
import com.ruoyi.system.domain.vo.SysUserImportVo;
import com.ruoyi.system.listener.SysUserImportListener;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.Arrays; import java.util.*;
/** /**
* 账户黑名单 * 账户黑名单
@@ -104,4 +118,58 @@ public class AccountBlackController extends BaseController {
@PathVariable String[] ids) { @PathVariable String[] ids) {
return toAjax(accountBlackService.removeBatchByIds(Arrays.asList(ids))); return toAjax(accountBlackService.removeBatchByIds(Arrays.asList(ids)));
} }
/**
* 获取导入模板
*/
@PostMapping("/importTemplate")
public void importTemplate(HttpServletResponse response) {
ExcelUtil.exportExcel(new ArrayList<>(), "用户黑名单", AccountBlackExportVo.class, response);
}
@Log(title = "账户黑名单", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(AccountBlack user, HttpServletResponse response) {
List<AccountBlack> list = accountBlackService.list(Wrappers.lambdaQuery(user));
List<AccountBlackExportVo> listVo = BeanUtil.copyToList(list, AccountBlackExportVo.class);
ExcelUtil.exportExcel(listVo, "用户黑名单", AccountBlackExportVo.class, response);
}
/**
* 导入数据
*
* @param file 导入文件
*/
@Log(title = "账户黑名单", businessType = BusinessType.IMPORT)
@PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public R<Void> importData(@RequestPart("file") MultipartFile file) throws Exception {
List<AccountBlackExportVo> listVo = ExcelUtil.importExcel(file.getInputStream(), AccountBlackExportVo.class);
List<AccountBlack> save = new ArrayList<>();
List<AccountBlack> edit = new ArrayList<>();
Set<String> hashSet = new HashSet<>();
for (AccountBlackExportVo list : listVo) {
if(StringUtils.isBlank(list.getCardAccount()) || StringUtils.isBlank(list.getCardName())){
continue;
}
boolean addBoolean = hashSet.add(list.getCardAccount() + list.getCardName());
if(!addBoolean){
continue;
}
int excelEnableStatus = (list.getEnableStatus()!= null && list.getEnableStatus() == 1)?1:0;
AccountBlack accountBlack = accountBlackService.selectByCardAccount(list.getCardName(), list.getCardAccount());
if(accountBlack == null){
accountBlack = new AccountBlack();
accountBlack.setCardAccount(list.getCardAccount());
accountBlack.setCardName(list.getCardName());
accountBlack.setEnableStatus(excelEnableStatus);
save.add(accountBlack);
}else{
accountBlack.setEnableStatus(excelEnableStatus);
edit.add(accountBlack);
}
}
accountBlackService.saveBatch(save);
return R.ok("操作成功!导入"+save.size()+"条数据");
}
} }

View File

@@ -26,6 +26,7 @@ import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@@ -109,6 +110,26 @@ public class DynamicController extends BaseController {
return R.ok(success); return R.ok(success);
} }
@SaCheckPermission("cai:dynamic:edit")
@RepeatSubmit()
@PostMapping("/batch/fail")
@Log(title = "批量审核通过驳回", businessType = BusinessType.UPDATE)
public R<Boolean> batchAuditFail(@RequestBody BatchAuditReq bo) {
List<Long> ids = bo.getIds();
Integer fail = 0;
for (Long id : ids) {
boolean b = dynamicService.auditFail(id);
if(!b){
fail++;
}
}
String message = "操作成功!";
if(fail > 0){
message = String.format("%s, 驳回失败条数有:%s条", message,fail);
}
return R.ok(message,true);
}
@SaCheckPermission("cai:dynamic:edit") @SaCheckPermission("cai:dynamic:edit")
@RepeatSubmit() @RepeatSubmit()
@PostMapping("/top") @PostMapping("/top")

View File

@@ -87,6 +87,15 @@ public class UserCameraAuditController extends BaseController {
return R.ok(); return R.ok();
} }
@SaCheckPermission("cai:userCameraAudit:edit")
@RepeatSubmit()
@PostMapping("/batch/fail")
@Log(title = "批量审核不通过自拍认证", businessType = BusinessType.UPDATE)
public R<Void> editFail(@RequestBody BatchAuditReq bo) {
userCameraAuditService.auditBatchFail(bo.getIds());
return R.ok();
}
/** /**
* 删除自拍认证 * 删除自拍认证
* *

View File

@@ -100,7 +100,7 @@ agora:
secret: df67ecc59f8645b890e2448377e4d1ba secret: df67ecc59f8645b890e2448377e4d1ba
yunxin: yunxin:
app-key: 629390c317fb293f1bb87834411e0136 app-key: 629390c317fb293f1bb87834411e0136
app-secret: e54d5a8fd162 app-secret: dsadasdaskkql
knife4j: knife4j:
enable: false enable: false
insight: insight:

View File

@@ -0,0 +1,20 @@
package com.ruoyi.cai.dto.admin.export;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
@Data
public class AccountBlackExportVo {
@ExcelProperty(value = "账户号")
private String cardAccount;
/**
* 账户名称
*/
@ExcelProperty(value = "账户名称")
private String cardName;
/**
* 是否开启
*/
@ExcelProperty(value = "是否启用1-启用0-不启用)")
private Integer enableStatus;
}

View File

@@ -12,4 +12,6 @@ import com.ruoyi.cai.domain.AccountBlack;
public interface AccountBlackService extends IService<AccountBlack> { public interface AccountBlackService extends IService<AccountBlack> {
boolean existsByNameAndAccount(String cardName, String cardAccount); boolean existsByNameAndAccount(String cardName, String cardAccount);
AccountBlack selectByCardAccount(String cardName, String cardAccount);
} }

View File

@@ -45,5 +45,4 @@ public interface DynamicService extends IService<Dynamic> {
boolean auditFail(Long id); boolean auditFail(Long id);
} }

View File

@@ -29,6 +29,8 @@ public interface UserCameraAuditService extends IService<UserCameraAudit> {
void auditFail(Long id); void auditFail(Long id);
void auditBatchFail(List<Long> ids);
void auditBatchSuccess(List<Long> ids); void auditBatchSuccess(List<Long> ids);
void deleteBatch(List<Long> ids); void deleteBatch(List<Long> ids);

View File

@@ -21,4 +21,11 @@ public class AccountBlackServiceImpl extends ServiceImpl<AccountBlackMapper,Acco
.eq(AccountBlack::getCardAccount, cardAccount) .eq(AccountBlack::getCardAccount, cardAccount)
.eq(AccountBlack::getEnableStatus, 1)); .eq(AccountBlack::getEnableStatus, 1));
} }
@Override
public AccountBlack selectByCardAccount(String cardName, String cardAccount) {
return this.getOne(Wrappers.lambdaQuery(AccountBlack.class).eq(AccountBlack::getCardName, cardName)
.eq(AccountBlack::getCardAccount, cardAccount)
.eq(AccountBlack::getEnableStatus, 1));
}
} }

View File

@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.User; import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.domain.UserCameraAudit; import com.ruoyi.cai.domain.UserCameraAudit;
import com.ruoyi.cai.domain.UserPictureAudit;
import com.ruoyi.cai.dto.admin.vo.UserCameraAuditAdminVo; import com.ruoyi.cai.dto.admin.vo.UserCameraAuditAdminVo;
import com.ruoyi.cai.dto.app.vo.CameraAuditVo; import com.ruoyi.cai.dto.app.vo.CameraAuditVo;
import com.ruoyi.cai.enums.AuditStatusEnum; import com.ruoyi.cai.enums.AuditStatusEnum;
@@ -20,7 +19,6 @@ import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.BeanConvertUtil; import com.ruoyi.common.utils.BeanConvertUtil;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.security.SecurityProperties;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@@ -144,6 +142,14 @@ public class UserCameraAuditServiceImpl extends ServiceImpl<UserCameraAuditMappe
.set(UserCameraAudit::getAuditStatus, AuditStatusEnum.FAIL.getCode())); .set(UserCameraAudit::getAuditStatus, AuditStatusEnum.FAIL.getCode()));
} }
@Override
public void auditBatchFail(List<Long> ids) {
boolean update = this.update(Wrappers.lambdaUpdate(UserCameraAudit.class)
.in(UserCameraAudit::getId, ids)
.eq(UserCameraAudit::getAuditStatus, AuditStatusEnum.AUDITING.getCode())
.set(UserCameraAudit::getAuditStatus, AuditStatusEnum.FAIL.getCode()));
}
@Override @Override
public void auditBatchSuccess(List<Long> ids) { public void auditBatchSuccess(List<Long> ids) {
for (Long id : ids) { for (Long id : ids) {