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);
|
}
|
}
|