linzhijie
2021-03-11 93af1c6ffb9ae0e894689ad3a37b548e57d54cff
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package com.ots.project.monitor.job.task;
 
import com.ots.common.utils.bean.BeanUtils;
import com.ots.project.exam.domain.EntTestMember;
import com.ots.project.exam.domain.EntTestMemberBackstage;
import com.ots.project.exam.service.IEntTestMemberBackstageService;
import com.ots.project.exam.service.IEntTestMemberService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
 
import java.util.*;
 
/**
 * 系统自动删除12个月以上的测试人员名称、邮箱、所在企业名称
 * 每天执行一次
 */
@Component("deleteSensitiveInformationTesk")
@Slf4j
public class DeleteSensitiveInformationTesk {
    private final static String EMPTY_STR = "NA";
    @Autowired
    IEntTestMemberService entTestMemberService;
 
    @Autowired
    IEntTestMemberBackstageService entTestMemberBackstageService;
 
    public void deleteSensitiveInformationTesk() {
        //到期12个月清空ent_test_member,姓名,邮件,号码。
        Map map = testMemberParams();
        List<EntTestMember> entTestMembers = entTestMemberService.selectEntTestMemberList(map);
 
        entTestMembers.stream().forEach(p -> {
            Long memberId = p.getMemberId();
            try {
                EntTestMemberBackstage stage = new EntTestMemberBackstage();
                //更新数据前先把数据入库到备份表
                BeanUtils.copyBeanProp(stage, p);
                entTestMemberBackstageService.insertEntTestMemberBackstage(stage);
                p.setMemberName(EMPTY_STR);
                p.setMemberPhone(EMPTY_STR);
                p.setMemberEmail(EMPTY_STR);
                p.setMemberDept(EMPTY_STR);
                entTestMemberService.updateEntTestMember(p);
            } catch (Exception ex) {
                log.error("脱敏失败 memberId={} Backstage error:{}", memberId, ex.getMessage(), ex);
            }
        });
    }
 
    private Map testMemberParams() {
        Map paramMap = new HashMap();
        Calendar ca = Calendar.getInstance();//得到一个Calendar的实例
        ca.setTime(new Date()); //设置时间为当前时间
        ca.add(Calendar.YEAR, -1); //年份减1
        paramMap.put("deleteSensitiveTime", ca.getTime());
        paramMap.put("desensitization", "desensitization");
        return paramMap;
    }
 
    public static void main(String[] args) {
        DeleteSensitiveInformationTesk tesk = new DeleteSensitiveInformationTesk();
        Map map = tesk.testMemberParams();
        System.out.println(map);
    }
}