Browse Source

接口

master
dimengzhe 2 years ago
parent
commit
9cb93a3f94
  1. 9
      demo-common/demo-common-jdbc/src/main/java/com/yxt/demo/common/jdbc/service/MybatisBaseService.java
  2. 61
      demo-common/demo-common-jdbc/src/main/java/com/yxt/demo/common/jdbc/service/PagerUtil.java
  3. 12
      demo-common/demo-common-utils/pom.xml
  4. 189
      demo-common/demo-common-utils/src/main/java/com/yxt/demo/common/utils/allutils/Encodes.java
  5. 74
      demo-common/demo-common-utils/src/main/java/com/yxt/demo/common/utils/allutils/Exceptions.java
  6. 395
      demo-common/demo-common-utils/src/main/java/com/yxt/demo/common/utils/allutils/StringUtils.java
  7. 52
      demo-common/demo-common-utils/src/main/java/com/yxt/demo/common/utils/jwt/JWTUtil.java
  8. 2
      demo-gateway/src/main/resources/application.yml
  9. 2
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/dict_common/DictCommon.java
  10. 34
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/dict_common/DictCommonDto.java
  11. 45
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/dict_common/DictCommonFeign.java
  12. 9
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/dict_common/DictCommonFeignFallback.java
  13. 24
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/dict_common/DictCommonQuery.java
  14. 21
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/dict_common/DictCommonTypeQuery.java
  15. 29
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/dict_common/DictCommonVo.java
  16. 4
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/dict_type/DictType.java
  17. 30
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/dict_type/DictTypeDto.java
  18. 40
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/dict_type/DictTypeFeign.java
  19. 9
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/dict_type/DictTypeFeignFallback.java
  20. 23
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/dict_type/DictTypeQuery.java
  21. 27
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/dict_type/DictTypeVo.java
  22. 21
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_forum/SysForumFeign.java
  23. 9
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_forum/SysForumFeignFallback.java
  24. 19
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_forum_comment/SysForumCommentFeign.java
  25. 9
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_forum_comment/SysForumCommentFeignFallback.java
  26. 19
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_info/SysInfoFeign.java
  27. 12
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_info/SysInfoFeignFallback.java
  28. 19
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_menu/SysMenuFeign.java
  29. 12
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_menu/SysMenuFeignFallback.java
  30. 9
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_notice/SysNoticeFeign.java
  31. 9
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_plan/SysPlanFeign.java
  32. 9
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_plan_schedule/SysPlanScheduleFeign.java
  33. 9
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_resources/SysResourcesFeign.java
  34. 9
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_role/SysRoleFeign.java
  35. 9
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_score/SysScoreFeign.java
  36. 16
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_student_score/SysStudentScore.java
  37. 9
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_student_score/SysStudentScoreFeign.java
  38. 14
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_user/SysUser.java
  39. 35
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_user/SysUserDto.java
  40. 34
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_user/SysUserFeign.java
  41. 12
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_user/SysUserFeignFallback.java
  42. 20
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_user/SysUserLoginQuery.java
  43. 5
      demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_user_role/SysUserRole.java
  44. 5
      demo-system/demo-system-biz/pom.xml
  45. 28
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/dict_common/DictCommonMapper.java
  46. 33
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/dict_common/DictCommonMapper.xml
  47. 58
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/dict_common/DictCommonRest.java
  48. 114
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/dict_common/DictCommonService.java
  49. 29
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/dict_type/DictTypeMapper.java
  50. 17
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/dict_type/DictTypeMapper.xml
  51. 61
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/dict_type/DictTypeRest.java
  52. 76
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/dict_type/DictTypeService.java
  53. 9
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_forum/SysForumMapper.java
  54. 4
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_forum/SysForumMapper.xml
  55. 9
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_forum/SysForumRest.java
  56. 9
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_forum/SysForumService.java
  57. 9
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_forum_comment/SysForumCommentMapper.java
  58. 4
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_forum_comment/SysForumCommentMapper.xml
  59. 9
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_forum_comment/SysForumCommentRest.java
  60. 9
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_forum_comment/SysForumCommentService.java
  61. 17
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_info/SysInfoMapper.java
  62. 10
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_info/SysInfoMapper.xml
  63. 16
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_info/SysInfoRest.java
  64. 18
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_info/SysInfoService.java
  65. 12
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_info_ship/SysInfoShipMapper.java
  66. 4
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_info_ship/SysInfoShipMapper.xml
  67. 12
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_info_ship/SysInfoShipService.java
  68. 15
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_menu/SysMenuMapper.java
  69. 4
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_menu/SysMenuMapper.xml
  70. 16
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_menu/SysMenuRest.java
  71. 16
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_menu/SysMenuService.java
  72. 12
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_menu_role/SysMenuRoleMapper.java
  73. 4
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_menu_role/SysMenuRoleMapper.xml
  74. 12
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_menu_role/SysMenuRoleService.java
  75. 12
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_notice/SysNoticeMapper.java
  76. 4
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_notice/SysNoticeMapper.xml
  77. 9
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_notice/SysNoticeRest.java
  78. 12
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_notice/SysNoticeService.java
  79. 9
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_plan/SysPlanMapper.java
  80. 4
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_plan/SysPlanMapper.xml
  81. 9
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_plan/SysPlanRest.java
  82. 9
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_plan/SysPlanService.java
  83. 9
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_plan_schedule/SysPlanScheduleMapper.java
  84. 4
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_plan_schedule/SysPlanScheduleMapper.xml
  85. 9
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_plan_schedule/SysPlanScheduleRest.java
  86. 9
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_plan_schedule/SysPlanScheduleService.java
  87. 9
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_resources/SysResourcesMapper.java
  88. 4
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_resources/SysResourcesMapper.xml
  89. 9
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_resources/SysResourcesRest.java
  90. 9
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_resources/SysResourcesService.java
  91. 9
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_role/SysRoleMapper.java
  92. 4
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_role/SysRoleMapper.xml
  93. 9
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_role/SysRoleRest.java
  94. 9
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_role/SysRoleService.java
  95. 9
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_score/SysScoreMapper.java
  96. 4
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_score/SysScoreMapper.xml
  97. 9
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_score/SysScoreRest.java
  98. 9
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_score/SysScoreService.java
  99. 9
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_student_score/SysStudentScoreMapper.java
  100. 4
      demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_student_score/SysStudentScoreMapper.xml

9
demo-common/demo-common-jdbc/src/main/java/com/yxt/demo/common/jdbc/service/MybatisBaseService.java

@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.HashMap;
import java.util.Map;
public class MybatisBaseService<M extends BaseMapper<T>, T> extends ServiceImpl<M, T> {
@ -12,4 +15,10 @@ public class MybatisBaseService<M extends BaseMapper<T>, T> extends ServiceImpl<
qw.eq("sid", sid);
return baseMapper.selectOne(qw);
}
public int deleteBySid(String sid) {
Map<String, Object> map = new HashMap<>();
map.put("sid", sid);
return baseMapper.deleteByMap(map);
}
}

61
demo-common/demo-common-jdbc/src/main/java/com/yxt/demo/common/jdbc/service/PagerUtil.java

@ -0,0 +1,61 @@
package com.yxt.demo.common.jdbc.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yxt.demo.common.core.query.PagerQuery;
import com.yxt.demo.common.core.vo.PagerVo;
import com.yxt.demo.common.core.vo.Vo;
import java.util.ArrayList;
/**
* Project: jbsc-commons <br/>
* File: PagerUtil.java <br/>
* Class: org.jbase.jbsc.commons.base.utils.PagerUtil <br/>
* Description: <描述类的功能>. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2020/9/22 上午9:35 <br/>
*
* @author popo
* @version 1.0
* @since 1.0
*/
public abstract class PagerUtil {
public static <T> IPage<T> queryToPage(PagerQuery pq) {
IPage<T> page = new Page<>();
page.setSize(pq.getSize()).setCurrent(pq.getCurrent());
return page;
}
public static <V, T> PagerVo<V> pageToVo(IPage pr, PagerVo<V> pv) {
if (pv == null) {
pv = new PagerVo<V>();
}
pv.setCurrent(pr.getCurrent()).setSize(pr.getSize())
.setTotal(pr.getTotal()).setPages(pr.getPages())
.setRecords(pr.getRecords());
return pv;
}
/**
* 转换pagerVo
*
* @param soure
* @return
*/
public static <S extends Vo, T extends Vo> PagerVo<T> switchPagerVo(
PagerVo<S> soure) {
if (soure == null) {
return null;
}
PagerVo<T> target = new PagerVo<>();
target.setCurrent(soure.getCurrent()).setPages(soure.getPages())
.setSize(soure.getSize()).setTotal(soure.getTotal());
target.setRecords(new ArrayList<T>());
return target;
}
}

12
demo-common/demo-common-utils/pom.xml

@ -47,6 +47,18 @@
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
</dependency>
</dependencies>

189
demo-common/demo-common-utils/src/main/java/com/yxt/demo/common/utils/allutils/Encodes.java

@ -0,0 +1,189 @@
package com.yxt.demo.common.utils.allutils;
import org.apache.commons.codec.DecoderException;
import org.apache.commons.codec.binary.Hex;
import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.tomcat.util.codec.binary.Base64;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
* 封装各种格式的编码解码工具类. 1.Commons-Codec的 hex/base64 编码 2.自制的base62 编码
* 3.Commons-Lang的xml/html escape 4.JDK提供的URLEncoder
*
* @author dimengzhe
* @date 2020/9/11 13:38
* @description 编码解码工具类
*/
public class Encodes {
private static final String DEFAULT_URL_ENCODING = "UTF-8";
private static final char[] BASE62 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".toCharArray();
private static final String SALT = "jlzx@yxt?";
/**
* Hex编码.
*/
public static String encodeHex(byte[] input) {
return new String(Hex.encodeHex(input));
}
/**
* Hex解码.
*/
public static byte[] decodeHex(String input) {
try {
return Hex.decodeHex(input.toCharArray());
} catch (DecoderException e) {
throw Exceptions.unchecked(e);
}
}
/**
* Base64编码.
*/
public static String encodeBase64(byte[] input) {
return new String(Base64.encodeBase64(input));
}
/**
* Base64编码.
*/
public static String encodeBase64(String input) {
try {
return new String(Base64.encodeBase64(input.getBytes(DEFAULT_URL_ENCODING)));
} catch (UnsupportedEncodingException e) {
return "";
}
}
/**
* Base64解码.
*/
public static byte[] decodeBase64(String input) {
return Base64.decodeBase64(input.getBytes());
}
/**
* Base64解码.
*/
public static String decodeBase64String(String input) {
try {
return new String(Base64.decodeBase64(input.getBytes()), DEFAULT_URL_ENCODING);
} catch (UnsupportedEncodingException e) {
return "";
}
}
/**
* Base62编码
*/
public static String encodeBase62(byte[] input) {
char[] chars = new char[input.length];
for (int i = 0; i < input.length; i++) {
chars[i] = BASE62[((input[i] & 0xFF) % BASE62.length)];
}
return new String(chars);
}
/**
* Html 转码.
*/
public static String escapeHtml(String html) {
return StringEscapeUtils.escapeHtml4(html);
}
/**
* Html 解码.
*/
public static String unescapeHtml(String htmlEscaped) {
return StringEscapeUtils.unescapeHtml4(htmlEscaped);
}
/**
* Xml 转码.
*/
public static String escapeXml(String xml) {
return StringEscapeUtils.escapeXml10(xml);
}
/**
* Xml 解码.
*/
public static String unescapeXml(String xmlEscaped) {
return StringEscapeUtils.unescapeXml(xmlEscaped);
}
/**
* URL 编码, Encode默认为UTF-8.
*/
public static String urlEncode(String part) {
try {
return URLEncoder.encode(part, DEFAULT_URL_ENCODING);
} catch (UnsupportedEncodingException e) {
throw Exceptions.unchecked(e);
}
}
/**
* URL 解码, Encode默认为UTF-8.
*/
public static String urlDecode(String part) {
try {
return URLDecoder.decode(part, DEFAULT_URL_ENCODING);
} catch (UnsupportedEncodingException e) {
throw Exceptions.unchecked(e);
}
}
public static String md5(String str) {
return digest("MD5", str + SALT);
}
public static String sha1(CharSequence cs) {
return digest("SHA1", cs);
}
public static String digest(String algorithm, CharSequence cs) {
return digest(algorithm, StringUtils.getBytesUTF8(null == cs ? "" : cs), null, 1);
}
public static String digest(String algorithm, byte[] bytes, byte[] salt, int iterations) {
try {
MessageDigest md = MessageDigest.getInstance(algorithm);
if (salt != null) {
md.update(salt);
}
byte[] hashBytes = md.digest(bytes);
for (int i = 1; i < iterations; i++) {
md.reset();
hashBytes = md.digest(hashBytes);
}
return fixedHexString(hashBytes);
} catch (NoSuchAlgorithmException e) {
throw Exceptions.unchecked(e);
}
}
public static String fixedHexString(byte[] hashBytes) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < hashBytes.length; i++) {
sb.append(Integer.toString((hashBytes[i] & 0xFF) + 256, 16).substring(1));
}
return sb.toString();
}
public static String md5(String str, boolean isShort) {
if (isShort) {
return md5(str).substring(8, 24);
}
return md5(str);
}
}

74
demo-common/demo-common-utils/src/main/java/com/yxt/demo/common/utils/allutils/Exceptions.java

@ -0,0 +1,74 @@
package com.yxt.demo.common.utils.allutils;
import javax.servlet.http.HttpServletRequest;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.lang.reflect.InvocationTargetException;
/**
* 关于异常的工具类.
*
* @author dimengzhe
* @date 2020/9/11 13:44
* @description
*/
public class Exceptions {
/**
* 将CheckedException转换为UncheckedException.
*/
public static RuntimeException unchecked(Throwable e) {
if ((e instanceof RuntimeException)) {
return (RuntimeException) e;
}
if ((e instanceof InvocationTargetException)) {
return unchecked(((InvocationTargetException) e).getTargetException());
}
return new RuntimeException(e);
}
/**
* 将ErrorStack转化为String.
*/
public static String getStackTraceAsString(Throwable e) {
if (e == null) {
return "";
}
StringWriter stringWriter = new StringWriter();
e.printStackTrace(new PrintWriter(stringWriter));
return stringWriter.toString();
}
/**
* 判断异常是否由某些底层的异常引起.
*/
public static boolean isCausedBy(Exception ex, Class<? extends Exception>... causeExceptionClasses) {
Throwable cause = ex.getCause();
while (cause != null) {
for (Class<? extends Exception> causeClass : causeExceptionClasses) {
if (causeClass.isInstance(cause)) {
return true;
}
}
cause = cause.getCause();
}
return false;
}
/**
* 在request中获取异常类
*
* @param request
* @return
*/
public static Throwable getThrowable(HttpServletRequest request) {
Throwable ex = null;
if (request.getAttribute("exception") != null) {
ex = (Throwable) request.getAttribute("exception");
} else if (request.getAttribute("javax.servlet.error.exception") != null) {
ex = (Throwable) request.getAttribute("javax.servlet.error.exception");
}
return ex;
}
}

395
demo-common/demo-common-utils/src/main/java/com/yxt/demo/common/utils/allutils/StringUtils.java

@ -0,0 +1,395 @@
package com.yxt.demo.common.utils.allutils;
import org.apache.commons.lang3.StringEscapeUtils;
import javax.servlet.http.HttpServletRequest;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author dimengzhe
* @date 2020/9/18 9:35
* @description
*/
public class StringUtils extends org.apache.commons.lang3.StringUtils {
private static final char SEPARATOR = '_';
private static final String CHARSET_NAME = "UTF-8";
public static boolean isNull(Object obj) {
return obj == null;
}
public static boolean isNotNull(Object obj) {
return !isNull(obj);
}
/**
* 转换为字节数组
*
* @param str 字符串
* @return
*/
public static byte[] getBytes(String str) {
if (str != null) {
try {
return str.getBytes(CHARSET_NAME);
} catch (UnsupportedEncodingException e) {
return null;
}
} else {
return null;
}
}
/**
* 转换为字节数组
*
* @param bytes
* @return
*/
public static String toString(byte[] bytes) {
try {
return new String(bytes, CHARSET_NAME);
} catch (UnsupportedEncodingException e) {
return EMPTY;
}
}
/**
* 是否包含字符串
*
* @param str 验证字符串
* @param strs 字符串组
* @return 包含返回true
*/
public static boolean inString(String str, String... strs) {
if (str != null) {
for (String s : strs) {
if (str.equals(trim(s))) {
return true;
}
}
}
return false;
}
/**
* 替换掉HTML标签方法
*/
public static String replaceHtml(String html) {
if (isBlank(html)) {
return "";
}
String regEx = "<.+?>";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(html);
String s = m.replaceAll("");
return s;
}
/**
* 替换为手机识别的HTML去掉样式及属性保留回车
*
* @param html
* @return
*/
public static String replaceMobileHtml(String html) {
if (html == null) {
return "";
}
return html.replaceAll("<([a-z]+?)\\s+?.*?>", "<$1>");
}
/**
* 替换为手机识别的HTML去掉样式及属性保留回车
*
* @param txt
* @return
*/
public static String toHtml(String txt) {
if (txt == null) {
return "";
}
return replace(replace(Encodes.escapeHtml(txt), "\n", "<br/>"), "\t", "&nbsp; &nbsp; ");
}
/**
* 缩略字符串不区分中英文字符
*
* @param str 目标字符串
* @param length 截取长度
* @return
*/
public static String abbr(String str, int length) {
if (str == null) {
return "";
}
try {
StringBuilder sb = new StringBuilder();
int currentLength = 0;
for (char c : replaceHtml(StringEscapeUtils.unescapeHtml4(str)).toCharArray()) {
currentLength += String.valueOf(c).getBytes("GBK").length;
if (currentLength <= length - 3) {
sb.append(c);
} else {
sb.append("...");
break;
}
}
return sb.toString();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return "";
}
public static String abbr2(String param, int length) {
if (param == null) {
return "";
}
StringBuffer result = new StringBuffer();
int n = 0;
char temp;
boolean isCode = false; // 是不是HTML代码
boolean isHTML = false; // 是不是HTML特殊字符,如&nbsp;
for (int i = 0; i < param.length(); i++) {
temp = param.charAt(i);
if (temp == '<') {
isCode = true;
} else if (temp == '&') {
isHTML = true;
} else if (temp == '>' && isCode) {
n = n - 1;
isCode = false;
} else if (temp == ';' && isHTML) {
isHTML = false;
}
try {
if (!isCode && !isHTML) {
n += String.valueOf(temp).getBytes("GBK").length;
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
if (n <= length - 3) {
result.append(temp);
} else {
result.append("...");
break;
}
}
// 取出截取字符串中的HTML标记
String temp_result = result.toString().replaceAll("(>)[^<>]*(<?)", "$1$2");
// 去掉不需要结素标记的HTML标记
temp_result = temp_result.replaceAll(
"</?(AREA|BASE|BASEFONT|BODY|BR|COL|COLGROUP|DD|DT|FRAME|HEAD|HR|HTML|IMG|INPUT|ISINDEX|LI|LINK|META|OPTION|P|PARAM|TBODY|TD|TFOOT|TH|THEAD|TR|area|base|basefont|body|br|col|colgroup|dd|dt|frame|head|hr|html|img|input|isindex|li|link|meta|option|p|param|tbody|td|tfoot|th|thead|tr)[^<>]*/?>",
"");
// 去掉成对的HTML标记
temp_result = temp_result.replaceAll("<([a-zA-Z]+)[^<>]*>(.*?)</\\1>", "$2");
// 用正则表达式取出标记
Pattern p = Pattern.compile("<([a-zA-Z]+)[^<>]*>");
Matcher m = p.matcher(temp_result);
List<String> endHTML = new ArrayList<String>();
while (m.find()) {
endHTML.add(m.group(1));
}
// 补全不成对的HTML标记
for (int i = endHTML.size() - 1; i >= 0; i--) {
result.append("</");
result.append(endHTML.get(i));
result.append(">");
}
return result.toString();
}
/**
* 转换为Double类型
*/
public static Double toDouble(Object val) {
if (val == null) {
return 0D;
}
try {
return Double.valueOf(trim(val.toString()));
} catch (Exception e) {
return 0D;
}
}
/**
* 转换为Float类型
*/
public static Float toFloat(Object val) {
return toDouble(val).floatValue();
}
/**
* 转换为Long类型
*/
public static Long toLong(Object val) {
return toDouble(val).longValue();
}
/**
* 转换为Integer类型
*/
public static Integer toInteger(Object val) {
return toLong(val).intValue();
}
/**
* 转换为BigDecimal类型
*/
public static BigDecimal toBigDecimal(String val) {
if (StringUtils.isBlank(val)) {
return null;
}
BigDecimal bd = new BigDecimal(val);
return bd;
}
/**
* 获得用户远程地址
*/
public static String getRemoteAddr(HttpServletRequest request) {
String remoteAddr = request.getHeader("X-Real-IP");
if (isNotBlank(remoteAddr)) {
remoteAddr = request.getHeader("X-Forwarded-For");
} else if (isNotBlank(remoteAddr)) {
remoteAddr = request.getHeader("Proxy-Client-IP");
} else if (isNotBlank(remoteAddr)) {
remoteAddr = request.getHeader("WL-Proxy-Client-IP");
}
return remoteAddr != null ? remoteAddr : request.getRemoteAddr();
}
/**
* 驼峰命名法工具
*
* @return toCamelCase(" hello_world ") == "helloWorld"
* toCapitalizeCamelCase("hello_world") == "HelloWorld"
* toUnderScoreCase("helloWorld") = "hello_world"
*/
public static String toCamelCase(String s) {
if (s == null) {
return null;
}
s = s.toLowerCase();
StringBuilder sb = new StringBuilder(s.length());
boolean upperCase = false;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == SEPARATOR) {
upperCase = true;
} else if (upperCase) {
sb.append(Character.toUpperCase(c));
upperCase = false;
} else {
sb.append(c);
}
}
return sb.toString();
}
/**
* 驼峰命名法工具
*
* @return toCamelCase(" hello_world ") == "helloWorld"
* toCapitalizeCamelCase("hello_world") == "HelloWorld"
* toUnderScoreCase("helloWorld") = "hello_world"
*/
public static String toCapitalizeCamelCase(String s) {
if (s == null) {
return null;
}
s = toCamelCase(s);
return s.substring(0, 1).toUpperCase() + s.substring(1);
}
/**
* 驼峰命名法工具
*
* @return toCamelCase(" hello_world ") == "helloWorld"
* toCapitalizeCamelCase("hello_world") == "HelloWorld"
* toUnderScoreCase("helloWorld") = "hello_world"
*/
public static String toUnderScoreCase(String s) {
if (s == null) {
return null;
}
StringBuilder sb = new StringBuilder();
boolean upperCase = false;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
boolean nextUpperCase = true;
if (i < (s.length() - 1)) {
nextUpperCase = Character.isUpperCase(s.charAt(i + 1));
}
if ((i > 0) && Character.isUpperCase(c)) {
if (!upperCase || !nextUpperCase) {
sb.append(SEPARATOR);
}
upperCase = true;
} else {
upperCase = false;
}
sb.append(Character.toLowerCase(c));
}
return sb.toString();
}
/**
* 如果不为空则设置值
*
* @param target
* @param source
*/
public static void setValueIfNotBlank(String target, String source) {
if (isNotBlank(source)) {
target = source;
}
}
/**
* 转换为JS获取对象值生成三目运算返回结果
*
* @param objectString 对象串 例如row.user.id
* 返回!row?'':!row.user?'':!row.user.id?'':row.user.id
*/
public static String jsGetVal(String objectString) {
StringBuilder result = new StringBuilder();
StringBuilder val = new StringBuilder();
String[] vals = split(objectString, ".");
for (int i = 0; i < vals.length; i++) {
val.append("." + vals[i]);
result.append("!" + (val.substring(1)) + "?'':");
}
result.append(val.substring(1));
return result.toString();
}
public static byte[] getBytesUTF8(CharSequence cs) {
try {
return cs.toString().getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
throw Exceptions.unchecked(e);
}
}
}

52
demo-common/demo-common-utils/src/main/java/com/yxt/demo/common/utils/jwt/JWTUtil.java

@ -0,0 +1,52 @@
package com.yxt.demo.common.utils.jwt;
import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.interfaces.DecodedJWT;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import java.util.Date;
@Data
@Slf4j
public class JWTUtil {
private static final String TOKEN_SECRET = "yXtJLzxh2bGciO5iJIUzI1NiJ9";
private static final String ISS = "WBK";
private static final String USERNO = "userNo";
private static final Long TIME = 24 * 3600 * 1000L; // 1天
//创建Token
public static String create(String userNo) {
try {
return JWT
.create()
.withIssuer(ISS)
.withClaim(USERNO, userNo)
.withExpiresAt(new Date(System.currentTimeMillis() + TIME))
.sign(Algorithm.HMAC256(TOKEN_SECRET));
} catch (Exception e) {
log.error("JWT生成失败", e);
return e.getMessage();
}
}
//解析Token
public static DecodedJWT verify(String token) throws Exception {
return JWT
.require(Algorithm.HMAC256(TOKEN_SECRET))
.withIssuer(ISS)
.build()
.verify(token);
}
//根据解析生成的Token返回userNo
public static Long getUserNo(DecodedJWT decodedJWT) {
return Long.parseLong(decodedJWT.getClaim(USERNO).asString());
}
public static String getUserSid(DecodedJWT decodedJWT) {
return decodedJWT.getClaim(USERNO).asString();
}
}

2
demo-gateway/src/main/resources/application.yml

@ -7,7 +7,7 @@ hystrix:
thread:
timeoutInMilliseconds: 300000
server:
port: 8111
port: 9111
spring:
application:
name: gateway-server

2
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/dict_common/DictCommon.java

@ -20,4 +20,6 @@ public class DictCommon extends BaseEntity {
private String dictKey;
@ApiModelProperty("value")
private String dictValue;
@ApiModelProperty("父级sid")
private String parentSid;
}

34
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/dict_common/DictCommonDto.java

@ -0,0 +1,34 @@
package com.yxt.demo.system.api.dict_common;
import com.yxt.demo.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2023/4/24 15:34
* @Description
*/
@Data
public class DictCommonDto implements Dto {
private String sid;
@ApiModelProperty(value = "数据项值", required = true)
@NotBlank(message = "数据项值不能为空")
private String dictKey;
@ApiModelProperty(value = "数据类型", required = true)
@NotBlank(message = "数据类型不能为空")
private String dictType;
@ApiModelProperty(value = "数据项相对应的value值", required = true)
@NotBlank(message = "数据项相对应的value值不能为空")
private String dictValue;
@ApiModelProperty(value = "数据项的父级sid", required = true)
@NotBlank(message = "数据项的父级sid不能为空")
private String parentSid;
}

45
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/dict_common/DictCommonFeign.java

@ -0,0 +1,45 @@
package com.yxt.demo.system.api.dict_common;
import com.yxt.demo.common.core.query.PagerQuery;
import com.yxt.demo.common.core.result.ResultBean;
import com.yxt.demo.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:16
* @Description
*/
@Api(tags = "数据字典数据项")
@FeignClient(
contextId = "demo-system-DictCommon",
name = "demo-system",
path = "v1/DictCommon",
fallback = DictCommonFeignFallback.class)
public interface DictCommonFeign {
@PostMapping(value = "/save")
@ApiOperation(value = "数据字典数据项保存")
ResultBean save(@Valid @RequestBody DictCommonDto dictCommonDto);
@DeleteMapping("/delete/{sid}")
@ApiOperation(value = "删除")
ResultBean delete(@ApiParam(value = "数据项sid", required = true) @PathVariable("sid") String sid);
@PostMapping("/pageList")
@ApiOperation(value = "数据字典数据项分页列表")
ResultBean<PagerVo<DictCommonVo>> pageList(@RequestBody PagerQuery<DictCommonQuery> pagerQuery);
@GetMapping("/typeValues")
@ApiOperation("下拉框的获取")
ResultBean<List<DictCommonVo>> getTypeValues(@RequestParam("type") String type, @RequestParam(value = "psid", defaultValue = "0") String psid);
}

9
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/dict_common/DictCommonFeignFallback.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.api.dict_common;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:46
* @Description
*/
public class DictCommonFeignFallback {
}

24
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/dict_common/DictCommonQuery.java

@ -0,0 +1,24 @@
package com.yxt.demo.system.api.dict_common;
import com.yxt.demo.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2023/4/24 16:20
* @Description
*/
@Data
public class DictCommonQuery implements Query {
private static final long serialVersionUID = 6235063340152975098L;
@ApiModelProperty(value = "数据字典条目key", required = false)
private String dictKey;
@ApiModelProperty(value = "数据字典文本", required = false)
private String dictValue;
@ApiModelProperty(value = "dictType")
private String dictType;
}

21
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/dict_common/DictCommonTypeQuery.java

@ -0,0 +1,21 @@
package com.yxt.demo.system.api.dict_common;
import com.yxt.demo.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author dimengzhe
* @date 2021/9/30 15:33
* @description 下拉框条件
*/
@Data
public class DictCommonTypeQuery implements Query {
private static final long serialVersionUID = 139959085226402464L;
@ApiModelProperty(value = "数据字典类型", required = true)
private String type;
@ApiModelProperty(value = "psid", required = false, example = "0")
private String psid;
}

29
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/dict_common/DictCommonVo.java

@ -0,0 +1,29 @@
package com.yxt.demo.system.api.dict_common;
import com.yxt.demo.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2023/4/24 16:19
* @Description
*/
@Data
public class DictCommonVo implements Vo {
private static final long serialVersionUID = 5516430679944504663L;
@ApiModelProperty(value = "数据字典项key")
private String dictKey;
@ApiModelProperty(value = "数据字典类型")
private String dictType;
@ApiModelProperty(value = "数据字典项名称")
private String dictValue;
@ApiModelProperty(value = "父级sid:0为第一级")
private String parentSid;
private String sid;
}

4
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/dict_type/DictType.java

@ -17,8 +17,4 @@ public class DictType extends BaseEntity {
private String dictTypeCode;
@ApiModelProperty("类型名称")
private String dictTypeName;
@ApiModelProperty("级别")
private String dictTypeLevel;
@ApiModelProperty("名称")
private String name;
}

30
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/dict_type/DictTypeDto.java

@ -0,0 +1,30 @@
package com.yxt.demo.system.api.dict_type;
import com.yxt.demo.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2023/4/24 16:48
* @Description
*/
@Data
public class DictTypeDto implements Dto {
private static final long serialVersionUID = -7638091202643596231L;
@ApiModelProperty(value = "类型代码", required = true)
@NotBlank(message = "类型代码不能为空")
private String dictTypeCode;
@ApiModelProperty(value = "类型名称", required = true)
@NotBlank(message = "类型名称不能为空")
private String dictTypeName;
@ApiModelProperty(value = "类型说明", required = false)
private String remarks;
private String sid;
}

40
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/dict_type/DictTypeFeign.java

@ -0,0 +1,40 @@
package com.yxt.demo.system.api.dict_type;
import com.yxt.demo.common.core.query.PagerQuery;
import com.yxt.demo.common.core.result.ResultBean;
import com.yxt.demo.common.core.vo.PagerVo;
import com.yxt.demo.system.api.dict_common.DictCommonFeignFallback;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:21
* @Description
*/
@Api(tags = "数据字典数据项")
@FeignClient(
contextId = "demo-system-DictType",
name = "demo-system",
path = "v1/DictType",
fallback = DictTypeFeignFallback.class)
public interface DictTypeFeign {
@PostMapping(value = "/save")
@ResponseBody
@ApiOperation(value = "数据字典类型保存")
ResultBean save(@Valid @RequestBody DictTypeDto dictTypeDto);
@PostMapping("/pageList")
@ApiOperation(value = "数据字典类型分页列表")
ResultBean<PagerVo<DictTypeVo>> pageList(@RequestBody PagerQuery<DictTypeQuery> pagerQuery);
@DeleteMapping("/delete/{sid}")
@ApiOperation(value = "数据字典类型删除")
ResultBean delete(@ApiParam(value = "sid", required = true) @PathVariable("sid") String sid);
}

9
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/dict_type/DictTypeFeignFallback.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.api.dict_type;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:47
* @Description
*/
public class DictTypeFeignFallback {
}

23
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/dict_type/DictTypeQuery.java

@ -0,0 +1,23 @@
package com.yxt.demo.system.api.dict_type;
import com.yxt.demo.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2023/4/24 17:15
* @Description
*/
@Data
public class DictTypeQuery implements Query {
@ApiModelProperty(value = "数据字典code", required = false)
private String dictTypeCode;
@ApiModelProperty(value = "数据分类名称", required = false)
private String dictTypeName;
@ApiModelProperty(value = "说明", required = false)
private String remarks;
}

27
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/dict_type/DictTypeVo.java

@ -0,0 +1,27 @@
package com.yxt.demo.system.api.dict_type;
import com.yxt.demo.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2023/4/24 17:16
* @Description
*/
@Data
public class DictTypeVo implements Vo {
private static final long serialVersionUID = -3404457483419237424L;
@ApiModelProperty(value = "数据类型sid")
private String sid;
@ApiModelProperty(value = "类型代码")
private String dictTypeCode;
@ApiModelProperty(value = "类型名称")
private String dictTypeName;
@ApiModelProperty(value = "说明")
private String remarks;
}

21
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_forum/SysForumFeign.java

@ -0,0 +1,21 @@
package com.yxt.demo.system.api.sys_forum;
import com.yxt.demo.system.api.dict_type.DictTypeFeignFallback;
import io.swagger.annotations.Api;
import org.springframework.cloud.openfeign.FeignClient;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:21
* @Description
*/
@Api(tags = "论坛")
@FeignClient(
contextId = "demo-system-SysForum",
name = "demo-system",
path = "v1/sysforum",
fallback = SysForumFeignFallback.class)
public interface SysForumFeign {
}

9
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_forum/SysForumFeignFallback.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.api.sys_forum;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:47
* @Description
*/
public class SysForumFeignFallback {
}

19
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_forum_comment/SysForumCommentFeign.java

@ -0,0 +1,19 @@
package com.yxt.demo.system.api.sys_forum_comment;
import com.yxt.demo.system.api.sys_forum.SysForumFeignFallback;
import io.swagger.annotations.Api;
import org.springframework.cloud.openfeign.FeignClient;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:22
* @Description
*/
@Api(tags = "论坛评论")
@FeignClient(
contextId = "demo-system-SysForumComment",
name = "demo-system",
path = "v1/SysForumComment",
fallback = SysForumCommentFeignFallback.class)
public interface SysForumCommentFeign {
}

9
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_forum_comment/SysForumCommentFeignFallback.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.api.sys_forum_comment;
/**
* @Author dimengzhe
* @Date 2023/4/24 15:25
* @Description
*/
public class SysForumCommentFeignFallback {
}

19
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_info/SysInfoFeign.java

@ -0,0 +1,19 @@
package com.yxt.demo.system.api.sys_info;
import com.yxt.demo.system.api.sys_user.SysUserFeignFallback;
import io.swagger.annotations.Api;
import org.springframework.cloud.openfeign.FeignClient;
/**
* @Author dimengzhe
* @Date 2023/4/24 11:50
* @Description
*/
@Api(tags = "基础信息")
@FeignClient(
contextId = "demo-system-SysInfo",
name = "demo-system",
path = "v1/sysinfo",
fallback = SysInfoFeignFallback.class)
public interface SysInfoFeign {
}

12
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_info/SysInfoFeignFallback.java

@ -0,0 +1,12 @@
package com.yxt.demo.system.api.sys_info;
import org.springframework.stereotype.Component;
/**
* @Author dimengzhe
* @Date 2023/4/24 11:53
* @Description
*/
@Component
public class SysInfoFeignFallback {
}

19
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_menu/SysMenuFeign.java

@ -0,0 +1,19 @@
package com.yxt.demo.system.api.sys_menu;
import com.yxt.demo.system.api.sys_info.SysInfoFeignFallback;
import io.swagger.annotations.Api;
import org.springframework.cloud.openfeign.FeignClient;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:08
* @Description
*/
@Api(tags = "菜单表")
@FeignClient(
contextId = "demo-system-SysMenu",
name = "demo-system",
path = "v1/sysmenu",
fallback = SysMenuFeignFallback.class)
public interface SysMenuFeign {
}

12
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_menu/SysMenuFeignFallback.java

@ -0,0 +1,12 @@
package com.yxt.demo.system.api.sys_menu;
import org.springframework.stereotype.Component;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:09
* @Description
*/
@Component
public class SysMenuFeignFallback {
}

9
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_notice/SysNoticeFeign.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.api.sys_notice;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:23
* @Description
*/
public interface SysNoticeFeign {
}

9
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_plan/SysPlanFeign.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.api.sys_plan;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:24
* @Description
*/
public interface SysPlanFeign {
}

9
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_plan_schedule/SysPlanScheduleFeign.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.api.sys_plan_schedule;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:25
* @Description
*/
public interface SysPlanScheduleFeign {
}

9
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_resources/SysResourcesFeign.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.api.sys_resources;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:26
* @Description
*/
public interface SysResourcesFeign {
}

9
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_role/SysRoleFeign.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.api.sys_role;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:27
* @Description
*/
public interface SysRoleFeign {
}

9
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_score/SysScoreFeign.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.api.sys_score;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:28
* @Description
*/
public interface SysScoreFeign {
}

16
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_student_score/SysStudentScore.java

@ -1,6 +1,7 @@
package com.yxt.demo.system.api.sys_student_score;
import com.yxt.demo.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
@ -12,21 +13,22 @@ import lombok.Data;
public class SysStudentScore extends BaseEntity {
private static final long serialVersionUID = -3123378722999542918L;
@ApiModelProperty("类别")
private String type;
private String typeKey;
@ApiModelProperty("学号")
private String studentNo;
@ApiModelProperty("四级")
private String fourScore;
@ApiModelProperty("六级")
private String sixScore;
@ApiModelProperty("计算机成绩")
private String computerScore;
@ApiModelProperty("是否就业:1是,0否")
private int employment;
@ApiModelProperty("是否升学")
private int enterSchool;
@ApiModelProperty("是否考公通过")
private int kaoGong;
}

9
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_student_score/SysStudentScoreFeign.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.api.sys_student_score;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:29
* @Description
*/
public interface SysStudentScoreFeign {
}

14
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_user/SysUser.java

@ -1,6 +1,7 @@
package com.yxt.demo.system.api.sys_user;
import com.yxt.demo.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
@ -11,15 +12,18 @@ import lombok.Data;
@Data
public class SysUser extends BaseEntity {
private static final long serialVersionUID = -4151693504419808527L;
@ApiModelProperty("用户名工号")
private String userName;
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("昵称")
private String nickName;
@ApiModelProperty("密码")
private String password;
@ApiModelProperty("基础信息sid")
private String infoSid;
@ApiModelProperty("类型:0学生、1教师、2管理员")
private int type;
@ApiModelProperty("是否已激活:0未激活,1已激活")
private int hasActivated;
}

35
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_user/SysUserDto.java

@ -0,0 +1,35 @@
package com.yxt.demo.system.api.sys_user;
import com.yxt.demo.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2023/4/24 11:28
* @Description
*/
@Data
public class SysUserDto implements Dto {
private static final long serialVersionUID = 2068661415449582838L;
@ApiModelProperty("学号")
@NotBlank(message = "学号不能为空")
private String userName;
@ApiModelProperty("姓名")
@NotBlank(message = "姓名不能为空")
private String name;
@ApiModelProperty("密码")
@NotBlank(message = "密码不能为空")
private String password;
@ApiModelProperty("确认密码")
@NotBlank(message = "确认密码不能为空")
private String confirmPassword;
@ApiModelProperty("手机号")
@NotBlank(message = "手机号不能为空")
private String mobile;
}

34
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_user/SysUserFeign.java

@ -0,0 +1,34 @@
package com.yxt.demo.system.api.sys_user;
import com.yxt.demo.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
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.ResponseBody;
/**
* @Author dimengzhe
* @Date 2023/4/24 11:26
* @Description
*/
@Api(tags = "用户表")
@FeignClient(
contextId = "demo-system-SysUser",
name = "demo-system",
path = "v1/sysuser",
fallback = SysUserFeignFallback.class)
public interface SysUserFeign {
@ApiOperation(value = "学生注册")
@PostMapping("/register")
ResultBean register(@RequestBody SysUserDto dto);
@ApiOperation(value = "登录")
@PostMapping("/login")
ResultBean login(@RequestBody SysUserLoginQuery query);
}

12
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_user/SysUserFeignFallback.java

@ -0,0 +1,12 @@
package com.yxt.demo.system.api.sys_user;
import org.springframework.stereotype.Component;
/**
* @Author dimengzhe
* @Date 2023/4/24 11:28
* @Description
*/
@Component
public class SysUserFeignFallback {
}

20
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_user/SysUserLoginQuery.java

@ -0,0 +1,20 @@
package com.yxt.demo.system.api.sys_user;
import com.yxt.demo.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2023/4/24 13:36
* @Description
*/
@Data
public class SysUserLoginQuery implements Query {
private static final long serialVersionUID = 4963834204184842445L;
@ApiModelProperty("工号")
private String userName;
@ApiModelProperty("密码")
private String password;
}

5
demo-system/demo-system-api/src/main/java/com/yxt/demo/system/api/sys_user_role/SysUserRole.java

@ -1,6 +1,7 @@
package com.yxt.demo.system.api.sys_user_role;
import com.yxt.demo.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
@ -11,8 +12,8 @@ import lombok.Data;
@Data
public class SysUserRole extends BaseEntity {
private static final long serialVersionUID = 1275775509946006356L;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("角色sid")
private String roleSid;
}

5
demo-system/demo-system-biz/pom.xml

@ -43,6 +43,11 @@
<artifactId>demo-common-jdbc</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.yxt.demo</groupId>
<artifactId>demo-common-utils</artifactId>
<version>0.0.1</version>
</dependency>
</dependencies>

28
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/dict_common/DictCommonMapper.java

@ -0,0 +1,28 @@
package com.yxt.demo.system.biz.dict_common;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.demo.system.api.dict_common.DictCommon;
import com.yxt.demo.system.api.dict_common.DictCommonVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:17
* @Description
*/
@Mapper
public interface DictCommonMapper extends BaseMapper<DictCommon> {
DictCommon selectSize(@Param("dictKey") String dictKey, @Param("dictType") String dictType, @Param("parentSid") String parentSid);
IPage<DictCommonVo> listPageVo(IPage<DictCommon> page, @Param(Constants.WRAPPER) QueryWrapper<DictCommon> qw);
List<DictCommonVo> getValue(@Param(Constants.WRAPPER) QueryWrapper<DictCommonVo> qw);
List<DictCommon> selectByType(String dictTypeCode);
}

33
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/dict_common/DictCommonMapper.xml

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yxt.demo.system.biz.dict_common.DictCommonMapper">
<select id="selectSize" resultType="com.yxt.demo.system.api.dict_common.DictCommon">
SELECT *
FROM dict_common
WHERE dictKey = #{dictKey}
AND dictType = #{dictType}
AND parentSid = #{parentSid}
</select>
<select id="listPageVo" resultType="com.yxt.demo.system.api.dict_common.DictCommonVo">
select *
from dict_common
<where>
${ew.sqlSegment}
</where>
</select>
<select id="getValue" resultType="com.yxt.demo.system.api.dict_common.DictCommonVo">
SELECT dc.sid, dc.dictType, dc.dictKey, dc.dictValue, dc.parentSid
FROM dict_common dc
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectByType" resultType="com.yxt.demo.system.api.dict_common.DictCommon">
select *
from dict_common
where dictType = #{dictTypeCode}
</select>
</mapper>

58
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/dict_common/DictCommonRest.java

@ -0,0 +1,58 @@
package com.yxt.demo.system.biz.dict_common;
import com.yxt.demo.common.core.query.PagerQuery;
import com.yxt.demo.common.core.result.ResultBean;
import com.yxt.demo.common.core.vo.PagerVo;
import com.yxt.demo.system.api.dict_common.*;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Collections;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:16
* @Description
*/
@Api(tags = "数据字典数据项")
@RestController
@RequestMapping("v1/DictCommon")
public class DictCommonRest implements DictCommonFeign {
@Autowired
private DictCommonService dictCommonService;
@Override
public ResultBean save(DictCommonDto dictCommonDto) {
return dictCommonService.saveOrUpdates(dictCommonDto);
}
@Override
public ResultBean delete(String sid) {
return dictCommonService.delete(sid);
}
@Override
public ResultBean<PagerVo<DictCommonVo>> pageList(PagerQuery<DictCommonQuery> pagerQuery) {
ResultBean rb = ResultBean.fireFail();
PagerVo<DictCommonVo> pv = dictCommonService.listPageVo(pagerQuery);
return rb.success().setData(pv);
}
@Override
public ResultBean<List<DictCommonVo>> getTypeValues(String type, String psid) {
ResultBean<List<DictCommonVo>> rb = ResultBean.fireFail();
DictCommonTypeQuery query = new DictCommonTypeQuery();
query.setType(type);
query.setPsid(psid);
List<DictCommonVo> dictCommonVoList = dictCommonService.getValue(query);
dictCommonVoList.removeAll(Collections.singleton(null));
if (dictCommonVoList.isEmpty()) {
return rb.setMsg("该类型无数据项");
}
return rb.success().setData(dictCommonVoList);
}
}

114
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/dict_common/DictCommonService.java

@ -0,0 +1,114 @@
package com.yxt.demo.system.biz.dict_common;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.demo.common.core.query.PagerQuery;
import com.yxt.demo.common.core.result.ResultBean;
import com.yxt.demo.common.core.vo.PagerVo;
import com.yxt.demo.common.jdbc.service.MybatisBaseService;
import com.yxt.demo.common.jdbc.service.PagerUtil;
import com.yxt.demo.common.utils.convert.StringUtil;
import com.yxt.demo.system.api.dict_common.*;
import com.yxt.demo.system.api.sys_user.SysUser;
import com.yxt.demo.system.biz.dict_type.DictTypeService;
import com.yxt.demo.system.biz.sys_user.SysUserMapper;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:17
* @Description
*/
@Service
public class DictCommonService extends MybatisBaseService<DictCommonMapper, DictCommon> {
@Autowired
private DictTypeService dictTypeService;
public ResultBean saveOrUpdates(DictCommonDto dictCommonDto) {
ResultBean rb = ResultBean.fireFail();
//数据类型
String dictType = dictCommonDto.getDictType();
//数据项值
String dictKey = dictCommonDto.getDictKey();
//父级sid
String parentSid = dictCommonDto.getParentSid();
if (StringUtils.isBlank(dictCommonDto.getSid())) {
int size = dictTypeService.selectSize(dictType);
if (size > 0) {
//根据数据类型和数据项值查询是否已存在
DictCommon dc = baseMapper.selectSize(dictKey, dictType, parentSid);
if (dc != null) {
return rb.setMsg(dictType + "此类型的数据项已存在");
}
//新增
DictCommon dictCommon = new DictCommon();
BeanUtil.copyProperties(dictCommonDto, dictCommon, "sid");
baseMapper.insert(dictCommon);
} else {
return rb.setMsg("数据字典类型不存在");
}
} else {
int size = dictTypeService.selectSize(dictType);
if (size > 0) {
//根据数据类型和数据项值查询是否已存在
DictCommon dictCommon = fetchBySid(dictCommonDto.getSid());
if (dictCommon == null) {
return rb.setMsg(dictType + "此类型的数据项不存在");
} else {
if (!dictCommonDto.getSid().equals(dictCommon.getSid())) {
return rb.setMsg(dictType + "此类型的数据项已存在");
}
}
BeanUtil.copyProperties(dictCommonDto, dictCommon, "sid");
baseMapper.updateById(dictCommon);
} else {
return rb.setMsg("数据字典类型不存在");
}
}
return rb.success();
}
public ResultBean delete(String sid) {
ResultBean rb = ResultBean.fireFail();
DictCommon dictCommon = fetchBySid(sid);
if (dictCommon == null) {
return rb.setMsg("该数据项不存在");
}
deleteBySid(sid);
return rb.success();
}
public PagerVo<DictCommonVo> listPageVo(PagerQuery<DictCommonQuery> pagerQuery) {
IPage<DictCommon> page = PagerUtil.queryToPage(pagerQuery);
DictCommonQuery params = pagerQuery.getParams();
QueryWrapper<DictCommon> qw = new QueryWrapper<>();
if (params != null) {
}
IPage<DictCommonVo> pagging = baseMapper.listPageVo(page, qw);
PagerVo<DictCommonVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<DictCommonVo> getValue(DictCommonTypeQuery query) {
QueryWrapper<DictCommonVo> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getType())) {//类型
qw.eq("dc.dictType", query.getType());
}
if (StringUtils.isNotBlank(query.getPsid())) {//父级sid
qw.eq("dc.parentSid", query.getPsid());
}
return baseMapper.getValue(qw);
}
public List<DictCommon> selectByType(String dictTypeCode) {
return baseMapper.selectByType(dictTypeCode);
}
}

29
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/dict_type/DictTypeMapper.java

@ -0,0 +1,29 @@
package com.yxt.demo.system.biz.dict_type;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.demo.system.api.dict_common.DictCommon;
import com.yxt.demo.system.api.dict_type.DictType;
import com.yxt.demo.system.api.dict_type.DictTypeVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:20
* @Description
*/
@Mapper
public interface DictTypeMapper extends BaseMapper<DictType> {
/**
* 查询该类型代码存在的数量
*
* @param dictType 类型代码
* @return
*/
int selectSize(String dictType);
IPage<DictTypeVo> listPageVo(IPage<DictType> page, @Param(Constants.WRAPPER)QueryWrapper<DictType> qw);
}

17
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/dict_type/DictTypeMapper.xml

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yxt.demo.system.biz.dict_type.DictTypeMapper">
<select id="selectSize" resultType="int">
SELECT COUNT(*)
FROM dict_type
WHERE dictTypeCode = #{dictTypeCode}
</select>
<select id="listPageVo" resultType="com.yxt.demo.system.api.dict_type.DictTypeVo">
select *
from dict_type
<where>
${ew.sqlSegment}
</where>
</select>
</mapper>

61
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/dict_type/DictTypeRest.java

@ -0,0 +1,61 @@
package com.yxt.demo.system.biz.dict_type;
import com.yxt.demo.common.core.query.PagerQuery;
import com.yxt.demo.common.core.result.ResultBean;
import com.yxt.demo.common.core.vo.PagerVo;
import com.yxt.demo.system.api.dict_common.DictCommon;
import com.yxt.demo.system.api.dict_common.DictCommonVo;
import com.yxt.demo.system.api.dict_type.*;
import com.yxt.demo.system.biz.dict_common.DictCommonService;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:20
* @Description
*/
@Api(tags = "数据字典数据类型")
@RestController
@RequestMapping("v1/DictType")
public class DictTypeRest implements DictTypeFeign {
@Autowired
private DictTypeService dictTypeService;
@Autowired
private DictCommonService dictCommonService;
@Override
public ResultBean save(DictTypeDto dictTypeDto) {
return dictTypeService.saveOrUpdates(dictTypeDto);
}
@Override
public ResultBean<PagerVo<DictTypeVo>> pageList(PagerQuery<DictTypeQuery> pagerQuery) {
ResultBean rb = ResultBean.fireFail();
PagerVo<DictTypeVo> pv = dictTypeService.listPageVo(pagerQuery);
return rb.success().setData(pv);
}
@Override
public ResultBean delete(String sid) {
ResultBean rb = ResultBean.fireFail();
DictType dictType = dictTypeService.fetchBySid(sid);
if (null == dictType) {
return rb.setMsg("该数据字典类型不存在");
}
//查询该类型下是否存在数据项
List<DictCommon> dictCommon = dictCommonService.selectByType(dictType.getDictTypeCode());
if (dictCommon.size() > 0) {
return rb.setMsg("该数据字典类型下存在数据项,请先删除该类下的数据项");
}
if (0 == dictTypeService.deleteBySid(sid)) {
return rb.setMsg("删除失败");
}
return rb.setMsg("删除成功");
}
}

76
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/dict_type/DictTypeService.java

@ -0,0 +1,76 @@
package com.yxt.demo.system.biz.dict_type;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.demo.common.core.query.PagerQuery;
import com.yxt.demo.common.core.result.ResultBean;
import com.yxt.demo.common.core.vo.PagerVo;
import com.yxt.demo.common.jdbc.service.MybatisBaseService;
import com.yxt.demo.common.jdbc.service.PagerUtil;
import com.yxt.demo.system.api.dict_common.DictCommon;
import com.yxt.demo.system.api.dict_common.DictCommonQuery;
import com.yxt.demo.system.api.dict_common.DictCommonVo;
import com.yxt.demo.system.api.dict_type.DictType;
import com.yxt.demo.system.api.dict_type.DictTypeDto;
import com.yxt.demo.system.api.dict_type.DictTypeQuery;
import com.yxt.demo.system.api.dict_type.DictTypeVo;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:20
* @Description
*/
@Service
public class DictTypeService extends MybatisBaseService<DictTypeMapper, DictType> {
/**
* 查询该类型代码存在的数量
*
* @param dictType 类型代码
* @return
*/
public int selectSize(String dictType) {
return baseMapper.selectSize(dictType);
}
public ResultBean saveOrUpdates(DictTypeDto dictTypeDto) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(dictTypeDto.getSid())) {
//判断数据字典类型是否已存在
String dictTypeCode = dictTypeDto.getDictTypeCode();
int size = baseMapper.selectSize(dictTypeCode);
if (size > 0) {
return rb.setMsg("数据类型代码已存在");
}
DictType dictType = new DictType();
BeanUtil.copyProperties(dictTypeDto, dictType, "sid");
baseMapper.insert(dictType);
} else {
DictType dictType = fetchBySid(dictTypeDto.getSid());
if (dictType == null) {
return rb.setMsg("数据类型不存在");
}
if (!dictTypeDto.getDictTypeCode().equals(dictType.getDictTypeCode())) {
return rb.setMsg("数据字典类型的code值不允许修改");
}
BeanUtil.copyProperties(dictTypeDto, dictType, "sid");
baseMapper.updateById(dictType);
}
return rb.success();
}
public PagerVo<DictTypeVo> listPageVo(PagerQuery<DictTypeQuery> pagerQuery) {
IPage<DictType> page = PagerUtil.queryToPage(pagerQuery);
DictTypeQuery params = pagerQuery.getParams();
QueryWrapper<DictType> qw = new QueryWrapper<>();
if (params != null) {
}
IPage<DictTypeVo> pagging = baseMapper.listPageVo(page, qw);
PagerVo<DictTypeVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
}

9
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_forum/SysForumMapper.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.biz.sys_forum;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:21
* @Description
*/
public interface SysForumMapper {
}

4
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_forum/SysForumMapper.xml

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="">
</mapper>

9
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_forum/SysForumRest.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.biz.sys_forum;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:21
* @Description
*/
public class SysForumRest {
}

9
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_forum/SysForumService.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.biz.sys_forum;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:21
* @Description
*/
public class SysForumService {
}

9
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_forum_comment/SysForumCommentMapper.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.biz.sys_forum_comment;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:22
* @Description
*/
public interface SysForumCommentMapper {
}

4
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_forum_comment/SysForumCommentMapper.xml

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yxt.demo.system.biz.sys_forum_comment.SysForumCommentMapper">
</mapper>

9
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_forum_comment/SysForumCommentRest.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.biz.sys_forum_comment;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:22
* @Description
*/
public class SysForumCommentRest {
}

9
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_forum_comment/SysForumCommentService.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.biz.sys_forum_comment;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:22
* @Description
*/
public class SysForumCommentService {
}

17
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_info/SysInfoMapper.java

@ -0,0 +1,17 @@
package com.yxt.demo.system.biz.sys_info;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.demo.system.api.sys_info.SysInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @Author dimengzhe
* @Date 2023/4/24 11:51
* @Description
*/
@Mapper
public interface SysInfoMapper extends BaseMapper<SysInfo> {
SysInfo selectByNoAndName(@Param("userName") String userName, @Param("name") String name);
}

10
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_info/SysInfoMapper.xml

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yxt.demo.system.biz.sys_info.SysInfoMapper">
<select id="selectByNoAndName" resultType="com.yxt.demo.system.api.sys_info.SysInfo">
select *
from sys_info
where infoId = #{userName}
and name = #{name}
</select>
</mapper>

16
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_info/SysInfoRest.java

@ -0,0 +1,16 @@
package com.yxt.demo.system.biz.sys_info;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Author dimengzhe
* @Date 2023/4/24 11:51
* @Description
*/
@Api(tags = "基础信息表")
@RestController
@RequestMapping("v1/sysinfo")
public class SysInfoRest {
}

18
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_info/SysInfoService.java

@ -0,0 +1,18 @@
package com.yxt.demo.system.biz.sys_info;
import com.yxt.demo.common.jdbc.service.MybatisBaseService;
import com.yxt.demo.system.api.sys_info.SysInfo;
import org.springframework.stereotype.Service;
/**
* @Author dimengzhe
* @Date 2023/4/24 11:51
* @Description
*/
@Service
public class SysInfoService extends MybatisBaseService<SysInfoMapper, SysInfo> {
public SysInfo selectByNoAndName(String userName, String name) {
return baseMapper.selectByNoAndName(userName, name);
}
}

12
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_info_ship/SysInfoShipMapper.java

@ -0,0 +1,12 @@
package com.yxt.demo.system.biz.sys_info_ship;
import org.apache.ibatis.annotations.Mapper;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:15
* @Description
*/
@Mapper
public interface SysInfoShipMapper {
}

4
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_info_ship/SysInfoShipMapper.xml

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yxt.demo.system.biz.sys_info_ship.SysInfoShipMapper">
</mapper>

12
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_info_ship/SysInfoShipService.java

@ -0,0 +1,12 @@
package com.yxt.demo.system.biz.sys_info_ship;
import org.springframework.stereotype.Service;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:15
* @Description
*/
@Service
public class SysInfoShipService {
}

15
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_menu/SysMenuMapper.java

@ -0,0 +1,15 @@
package com.yxt.demo.system.biz.sys_menu;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.demo.system.api.sys_info.SysInfo;
import com.yxt.demo.system.api.sys_menu.SysMenu;
import org.apache.ibatis.annotations.Mapper;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:09
* @Description
*/
@Mapper
public interface SysMenuMapper extends BaseMapper<SysMenu> {
}

4
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_menu/SysMenuMapper.xml

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yxt.demo.system.biz.sys_menu.SysMenuMapper">
</mapper>

16
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_menu/SysMenuRest.java

@ -0,0 +1,16 @@
package com.yxt.demo.system.biz.sys_menu;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:09
* @Description
*/
@Api(tags = "菜单")
@RestController
@RequestMapping("v1/sysmenu")
public class SysMenuRest {
}

16
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_menu/SysMenuService.java

@ -0,0 +1,16 @@
package com.yxt.demo.system.biz.sys_menu;
import com.yxt.demo.common.jdbc.service.MybatisBaseService;
import com.yxt.demo.system.api.sys_info.SysInfo;
import com.yxt.demo.system.api.sys_menu.SysMenu;
import com.yxt.demo.system.biz.sys_info.SysInfoMapper;
import org.springframework.stereotype.Service;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:09
* @Description
*/
@Service
public class SysMenuService extends MybatisBaseService<SysMenuMapper, SysMenu> {
}

12
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_menu_role/SysMenuRoleMapper.java

@ -0,0 +1,12 @@
package com.yxt.demo.system.biz.sys_menu_role;
import org.apache.ibatis.annotations.Mapper;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:12
* @Description
*/
@Mapper
public interface SysMenuRoleMapper {
}

4
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_menu_role/SysMenuRoleMapper.xml

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yxt.demo.system.biz.sys_menu_role.SysMenuRoleMapper">
</mapper>

12
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_menu_role/SysMenuRoleService.java

@ -0,0 +1,12 @@
package com.yxt.demo.system.biz.sys_menu_role;
import org.springframework.stereotype.Service;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:12
* @Description
*/
@Service
public class SysMenuRoleService {
}

12
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_notice/SysNoticeMapper.java

@ -0,0 +1,12 @@
package com.yxt.demo.system.biz.sys_notice;
import org.apache.ibatis.annotations.Mapper;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:14
* @Description
*/
@Mapper
public interface SysNoticeMapper {
}

4
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_notice/SysNoticeMapper.xml

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yxt.demo.system.biz.sys_notice.SysNoticeMapper">
</mapper>

9
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_notice/SysNoticeRest.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.biz.sys_notice;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:23
* @Description
*/
public class SysNoticeRest {
}

12
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_notice/SysNoticeService.java

@ -0,0 +1,12 @@
package com.yxt.demo.system.biz.sys_notice;
import org.springframework.stereotype.Service;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:13
* @Description
*/
@Service
public class SysNoticeService {
}

9
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_plan/SysPlanMapper.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.biz.sys_plan;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:24
* @Description
*/
public interface SysPlanMapper {
}

4
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_plan/SysPlanMapper.xml

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="">
</mapper>

9
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_plan/SysPlanRest.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.biz.sys_plan;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:24
* @Description
*/
public class SysPlanRest {
}

9
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_plan/SysPlanService.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.biz.sys_plan;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:24
* @Description
*/
public class SysPlanService {
}

9
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_plan_schedule/SysPlanScheduleMapper.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.biz.sys_plan_schedule;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:25
* @Description
*/
public interface SysPlanScheduleMapper {
}

4
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_plan_schedule/SysPlanScheduleMapper.xml

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yxt.demo.system.biz.sys_plan_schedule.SysPlanScheduleMapper">
</mapper>

9
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_plan_schedule/SysPlanScheduleRest.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.biz.sys_plan_schedule;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:25
* @Description
*/
public class SysPlanScheduleRest {
}

9
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_plan_schedule/SysPlanScheduleService.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.biz.sys_plan_schedule;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:25
* @Description
*/
public class SysPlanScheduleService {
}

9
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_resources/SysResourcesMapper.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.biz.sys_resources;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:26
* @Description
*/
public interface SysResourcesMapper {
}

4
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_resources/SysResourcesMapper.xml

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yxt.demo.system.biz.sys_resources.SysResourcesMapper">
</mapper>

9
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_resources/SysResourcesRest.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.biz.sys_resources;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:26
* @Description
*/
public class SysResourcesRest {
}

9
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_resources/SysResourcesService.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.biz.sys_resources;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:26
* @Description
*/
public class SysResourcesService {
}

9
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_role/SysRoleMapper.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.biz.sys_role;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:27
* @Description
*/
public interface SysRoleMapper {
}

4
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_role/SysRoleMapper.xml

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yxt.demo.system.biz.sys_role.SysRoleMapper">
</mapper>

9
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_role/SysRoleRest.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.biz.sys_role;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:27
* @Description
*/
public class SysRoleRest {
}

9
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_role/SysRoleService.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.biz.sys_role;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:27
* @Description
*/
public class SysRoleService {
}

9
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_score/SysScoreMapper.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.biz.sys_score;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:28
* @Description
*/
public interface SysScoreMapper {
}

4
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_score/SysScoreMapper.xml

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yxt.demo.system.biz.sys_score.SysScoreMapper">
</mapper>

9
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_score/SysScoreRest.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.biz.sys_score;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:28
* @Description
*/
public class SysScoreRest {
}

9
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_score/SysScoreService.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.biz.sys_score;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:28
* @Description
*/
public class SysScoreService {
}

9
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_student_score/SysStudentScoreMapper.java

@ -0,0 +1,9 @@
package com.yxt.demo.system.biz.sys_student_score;
/**
* @Author dimengzhe
* @Date 2023/4/24 14:31
* @Description
*/
public interface SysStudentScoreMapper {
}

4
demo-system/demo-system-biz/src/main/java/com/yxt/demo/system/biz/sys_student_score/SysStudentScoreMapper.xml

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yxt.demo.system.biz.sys_student_score.SysStudentScoreMapper">
</mapper>

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save