1821349743@qq.com
2023-02-20 a387ff8978bd0e738e83e0277cfa38d7c3ab3080
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
package com.product.data.sync.service;
 
import com.google.common.collect.Maps;
import com.product.common.lang.StringUtils;
import com.product.core.config.Global;
import com.product.core.dao.BaseDao;
import com.product.core.entity.DataTableEntity;
import com.product.core.entity.FieldSetEntity;
import com.product.core.entity.RequestParameterEntity;
import com.product.core.service.support.AbstractBaseService;
import com.product.file.service.FileManagerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.io.File;
import java.util.Map;
 
/**
 * Copyright © 6c
 *
 * @Date: 2022-04-06 10:55
 * @Author: 6c
 * @Description: 头像和签名
 */
@Service
public class AvatarAndSignatureService extends AbstractBaseService {
    @Autowired
    public BaseDao baseDao;
    @Autowired
    FileManagerService fileManagerService;
 
    public void test() {
        DataTableEntity sourceUserDte = new DataTableEntity();
        FieldSetEntity sourceUserFse = new FieldSetEntity();
        sourceUserFse.setTableName("tempTable");
        sourceUserFse.setValue("SU00", "66");
        sourceUserFse.setValue("SU28", "/servlet/ShowImageServlet?imagePath=D:/OA/FEGOV/Media/attachment/images/upload/users/test_avatar.png");
        sourceUserFse.setValue("SU23", "/servlet/ShowImageServlet?imagePath=D:/OA/FEGOV/Media/attachment/images/upload/users/test_signature.png");
        sourceUserDte.addFieldSetEntity(sourceUserFse);
 
        Map<String, String> userMap = Maps.newHashMap();
        userMap.put("66", "5849da43-ad80-44fc-b325-3a6a65ebe229");
 
        String clientUUID = "1a7eb366-cf57-4ab0-818e-d2a13abf971d";
 
        sync(sourceUserDte, userMap, clientUUID);
    }
 
    /**
     * 同步
     * @param sourceUserDte     数据源库的user表数据集合
     * @param userMap           人员映射,Map<FE_BASE5.SYS_USERS.SU00,product_sys_users.uuid>
     * @param clientUUID        客户uuid
     */
    public void sync(DataTableEntity sourceUserDte, Map<String, String> userMap, String clientUUID) {
        FieldSetEntity sourceUserFse;
        FieldSetEntity aimUserFse;
        String avatarFileName;
        String signatureFileName;
        FieldSetEntity tempFse;
        for (int i = 0;i < sourceUserDte.getRows();i++) {
            sourceUserFse = sourceUserDte.getFieldSetEntity(i);
 
            aimUserFse = new FieldSetEntity();
            aimUserFse.setTableName("product_sys_users");
            aimUserFse.setValue("uuid", userMap.get(sourceUserFse.getString("SU00")));
 
            avatarFileName = getFileName(sourceUserFse.getString("SU28"));
            tempFse = uploadFile(clientUUID, avatarFileName, "thumbnail_img");
            aimUserFse.setValue("thumbnail_img", tempFse.getString("thumbnail_img"));
 
            signatureFileName = getFileName(sourceUserFse.getString("SU23"));
            tempFse = uploadFile(clientUUID, signatureFileName, "user_signature");
            aimUserFse.setValue("user_signature", tempFse.getString("user_signature"));
 
            baseDao.saveFieldSetEntity(aimUserFse);
        }
 
 
    }
 
    /**
     * 通过路径获取文件名称
     * @param path
     * @return
     */
    public String getFileName(String path) {
        return StringUtils.isEmpty(path) ? "" : path.substring(path.lastIndexOf("/") + 1);
    }
 
    /**
     * 上传文件
     * @param clientUUID
     * @param fileName
     * @param aimFieldName
     * @return
     */
    public FieldSetEntity uploadFile(String clientUUID, String fileName, String aimFieldName) {
        String defaultDir = Global.getSystemConfig("avatar.signature.default.dir","");
        File file = new File(defaultDir + File.separator + fileName);
        FieldSetEntity aimUserFse;
        RequestParameterEntity rpe = new RequestParameterEntity();
        Map<String, File> fileMap;
        // 表单数据
        aimUserFse = new FieldSetEntity();
        aimUserFse.setTableName("product_sys_users");
        aimUserFse.setValue(aimFieldName, fileName);
        aimUserFse.setValue("~field_name~", aimFieldName);
        aimUserFse.setValue("client_uuid", clientUUID);
        rpe.setFormData(aimUserFse);
        // 文件
        fileMap = Maps.newHashMap();
        fileMap.put(fileName, file);
        rpe.setFiles(fileMap);
        // 上传
        return fileManagerService.uploadFile(rpe);
    }
}