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 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 * @param clientUUID 客户uuid */ public void sync(DataTableEntity sourceUserDte, Map 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 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); } }