From d6f570bb96c5af6e23d9746ddd8c3b630cefacd0 Mon Sep 17 00:00:00 2001 From: weiweiw <14335254+weiweiw22@user.noreply.gitee.com> Date: Fri, 14 Jun 2024 14:30:03 +0800 Subject: [PATCH] first commit to ai platform --- bonus-api/bonus-ai-api-system/pom.xml | 28 ++ bonus-api/bonus-ai-api-system/src/.DS_Store | Bin 0 -> 6148 bytes .../bonus-ai-api-system/src/main/.DS_Store | Bin 0 -> 6148 bytes .../src/main/java/.DS_Store | Bin 0 -> 6148 bytes .../src/main/java/com/.DS_Store | Bin 0 -> 6148 bytes .../src/main/java/com/bonus/.DS_Store | Bin 0 -> 6148 bytes .../src/main/java/com/bonus/system/.DS_Store | Bin 0 -> 6148 bytes .../bonus/system/api/RemoteFileService.java | 29 ++ .../bonus/system/api/RemoteLogService.java | 41 +++ .../bonus/system/api/RemoteUserService.java | 43 +++ .../com/bonus/system/api/domain/SysDept.java | 203 +++++++++++ .../bonus/system/api/domain/SysDictData.java | 176 ++++++++++ .../bonus/system/api/domain/SysDictType.java | 96 ++++++ .../com/bonus/system/api/domain/SysFile.java | 50 +++ .../system/api/domain/SysLogininfor.java | 102 ++++++ .../bonus/system/api/domain/SysOperLog.java | 255 ++++++++++++++ .../com/bonus/system/api/domain/SysRole.java | 241 +++++++++++++ .../com/bonus/system/api/domain/SysUser.java | 323 ++++++++++++++++++ .../factory/RemoteFileFallbackFactory.java | 35 ++ .../api/factory/RemoteLogFallbackFactory.java | 42 +++ .../factory/RemoteUserFallbackFactory.java | 41 +++ .../com/bonus/system/api/model/LoginUser.java | 150 ++++++++ ...ot.autoconfigure.AutoConfiguration.imports | 3 + .../bonus-large-model/pom.xml | 102 ++++++ .../src/main/java/com/bonus/.DS_Store | Bin 0 -> 6148 bytes .../com/bonus/llm/BonusLLMApplication.java | 31 ++ .../src/main/resources/banner.txt | 10 + .../src/main/resources/bootstrap.yml | 29 ++ .../src/main/resources/logback.xml | 74 ++++ .../bonus-ocr-recognition/pom.xml | 102 ++++++ .../bonus-ocr-recognition/src/.DS_Store | Bin 0 -> 6148 bytes .../bonus-ocr-recognition/src/main/.DS_Store | Bin 0 -> 6148 bytes .../src/main/java/.DS_Store | Bin 0 -> 6148 bytes .../src/main/java/com/.DS_Store | Bin 0 -> 6148 bytes .../src/main/java/com/bonus/.DS_Store | Bin 0 -> 6148 bytes .../src/main/java/com/bonus/ocr/.DS_Store | Bin 0 -> 6148 bytes .../com/bonus/ocr/BonusOcrApplication.java | 31 ++ .../src/main/resources/banner.txt | 10 + .../src/main/resources/bootstrap.yml | 29 ++ .../src/main/resources/logback.xml | 74 ++++ bonus-modules/bonus-large-model/pom.xml | 20 ++ .../com/bonus/llm/BonusFileApplication.java | 31 ++ .../src/main/resources/banner.txt | 10 + .../src/main/resources/bootstrap.yml | 29 ++ .../src/main/resources/logback.xml | 74 ++++ 45 files changed, 2514 insertions(+) create mode 100644 bonus-api/bonus-ai-api-system/pom.xml create mode 100644 bonus-api/bonus-ai-api-system/src/.DS_Store create mode 100644 bonus-api/bonus-ai-api-system/src/main/.DS_Store create mode 100644 bonus-api/bonus-ai-api-system/src/main/java/.DS_Store create mode 100644 bonus-api/bonus-ai-api-system/src/main/java/com/.DS_Store create mode 100644 bonus-api/bonus-ai-api-system/src/main/java/com/bonus/.DS_Store create mode 100644 bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/.DS_Store create mode 100644 bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/RemoteFileService.java create mode 100644 bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/RemoteLogService.java create mode 100644 bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/RemoteUserService.java create mode 100644 bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysDept.java create mode 100644 bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysDictData.java create mode 100644 bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysDictType.java create mode 100644 bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysFile.java create mode 100644 bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysLogininfor.java create mode 100644 bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysOperLog.java create mode 100644 bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysRole.java create mode 100644 bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysUser.java create mode 100644 bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/factory/RemoteFileFallbackFactory.java create mode 100644 bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/factory/RemoteLogFallbackFactory.java create mode 100644 bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/factory/RemoteUserFallbackFactory.java create mode 100644 bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/model/LoginUser.java create mode 100644 bonus-api/bonus-ai-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 bonus-modules/bonus-ai-modules/bonus-large-model/pom.xml create mode 100644 bonus-modules/bonus-ai-modules/bonus-large-model/src/main/java/com/bonus/.DS_Store create mode 100644 bonus-modules/bonus-ai-modules/bonus-large-model/src/main/java/com/bonus/llm/BonusLLMApplication.java create mode 100644 bonus-modules/bonus-ai-modules/bonus-large-model/src/main/resources/banner.txt create mode 100644 bonus-modules/bonus-ai-modules/bonus-large-model/src/main/resources/bootstrap.yml create mode 100644 bonus-modules/bonus-ai-modules/bonus-large-model/src/main/resources/logback.xml create mode 100644 bonus-modules/bonus-ai-modules/bonus-ocr-recognition/pom.xml create mode 100644 bonus-modules/bonus-ai-modules/bonus-ocr-recognition/src/.DS_Store create mode 100644 bonus-modules/bonus-ai-modules/bonus-ocr-recognition/src/main/.DS_Store create mode 100644 bonus-modules/bonus-ai-modules/bonus-ocr-recognition/src/main/java/.DS_Store create mode 100644 bonus-modules/bonus-ai-modules/bonus-ocr-recognition/src/main/java/com/.DS_Store create mode 100644 bonus-modules/bonus-ai-modules/bonus-ocr-recognition/src/main/java/com/bonus/.DS_Store create mode 100644 bonus-modules/bonus-ai-modules/bonus-ocr-recognition/src/main/java/com/bonus/ocr/.DS_Store create mode 100644 bonus-modules/bonus-ai-modules/bonus-ocr-recognition/src/main/java/com/bonus/ocr/BonusOcrApplication.java create mode 100644 bonus-modules/bonus-ai-modules/bonus-ocr-recognition/src/main/resources/banner.txt create mode 100644 bonus-modules/bonus-ai-modules/bonus-ocr-recognition/src/main/resources/bootstrap.yml create mode 100644 bonus-modules/bonus-ai-modules/bonus-ocr-recognition/src/main/resources/logback.xml create mode 100644 bonus-modules/bonus-large-model/pom.xml create mode 100644 bonus-modules/bonus-large-model/src/main/java/com/bonus/llm/BonusFileApplication.java create mode 100644 bonus-modules/bonus-large-model/src/main/resources/banner.txt create mode 100644 bonus-modules/bonus-large-model/src/main/resources/bootstrap.yml create mode 100644 bonus-modules/bonus-large-model/src/main/resources/logback.xml diff --git a/bonus-api/bonus-ai-api-system/pom.xml b/bonus-api/bonus-ai-api-system/pom.xml new file mode 100644 index 0000000..3c02b0a --- /dev/null +++ b/bonus-api/bonus-ai-api-system/pom.xml @@ -0,0 +1,28 @@ + + + + com.bonus + bonus-api + 3.6.4 + + 4.0.0 + + bonus-ai-api-system + + + bonus-ai-api-system系统接口模块 + + + + + + + com.bonus + bonus-common-core + + + + + \ No newline at end of file diff --git a/bonus-api/bonus-ai-api-system/src/.DS_Store b/bonus-api/bonus-ai-api-system/src/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..7b0d36729e2ee777a660f9e8c6709dd97bc2fb68 GIT binary patch literal 6148 zcmeH~F>V4u3`M`g7D#EfOgRk)$PGpaPQV2S&>%r5BKkQx-ySzvsH0W%E!l7ES!;KH zv9ktX>-*^w7y&HlPOLmk%$N_j;tOYdpMH*)!|itQBJHgMp3+B5_H$d10#ZNMM4T9irw zDe%t}uwk>?toc%Twm!X{*Y{cVb)%DUIm54?049DEf6&9YUwlE)m< zk%er^j=Knh3!DIf); zz>E~gV|@8Jqi52iNC7D@4+Z@DQ0UH@Y@PAxV2BZb99RzHI%Wy7c!8|R*2xOZa(b|A zwHQOZ9_?hw>uR!f_I6kfAC`AEpJHg%+hK(X&1yhF3P^#80*juHe*W+1ujcQ^n8@Auu4PPqH)~DC=`aY|^Zges(XZZ6Iz{HQ@6+Mjm#TR5vwoX=P`Vj~j6r{kv GD)0dNyb`AX literal 0 HcmV?d00001 diff --git a/bonus-api/bonus-ai-api-system/src/main/java/.DS_Store b/bonus-api/bonus-ai-api-system/src/main/java/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..35a54bf0595027f28217af82c3d32981e121b5e7 GIT binary patch literal 6148 zcmeH~Jr2S!425mVP>H1@V-^m;4I%_5-~tF3K^+i#j?VMXLSaS~dY0@jc51bKLsN^0 z?w;4J$RHv;+$b9h6I0}!Tx68{^>MkK$MI$*w?)zl@IfZ~xlK?3DnJFO02QDDGg2TA z@_sd=XX2w!0V*&L1?>A!;KrJ4LH~3h_y_tMAK>5S|49o|DnJGPOaWc) zkNX{7D$mxB*R%R5tF~@%&@V@L`w2i|NAVi&hW%m-uqIm&6&Qa6Tm}Xz@KXg|*oF~o literal 0 HcmV?d00001 diff --git a/bonus-api/bonus-ai-api-system/src/main/java/com/.DS_Store b/bonus-api/bonus-ai-api-system/src/main/java/com/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..8a20afe454f2aa343cb53edb363ac00073d24901 GIT binary patch literal 6148 zcmeH~J&pn~427SUS!pF2$}Q7y0B#T=H~|+xvy^D3K=e8KK09t0wniiLEIBWB;`#ZC z$rym`@0T600q{k4#ny+J8RJiknDC1`ZkOB7b)2TFr}2?{J)rX%kL$TC5djep0TB=Z z5m*p`IK+AWuNU-8dK3{5fn^Zz??a)x*3{NDJ{=sQ1)vU0hjAXg1hsgAT2otBW@wh( zgJr2j8{+vWrhZ?U|0Dgs{(n}Y zPy|Ha%?Q|VI34zUsXSYsUeELA%=*01sj;2I!%qMMKZ?KUVO%dhq1M#al^L3T1OkHw I5qK$qKL!yKpa1{> literal 0 HcmV?d00001 diff --git a/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/.DS_Store b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..c7f175f42326c4f01a07f5d1e40f837a2f64205f GIT binary patch literal 6148 zcmeHKISv9b4733uBpOP}e1RWC2wuPk5Jv~101CRTco$D&d=#LC4hqm%awc&+i894{ zEh0KSZzdum5gEV@w=YMzz)z2S+n`Ya zDnJFO02QDDA6Fnt>|prulX)N&paQ?HfPEhd+^{A#f&S^h;4J{Khp-#w-b(G z{r@wGD=I(*{z?Ju%@(sMo|Lt<^*F1w1-^t^&JAvcxl=HBIR<(;#=^?+*pni!*c|&c Vu?ciK;!X$hXTWr!QGstOa0e=g6|evR literal 0 HcmV?d00001 diff --git a/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/.DS_Store b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..f9538889e8f39881ab88794e1723a5de06f13390 GIT binary patch literal 6148 zcmeH~JqiLr422WdLa^D=avBfd4F=H@cme+!K~NC;Il3=DjjOdR@&d^>$!yr&SL|#= zMAy&rN~9N&8QdsK3jG6tE4fXQR)F_1*w1Z(3Qz$mKn17(6&R5M zd63WMBYGx23KgIN<50l94+US|ZT=s$Fr@-i;LjA$ z>1MZC upload(@RequestPart(value = "file") MultipartFile file); +} diff --git a/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/RemoteLogService.java b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/RemoteLogService.java new file mode 100644 index 0000000..682081e --- /dev/null +++ b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/RemoteLogService.java @@ -0,0 +1,41 @@ +package com.bonus.system.api; + +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 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.SysLogininfor; +import com.bonus.system.api.domain.SysOperLog; +import com.bonus.system.api.factory.RemoteLogFallbackFactory; + +/** + * 日志服务 + * + * @author bonus + */ +@FeignClient(contextId = "remoteLogService", value = ServiceNameConstants.SYSTEM_SERVICE, fallbackFactory = RemoteLogFallbackFactory.class) +public interface RemoteLogService +{ + /** + * 保存系统日志 + * + * @param sysOperLog 日志实体 + * @param source 请求来源 + * @return 结果 + */ + @PostMapping("/operlog") + public R saveLog(@RequestBody SysOperLog sysOperLog, @RequestHeader(SecurityConstants.FROM_SOURCE) String source) throws Exception; + + /** + * 保存访问记录 + * + * @param sysLogininfor 访问实体 + * @param source 请求来源 + * @return 结果 + */ + @PostMapping("/logininfor") + public R saveLogininfor(@RequestBody SysLogininfor sysLogininfor, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); +} diff --git a/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/RemoteUserService.java b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/RemoteUserService.java new file mode 100644 index 0000000..5c19cec --- /dev/null +++ b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/RemoteUserService.java @@ -0,0 +1,43 @@ +package com.bonus.system.api; + +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestHeader; +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.SysUser; +import com.bonus.system.api.factory.RemoteUserFallbackFactory; +import com.bonus.system.api.model.LoginUser; + +/** + * 用户服务 + * + * @author bonus + */ +@FeignClient(contextId = "remoteUserService", value = ServiceNameConstants.SYSTEM_SERVICE, fallbackFactory = RemoteUserFallbackFactory.class) +public interface RemoteUserService +{ + /** + * 通过用户名查询用户信息 + * + * @param username 用户名 + * @param source 请求来源 + * @return 结果 + */ + @GetMapping("/user/info/{username}") + public R getUserInfo(@PathVariable("username") String username, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + /** + * 注册用户信息 + * + * @param sysUser 用户信息 + * @param source 请求来源 + * @return 结果 + */ + @PostMapping("/user/register") + public R registerUserInfo(@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); +} diff --git a/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysDept.java b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysDept.java new file mode 100644 index 0000000..6c9f019 --- /dev/null +++ b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysDept.java @@ -0,0 +1,203 @@ +package com.bonus.system.api.domain; + +import java.util.ArrayList; +import java.util.List; +import javax.validation.constraints.Email; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.bonus.common.core.web.domain.BaseEntity; + +/** + * 部门表 sys_dept + * + * @author bonus + */ +public class SysDept extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 部门ID */ + private Long deptId; + + /** 父部门ID */ + private Long parentId; + + /** 祖级列表 */ + private String ancestors; + + /** 部门名称 */ + private String deptName; + + /** 显示顺序 */ + private Integer orderNum; + + /** 负责人 */ + private String leader; + + /** 联系电话 */ + private String phone; + + /** 邮箱 */ + private String email; + + /** 部门状态:0正常,1停用 */ + private String status; + + /** 删除标志(0代表存在 2代表删除) */ + private String delFlag; + + /** 父部门名称 */ + private String parentName; + + /** 子部门 */ + private List children = new ArrayList(); + + public Long getDeptId() + { + return deptId; + } + + public void setDeptId(Long deptId) + { + this.deptId = deptId; + } + + public Long getParentId() + { + return parentId; + } + + public void setParentId(Long parentId) + { + this.parentId = parentId; + } + + public String getAncestors() + { + return ancestors; + } + + public void setAncestors(String ancestors) + { + this.ancestors = ancestors; + } + + @NotBlank(message = "部门名称不能为空") + @Size(min = 0, max = 30, message = "部门名称长度不能超过30个字符") + public String getDeptName() + { + return deptName; + } + + public void setDeptName(String deptName) + { + this.deptName = deptName; + } + + @NotNull(message = "显示顺序不能为空") + public Integer getOrderNum() + { + return orderNum; + } + + public void setOrderNum(Integer orderNum) + { + this.orderNum = orderNum; + } + + public String getLeader() + { + return leader; + } + + public void setLeader(String leader) + { + this.leader = leader; + } + + @Size(min = 0, max = 11, message = "联系电话长度不能超过11个字符") + public String getPhone() + { + return phone; + } + + public void setPhone(String phone) + { + this.phone = phone; + } + + @Email(message = "邮箱格式不正确") + @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符") + public String getEmail() + { + return email; + } + + public void setEmail(String email) + { + this.email = email; + } + + public String getStatus() + { + return status; + } + + public void setStatus(String status) + { + this.status = status; + } + + public String getDelFlag() + { + return delFlag; + } + + public void setDelFlag(String delFlag) + { + this.delFlag = delFlag; + } + + public String getParentName() + { + return parentName; + } + + public void setParentName(String parentName) + { + this.parentName = parentName; + } + + public List getChildren() + { + return children; + } + + public void setChildren(List children) + { + this.children = children; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("deptId", getDeptId()) + .append("parentId", getParentId()) + .append("ancestors", getAncestors()) + .append("deptName", getDeptName()) + .append("orderNum", getOrderNum()) + .append("leader", getLeader()) + .append("phone", getPhone()) + .append("email", getEmail()) + .append("status", getStatus()) + .append("delFlag", getDelFlag()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysDictData.java b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysDictData.java new file mode 100644 index 0000000..471ff20 --- /dev/null +++ b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysDictData.java @@ -0,0 +1,176 @@ +package com.bonus.system.api.domain; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.bonus.common.core.annotation.Excel; +import com.bonus.common.core.annotation.Excel.ColumnType; +import com.bonus.common.core.constant.UserConstants; +import com.bonus.common.core.web.domain.BaseEntity; + +/** + * 字典数据表 sys_dict_data + * + * @author bonus + */ +public class SysDictData extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 字典编码 */ + @Excel(name = "字典编码", cellType = ColumnType.NUMERIC) + private Long dictCode; + + /** 字典排序 */ + @Excel(name = "字典排序", cellType = ColumnType.NUMERIC) + private Long dictSort; + + /** 字典标签 */ + @Excel(name = "字典标签") + private String dictLabel; + + /** 字典键值 */ + @Excel(name = "字典键值") + private String dictValue; + + /** 字典类型 */ + @Excel(name = "字典类型") + private String dictType; + + /** 样式属性(其他样式扩展) */ + private String cssClass; + + /** 表格字典样式 */ + private String listClass; + + /** 是否默认(Y是 N否) */ + @Excel(name = "是否默认", readConverterExp = "Y=是,N=否") + private String isDefault; + + /** 状态(0正常 1停用) */ + @Excel(name = "状态", readConverterExp = "0=正常,1=停用") + private String status; + + public Long getDictCode() + { + return dictCode; + } + + public void setDictCode(Long dictCode) + { + this.dictCode = dictCode; + } + + public Long getDictSort() + { + return dictSort; + } + + public void setDictSort(Long dictSort) + { + this.dictSort = dictSort; + } + + @NotBlank(message = "字典标签不能为空") + @Size(min = 0, max = 100, message = "字典标签长度不能超过100个字符") + public String getDictLabel() + { + return dictLabel; + } + + public void setDictLabel(String dictLabel) + { + this.dictLabel = dictLabel; + } + + @NotBlank(message = "字典键值不能为空") + @Size(min = 0, max = 100, message = "字典键值长度不能超过100个字符") + public String getDictValue() + { + return dictValue; + } + + public void setDictValue(String dictValue) + { + this.dictValue = dictValue; + } + + @NotBlank(message = "字典类型不能为空") + @Size(min = 0, max = 100, message = "字典类型长度不能超过100个字符") + public String getDictType() + { + return dictType; + } + + public void setDictType(String dictType) + { + this.dictType = dictType; + } + + @Size(min = 0, max = 100, message = "样式属性长度不能超过100个字符") + public String getCssClass() + { + return cssClass; + } + + public void setCssClass(String cssClass) + { + this.cssClass = cssClass; + } + + public String getListClass() + { + return listClass; + } + + public void setListClass(String listClass) + { + this.listClass = listClass; + } + + public boolean getDefault() + { + return UserConstants.YES.equals(this.isDefault); + } + + public String getIsDefault() + { + return isDefault; + } + + public void setIsDefault(String isDefault) + { + this.isDefault = isDefault; + } + + public String getStatus() + { + return status; + } + + public void setStatus(String status) + { + this.status = status; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("dictCode", getDictCode()) + .append("dictSort", getDictSort()) + .append("dictLabel", getDictLabel()) + .append("dictValue", getDictValue()) + .append("dictType", getDictType()) + .append("cssClass", getCssClass()) + .append("listClass", getListClass()) + .append("isDefault", getIsDefault()) + .append("status", getStatus()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysDictType.java b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysDictType.java new file mode 100644 index 0000000..50a2be9 --- /dev/null +++ b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysDictType.java @@ -0,0 +1,96 @@ +package com.bonus.system.api.domain; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Pattern; +import javax.validation.constraints.Size; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.bonus.common.core.annotation.Excel; +import com.bonus.common.core.annotation.Excel.ColumnType; +import com.bonus.common.core.web.domain.BaseEntity; + +/** + * 字典类型表 sys_dict_type + * + * @author bonus + */ +public class SysDictType extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 字典主键 */ + @Excel(name = "字典主键", cellType = ColumnType.NUMERIC) + private Long dictId; + + /** 字典名称 */ + @Excel(name = "字典名称") + private String dictName; + + /** 字典类型 */ + @Excel(name = "字典类型") + private String dictType; + + /** 状态(0正常 1停用) */ + @Excel(name = "状态", readConverterExp = "0=正常,1=停用") + private String status; + + public Long getDictId() + { + return dictId; + } + + public void setDictId(Long dictId) + { + this.dictId = dictId; + } + + @NotBlank(message = "字典名称不能为空") + @Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符") + public String getDictName() + { + return dictName; + } + + public void setDictName(String dictName) + { + this.dictName = dictName; + } + + @NotBlank(message = "字典类型不能为空") + @Size(min = 0, max = 100, message = "字典类型类型长度不能超过100个字符") + @Pattern(regexp = "^[a-z][a-z0-9_]*$", message = "字典类型必须以字母开头,且只能为(小写字母,数字,下滑线)") + public String getDictType() + { + return dictType; + } + + public void setDictType(String dictType) + { + this.dictType = dictType; + } + + public String getStatus() + { + return status; + } + + public void setStatus(String status) + { + this.status = status; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("dictId", getDictId()) + .append("dictName", getDictName()) + .append("dictType", getDictType()) + .append("status", getStatus()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysFile.java b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysFile.java new file mode 100644 index 0000000..7ce7a89 --- /dev/null +++ b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysFile.java @@ -0,0 +1,50 @@ +package com.bonus.system.api.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 文件信息 + * + * @author bonus + */ +public class SysFile +{ + /** + * 文件名称 + */ + private String name; + + /** + * 文件地址 + */ + private String url; + + public String getName() + { + return name; + } + + public void setName(String name) + { + this.name = name; + } + + public String getUrl() + { + return url; + } + + public void setUrl(String url) + { + this.url = url; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("name", getName()) + .append("url", getUrl()) + .toString(); + } +} diff --git a/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysLogininfor.java b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysLogininfor.java new file mode 100644 index 0000000..0dd5237 --- /dev/null +++ b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysLogininfor.java @@ -0,0 +1,102 @@ +package com.bonus.system.api.domain; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.bonus.common.core.annotation.Excel; +import com.bonus.common.core.annotation.Excel.ColumnType; +import com.bonus.common.core.web.domain.BaseEntity; + +/** + * 系统访问记录表 sys_logininfor + * + * @author bonus + */ +public class SysLogininfor extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** ID */ + @Excel(name = "序号", cellType = ColumnType.NUMERIC) + private Long infoId; + + /** 用户账号 */ + @Excel(name = "用户账号") + private String userName; + + /** 状态 0成功 1失败 */ + @Excel(name = "状态", readConverterExp = "0=成功,1=失败") + private String status; + + /** 地址 */ + @Excel(name = "地址") + private String ipaddr; + + /** 描述 */ + @Excel(name = "描述") + private String msg; + + /** 访问时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "访问时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date accessTime; + + public Long getInfoId() + { + return infoId; + } + + public void setInfoId(Long infoId) + { + this.infoId = infoId; + } + + public String getUserName() + { + return userName; + } + + public void setUserName(String userName) + { + this.userName = userName; + } + + public String getStatus() + { + return status; + } + + public void setStatus(String status) + { + this.status = status; + } + + public String getIpaddr() + { + return ipaddr; + } + + public void setIpaddr(String ipaddr) + { + this.ipaddr = ipaddr; + } + + public String getMsg() + { + return msg; + } + + public void setMsg(String msg) + { + this.msg = msg; + } + + public Date getAccessTime() + { + return accessTime; + } + + public void setAccessTime(Date accessTime) + { + this.accessTime = accessTime; + } +} \ No newline at end of file diff --git a/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysOperLog.java b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysOperLog.java new file mode 100644 index 0000000..dac8a58 --- /dev/null +++ b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysOperLog.java @@ -0,0 +1,255 @@ +package com.bonus.system.api.domain; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.bonus.common.core.annotation.Excel; +import com.bonus.common.core.annotation.Excel.ColumnType; +import com.bonus.common.core.web.domain.BaseEntity; + +/** + * 操作日志记录表 oper_log + * + * @author bonus + */ +public class SysOperLog extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 日志主键 */ + @Excel(name = "操作序号", cellType = ColumnType.NUMERIC) + private Long operId; + + /** 操作模块 */ + @Excel(name = "操作模块") + private String title; + + /** 业务类型(0其它 1新增 2修改 3删除) */ + @Excel(name = "业务类型", readConverterExp = "0=其它,1=新增,2=修改,3=删除,4=授权,5=导出,6=导入,7=强退,8=生成代码,9=清空数据") + private Integer businessType; + + /** 业务类型数组 */ + private Integer[] businessTypes; + + /** 请求方法 */ + @Excel(name = "请求方法") + private String method; + + /** 请求方式 */ + @Excel(name = "请求方式") + private String requestMethod; + + /** 操作类别(0其它 1后台用户 2手机端用户) */ + @Excel(name = "操作类别", readConverterExp = "0=其它,1=后台用户,2=手机端用户") + private Integer operatorType; + + /** 操作人员 */ + @Excel(name = "操作人员") + private String operName; + + /** 部门名称 */ + @Excel(name = "部门名称") + private String deptName; + + /** 请求url */ + @Excel(name = "请求地址") + private String operUrl; + + /** 操作地址 */ + @Excel(name = "操作地址") + private String operIp; + + /** 请求参数 */ + @Excel(name = "请求参数") + private String operParam; + + /** 返回参数 */ + @Excel(name = "返回参数") + private String jsonResult; + + /** 操作状态(0正常 1异常) */ + @Excel(name = "状态", readConverterExp = "0=正常,1=异常") + private Integer status; + + /** 错误消息 */ + @Excel(name = "错误消息") + private String errorMsg; + + /** 操作时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date operTime; + + /** 消耗时间 */ + @Excel(name = "消耗时间", suffix = "毫秒") + private Long costTime; + + public Long getOperId() + { + return operId; + } + + public void setOperId(Long operId) + { + this.operId = operId; + } + + public String getTitle() + { + return title; + } + + public void setTitle(String title) + { + this.title = title; + } + + public Integer getBusinessType() + { + return businessType; + } + + public void setBusinessType(Integer businessType) + { + this.businessType = businessType; + } + + public Integer[] getBusinessTypes() + { + return businessTypes; + } + + public void setBusinessTypes(Integer[] businessTypes) + { + this.businessTypes = businessTypes; + } + + public String getMethod() + { + return method; + } + + public void setMethod(String method) + { + this.method = method; + } + + public String getRequestMethod() + { + return requestMethod; + } + + public void setRequestMethod(String requestMethod) + { + this.requestMethod = requestMethod; + } + + public Integer getOperatorType() + { + return operatorType; + } + + public void setOperatorType(Integer operatorType) + { + this.operatorType = operatorType; + } + + public String getOperName() + { + return operName; + } + + public void setOperName(String operName) + { + this.operName = operName; + } + + public String getDeptName() + { + return deptName; + } + + public void setDeptName(String deptName) + { + this.deptName = deptName; + } + + public String getOperUrl() + { + return operUrl; + } + + public void setOperUrl(String operUrl) + { + this.operUrl = operUrl; + } + + public String getOperIp() + { + return operIp; + } + + public void setOperIp(String operIp) + { + this.operIp = operIp; + } + + public String getOperParam() + { + return operParam; + } + + public void setOperParam(String operParam) + { + this.operParam = operParam; + } + + public String getJsonResult() + { + return jsonResult; + } + + public void setJsonResult(String jsonResult) + { + this.jsonResult = jsonResult; + } + + public Integer getStatus() + { + return status; + } + + public void setStatus(Integer status) + { + this.status = status; + } + + public String getErrorMsg() + { + return errorMsg; + } + + public void setErrorMsg(String errorMsg) + { + this.errorMsg = errorMsg; + } + + public Date getOperTime() + { + return operTime; + } + + public void setOperTime(Date operTime) + { + this.operTime = operTime; + } + + public Long getCostTime() + { + return costTime; + } + + public void setCostTime(Long costTime) + { + this.costTime = costTime; + } +} diff --git a/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysRole.java b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysRole.java new file mode 100644 index 0000000..8540519 --- /dev/null +++ b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysRole.java @@ -0,0 +1,241 @@ +package com.bonus.system.api.domain; + +import java.util.Set; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.bonus.common.core.annotation.Excel; +import com.bonus.common.core.annotation.Excel.ColumnType; +import com.bonus.common.core.web.domain.BaseEntity; + +/** + * 角色表 sys_role + * + * @author bonus + */ +public class SysRole extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 角色ID */ + @Excel(name = "角色序号", cellType = ColumnType.NUMERIC) + private Long roleId; + + /** 角色名称 */ + @Excel(name = "角色名称") + private String roleName; + + /** 角色权限 */ + @Excel(name = "角色权限") + private String roleKey; + + /** 角色排序 */ + @Excel(name = "角色排序") + private Integer roleSort; + + /** 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限) */ + @Excel(name = "数据范围", readConverterExp = "1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限,5=仅本人数据权限") + private String dataScope; + + /** 菜单树选择项是否关联显示( 0:父子不互相关联显示 1:父子互相关联显示) */ + private boolean menuCheckStrictly; + + /** 部门树选择项是否关联显示(0:父子不互相关联显示 1:父子互相关联显示 ) */ + private boolean deptCheckStrictly; + + /** 角色状态(0正常 1停用) */ + @Excel(name = "角色状态", readConverterExp = "0=正常,1=停用") + private String status; + + /** 删除标志(0代表存在 2代表删除) */ + private String delFlag; + + /** 用户是否存在此角色标识 默认不存在 */ + private boolean flag = false; + + /** 菜单组 */ + private Long[] menuIds; + + /** 部门组(数据权限) */ + private Long[] deptIds; + + /** 角色菜单权限 */ + private Set permissions; + + public SysRole() + { + + } + + public SysRole(Long roleId) + { + this.roleId = roleId; + } + + public Long getRoleId() + { + return roleId; + } + + public void setRoleId(Long roleId) + { + this.roleId = roleId; + } + + public boolean isAdmin() + { + return isAdmin(this.roleId); + } + + public static boolean isAdmin(Long roleId) + { + return roleId != null && 1L == roleId; + } + + @NotBlank(message = "角色名称不能为空") + @Size(min = 0, max = 30, message = "角色名称长度不能超过30个字符") + public String getRoleName() + { + return roleName; + } + + public void setRoleName(String roleName) + { + this.roleName = roleName; + } + + @NotBlank(message = "权限字符不能为空") + @Size(min = 0, max = 100, message = "权限字符长度不能超过100个字符") + public String getRoleKey() + { + return roleKey; + } + + public void setRoleKey(String roleKey) + { + this.roleKey = roleKey; + } + + @NotNull(message = "显示顺序不能为空") + public Integer getRoleSort() + { + return roleSort; + } + + public void setRoleSort(Integer roleSort) + { + this.roleSort = roleSort; + } + + public String getDataScope() + { + return dataScope; + } + + public void setDataScope(String dataScope) + { + this.dataScope = dataScope; + } + + public boolean isMenuCheckStrictly() + { + return menuCheckStrictly; + } + + public void setMenuCheckStrictly(boolean menuCheckStrictly) + { + this.menuCheckStrictly = menuCheckStrictly; + } + + public boolean isDeptCheckStrictly() + { + return deptCheckStrictly; + } + + public void setDeptCheckStrictly(boolean deptCheckStrictly) + { + this.deptCheckStrictly = deptCheckStrictly; + } + + public String getStatus() + { + return status; + } + + public void setStatus(String status) + { + this.status = status; + } + + public String getDelFlag() + { + return delFlag; + } + + public void setDelFlag(String delFlag) + { + this.delFlag = delFlag; + } + + public boolean isFlag() + { + return flag; + } + + public void setFlag(boolean flag) + { + this.flag = flag; + } + + public Long[] getMenuIds() + { + return menuIds; + } + + public void setMenuIds(Long[] menuIds) + { + this.menuIds = menuIds; + } + + public Long[] getDeptIds() + { + return deptIds; + } + + public void setDeptIds(Long[] deptIds) + { + this.deptIds = deptIds; + } + + public Set getPermissions() + { + return permissions; + } + + public void setPermissions(Set permissions) + { + this.permissions = permissions; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("roleId", getRoleId()) + .append("roleName", getRoleName()) + .append("roleKey", getRoleKey()) + .append("roleSort", getRoleSort()) + .append("dataScope", getDataScope()) + .append("menuCheckStrictly", isMenuCheckStrictly()) + .append("deptCheckStrictly", isDeptCheckStrictly()) + .append("status", getStatus()) + .append("delFlag", getDelFlag()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysUser.java b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysUser.java new file mode 100644 index 0000000..6d89efc --- /dev/null +++ b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/domain/SysUser.java @@ -0,0 +1,323 @@ +package com.bonus.system.api.domain; + +import java.util.Date; +import java.util.List; +import javax.validation.constraints.*; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.bonus.common.core.annotation.Excel; +import com.bonus.common.core.annotation.Excel.ColumnType; +import com.bonus.common.core.annotation.Excel.Type; +import com.bonus.common.core.annotation.Excels; +import com.bonus.common.core.web.domain.BaseEntity; +import com.bonus.common.core.xss.Xss; + +/** + * 用户对象 sys_user + * + * @author bonus + */ +public class SysUser extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 用户ID */ + @Excel(name = "用户序号", type = Type.EXPORT, cellType = ColumnType.NUMERIC, prompt = "用户编号") + private Long userId; + + /** 部门ID */ + @Excel(name = "部门编号", type = Type.IMPORT) + private Long deptId; + + /** 用户账号 */ + @Excel(name = "登录名称") + private String userName; + + /** 用户昵称 */ + @Excel(name = "用户名称") + private String nickName; + + /** 用户邮箱 */ + @Excel(name = "用户邮箱") + private String email; + + /** 手机号码 */ + @Excel(name = "手机号码", cellType = ColumnType.TEXT) + private String phonenumber; + + /** 用户性别 */ + @Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知") + private String sex; + + /** 用户头像 */ + private String avatar; + + /** 密码 */ + private String password; + + /** 帐号状态(0正常 1停用) */ + @Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用") + private String status; + + /** 删除标志(0代表存在 2代表删除) */ + private String delFlag; + + /** 最后登录IP */ + @Excel(name = "最后登录IP", type = Type.EXPORT) + private String loginIp; + + /** 最后登录时间 */ + @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT) + private Date loginDate; + + /** 部门对象 */ + @Excels({ + @Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT), + @Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT) + }) + private SysDept dept; + + /** 角色对象 */ + private List roles; + + /** 角色组 */ + private Long[] roleIds; + + /** 岗位组 */ + private Long[] postIds; + + /** 角色ID */ + private Long roleId; + + public SysUser() + { + + } + + public SysUser(Long userId) + { + this.userId = userId; + } + + public Long getUserId() + { + return userId; + } + + public void setUserId(Long userId) + { + this.userId = userId; + } + + public boolean isAdmin() + { + return isAdmin(this.userId); + } + + public static boolean isAdmin(Long userId) + { + return userId != null && 1L == userId; + } + + public Long getDeptId() + { + return deptId; + } + + public void setDeptId(Long deptId) + { + this.deptId = deptId; + } + + @Xss(message = "用户昵称不能包含脚本字符") + @Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符") + public String getNickName() + { + return nickName; + } + + public void setNickName(String nickName) + { + this.nickName = nickName; + } + + @Xss(message = "用户账号不能包含脚本字符") + @NotBlank(message = "用户账号不能为空") + @Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符") + public String getUserName() + { + return userName; + } + + public void setUserName(String userName) + { + this.userName = userName; + } + + @Email(message = "邮箱格式不正确") + @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符") + public String getEmail() + { + return email; + } + + public void setEmail(String email) + { + this.email = email; + } + + @Size(min = 0, max = 11, message = "手机号码长度不能超过11个字符") + public String getPhonenumber() + { + return phonenumber; + } + + public void setPhonenumber(String phonenumber) + { + this.phonenumber = phonenumber; + } + + public String getSex() + { + return sex; + } + + public void setSex(String sex) + { + this.sex = sex; + } + + public String getAvatar() + { + return avatar; + } + + public void setAvatar(String avatar) + { + this.avatar = avatar; + } + + public String getPassword() + { + return password; + } + + public void setPassword(String password) + { + this.password = password; + } + + public String getStatus() + { + return status; + } + + public void setStatus(String status) + { + this.status = status; + } + + public String getDelFlag() + { + return delFlag; + } + + public void setDelFlag(String delFlag) + { + this.delFlag = delFlag; + } + + public String getLoginIp() + { + return loginIp; + } + + public void setLoginIp(String loginIp) + { + this.loginIp = loginIp; + } + + public Date getLoginDate() + { + return loginDate; + } + + public void setLoginDate(Date loginDate) + { + this.loginDate = loginDate; + } + + public SysDept getDept() + { + return dept; + } + + public void setDept(SysDept dept) + { + this.dept = dept; + } + + public List getRoles() + { + return roles; + } + + public void setRoles(List roles) + { + this.roles = roles; + } + + public Long[] getRoleIds() + { + return roleIds; + } + + public void setRoleIds(Long[] roleIds) + { + this.roleIds = roleIds; + } + + public Long[] getPostIds() + { + return postIds; + } + + public void setPostIds(Long[] postIds) + { + this.postIds = postIds; + } + + public Long getRoleId() + { + return roleId; + } + + public void setRoleId(Long roleId) + { + this.roleId = roleId; + } + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("userId", getUserId()) + .append("deptId", getDeptId()) + .append("userName", getUserName()) + .append("nickName", getNickName()) + .append("email", getEmail()) + .append("phonenumber", getPhonenumber()) + .append("sex", getSex()) + .append("avatar", getAvatar()) + .append("password", getPassword()) + .append("status", getStatus()) + .append("delFlag", getDelFlag()) + .append("loginIp", getLoginIp()) + .append("loginDate", getLoginDate()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .append("dept", getDept()) + .toString(); + } +} diff --git a/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/factory/RemoteFileFallbackFactory.java b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/factory/RemoteFileFallbackFactory.java new file mode 100644 index 0000000..023977d --- /dev/null +++ b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/factory/RemoteFileFallbackFactory.java @@ -0,0 +1,35 @@ +package com.bonus.system.api.factory; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; +import org.springframework.web.multipart.MultipartFile; +import com.bonus.common.core.domain.R; +import com.bonus.system.api.RemoteFileService; +import com.bonus.system.api.domain.SysFile; + +/** + * 文件服务降级处理 + * + * @author bonus + */ +@Component +public class RemoteFileFallbackFactory implements FallbackFactory +{ + private static final Logger log = LoggerFactory.getLogger(RemoteFileFallbackFactory.class); + + @Override + public RemoteFileService create(Throwable throwable) + { + log.error("文件服务调用失败:{}", throwable.getMessage()); + return new RemoteFileService() + { + @Override + public R upload(MultipartFile file) + { + return R.fail("上传文件失败:" + throwable.getMessage()); + } + }; + } +} diff --git a/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/factory/RemoteLogFallbackFactory.java b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/factory/RemoteLogFallbackFactory.java new file mode 100644 index 0000000..c4a57d8 --- /dev/null +++ b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/factory/RemoteLogFallbackFactory.java @@ -0,0 +1,42 @@ +package com.bonus.system.api.factory; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; +import com.bonus.common.core.domain.R; +import com.bonus.system.api.RemoteLogService; +import com.bonus.system.api.domain.SysLogininfor; +import com.bonus.system.api.domain.SysOperLog; + +/** + * 日志服务降级处理 + * + * @author bonus + */ +@Component +public class RemoteLogFallbackFactory implements FallbackFactory +{ + private static final Logger log = LoggerFactory.getLogger(RemoteLogFallbackFactory.class); + + @Override + public RemoteLogService create(Throwable throwable) + { + log.error("日志服务调用失败:{}", throwable.getMessage()); + return new RemoteLogService() + { + @Override + public R saveLog(SysOperLog sysOperLog, String source) + { + return R.fail("保存操作日志失败:" + throwable.getMessage()); + } + + @Override + public R saveLogininfor(SysLogininfor sysLogininfor, String source) + { + return R.fail("保存登录日志失败:" + throwable.getMessage()); + } + }; + + } +} diff --git a/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/factory/RemoteUserFallbackFactory.java b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/factory/RemoteUserFallbackFactory.java new file mode 100644 index 0000000..be1fdc3 --- /dev/null +++ b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/factory/RemoteUserFallbackFactory.java @@ -0,0 +1,41 @@ +package com.bonus.system.api.factory; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; +import com.bonus.common.core.domain.R; +import com.bonus.system.api.RemoteUserService; +import com.bonus.system.api.domain.SysUser; +import com.bonus.system.api.model.LoginUser; + +/** + * 用户服务降级处理 + * + * @author bonus + */ +@Component +public class RemoteUserFallbackFactory implements FallbackFactory +{ + private static final Logger log = LoggerFactory.getLogger(RemoteUserFallbackFactory.class); + + @Override + public RemoteUserService create(Throwable throwable) + { + log.error("用户服务调用失败:{}", throwable.getMessage()); + return new RemoteUserService() + { + @Override + public R getUserInfo(String username, String source) + { + return R.fail("获取用户失败:" + throwable.getMessage()); + } + + @Override + public R registerUserInfo(SysUser sysUser, String source) + { + return R.fail("注册用户失败:" + throwable.getMessage()); + } + }; + } +} diff --git a/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/model/LoginUser.java b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/model/LoginUser.java new file mode 100644 index 0000000..d335a6f --- /dev/null +++ b/bonus-api/bonus-ai-api-system/src/main/java/com/bonus/system/api/model/LoginUser.java @@ -0,0 +1,150 @@ +package com.bonus.system.api.model; + +import java.io.Serializable; +import java.util.Set; +import com.bonus.system.api.domain.SysUser; + +/** + * 用户信息 + * + * @author bonus + */ +public class LoginUser implements Serializable +{ + private static final long serialVersionUID = 1L; + + /** + * 用户唯一标识 + */ + private String token; + + /** + * 用户名id + */ + private Long userid; + + /** + * 用户名 + */ + private String username; + + /** + * 登录时间 + */ + private Long loginTime; + + /** + * 过期时间 + */ + private Long expireTime; + + /** + * 登录IP地址 + */ + private String ipaddr; + + /** + * 权限列表 + */ + private Set permissions; + + /** + * 角色列表 + */ + private Set roles; + + /** + * 用户信息 + */ + private SysUser sysUser; + + public String getToken() + { + return token; + } + + public void setToken(String token) + { + this.token = token; + } + + public Long getUserid() + { + return userid; + } + + public void setUserid(Long userid) + { + this.userid = userid; + } + + public String getUsername() + { + return username; + } + + public void setUsername(String username) + { + this.username = username; + } + + public Long getLoginTime() + { + return loginTime; + } + + public void setLoginTime(Long loginTime) + { + this.loginTime = loginTime; + } + + public Long getExpireTime() + { + return expireTime; + } + + public void setExpireTime(Long expireTime) + { + this.expireTime = expireTime; + } + + public String getIpaddr() + { + return ipaddr; + } + + public void setIpaddr(String ipaddr) + { + this.ipaddr = ipaddr; + } + + public Set getPermissions() + { + return permissions; + } + + public void setPermissions(Set permissions) + { + this.permissions = permissions; + } + + public Set getRoles() + { + return roles; + } + + public void setRoles(Set roles) + { + this.roles = roles; + } + + public SysUser getSysUser() + { + return sysUser; + } + + public void setSysUser(SysUser sysUser) + { + this.sysUser = sysUser; + } +} diff --git a/bonus-api/bonus-ai-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/bonus-api/bonus-ai-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..83df20b --- /dev/null +++ b/bonus-api/bonus-ai-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,3 @@ +com.bonus.system.api.factory.RemoteUserFallbackFactory +com.bonus.system.api.factory.RemoteLogFallbackFactory +com.bonus.system.api.factory.RemoteFileFallbackFactory diff --git a/bonus-modules/bonus-ai-modules/bonus-large-model/pom.xml b/bonus-modules/bonus-ai-modules/bonus-large-model/pom.xml new file mode 100644 index 0000000..9d4b6de --- /dev/null +++ b/bonus-modules/bonus-ai-modules/bonus-large-model/pom.xml @@ -0,0 +1,102 @@ + + + + com.bonus + bonus-modules + 3.6.4 + + 4.0.0 + + bonus-large-model + + + bonus-large-model服务 + + + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + com.github.tobato + fastdfs-client + + + + + io.minio + minio + ${minio.version} + + + + + com.aliyun.oss + aliyun-sdk-oss + 3.5.0 + + + + + commons-net + commons-net + 3.8.0 + + + + + com.bonus + bonus-api-system + + + + + com.bonus + bonus-common-swagger + + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + + \ No newline at end of file diff --git a/bonus-modules/bonus-ai-modules/bonus-large-model/src/main/java/com/bonus/.DS_Store b/bonus-modules/bonus-ai-modules/bonus-large-model/src/main/java/com/bonus/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..2db372137f05d141c883b77e49747a5f424da0b4 GIT binary patch literal 6148 zcmeHK-AcnS6i&A3GKSC#g4?f`u_b%oaMdVC$H5Td;3k%6m9X~KdY6W2l+Ddg2f$L*GeT}sR!XrJY7wk z!wZ$>L7Yw(x*(3GkaB+;r;%EDYMDlvuJuhov_xy-bk^&^px2fC;b_y9>oe3x!_&>C zC610y&aWmf$t+cGhE5J_YdNr3!aFE-HLw06O;q{>o-(`4A|wWg0b+m{*lh;vxggrR zO#`i-7$62J7{L8OLPK;d76$d!0UchSG2TE#0Uh5Gh|;2Ku`mb`5N=8VO)0le3~tK7 zFKwP{u`p=L8P_wzICkdp@xt}&;Fmg`an~UA!~ij{%|P9l4xay)@RzB4`+seWas + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bonus-modules/bonus-ai-modules/bonus-ocr-recognition/pom.xml b/bonus-modules/bonus-ai-modules/bonus-ocr-recognition/pom.xml new file mode 100644 index 0000000..a0c7fba --- /dev/null +++ b/bonus-modules/bonus-ai-modules/bonus-ocr-recognition/pom.xml @@ -0,0 +1,102 @@ + + + + com.bonus + bonus-modules + 3.6.4 + + 4.0.0 + + bonus-ocr-recognition + + + bonus-ocr-recognition服务 + + + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + com.github.tobato + fastdfs-client + + + + + io.minio + minio + ${minio.version} + + + + + com.aliyun.oss + aliyun-sdk-oss + 3.5.0 + + + + + commons-net + commons-net + 3.8.0 + + + + + com.bonus + bonus-api-system + + + + + com.bonus + bonus-common-swagger + + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + + \ No newline at end of file diff --git a/bonus-modules/bonus-ai-modules/bonus-ocr-recognition/src/.DS_Store b/bonus-modules/bonus-ai-modules/bonus-ocr-recognition/src/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..7b0d36729e2ee777a660f9e8c6709dd97bc2fb68 GIT binary patch literal 6148 zcmeH~F>V4u3`M`g7D#EfOgRk)$PGpaPQV2S&>%r5BKkQx-ySzvsH0W%E!l7ES!;KH zv9ktX>-*^w7y&HlPOLmk%$N_j;tOYdpMH*)!|itQBJHgMp3+B5_H$d10#ZNMM4T9irw zDe%t}uwk>?toc%Twm!X{*Y{cVb)%DUIm54?049DEf6&9YUwlExb!G)pQmsa7q9C7tnBd1K+6m~>d&%ya5ys}9BDcE($z!^T97 zQa}ovD{!65rPu!l`Vam8IY}!iAO-%E0yeB4*DF4$YHRm6ueFW-ME9Hzx*O*~;SlAR k80DA?FUNP0lzGkP+#d_)#Go@CbfSI+To;)X_-zF~0cN5b5&!@I literal 0 HcmV?d00001 diff --git a/bonus-modules/bonus-ai-modules/bonus-ocr-recognition/src/main/java/.DS_Store b/bonus-modules/bonus-ai-modules/bonus-ocr-recognition/src/main/java/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..35a54bf0595027f28217af82c3d32981e121b5e7 GIT binary patch literal 6148 zcmeH~Jr2S!425mVP>H1@V-^m;4I%_5-~tF3K^+i#j?VMXLSaS~dY0@jc51bKLsN^0 z?w;4J$RHv;+$b9h6I0}!Tx68{^>MkK$MI$*w?)zl@IfZ~xlK?3DnJFO02QDDGg2TA z@_sd=XX2w!0V*&L1?>A!;KrJ4LH~3h_y_tMAK>5S|49o|DnJGPOaWc) zkNX{7D$mxB*R%R5tF~@%&@V@L`w2i|NAVi&hW%m-uqIm&6&Qa6Tm}Xz@KXg|*oF~o literal 0 HcmV?d00001 diff --git a/bonus-modules/bonus-ai-modules/bonus-ocr-recognition/src/main/java/com/.DS_Store b/bonus-modules/bonus-ai-modules/bonus-ocr-recognition/src/main/java/com/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..ec3d2d8982b1349faf939d91ebc92e0a7923d38e GIT binary patch literal 6148 zcmeHK%}T>S5Z>*NO(;SR3Oz1(t=Lv6ikA@U3mDOZN=;1BV9b^#v4>K~SzpK}@p+ut z-Abi;@FG%XVCI|7&TP70%1(zd#=RoyGUhPGEKtOX4dxrcb<`E9m`D|nt39%CnvKIm zhAX)g_@4~myQ{O1NtUvLEx*6FaGbC(^HXtMhhyh|??HMo^pVeIZlhOf+0b<~{4B-7BKoMPorABpifKej=U=6}b zz{gnvYlK19V5t#SK)5ai)TP{v7+jY_T$nu9V5w1;Gj4_tZl27|gu>O+VSl008Fw|3 zB?gFruMFVq2jXD=KmB?BS4m`u0b*c18Q`^nKk(pernjz~5__!xy#+WogQZ4@fY2WSMFSaP;7=L&07X7fga7~l literal 0 HcmV?d00001 diff --git a/bonus-modules/bonus-ai-modules/bonus-ocr-recognition/src/main/java/com/bonus/.DS_Store b/bonus-modules/bonus-ai-modules/bonus-ocr-recognition/src/main/java/com/bonus/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..882c0d3e32ee4bc380c1f5fafc72cd47787e4aa5 GIT binary patch literal 6148 zcmeHKPfNov6i>G4I)>1LqQ`*OiJMMQyp%e>fE7Kc%yu1Gtj%aUdl-XW^$Yn;{5-yw zq@cKiClU7^B)^yUCry6PB#$x1-D%ik%w~*P&=5H)3k1yzT{RP22jnKn(nd0X!cBG(^W>sZkvr(5VstumNTzpkpn8Il`c0 zu+#`15Ux`Jbt*R{2G{9e7beazSZdVijGN+vn=eS5Z<+|-BN@c6nYGJE!ZCs#7l_v1&ruHr6#0kFlI}Wm_sS#tS{t~_&m<+ zZlJ~BQN+%`?l(I>yO|HNKa4T%=HZYri!mmkA#zk|1kJUs9TSYm)f{P1r1Kz_LCrLO z(}dsNVmZrL#A3Go{U5o0C`bR}gRRJtEr zN3&vT?Vrme^P^<8Pzg~ugOIzMC<$fZ$~*~EmFsDT=!nkL>MfVU@vv_nk4CG$y*wQa zKp&s1RvmG0cyx9-eU4ue`KF2Fz_^kRTBfmzz+=I{$N8xbPSdn)z$$WUZ2t5L_`4{-x7$nLC0XJ5j-GVrvmC! zZk`xir-R)#agM=KqfTdBtqk*+m8-`KSF3~FR^g008mT7+h=EN88hU8q`F{bwOzk6o zGlfRP05R~-7~su`H*ujTbGCjf56@Z~+5 + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bonus-modules/bonus-large-model/pom.xml b/bonus-modules/bonus-large-model/pom.xml new file mode 100644 index 0000000..8450c1b --- /dev/null +++ b/bonus-modules/bonus-large-model/pom.xml @@ -0,0 +1,20 @@ + + + 4.0.0 + + com.bonus + bonus-modules + 3.6.4 + + + bonus-large-model + + + 8 + 8 + UTF-8 + + + \ No newline at end of file diff --git a/bonus-modules/bonus-large-model/src/main/java/com/bonus/llm/BonusFileApplication.java b/bonus-modules/bonus-large-model/src/main/java/com/bonus/llm/BonusFileApplication.java new file mode 100644 index 0000000..e4089a7 --- /dev/null +++ b/bonus-modules/bonus-large-model/src/main/java/com/bonus/llm/BonusFileApplication.java @@ -0,0 +1,31 @@ +package com.bonus.file; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import com.bonus.common.swagger.annotation.EnableCustomSwagger2; + +/** + * 文件服务 + * + * @author bonus + */ +@EnableCustomSwagger2 +@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class }) +public class BonusFileApplication +{ + public static void main(String[] args) + { + SpringApplication.run(BonusFileApplication.class, args); + System.out.println("(♥◠‿◠)ノ゙ 文件服务模块启动成功 ლ(´ڡ`ლ)゙ \n" + + " .-------. ____ __ \n" + + " | _ _ \\ \\ \\ / / \n" + + " | ( ' ) | \\ _. / ' \n" + + " |(_ o _) / _( )_ .' \n" + + " | (_,_).' __ ___(_ o _)' \n" + + " | |\\ \\ | || |(_,_)' \n" + + " | | \\ `' /| `-' / \n" + + " | | \\ / \\ / \n" + + " ''-' `'-' `-..-' "); + } +} diff --git a/bonus-modules/bonus-large-model/src/main/resources/banner.txt b/bonus-modules/bonus-large-model/src/main/resources/banner.txt new file mode 100644 index 0000000..27cacb9 --- /dev/null +++ b/bonus-modules/bonus-large-model/src/main/resources/banner.txt @@ -0,0 +1,10 @@ +Spring Boot Version: ${spring-boot.version} +Spring Application Name: ${spring.application.name} + _ __ _ _ + (_) / _|(_)| | + _ __ _ _ ___ _ _ _ ______ | |_ _ | | ___ +| '__|| | | | / _ \ | | | || ||______|| _|| || | / _ \ +| | | |_| || (_) || |_| || | | | | || || __/ +|_| \__,_| \___/ \__, ||_| |_| |_||_| \___| + __/ | + |___/ \ No newline at end of file diff --git a/bonus-modules/bonus-large-model/src/main/resources/bootstrap.yml b/bonus-modules/bonus-large-model/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..6e70201 --- /dev/null +++ b/bonus-modules/bonus-large-model/src/main/resources/bootstrap.yml @@ -0,0 +1,29 @@ +# Tomcat +server: + port: 9300 + +# Spring +spring: + application: + # 应用名称 + name: bonus-file + profiles: + # 环境配置 + active: dev + cloud: + nacos: + username: nacos + password: nacos + discovery: + # 服务注册地址 + server-addr: 192.168.0.14:8848 + namespace: f1fcd3ea-9460-4597-8acd-0f334527017c + config: + # 配置中心地址 + server-addr: 192.168.0.14:8848 + namespace: f1fcd3ea-9460-4597-8acd-0f334527017c + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} diff --git a/bonus-modules/bonus-large-model/src/main/resources/logback.xml b/bonus-modules/bonus-large-model/src/main/resources/logback.xml new file mode 100644 index 0000000..7607fdf --- /dev/null +++ b/bonus-modules/bonus-large-model/src/main/resources/logback.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + + + + + + + + + + + + + \ No newline at end of file