AuditController.java 16.9 KB
Newer Older
liqin's avatar
liqin committed
1
package cn.chnmuseum.party.web.controller;
wzp's avatar
wzp committed
2

liqin's avatar
liqin committed
3 4 5 6 7 8 9 10 11 12 13 14 15
import cn.chnmuseum.party.common.enums.AuditOperationEnum;
import cn.chnmuseum.party.common.enums.AuditStatusEnum;
import cn.chnmuseum.party.common.enums.AuditTypeEnum;
import cn.chnmuseum.party.common.log.MethodLog;
import cn.chnmuseum.party.common.log.OperModule;
import cn.chnmuseum.party.common.log.OperType;
import cn.chnmuseum.party.common.validator.groups.Update;
import cn.chnmuseum.party.common.vo.AuditStatusParam;
import cn.chnmuseum.party.model.Audit;
import cn.chnmuseum.party.model.TUser;
import cn.chnmuseum.party.service.AuditService;
import cn.chnmuseum.party.service.TUserService;
import cn.chnmuseum.party.web.controller.base.BaseController;
liqin's avatar
liqin committed
16
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
wzp's avatar
wzp committed
17 18 19 20 21 22
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
wzp's avatar
wzp committed
23
import org.apache.shiro.authz.annotation.RequiresAuthentication;
wzp's avatar
wzp committed
24 25 26 27
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
28
import javax.validation.constraints.NotBlank;
wzp's avatar
wzp committed
29
import java.time.LocalDateTime;
wzp's avatar
wzp committed
30
import java.util.HashMap;
wzp's avatar
wzp committed
31 32 33 34 35 36 37 38 39 40 41 42 43 44
import java.util.Map;

/**
 * <pre>
 * 禁用审核 前端控制器
 * </pre>
 *
 * @author Danny Lee
 * @since 2021-03-26
 */
@Slf4j
@RestController
@RequestMapping("/audit")
@Api(tags = {"审核管理操作接口"})
45
@Validated
wzp's avatar
wzp committed
46 47 48
public class AuditController extends BaseController {

    @Resource
liqin's avatar
liqin committed
49
    private AuditService auditService;
wzp's avatar
wzp committed
50

51 52
    private final static int REMARK_LEN = 64;

wzp's avatar
wzp committed
53
    @Resource
liqin's avatar
liqin committed
54
    private TUserService userService;
wzp's avatar
wzp committed
55 56

    @GetMapping("/getUserList")
wzp's avatar
wzp committed
57
    @RequiresAuthentication  //@RequiresPermissions("/audit/getUserList")
wzp's avatar
wzp committed
58 59
    @ApiOperation(value = "获取用户禁用审核列表", notes = "获取用户禁用审核列表")
    @ApiImplicitParams(value = {
wzp's avatar
wzp committed
60 61
            @ApiImplicitParam(name = "_index", value = "分页起始偏移量", paramType = "query", dataType = "Integer"),
            @ApiImplicitParam(name = "_size", value = "返回条数", paramType = "query", dataType = "Integer"),
wzp's avatar
wzp committed
62
            @ApiImplicitParam(name = "name", value = "账号名称或提交人", paramType = "query", dataType = "String"),
wzp's avatar
wzp committed
63
            @ApiImplicitParam(name = "name", value = "账号名称或提交人", paramType = "query", dataType = "String"),
wzp's avatar
wzp committed
64 65
            @ApiImplicitParam(name = "status", value = "TBC,REFUSED,TBCA,APPROVED_FINAL", paramType = "query", dataType = "String"),
            @ApiImplicitParam(name = "level", value = "TBC,TBCA", paramType = "query", dataType = "String")
wzp's avatar
wzp committed
66
    })
liqin's avatar
liqin committed
67
    @MethodLog(operModule = OperModule.RECHECK, operType = OperType.SELECT)
wzp's avatar
wzp committed
68
    public Map<String, Object> getUserList(String name, String status, String level) {
liqin's avatar
liqin committed
69
        Page<Audit> auditList;
wzp's avatar
wzp committed
70 71
        Boolean one = true;
        Boolean two = true;
wzp's avatar
wzp committed
72
        try {
wzp's avatar
wzp committed
73
            TUser user1 = getcurUser();
wzp's avatar
wzp committed
74 75 76 77 78 79 80 81 82 83
            TUser user = new TUser();
            if (StringUtils.isNotBlank(name)) {
                user.setUserName(name);
            }
            if (StringUtils.isNotBlank(status)) {
                user.setStatus(status);
            }
            if (StringUtils.isNotBlank(level)) {
                user.setAuditStatus(level);
            }
wzp's avatar
wzp committed
84
            //如果是账号禁用初审员,设置层级为初审
wzp's avatar
wzp committed
85 86 87
            if (!user1.getRoleList().contains("1")) {
                if (user1.getRoleList().contains("15")) {
                    user.setAuditStatus(AuditStatusEnum.TBC.name());
wzp's avatar
wzp committed
88 89 90 91
                    one = true;
                    if (user.getRoleList().contains("16")) {
                        two = true;
                    }
wzp's avatar
wzp committed
92 93
                } else if (user1.getRoleList().contains("16")) {
                    user.setAuditStatus(AuditStatusEnum.TBCA.name());
wzp's avatar
wzp committed
94 95 96 97
                    two = true;
                    if (user.getRoleList().contains("15")) {
                        one = true;
                    }
wzp's avatar
wzp committed
98 99 100 101
                } else {
                    //不存在的层级
                    user.setAuditStatus("1");
                }
wzp's avatar
wzp committed
102
            }
wzp's avatar
wzp committed
103
            user.setId(user1.getId());
wzp's avatar
wzp committed
104
            auditList = auditService.getUserList(getPage(), user);
wzp's avatar
wzp committed
105 106 107 108
            for (Audit record : auditList.getRecords()) {
                record.setOne(one);
                record.setTwo(two);
            }
wzp's avatar
wzp committed
109 110 111 112 113 114 115 116
            return getResult(auditList);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return getFailResult();
    }

    @PutMapping("/update")
wzp's avatar
wzp committed
117
    @RequiresAuthentication  //@RequiresPermissions("/audit/update")
wzp's avatar
wzp committed
118
    @ApiOperation(value = "修改禁用审核信息", notes = "修改禁用审核信息")
liqin's avatar
liqin committed
119
    @MethodLog(operModule = OperModule.RECHECK, operType = OperType.AUDIT)
120
    public Map<String, Object> updateAudit(@RequestBody @Validated(value = {Update.class}) Audit audit) {
wzp's avatar
wzp committed
121
        TUser tUser = getcurUser();
liqin's avatar
liqin committed
122
        boolean flag;
wzp's avatar
wzp committed
123
        //如果层级是初审,设置初审时间
wzp's avatar
wzp committed
124 125
        if (AuditStatusEnum.TBC.name().equals(audit.getLevel())) {
            audit.setFirstTime(LocalDateTime.now());
wzp's avatar
wzp committed
126
            //如果审核状态不是驳回,清空驳回原因
wzp's avatar
wzp committed
127 128 129
            if (!AuditStatusEnum.REFUSED.name().equals(audit.getStatus())) {
                audit.setFirstRemarks("");
            }
wzp's avatar
wzp committed
130
            audit.setAuditId(tUser.getId());
131
        } else {
wzp's avatar
wzp committed
132
            //如果层级是复审,设置复审时间
wzp's avatar
wzp committed
133
            audit.setSecondTime(LocalDateTime.now());
wzp's avatar
wzp committed
134
            //如果审核状态不是驳回,清空驳回原因
wzp's avatar
wzp committed
135
            if (!AuditStatusEnum.REFUSED.name().equals(audit.getStatus())) {
wzp's avatar
wzp committed
136
                audit.setSecondRemarks("");
wzp's avatar
wzp committed
137
            }
wzp's avatar
wzp committed
138
        }
wzp's avatar
wzp committed
139 140 141 142 143 144
        //如果当前审核状态为通过,并且审核层级为初审
        if (AuditStatusEnum.APPROVED_FINAL.name().equals(audit.getStatus()) && AuditStatusEnum.TBC.name().equals(audit.getLevel())) {
            //初审通过,提交复审,设置层级为复审
            audit.setLevel(AuditStatusEnum.TBCA.name());
            audit.setStatus(AuditStatusEnum.TBCA.name());
        }
wzp's avatar
wzp committed
145
        try {
wzp's avatar
wzp committed
146
            //如果类型是用户禁用审核
wzp's avatar
wzp committed
147
            if (AuditTypeEnum.ACCOUNT.name().equals(audit.getType())) {
wzp's avatar
wzp committed
148
                //设置用户原始数据状态
wzp's avatar
wzp committed
149
                TUser user = userService.getById(audit.getRefItemId());
wzp's avatar
wzp committed
150
                //无论初审复审,及时更新审核状态
wzp's avatar
wzp committed
151
                user.setAuditStatus(audit.getStatus());
wzp's avatar
wzp committed
152
                //如果复审通过,真正禁用用户
153
                if (AuditStatusEnum.APPROVED_FINAL.name().equals(audit.getStatus()) && AuditStatusEnum.TBCA.name().equals(audit.getLevel())) {
wzp's avatar
wzp committed
154 155 156 157
                    user.setStatus(AuditOperationEnum.DISABLE.name());
                }
                userService.updateById(user);
            }
wzp's avatar
wzp committed
158
            //更新审核数据
wzp's avatar
wzp committed
159 160 161 162 163 164 165 166
            flag = auditService.updateById(audit);
            if (!flag) {
                return getFailResult();
            }
            return getSuccessResult();
        } catch (Exception e) {
            e.printStackTrace();
        }
wzp's avatar
wzp committed
167 168 169
        return getFailResult();
    }

wzp's avatar
wzp committed
170
//    @GetMapping("/getList")
wzp's avatar
wzp committed
171
//    @RequiresAuthentication  //@RequiresPermissions("/audit/getList")
wzp's avatar
wzp committed
172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188
//    @ApiOperation(value = "获取禁用审核全部列表(无分页)", notes = "获取禁用审核全部列表(无分页)")
//    @ApiImplicitParams(value = {
//            @ApiImplicitParam(name = "auditStatus", value = "审核状态", paramType = "query", dataType = "String")
//    })
//    public Map<String, Object> getAuditList(@RequestParam(value = "auditStatus", defaultValue = "APPROVED_FINAL", required = false) AuditStatusEnum auditStatus) {
//        List<Audit> auditList = auditService.list();
//        return getResult(auditList);
//    }
//
//    @ApiImplicitParams(value = {
//            @ApiImplicitParam(name = "_index", value = "分页起始偏移量", paramType = "query", dataType = "Integer"),
//            @ApiImplicitParam(name = "_size", value = "返回条数", paramType = "query", dataType = "Integer"),
//            @ApiImplicitParam(name = "nameOrCode", value = "名称或编码", paramType = "query", dataType = "String"),
//            @ApiImplicitParam(name = "startDate", value = "创建时间-开始", paramType = "query", dataType = "String"),
//            @ApiImplicitParam(name = "endDate", value = "创建时间-结束", paramType = "query", dataType = "String")
//    })
//    @PostMapping("/getPageList")
wzp's avatar
wzp committed
189
//    @RequiresAuthentication  //@RequiresPermissions("/audit/getPageList")
wzp's avatar
wzp committed
190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211
//    @ApiOperation(value = "获取禁用审核分页列表", notes = "获取禁用审核分页列表")
//    public Map<String, Object> getAuditPageList(GenericPageParam genericPageParam) {
//        LambdaQueryWrapper<Audit> queryWrapper = new LambdaQueryWrapper<>();
//        // 对名称或编码模糊查询
//        if (StringUtils.isNotBlank(genericPageParam.getNameOrCode())) {
//            queryWrapper.like(Audit::getContent, genericPageParam.getNameOrCode());
//        }
//        // 根据创建时间区间检索
//        if (genericPageParam.getStartDate() != null && genericPageParam.getEndDate() != null) {
//            queryWrapper.ge(Audit::getCreateTime, genericPageParam.getStartDate().atTime(0, 0, 0))
//                    .le(Audit::getCreateTime, genericPageParam.getEndDate().atTime(23, 59, 59));
//        }
//        // 设置排序规则
//        queryWrapper.orderByDesc(Audit::getCreateTime);
//        // 设置查询内容
//        queryWrapper.select(
//                Audit::getId,
//                Audit::getContent,
//                Audit::getCreateTime);
//        Page<Audit> page = this.auditService.page(getPage(), queryWrapper);
//        return getResult(page);
//    }
wzp's avatar
wzp committed
212 213 214

    @ApiOperation(value = "获取禁用审核详情", notes = "获取禁用审核详情")
    @GetMapping("/getById")
wzp's avatar
wzp committed
215
    @RequiresAuthentication  //@RequiresPermissions("/audit/getById")
wzp's avatar
wzp committed
216 217 218 219
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "id", value = "id", paramType = "query", dataType = "String"),
            @ApiImplicitParam(name = "type", value = "视频内容:VIDEO_CONTENT,展板内容:EXHIBITION_BOARD,学习内容:LEARNING_CONTENT", paramType = "query", dataType = "String", allowableValues = "VIDEO_CONTENT,EXHIBITION_BOARD,LEARNING_CONTENT,ACCOUNT", required = true)
    })
liqin's avatar
liqin committed
220
    @MethodLog(operModule = OperModule.CHECKVIDEO, operType = OperType.DETAILS)
wzp's avatar
wzp committed
221
    public Map<String, Object> getById(String id, String type) {
wzp's avatar
wzp committed
222 223
        HashMap<String, Object> resultMap = new HashMap<>();
        try {
liqin's avatar
liqin committed
224
            Audit audit = auditService.selectOne(id, type);
wzp's avatar
wzp committed
225 226
            resultMap.put("resultCode", "200");
            resultMap.put("message", "操作成功");
wzp's avatar
wzp committed
227 228 229 230 231 232
            resultMap.put("data", audit);
            return resultMap;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return getFailResult();
wzp's avatar
wzp committed
233 234
    }

235 236 237 238 239 240
    @GetMapping("/getPageAllList")
    @ApiOperation(value = "审核管理=========分页查询", notes = "审核管理=========分页查询")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "_index", value = "分页起始偏移量", paramType = "query", dataType = "Integer"),
            @ApiImplicitParam(name = "_size", value = "返回条数", paramType = "query", dataType = "Integer"),
            @ApiImplicitParam(name = "name", value = "账号名称或提交人", paramType = "query", dataType = "String"),
241
            @ApiImplicitParam(name = "status", value = "待初审:TBC, 驳回:REFUSED,待复审:TBCA, 通过:APPROVED_FINAL", paramType = "query", dataType = "String"),
liqin's avatar
liqin committed
242
            @ApiImplicitParam(name = "type", value = "视频内容:VIDEO_CONTENT,展板内容:EXHIBITION_BOARD,学习内容:LEARNING_CONTENT", paramType = "query", dataType = "String", allowableValues = "VIDEO_CONTENT,EXHIBITION_BOARD,LEARNING_CONTENT,ACCOUNT", required = true)
243
    })
liqin's avatar
liqin committed
244
    @MethodLog(operModule = OperModule.CHECKVIDEO, operType = OperType.SELECT)
liqin's avatar
liqin committed
245
    public Map<String, Object> getPageAllList(String name, String status, @NotBlank(message = "type参数不能为空") String type) {
246
        AuditStatusEnum auditStatus = null;
wzp's avatar
wzp committed
247
        AuditStatusEnum auditStatusLevel = null;
248
        AuditTypeEnum auditTypeEnum = AuditTypeEnum.valueOf(type);
wzp's avatar
wzp committed
249 250
        Boolean one = true;
        Boolean two = true;
wzp's avatar
wzp committed
251
//数据权限,暂时注释
wzp's avatar
wzp committed
252
        TUser user = getcurUser();
wzp's avatar
wzp committed
253
        if (!user.getRoleList().contains("1")) {
wzp's avatar
wzp committed
254 255
            one = false;
            two = false;
wzp's avatar
wzp committed
256 257 258 259
            switch (auditTypeEnum) {
                case VIDEO_CONTENT:
                    if (user.getRoleList().contains("9")) {
                        auditStatusLevel = AuditStatusEnum.TBC;
wzp's avatar
wzp committed
260 261 262 263
                        one = true;
                        if (user.getRoleList().contains("10")) {
                            two = true;
                        }
wzp's avatar
wzp committed
264 265
                    } else if (user.getRoleList().contains("10")) {
                        auditStatusLevel = AuditStatusEnum.TBCA;
wzp's avatar
wzp committed
266 267 268 269
                        two = true;
                        if (user.getRoleList().contains("9")) {
                            one = true;
                        }
wzp's avatar
wzp committed
270 271 272 273 274 275 276
                    } else {
                        auditStatusLevel = AuditStatusEnum.APPROVED_FINAL;
                    }
                    break;
                case EXHIBITION_BOARD:
                    if (user.getRoleList().contains("11")) {
                        auditStatusLevel = AuditStatusEnum.TBC;
wzp's avatar
wzp committed
277 278 279 280
                        one = true;
                        if (user.getRoleList().contains("12")) {
                            two = true;
                        }
wzp's avatar
wzp committed
281 282
                    } else if (user.getRoleList().contains("12")) {
                        auditStatusLevel = AuditStatusEnum.TBCA;
wzp's avatar
wzp committed
283 284 285 286
                        two = true;
                        if (user.getRoleList().contains("11")) {
                            one = true;
                        }
wzp's avatar
wzp committed
287 288 289 290 291 292 293
                    } else {
                        auditStatusLevel = AuditStatusEnum.APPROVED_FINAL;
                    }
                    break;
                case LEARNING_CONTENT:
                    if (user.getRoleList().contains("13")) {
                        auditStatusLevel = AuditStatusEnum.TBC;
wzp's avatar
wzp committed
294 295 296 297
                        one = true;
                        if (user.getRoleList().contains("14")) {
                            two = true;
                        }
wzp's avatar
wzp committed
298 299
                    } else if (user.getRoleList().contains("14")) {
                        auditStatusLevel = AuditStatusEnum.TBCA;
wzp's avatar
wzp committed
300 301 302 303
                        two = true;
                        if (user.getRoleList().contains("13")) {
                            one = true;
                        }
wzp's avatar
wzp committed
304 305 306 307 308
                    } else {
                        auditStatusLevel = AuditStatusEnum.APPROVED_FINAL;
                    }
                    break;
            }
wzp's avatar
wzp committed
309
        }
310
        if (StringUtils.isNotBlank(status)) {
311
            auditStatus = AuditStatusEnum.valueOf(status);
312 313
        }
        try {
wzp's avatar
wzp committed
314
            Page<Audit> auditList = auditService.pageList(name, auditStatus, auditStatusLevel, auditTypeEnum, getPage(), user.getId());
wzp's avatar
wzp committed
315 316 317 318
            for (Audit record : auditList.getRecords()) {
                record.setOne(one);
                record.setTwo(two);
            }
319
            return getResult(auditList);
liqin's avatar
liqin committed
320
        } catch (Exception e) {
321 322 323 324 325
            e.printStackTrace();
        }
        return getFailResult();
    }

326
    @PutMapping("/updateAuditAllById")
wzp's avatar
wzp committed
327
    @RequiresAuthentication  //@RequiresPermissions("/audit/update")
328
    @ApiOperation(value = "审核管理===根据id修改审核信息", notes = "审核管理===根据id修改审核信息")
liqin's avatar
liqin committed
329
    @MethodLog(operModule = OperModule.CHECKVIDEO, operType = OperType.AUDIT)
330
    public Map<String, Object> updateAuditAllById(@RequestBody @Validated AuditStatusParam auditStatusParam) {
331 332 333 334 335 336
        //校验备注过长报错问题
        if (auditStatusParam.getRemarks() != null) {
            if (auditStatusParam.getRemarks().length() > REMARK_LEN) {
                return getFailResult("备注消息过长");
            }
        }
337 338 339 340 341
        String id = auditStatusParam.getId();
        Audit audit = auditService.getById(id);
        if (audit == null) {
            return getFailResult("id参数有误");
        }
wzp's avatar
wzp committed
342
        TUser tUser = getcurUser();
wzp's avatar
wzp committed
343

344 345 346 347 348 349 350 351 352
        //设置修改的审核状态
        audit.setStatus(auditStatusParam.getStatus());
        //为啥数据库有null值
        if (StringUtils.isBlank(audit.getLevel())) {
            audit.setLevel(AuditStatusEnum.TBC.name());
        }
        //初审
        if (AuditStatusEnum.TBC.name().equals(audit.getLevel())) {
            audit.setFirstRemarks(auditStatusParam.getRemarks());
wzp's avatar
wzp committed
353
            audit.setAuditId(tUser.getId());
354 355 356 357 358
        }
        //复审
        if (AuditStatusEnum.TBCA.name().equals(audit.getLevel())) {
            audit.setSecondRemarks(auditStatusParam.getRemarks());
        }
liqin's avatar
liqin committed
359
        return auditService.updateAuditAllById(audit) ? getSuccessResult() : getFailResult();
360 361 362
    }


wzp's avatar
wzp committed
363 364
}