diff --git a/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/RemoteSourceService.java b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/RemoteSourceService.java new file mode 100644 index 0000000..5ceee94 --- /dev/null +++ b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/RemoteSourceService.java @@ -0,0 +1,53 @@ +package com.bonus.system.api; + +import com.bonus.common.core.constant.SecurityConstants; +import com.bonus.common.core.constant.ServiceNameConstants; +import com.bonus.common.core.domain.R; +import com.bonus.system.api.domain.SysFileSource; +import com.bonus.system.api.domain.SysOperLog; +import com.bonus.system.api.factory.RemoteUserFallbackFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestHeader; + +import java.util.List; + +@FeignClient(contextId = "remoteSourceService", value = ServiceNameConstants.SYSTEM_SERVICE, fallbackFactory = RemoteUserFallbackFactory.class) +public interface RemoteSourceService { + + /** + * 保存资源信息 + * @param sysFileSource + * @param source + * @return + * @throws Exception + */ + @PostMapping("/fileSource/addFileSource") + public R addFileSource(@RequestBody SysFileSource sysFileSource, @RequestHeader(SecurityConstants.FROM_SOURCE) String source) throws Exception; + + /** + * 保存资源信息 + * @param sysFileSource + * 优先按照id 去删除 + * 如果没有id 则 + * 按照资源id去删除 + * @param source + * @return + * @throws Exception + */ + @PostMapping("/fileSource/delSourceFile") + public R delSourceFile(@RequestBody SysFileSource sysFileSource, @RequestHeader(SecurityConstants.FROM_SOURCE) String source) throws Exception; + + + /** + * 查询文件资源信息 + * @param sourceId + * @param source + * @return + * @throws Exception + */ + @PostMapping("/fileSource/getSourceFileList") + public R> getSourceFileList(@RequestBody String sourceId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source) throws Exception; + +} diff --git a/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysFileSource.java b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysFileSource.java new file mode 100644 index 0000000..fb1f188 --- /dev/null +++ b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysFileSource.java @@ -0,0 +1,102 @@ +package com.bonus.system.api.domain; + +import com.bonus.common.core.web.domain.BaseEntity; + +import java.util.Date; + +public class SysFileSource extends BaseEntity{ + + private String fileName; + + private String fileSuffix; + + private String filePath; + + private int fileType; + + + private String sourceId; + + private String sourceType; + + private String createUser; + + private Long id; + + private String updateUser; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getFileName() { + return fileName; + } + + public void setFileName(String fileName) { + this.fileName = fileName; + } + + public String getFileSuffix() { + return fileSuffix; + } + + public void setFileSuffix(String fileSuffix) { + this.fileSuffix = fileSuffix; + } + + public String getFilePath() { + return filePath; + } + + public void setFilePath(String filePath) { + this.filePath = filePath; + } + + public int getFileType() { + return fileType; + } + + public void setFileType(int fileType) { + this.fileType = fileType; + } + + public String getSourceId() { + return sourceId; + } + + public void setSourceId(String sourceId) { + this.sourceId = sourceId; + } + + public String getSourceType() { + return sourceType; + } + + public void setSourceType(String sourceType) { + this.sourceType = sourceType; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + + + public String getUpdateUser() { + return updateUser; + } + + public void setUpdateUser(String updateUser) { + this.updateUser = updateUser; + } +} diff --git a/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/factory/RemoteSourceFallbackFactory.java b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/factory/RemoteSourceFallbackFactory.java new file mode 100644 index 0000000..8b9244e --- /dev/null +++ b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/factory/RemoteSourceFallbackFactory.java @@ -0,0 +1,47 @@ +package com.bonus.system.api.factory; + +import com.bonus.common.core.domain.R; +import com.bonus.system.api.RemoteLogService; +import com.bonus.system.api.RemoteSourceService; +import com.bonus.system.api.RemoteUserService; +import com.bonus.system.api.domain.SysFileSource; +import com.bonus.system.api.domain.SysUser; +import com.bonus.system.api.model.LoginUser; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * 文件资源降级处理 + * + * @author bonus + */ +@Component +public class RemoteSourceFallbackFactory implements FallbackFactory { + private static final Logger log = LoggerFactory.getLogger(RemoteSourceFallbackFactory.class); + + + @Override + public RemoteSourceService create(Throwable throwable) { + log.error("日志服务调用失败:{}", throwable.getMessage()); + return new RemoteSourceService() { + @Override + public R addFileSource(SysFileSource sysFileSource, String source) throws Exception { + return R.fail("添加文件资源失败:" + throwable.getMessage()); + } + + @Override + public R delSourceFile(SysFileSource sysFileSource, String source) throws Exception { + return R.fail("删除文件资源失败:" + throwable.getMessage()); + } + + @Override + public R> getSourceFileList(String sourceId, String source) throws Exception { + return R.fail("查询文件资源失败:" + throwable.getMessage()); + } + }; + } +} diff --git a/bonus-api/bonus-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/bonus-api/bonus-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 83df20b..ac97f94 100644 --- a/bonus-api/bonus-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/bonus-api/bonus-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,3 +1,4 @@ com.bonus.system.api.factory.RemoteUserFallbackFactory com.bonus.system.api.factory.RemoteLogFallbackFactory com.bonus.system.api.factory.RemoteFileFallbackFactory +com.bonus.system.api.factory.RemoteSourceFallbackFactory diff --git a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/ServiceNameConstants.java b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/ServiceNameConstants.java index b126e5e..3430c7d 100644 --- a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/ServiceNameConstants.java +++ b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/ServiceNameConstants.java @@ -21,4 +21,5 @@ public class ServiceNameConstants * 文件服务的serviceid */ public static final String FILE_SERVICE = "bonus-file"; + } diff --git a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/IdCardUtil.java b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/IdCardUtil.java new file mode 100644 index 0000000..fb3ca26 --- /dev/null +++ b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/IdCardUtil.java @@ -0,0 +1,52 @@ +package com.bonus.common.core.utils; + +import java.util.regex.Pattern; + +/** + * 身份证工具类 + */ +public class IdCardUtil { + + + public static String getGenderByIdCard(String idCard) { + if (idCard == null || (idCard.length() != 18 && idCard.length() != 15)) { + throw new IllegalArgumentException("身份证号码长度不正确"); + } + char sexFlag = idCard.charAt(idCard.length() - 2); // 性别标志位 + return (sexFlag % 2 == 0) ? "0" : "1"; + } + public static boolean isValidChineseID(String id) { + if (id == null || (id.length() != 18)) { + return false; + } + + char[] idArray = id.toCharArray(); + int[] weight = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2}; + char[] checkCode = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'}; + int sum = 0; + + for (int i = 0; i < idArray.length - 1; i++) { + int num = Integer.parseInt(String.valueOf(idArray[i])); + if (num < 0 || num > 9) { + return false; + } + sum += num * weight[i]; + } + + sum = sum % 11; + char lastChar = idArray[17]; + return lastChar == checkCode[sum]; + } + + private static final Pattern CHINA_MOBILE_PATTERN = + Pattern.compile("^1[3-9]\\d{9}$"); + + /** + * 验证手机号码是否有效。 + * @param number 要验证的手机号码 + * @return 如果手机号码有效,则返回true;否则返回false。 + */ + public static boolean isValidChinaMobileNumber(String number) { + return CHINA_MOBILE_PATTERN.matcher(number).matches(); + } +} diff --git a/bonus-common/bonus-common-entity/src/main/java/com/bonus/app/entity/LsUserEntity.java b/bonus-common/bonus-common-entity/src/main/java/com/bonus/app/entity/LsUserEntity.java new file mode 100644 index 0000000..6f541f6 --- /dev/null +++ b/bonus-common/bonus-common-entity/src/main/java/com/bonus/app/entity/LsUserEntity.java @@ -0,0 +1,42 @@ +package com.bonus.app.entity; + +import lombok.Data; + +/** + * 临时人员实体类 + */ +@Data +public class LsUserEntity { + + private String id; + /** + * 图片了些 + */ + private String imageType; + /** + * 身份证号码 + */ + private String idCard; + /** + * 用户民成功 + */ + private String userName; + /** + * 手机号 + */ + private String phone; + /** + * 文件id + */ + private String fileId; + + private String proId; + + private Long teamId; + + private String sex; + + + + +} diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/controller/SysFileSourceController.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/controller/SysFileSourceController.java new file mode 100644 index 0000000..46afbf2 --- /dev/null +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/controller/SysFileSourceController.java @@ -0,0 +1,53 @@ +package com.bonus.system.controller; + +import com.bonus.common.core.domain.R; +import com.bonus.common.core.utils.StringUtils; +import com.bonus.common.security.annotation.InnerAuth; +import com.bonus.system.api.domain.SysFileSource; +import com.bonus.system.api.domain.SysUser; +import com.bonus.system.api.model.LoginUser; +import com.bonus.system.service.SysFileSourceService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Set; + +@RestController +@RequestMapping("/fileSource") +public class SysFileSourceController { + + + @Autowired + private SysFileSourceService service; + /** + * 新增资源i想你洗 + */ + @InnerAuth + @PostMapping("/addFileSource") + public R addFileSource(@RequestBody SysFileSource fileSource) { + return service.addFileSource(fileSource); + } + /** + * 删除资源信息 + */ + @InnerAuth + @PostMapping("/delSourceFile") + public R delSourceFile(@RequestBody SysFileSource fileSource) { + return service.delSourceFile(fileSource); + } + + + + /** + * 获取当前用户信息 + */ + @InnerAuth + @PostMapping("/getSourceFileList") + public R> getSourceFileList(@RequestBody String sourceId) { + return service.getSourceFileList(sourceId); + } + + + +} diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/mapper/SysFileSourceMapper.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/mapper/SysFileSourceMapper.java new file mode 100644 index 0000000..6a26815 --- /dev/null +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/mapper/SysFileSourceMapper.java @@ -0,0 +1,38 @@ +package com.bonus.system.mapper; + +import com.bonus.system.api.domain.SysFileSource; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface SysFileSourceMapper { + /** + * 文件资源存储 + * @param fileSource + * @return + */ + int addFileSource(SysFileSource fileSource); + + /** + * 依据id + * 删除 + * @param fileSource + * @return + */ + int delSourceFileById(SysFileSource fileSource); + /** + * 依据 资源id + * 删除 + * @param fileSource + * @return + */ + int delSourceFileBySourceId(SysFileSource fileSource); + + /** + * 依据资源拆线呢数据 + * @param sourceId + * @return + */ + List getSourceFileList(String sourceId); +} diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/SysFileSourceService.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/SysFileSourceService.java new file mode 100644 index 0000000..7eea774 --- /dev/null +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/SysFileSourceService.java @@ -0,0 +1,24 @@ +package com.bonus.system.service; + +import com.bonus.common.core.domain.R; +import com.bonus.system.api.domain.SysFileSource; + +import java.util.List; + +public interface SysFileSourceService { + R addFileSource(SysFileSource fileSource); + + /** + * 删除资源数据 + * @param fileSource + * @return + */ + R delSourceFile(SysFileSource fileSource); + + /** + * 查询资源文件 + * @param sourceId + * @return + */ + R> getSourceFileList(String sourceId); +} diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysFileSourceServiceImpl.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysFileSourceServiceImpl.java new file mode 100644 index 0000000..ea0d2f3 --- /dev/null +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysFileSourceServiceImpl.java @@ -0,0 +1,79 @@ +package com.bonus.system.service.impl; + +import com.bonus.common.core.domain.R; +import com.bonus.common.core.utils.StringUtils; +import com.bonus.system.api.domain.SysFileSource; +import com.bonus.system.mapper.SysFileSourceMapper; +import com.bonus.system.service.SysFileSourceService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ObjectUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 文件资源存储 + * @author 黑子 + */ +@Slf4j +@Service +public class SysFileSourceServiceImpl implements SysFileSourceService { + + + @Autowired + private SysFileSourceMapper mapper; + /** + * + * @param fileSource + * @return + */ + @Override + public R addFileSource(SysFileSource fileSource) { + try{ + if(StringUtils.isEmpty(fileSource.getFilePath())){ + System.err.println("文件id为空"); + return R.fail(false); + } + int num=mapper.addFileSource(fileSource); + if (num>0){ + return R.ok(true); + } + return R.fail(false); + }catch (Exception e){ + log.error(e.toString(),e); + } + return R.fail(false); + } + + /** + * + * @param fileSource + * @return + */ + @Override + public R delSourceFile(SysFileSource fileSource) { + try{ + int num=0; + if(ObjectUtils.isEmpty(fileSource.getId()) && fileSource.getId()!=0L){ + num= mapper.delSourceFileById(fileSource); + }else if(StringUtils.isNotEmpty(fileSource.getSourceId())){ + num= mapper.delSourceFileBySourceId(fileSource); + } + if (num>0){ + return R.ok(true); + } + return R.fail(false); + }catch (Exception e){ + log.error(e.toString(),e); + } + + return R.fail(false); + } + + @Override + public R> getSourceFileList(String sourceId) { + List list=mapper.getSourceFileList(sourceId); + return R.ok(list); + } +} diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/system/SysFileSourceMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/system/SysFileSourceMapper.xml new file mode 100644 index 0000000..278daa2 --- /dev/null +++ b/bonus-modules/bonus-system/src/main/resources/mapper/system/SysFileSourceMapper.xml @@ -0,0 +1,37 @@ + + + + + + + INSERT INTO sys_file_source( + file_name, file_suffix, file_path, + file_type, source_id, source_type, + create_time,create_user,update_time, + update_user, del_flag + ) VALUE( + #{fileName},#{fileSuffix},#{filePath}, + #{fileType},#{sourceId},#{sourceType}, + now(),#{createUser},now(), + #{updateUser},0 + ) + + + update sys_file_source set del_flag=1 WHERE id=#{id} + + + update sys_file_source set del_flag=1 WHERE source_id=#{sourceId} + + + + \ No newline at end of file