From ca4e829a60e74774f6ef87fc62d23094aadb9859 Mon Sep 17 00:00:00 2001 From: 李林 <z1292839451@163.com> Date: 星期六, 23 十二月 2023 23:09:19 +0800 Subject: [PATCH] 第一阶段 --- data-server/src/main/java/com/yuanchu/mom/Main.java | 7 data-server/src/main/java/com/yuanchu/mom/dto/DataReportingPageDto.java | 23 + user-server/src/main/java/com/yuanchu/mom/mapper/UserMapper.java | 8 framework/src/main/java/com/yuanchu/mom/common/PrintChina.java | 59 +++ user-server/src/main/java/com/yuanchu/mom/dto/UserPageDto.java | 27 + pom.xml | 19 + user-server/src/main/resources/mapper/RoleMapper.xml | 5 data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java | 45 +++ user-server/src/main/java/com/yuanchu/mom/pojo/User.java | 69 ++++ framework/src/main/java/com/yuanchu/mom/common/OrderBy.java | 22 + user-server/src/main/java/com/yuanchu/mom/mapper/RoleMapper.java | 12 framework/src/main/java/com/yuanchu/mom/annotation/ValueTableShow.java | 11 framework/src/main/java/com/yuanchu/mom/mybatis_config/MyMetaObjectHandler.java | 20 + framework/src/main/java/com/yuanchu/mom/utils/QueryWrappers.java | 68 ++++ user-server/src/main/java/com/yuanchu/mom/service/imp/RoleServiceImp.java | 46 +++ user-server/src/main/java/com/yuanchu/mom/service/imp/UserServiceImp.java | 36 ++ user-server/src/main/java/com/yuanchu/mom/service/UserService.java | 9 framework/src/main/java/com/yuanchu/mom/handler/GlobalExceptionHandler.java | 44 +- framework/pom.xml | 1 user-server/src/main/java/com/yuanchu/mom/service/RoleService.java | 19 + system-run/src/main/resources/application-prod.yml | 2 data-server/pom.xml | 26 + user-server/src/main/java/com/yuanchu/mom/pojo/Role.java | 49 +++ framework/src/main/java/com/yuanchu/mom/config/FiferConfig.java | 2 user-server/src/main/resources/mapper/UserMapper.xml | 12 system-run/src/main/resources/application-dev.yml | 14 user-server/src/main/java/com/yuanchu/mom/controller/UserController.java | 34 ++ user-server/src/main/java/com/yuanchu/mom/controller/RoleController.java | 50 +++ framework/src/main/java/com/yuanchu/mom/utils/ServletUtils.java | 103 ++++++ system-run/pom.xml | 6 30 files changed, 803 insertions(+), 45 deletions(-) diff --git a/data-server/pom.xml b/data-server/pom.xml new file mode 100644 index 0000000..f0dfcfb --- /dev/null +++ b/data-server/pom.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <artifactId>mom</artifactId> + <groupId>com.yuanchu.mom</groupId> + <version>1.0.0</version> + </parent> + <modelVersion>4.0.0</modelVersion> + + <artifactId>data-server</artifactId> + <version>0.0.1-SNAPSHOT</version> + <name>data-server</name> + <description>data-server</description> + <packaging>jar</packaging> + + <dependencies> + <dependency> + <groupId>com.yuanchu.mom</groupId> + <artifactId>framework</artifactId> + <version>0.0.1-SNAPSHOT</version> + </dependency> + </dependencies> + +</project> \ No newline at end of file diff --git a/data-server/src/main/java/com/yuanchu/mom/Main.java b/data-server/src/main/java/com/yuanchu/mom/Main.java new file mode 100644 index 0000000..de0dfc5 --- /dev/null +++ b/data-server/src/main/java/com/yuanchu/mom/Main.java @@ -0,0 +1,7 @@ +package com.yuanchu.mom; + +public class Main { + public static void main(String[] args) { + System.out.println("Hello world!"); + } +} \ No newline at end of file diff --git a/data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java b/data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java new file mode 100644 index 0000000..f638998 --- /dev/null +++ b/data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java @@ -0,0 +1,45 @@ +package com.yuanchu.mom.controller; + +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yuanchu.mom.dto.DataReportingPageDto; +import com.yuanchu.mom.pojo.DataReporting; +import com.yuanchu.mom.service.DataReportingService; +import com.yuanchu.mom.utils.JackSonUtil; +import com.yuanchu.mom.vo.Result; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.math.BigDecimal; +import java.util.Map; + +@RequestMapping("/dataReporting") +@RestController +@Api(tags = "鏁版嵁涓婃姤妯″潡") +@AllArgsConstructor +public class DataReportingController { + + private DataReportingService dataReportingService; + + @ApiOperation(value = "鑾峰彇鏁版嵁涓婃姤鍒楄〃") + @PostMapping("/selectDataReportingList") + public Result selectDataReportingList(@RequestBody Map<String, Object> data) { + Page page = JSON.parseObject(JSON.toJSONString(data.get("page")), Page.class); + DataReportingPageDto dataReportingPageDto = JSON.parseObject(JSON.toJSONString(data.get("entity")), DataReportingPageDto.class); + return Result.success(dataReportingService.selectUserList(page, dataReportingPageDto)); + } + + @ApiOperation(value = "淇敼鏁版嵁涓婃姤") + @PostMapping("/upDataReporting") + public Result upDataReporting(@RequestBody DataReporting dataReporting) { + return Result.success(dataReportingService.updateDataReporting(dataReporting)); + } + +} diff --git a/data-server/src/main/java/com/yuanchu/mom/dto/DataReportingPageDto.java b/data-server/src/main/java/com/yuanchu/mom/dto/DataReportingPageDto.java new file mode 100644 index 0000000..f59cbd7 --- /dev/null +++ b/data-server/src/main/java/com/yuanchu/mom/dto/DataReportingPageDto.java @@ -0,0 +1,23 @@ +package com.yuanchu.mom.dto; + +import com.yuanchu.mom.annotation.ValueTableShow; +import com.yuanchu.mom.pojo.DataReporting; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class DataReportingPageDto extends DataReporting { + + @ValueTableShow(21) + @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛") + private String createUserName; + + @ValueTableShow(22) + @ApiModelProperty(value = "鏇存柊鐢ㄦ埛") + private String updateUserName; + +} diff --git a/framework/pom.xml b/framework/pom.xml index 4fcce66..f69481d 100644 --- a/framework/pom.xml +++ b/framework/pom.xml @@ -38,5 +38,6 @@ <groupId>com.auth0</groupId> <artifactId>java-jwt</artifactId> </dependency> + </dependencies> </project> diff --git a/framework/src/main/java/com/yuanchu/mom/annotation/ValueTableShow.java b/framework/src/main/java/com/yuanchu/mom/annotation/ValueTableShow.java new file mode 100644 index 0000000..7b892e9 --- /dev/null +++ b/framework/src/main/java/com/yuanchu/mom/annotation/ValueTableShow.java @@ -0,0 +1,11 @@ +package com.yuanchu.mom.annotation; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface ValueTableShow { + + int value() default 0; + +} diff --git a/framework/src/main/java/com/yuanchu/mom/common/OrderBy.java b/framework/src/main/java/com/yuanchu/mom/common/OrderBy.java new file mode 100644 index 0000000..e563f95 --- /dev/null +++ b/framework/src/main/java/com/yuanchu/mom/common/OrderBy.java @@ -0,0 +1,22 @@ +package com.yuanchu.mom.common; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.yuanchu.mom.annotation.ValueTableShow; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class OrderBy implements Serializable { + + @TableField(select = false, exist = false) + private Map<String, String> orderBy; + +} diff --git a/framework/src/main/java/com/yuanchu/mom/common/PrintChina.java b/framework/src/main/java/com/yuanchu/mom/common/PrintChina.java new file mode 100644 index 0000000..0b84598 --- /dev/null +++ b/framework/src/main/java/com/yuanchu/mom/common/PrintChina.java @@ -0,0 +1,59 @@ +package com.yuanchu.mom.common; + +import cn.hutool.core.util.StrUtil; +import com.yuanchu.mom.annotation.ValueTableShow; +import io.swagger.annotations.ApiModelProperty; + +import java.lang.reflect.Field; +import java.util.*; + +/*鏉庢灄 +* 閫氳繃娉ㄨВ蹇�熺敓鎴恡able琛ㄥご*/ + +public class PrintChina { + + public static <T> List<Map<String, String>> printChina(Class<T> tClass) { + //灏嗗疄浣撶被鐨勫睘鎬у拰娉ㄩ噴杞崲鎴愬弬鏁� + List<Field> fieldList = new ArrayList<>(); + while (tClass != null){ + fieldList.addAll(new ArrayList<>(Arrays.asList(tClass.getDeclaredFields()))); + tClass = (Class<T>) tClass.getSuperclass(); + } + Field[] fields = new Field[fieldList.size()]; + fieldList.toArray(fields); + ArrayList<Map<String, String>> list = new ArrayList<>(); + for (Field field : fields) { + Map<String, String> soundVo = new HashMap<>(); + boolean bool = field.isAnnotationPresent(ApiModelProperty.class); + boolean bool2 = field.isAnnotationPresent(ValueTableShow.class); + if (bool) { + int order; + if (bool2){ + order = field.getAnnotation(ValueTableShow.class).value(); + }else{ + continue; + } + String value = field.getAnnotation(ApiModelProperty.class).value(); + soundVo.put("label", field.getName()); + soundVo.put("value", value); + soundVo.put("order", order + ""); + if(list.size() == 0){ + list.add(soundVo); + }else{ + boolean isAdd = false; + for (int i = 0; i < list.size(); i++) { + Map<String, String> map = list.get(i); + if(order < Integer.parseInt(map.get("order"))){ + list.add(i, soundVo); + isAdd = true; + break; + } + } + if (!isAdd) list.add(soundVo); + } + } + } + return list; + } + +} diff --git a/framework/src/main/java/com/yuanchu/mom/config/FiferConfig.java b/framework/src/main/java/com/yuanchu/mom/config/FiferConfig.java index 525bec0..bb90e50 100644 --- a/framework/src/main/java/com/yuanchu/mom/config/FiferConfig.java +++ b/framework/src/main/java/com/yuanchu/mom/config/FiferConfig.java @@ -25,6 +25,8 @@ @Value("${server.port}") private String serverPort; + private static ThreadLocal<String> threadLocal = new ThreadLocal<>(); + @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { if (HttpMethod.OPTIONS.toString().equals(request.getMethod())) { diff --git a/framework/src/main/java/com/yuanchu/mom/handler/GlobalExceptionHandler.java b/framework/src/main/java/com/yuanchu/mom/handler/GlobalExceptionHandler.java index cc99c2d..fe92f7e 100644 --- a/framework/src/main/java/com/yuanchu/mom/handler/GlobalExceptionHandler.java +++ b/framework/src/main/java/com/yuanchu/mom/handler/GlobalExceptionHandler.java @@ -38,7 +38,7 @@ @ExceptionHandler(SQLException.class) public Result<?> handlerSQLException(SQLException e) { log.error(e.getMessage().toLowerCase(), e); - response.setStatus(500); + response.setStatus(201); return Result.fail("鏁版嵁鎿嶄綔澶辫触锛佽鑱旂郴绠$悊鍛�"); } @@ -54,14 +54,14 @@ log.error(String.valueOf(e)); String message = e.getCause().getMessage(); String[] split = message.split("'"); - response.setStatus(500); + response.setStatus(201); return Result.fail("閲嶅娣诲姞锛氥��" + split[1] + "銆戞搷浣滃け璐ワ紒"); } @ExceptionHandler public Result<?> NullPointerException(NullPointerException e) { e.printStackTrace(); - response.setStatus(500); + response.setStatus(201); return Result.fail("閮ㄥ垎鍙傛暟涓虹┖锛岃妫�鏌ワ紒"); } @@ -71,7 +71,7 @@ @ExceptionHandler(RuntimeException.class) public Result<?> runtimeExceptionHandler(RuntimeException e) { e.printStackTrace(); - response.setStatus(500); + response.setStatus(201); return Result.fail("杩愯鏃跺紓甯�"); } @@ -81,7 +81,7 @@ @ExceptionHandler(ClassCastException.class) public Result<?> classCastExceptionHandler(ClassCastException e) { e.printStackTrace(); - response.setStatus(500); + response.setStatus(201); return Result.fail("绫诲瀷杞崲寮傚父"); } @@ -91,7 +91,7 @@ @ExceptionHandler(FileNotFoundException.class) public Result<?> FileNotFoundException(FileNotFoundException e) { e.printStackTrace(); - response.setStatus(500); + response.setStatus(201); return Result.fail("鏂囦欢鏈壘鍒板紓甯�"); } @@ -101,7 +101,7 @@ @ExceptionHandler(NumberFormatException.class) public Result<?> NumberFormatException(NumberFormatException e) { e.printStackTrace(); - response.setStatus(500); + response.setStatus(201); return Result.fail("鏁板瓧鏍煎紡寮傚父"); } @@ -111,7 +111,7 @@ @ExceptionHandler(SecurityException.class) public Result<?> SecurityException(SecurityException e) { e.printStackTrace(); - response.setStatus(500); + response.setStatus(201); return Result.fail("瀹夊叏寮傚父"); } @@ -121,7 +121,7 @@ @ExceptionHandler(TypeNotPresentException.class) public Result<?> TypeNotPresentException(TypeNotPresentException e) { e.printStackTrace(); - response.setStatus(500); + response.setStatus(201); return Result.fail("绫诲瀷涓嶅瓨鍦ㄥ紓甯�"); } @@ -131,7 +131,7 @@ @ExceptionHandler(IOException.class) public Result<?> iOExceptionHandler(IOException e) { e.printStackTrace(); - response.setStatus(500); + response.setStatus(201); return Result.fail("IO寮傚父"); } @@ -141,7 +141,7 @@ @ExceptionHandler(NoSuchMethodException.class) public Result<?> noSuchMethodExceptionHandler(NoSuchMethodException e) { e.printStackTrace(); - response.setStatus(500); + response.setStatus(201); return Result.fail("鏈煡鏂规硶寮傚父"); } @@ -151,7 +151,7 @@ @ExceptionHandler(IndexOutOfBoundsException.class) public Result<?> indexOutOfBoundsExceptionHandler(IndexOutOfBoundsException e) { e.printStackTrace(); - response.setStatus(500); + response.setStatus(201); return Result.fail("鏁扮粍瓒婄晫寮傚父"); } @@ -161,7 +161,7 @@ @ExceptionHandler(BadSqlGrammarException.class) public Result<?> BadSqlGrammarException(BadSqlGrammarException e) { e.printStackTrace(); - response.setStatus(500); + response.setStatus(201); return Result.fail("sql璇硶閿欒寮傚父"); } @@ -171,7 +171,7 @@ @ExceptionHandler(NoSuchBeanDefinitionException.class) public Result<?> NoSuchBeanDefinitionException(NoSuchBeanDefinitionException e) { e.printStackTrace(); - response.setStatus(500); + response.setStatus(201); return Result.fail("鏃犳硶娉ㄥ叆bean"); } @@ -181,7 +181,7 @@ @ExceptionHandler({HttpMessageNotReadableException.class}) public Result<?> requestNotReadable(HttpMessageNotReadableException e) { e.printStackTrace(); - response.setStatus(500); + response.setStatus(201); return Result.fail("Http娑堟伅涓嶅彲璇�"); } @@ -191,17 +191,17 @@ @ExceptionHandler({TypeMismatchException.class}) public Result<?> requestTypeMismatch(TypeMismatchException e) { e.printStackTrace(); - response.setStatus(500); + response.setStatus(201); return Result.fail("鏈嶅姟鍣ㄥ紓甯�"); } /** - * 500閿欒 + * 201閿欒 */ @ExceptionHandler({ConversionNotSupportedException.class, HttpMessageNotWritableException.class}) - public Result<?> server500(RuntimeException e) { + public Result<?> server201(RuntimeException e) { e.printStackTrace(); - response.setStatus(500); + response.setStatus(201); return Result.fail("鏈嶅姟鍣ㄥ紓甯�"); } @@ -211,7 +211,7 @@ @ExceptionHandler({StackOverflowError.class}) public Result<?> requestStackOverflow(StackOverflowError e) { e.printStackTrace(); - response.setStatus(500); + response.setStatus(201); return Result.fail("鏍堟孩鍑哄紓甯�"); } @@ -221,7 +221,7 @@ @ExceptionHandler({ArithmeticException.class}) public Result<?> arithmeticException(ArithmeticException e) { e.printStackTrace(); - response.setStatus(500); + response.setStatus(201); return Result.fail("闄ゆ暟涓嶈兘涓�0寮傚父"); } @@ -271,7 +271,7 @@ @ExceptionHandler({Exception.class}) public Result<?> exception(Exception e) { e.printStackTrace(); - response.setStatus(500); + response.setStatus(201); return Result.fail("缃戠粶杩炴帴澶辫触锛岃閫�鍑哄悗鍐嶈瘯"); } } diff --git a/framework/src/main/java/com/yuanchu/mom/mybatis_config/MyMetaObjectHandler.java b/framework/src/main/java/com/yuanchu/mom/mybatis_config/MyMetaObjectHandler.java index ede59ea..1bfa037 100644 --- a/framework/src/main/java/com/yuanchu/mom/mybatis_config/MyMetaObjectHandler.java +++ b/framework/src/main/java/com/yuanchu/mom/mybatis_config/MyMetaObjectHandler.java @@ -1,22 +1,36 @@ package com.yuanchu.mom.mybatis_config; +import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import com.yuanchu.mom.utils.JackSonUtil; +import com.yuanchu.mom.utils.Jwt; +import com.yuanchu.mom.utils.ServletUtils; import org.apache.ibatis.reflection.MetaObject; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.time.LocalDateTime; import java.util.Date; +import java.util.Map; @Component public class MyMetaObjectHandler implements MetaObjectHandler { + + @Autowired + Jwt jwt; + @Override public void insertFill(MetaObject metaObject) { - this.strictInsertFill(metaObject, "createTime", Date.class, new Date()); // 璧峰鐗堟湰 3.3.0(鎺ㄨ崘浣跨敤) - this.strictInsertFill(metaObject, "updateTime", Date.class, new Date()); // 璧峰鐗堟湰 3.3.0(鎺ㄨ崘浣跨敤) + this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now()); // 璧峰鐗堟湰 3.3.0(鎺ㄨ崘浣跨敤) + this.strictInsertFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 璧峰鐗堟湰 3.3.0(鎺ㄨ崘浣跨敤) + this.strictInsertFill(metaObject, "createUser", Integer.class, Integer.parseInt(JSONUtil.parseObj(jwt.readJWT(ServletUtils.getRequest().getHeader("token")).get("data")).get("id") + "")); + this.strictInsertFill(metaObject, "updateUser", Integer.class, Integer.parseInt(JSONUtil.parseObj(jwt.readJWT(ServletUtils.getRequest().getHeader("token")).get("data")).get("id") + "")); } @Override public void updateFill(MetaObject metaObject) { // update鐨勬椂鍊欎娇鐢紝鏇存柊鐨勬椂鍊欏己鍒惰繘琛屽~鍏� - this.strictUpdateFill(metaObject, "updateTime", Date.class, new Date()); // 璧峰鐗堟湰 3.3.0(鎺ㄨ崘) + this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 璧峰鐗堟湰 3.3.0(鎺ㄨ崘) + this.strictUpdateFill(metaObject, "updateUser", Integer.class, Integer.parseInt(JSONUtil.parseObj(jwt.readJWT(ServletUtils.getRequest().getHeader("token")).get("data")).get("id") + "")); } } diff --git a/framework/src/main/java/com/yuanchu/mom/utils/QueryWrappers.java b/framework/src/main/java/com/yuanchu/mom/utils/QueryWrappers.java new file mode 100644 index 0000000..d61f0ca --- /dev/null +++ b/framework/src/main/java/com/yuanchu/mom/utils/QueryWrappers.java @@ -0,0 +1,68 @@ +package com.yuanchu.mom.utils; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.AllArgsConstructor; +import lombok.CustomLog; +import org.springframework.stereotype.Component; + +import java.lang.annotation.Annotation; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; + +/* + * 鏉庢灄 + * 鐢熸垚SQL璇彞*/ + +@Component +@AllArgsConstructor +public class QueryWrappers<T> { + + public static <T> QueryWrapper<T> queryWrappers(T entity) { + if (ObjectUtil.isEmpty(entity)) return null; + Class<?> aClass = entity.getClass(); + QueryWrapper<T> wrapper = Wrappers.<T>query(); + List<Field> fieldList = new ArrayList<>(); + while (aClass != null) { + fieldList.addAll(new ArrayList<>(Arrays.asList(aClass.getDeclaredFields()))); + aClass = aClass.getSuperclass(); + } + for (Field field : fieldList) { + field.setAccessible(true); + Object value; + try { + value = field.get(entity); + } catch (IllegalAccessException e) { + e.printStackTrace(); + throw new RuntimeException("鏌ヨ鏉′欢鐢熸垚閿欒"); + } +// System.out.println(field.getName() + "|" + (value == null || value.equals("")) + "|" + value); + if(value == null || value.equals("")){ + continue; + } + if (!field.getName().equals("orderBy")) { + if(value.getClass()== LocalDateTime.class){ + wrapper.like(StrUtil.toUnderlineCase(field.getName()), ((LocalDateTime) value).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + }else{ + wrapper.like(StrUtil.toUnderlineCase(field.getName()), value); + } + } else { + Map<String, String> map = (Map<String, String>) value; + if(map.get("order")!=null){ + wrapper.orderBy(true, map.get("order").equals("asc"), StrUtil.toUnderlineCase(map.get("field"))); + } + } + } + System.out.println(wrapper.getExpression().getSqlSegment()); + return wrapper; + } + +} diff --git a/framework/src/main/java/com/yuanchu/mom/utils/ServletUtils.java b/framework/src/main/java/com/yuanchu/mom/utils/ServletUtils.java new file mode 100644 index 0000000..387f113 --- /dev/null +++ b/framework/src/main/java/com/yuanchu/mom/utils/ServletUtils.java @@ -0,0 +1,103 @@ +package com.yuanchu.mom.utils; + + +import cn.hutool.core.convert.Convert; +import org.springframework.web.context.request.RequestAttributes; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import java.io.IOException; + +/** + * 瀹㈡埛绔伐鍏风被 + * + * @author 寮犲 + */ +public class ServletUtils { + /** + * 鑾峰彇String鍙傛暟 + */ + public static String getParameter(String name) + { + return getRequest().getParameter(name); + } + + /** + * 鑾峰彇String鍙傛暟 + */ + public static String getParameter(String name, String defaultValue) + { + return Convert.toStr(getRequest().getParameter(name), defaultValue); + } + + /** + * 鑾峰彇Integer鍙傛暟 + */ + public static Integer getParameterToInt(String name) + { + return Convert.toInt(getRequest().getParameter(name)); + } + + /** + * 鑾峰彇Integer鍙傛暟 + */ + public static Integer getParameterToInt(String name, Integer defaultValue) + { + return Convert.toInt(getRequest().getParameter(name), defaultValue); + } + + /** + * 鑾峰彇request + */ + public static HttpServletRequest getRequest() + { + return getRequestAttributes().getRequest(); + } + + /** + * 鑾峰彇response + */ + public static HttpServletResponse getResponse() + { + return getRequestAttributes().getResponse(); + } + + /** + * 鑾峰彇session + */ + public static HttpSession getSession() + { + return getRequest().getSession(); + } + + public static ServletRequestAttributes getRequestAttributes() + { + RequestAttributes attributes = RequestContextHolder.getRequestAttributes(); + return (ServletRequestAttributes) attributes; + } + + /** + * 灏嗗瓧绗︿覆娓叉煋鍒板鎴风 + * + * @param response 娓叉煋瀵硅薄 + * @param string 寰呮覆鏌撶殑瀛楃涓� + * @return null + */ + public static String renderString(HttpServletResponse response, String string) + { + try + { + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + response.getWriter().print(string); + } + catch (IOException e) + { + e.printStackTrace(); + } + return null; + } +} diff --git a/pom.xml b/pom.xml index c8f2aeb..9b26b37 100644 --- a/pom.xml +++ b/pom.xml @@ -19,6 +19,7 @@ <module>framework</module> <module>user-server</module> <module>system-run</module> + <module>data-server</module> </modules> <properties> @@ -83,6 +84,24 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency> + + <dependency> + <groupId>com.baomidou</groupId> + <artifactId>mybatis-plus-extension</artifactId> + <version>${mybatis-plus.version}</version> + </dependency> + + <dependency> + <groupId>cn.hutool</groupId> + <artifactId>hutool-all</artifactId> + <version>5.8.18</version> + </dependency> + + <dependency> + <groupId>com.alibaba</groupId> + <artifactId>fastjson</artifactId> + <version>2.0.23</version> + </dependency> </dependencies> <dependencyManagement> diff --git a/system-run/pom.xml b/system-run/pom.xml index f94e371..9079d88 100644 --- a/system-run/pom.xml +++ b/system-run/pom.xml @@ -28,6 +28,12 @@ <version>0.0.1-SNAPSHOT</version> </dependency> + <dependency> + <groupId>com.yuanchu.mom</groupId> + <artifactId>data-server</artifactId> + <version>0.0.1-SNAPSHOT</version> + </dependency> + <!--druid--> <dependency> <groupId>com.alibaba</groupId> diff --git a/system-run/src/main/resources/application-dev.yml b/system-run/src/main/resources/application-dev.yml index e049e17..0b6562b 100644 --- a/system-run/src/main/resources/application-dev.yml +++ b/system-run/src/main/resources/application-dev.yml @@ -5,12 +5,12 @@ logging: config: classpath:logback-spring.xml # 鏃ュ織瀛樺偍璺緞+++++++++++++++++++++++++++杩愮淮闇�瑕侀厤缃�+++++++++++++++++++++++++++ - file-location: + file-location: D:\楣撻洀鍏徃\frame-after\logs_IS_UNDEFINED # 鏁版嵁搴撳浠借矾寰� backup: # 鏁版嵁搴撳浠借矾寰�+++++++++++++++++++++++++++杩愮淮闇�瑕侀厤缃�+++++++++++++++++++++++++++ - path: E:/webapp/backup + path: D:\楣撻洀鍏徃\frame-after # 鏁版嵁搴撳浠藉ぉ鏁� destiny: 7 # 鏁版嵁搴撳浠藉伐鍏疯矾寰�+++++++++++++++++++++++++++杩愮淮闇�瑕侀厤缃�+++++++++++++++++++++++++++ @@ -26,7 +26,7 @@ type-aliases-package: com.yuanchu.mom.pojo mapper-locations: classpath*:/mapper/*.xml configuration: - log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 寮�鍚痬ybatis-plus鏃ュ織 + log-impl: #org.apache.ibatis.logging.stdout.StdOutImpl # 寮�鍚痬ybatis-plus鏃ュ織 # 鏁版嵁婧愰厤缃� @@ -34,8 +34,8 @@ datasource: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://114.132.189.42:9004/oms?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8 - username: user + url: jdbc:mysql://127.0.0.1:3306/shengyun?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8 + username: root password: 123456 druid: # Druid鏁版嵁婧愰厤缃� @@ -59,9 +59,9 @@ # redis鏁版嵁搴撶储寮�(榛樿涓�0)锛屾垜浠娇鐢ㄧ储寮曚负3鐨勬暟鎹簱锛岄伩鍏嶅拰鍏朵粬鏁版嵁搴撳啿绐� database: 0 # redis鏈嶅姟鍣ㄥ湴鍧�锛堥粯璁や负localhost锛� - host: 114.132.189.42 + host: 127.0.0.1 # redis绔彛锛堥粯璁や负6379锛� - port: 9003 + port: 6379 # redis璁块棶瀵嗙爜锛堥粯璁や负绌猴級 password: null # redis杩炴帴瓒呮椂鏃堕棿锛堝崟浣嶆绉掞級 diff --git a/system-run/src/main/resources/application-prod.yml b/system-run/src/main/resources/application-prod.yml index 4e51a05..b1e1905 100644 --- a/system-run/src/main/resources/application-prod.yml +++ b/system-run/src/main/resources/application-prod.yml @@ -28,7 +28,7 @@ spring: datasource: type: com.alibaba.druid.pool.DruidDataSource - driverClassName: com.mysql.jdbc.Driver + driverClassName: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/blog_crunchy?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8 username: root password: 123456 diff --git a/user-server/src/main/java/com/yuanchu/mom/controller/RoleController.java b/user-server/src/main/java/com/yuanchu/mom/controller/RoleController.java new file mode 100644 index 0000000..acf7e33 --- /dev/null +++ b/user-server/src/main/java/com/yuanchu/mom/controller/RoleController.java @@ -0,0 +1,50 @@ +package com.yuanchu.mom.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yuanchu.mom.dto.UserPageDto; +import com.yuanchu.mom.pojo.Role; +import com.yuanchu.mom.pojo.User; +import com.yuanchu.mom.service.RoleService; +import com.yuanchu.mom.service.UserService; +import com.yuanchu.mom.utils.JackSonUtil; +import com.yuanchu.mom.utils.Jwt; +import com.yuanchu.mom.utils.RedisUtil; +import com.yuanchu.mom.vo.Result; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.HashMap; +import java.util.Map; + +@RequestMapping("/role") +@RestController +@Api(tags = "瑙掕壊妯″潡") +@AllArgsConstructor +public class RoleController { + + private RoleService roleService; + + @ApiOperation(value = "鑾峰彇瑙掕壊鍒楄〃鏋氫妇") + @GetMapping("/selectRoleList") + public Result selectUserList(){ + return Result.success(roleService.selectList()); + } + + + @ApiOperation(value = "鑾峰彇瑙掕壊鍒楄〃") + @PostMapping("/selectRoleLists") + public Result selectRoleList(@RequestBody Map<String, Object> data) throws Exception { + Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class); + Role role = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), Role.class); + return Result.success(roleService.selectUserList(page, role)); + } + + @ApiOperation(value = "鍒犻櫎瑙掕壊鍒楄〃") + @PostMapping("/delRole") + public Result delRole(Integer id){ + return Result.success(roleService.delRole(id)); + } +} diff --git a/user-server/src/main/java/com/yuanchu/mom/controller/UserController.java b/user-server/src/main/java/com/yuanchu/mom/controller/UserController.java index ab1a56f..c9a93bc 100644 --- a/user-server/src/main/java/com/yuanchu/mom/controller/UserController.java +++ b/user-server/src/main/java/com/yuanchu/mom/controller/UserController.java @@ -1,5 +1,11 @@ package com.yuanchu.mom.controller; +import cn.hutool.json.JSON; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yuanchu.mom.common.PrintChina; +import com.yuanchu.mom.dto.UserPageDto; import com.yuanchu.mom.pojo.User; import com.yuanchu.mom.service.UserService; import com.yuanchu.mom.utils.JackSonUtil; @@ -7,8 +13,11 @@ import com.yuanchu.mom.utils.RedisUtil; import com.yuanchu.mom.vo.Result; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.DigestUtils; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.HashMap; @@ -29,7 +38,7 @@ @PostMapping("/enter") public Result login(String account, String password) { User user = userService.selectUserByPwd(account, password); - if (user==null) return Result.fail("鐧诲綍澶辫触"); + if (user == null) return Result.fail("鐧诲綍澶辫触"); String jwtToken = jwt.createJwt(user.getName(), user.getId(), 60); String jwtReToken = jwt.createJwt(user.getName(), user.getId(), 24 * 60); RedisUtil.set("" + user.getId(), jwtToken, 60); @@ -66,4 +75,27 @@ return Result.fail(map.get("info")); } + @ApiOperation(value = "鑾峰彇鐢ㄦ埛鍒楄〃") + @PostMapping("/selectUserList") + public Result selectUserList(@RequestBody Map<String, Object> data) throws Exception { + Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class); + UserPageDto user = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), UserPageDto.class); + return Result.success(userService.selectUserList(page, user)); + } + + @ApiOperation(value = "淇敼鐢ㄦ埛淇℃伅") + @PostMapping("/updateUser") + public Result<?> updateUser(@RequestBody User user) { + if ("".equals(user.getPassword())) user.setPassword(null); + else user.setPassword(DigestUtils.md5DigestAsHex(user.getPassword().getBytes())); + return Result.success(userService.updateUser(user)); + } + + @ApiOperation(value = "娣诲姞鐢ㄦ埛淇℃伅") + @PostMapping("/addUser") + public Result<?> addUser(@RequestBody User user) { + if ("".equals(user.getPassword())) user.setPassword(null); + else user.setPassword(DigestUtils.md5DigestAsHex(user.getPassword().getBytes())); + return Result.success(userService.addUser(user)); + } } diff --git a/user-server/src/main/java/com/yuanchu/mom/dto/UserPageDto.java b/user-server/src/main/java/com/yuanchu/mom/dto/UserPageDto.java new file mode 100644 index 0000000..9f1f95b --- /dev/null +++ b/user-server/src/main/java/com/yuanchu/mom/dto/UserPageDto.java @@ -0,0 +1,27 @@ +package com.yuanchu.mom.dto; + +import com.yuanchu.mom.annotation.ValueTableShow; +import com.yuanchu.mom.pojo.User; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class UserPageDto extends User { + + @ValueTableShow(10) + @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛") + private String createUserName; + + @ValueTableShow(11) + @ApiModelProperty(value = "鏇存柊鐢ㄦ埛") + private String updateUserName; + + @ValueTableShow(1) + @ApiModelProperty(value = "瑙掕壊") + private String roleName; + +} diff --git a/user-server/src/main/java/com/yuanchu/mom/mapper/RoleMapper.java b/user-server/src/main/java/com/yuanchu/mom/mapper/RoleMapper.java new file mode 100644 index 0000000..86307a5 --- /dev/null +++ b/user-server/src/main/java/com/yuanchu/mom/mapper/RoleMapper.java @@ -0,0 +1,12 @@ +package com.yuanchu.mom.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yuanchu.mom.pojo.Role; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +@Mapper +@Repository +public interface RoleMapper extends BaseMapper<Role> { + +} diff --git a/user-server/src/main/java/com/yuanchu/mom/mapper/UserMapper.java b/user-server/src/main/java/com/yuanchu/mom/mapper/UserMapper.java index 99a6940..f1d519e 100644 --- a/user-server/src/main/java/com/yuanchu/mom/mapper/UserMapper.java +++ b/user-server/src/main/java/com/yuanchu/mom/mapper/UserMapper.java @@ -1,11 +1,19 @@ package com.yuanchu.mom.mapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yuanchu.mom.dto.UserPageDto; import com.yuanchu.mom.pojo.User; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository; +import java.util.List; + @Mapper @Repository public interface UserMapper extends BaseMapper<User> { + + IPage<User> selectUserDtoPageList(IPage<UserPageDto> page, QueryWrapper<UserPageDto> ew); + } diff --git a/user-server/src/main/java/com/yuanchu/mom/pojo/Role.java b/user-server/src/main/java/com/yuanchu/mom/pojo/Role.java new file mode 100644 index 0000000..1a61592 --- /dev/null +++ b/user-server/src/main/java/com/yuanchu/mom/pojo/Role.java @@ -0,0 +1,49 @@ +package com.yuanchu.mom.pojo; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.yuanchu.mom.annotation.ValueTableShow; +import com.yuanchu.mom.common.OrderBy; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class Role extends OrderBy implements Serializable { + + @ApiModelProperty(value = "涓婚敭") + private Integer id; + + @ValueTableShow(1) + @ApiModelProperty(value = "瑙掕壊鍚嶇О") + private String name; + + @ValueTableShow(2) + @ApiModelProperty(value = "鍒涘缓鏃ユ湡") + @TableField(fill = FieldFill.INSERT) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @ValueTableShow(3) + @ApiModelProperty(value = "鏇存柊鏃ユ湡") + @TableField(fill = FieldFill.INSERT_UPDATE) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + + @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty(value = "鏇存柊鐢ㄦ埛") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + +} diff --git a/user-server/src/main/java/com/yuanchu/mom/pojo/User.java b/user-server/src/main/java/com/yuanchu/mom/pojo/User.java index d8ba49b..5a2384a 100644 --- a/user-server/src/main/java/com/yuanchu/mom/pojo/User.java +++ b/user-server/src/main/java/com/yuanchu/mom/pojo/User.java @@ -1,39 +1,90 @@ package com.yuanchu.mom.pojo; -import com.baomidou.mybatisplus.annotation.FieldFill; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.yuanchu.mom.annotation.ValueTableShow; +import com.yuanchu.mom.common.OrderBy; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.io.Serializable; +import java.lang.reflect.Field; +import java.time.LocalDateTime; import java.util.Date; +import java.util.HashMap; +import java.util.Map; @Data @Builder @AllArgsConstructor @NoArgsConstructor -public class User { +@TableName("user") +public class User extends OrderBy implements Serializable{ + @ApiModelProperty(value = "涓婚敭") @TableId(type = IdType.AUTO) private Integer id; + @ValueTableShow(1) + @ApiModelProperty(value = "璐﹀彿") private String account; + @ApiModelProperty(value = "瀵嗙爜") private String password; + @ValueTableShow(2) + @ApiModelProperty(value = "瀹㈡埛鍚嶇О") private String name; - private int state; + @ValueTableShow(3) + @ApiModelProperty(value = "鐘舵��") + private Integer state; + @ValueTableShow(4) + @ApiModelProperty(value = "骞撮緞") + private Integer age; + + @ValueTableShow(5) + @ApiModelProperty(value = "閭") + private String email; + + @ValueTableShow(6) + @ApiModelProperty(value = "鐢佃瘽鍙风爜") + private String phone; + + @ValueTableShow(7) + @ApiModelProperty(value = "閮ㄩ棬") + private String department; + + @ValueTableShow(8) + @ApiModelProperty(value = "鍏徃") + private String company; + + @ApiModelProperty(value = "瑙掕壊涓婚敭") + private Integer roleId; + + @ValueTableShow(9) + @ApiModelProperty(value = "鍒涘缓鏃ユ湡") @TableField(fill = FieldFill.INSERT) - private Date createTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + @ValueTableShow(10) + @ApiModelProperty(value = "鏇存柊鏃ユ湡") @TableField(fill = FieldFill.INSERT_UPDATE) - private Date updateTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; - private int version; + @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty(value = "鏇存柊鐢ㄦ埛") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; } diff --git a/user-server/src/main/java/com/yuanchu/mom/service/RoleService.java b/user-server/src/main/java/com/yuanchu/mom/service/RoleService.java new file mode 100644 index 0000000..534f107 --- /dev/null +++ b/user-server/src/main/java/com/yuanchu/mom/service/RoleService.java @@ -0,0 +1,19 @@ +package com.yuanchu.mom.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yuanchu.mom.dto.UserPageDto; +import com.yuanchu.mom.pojo.Role; +import com.yuanchu.mom.pojo.User; + +import java.util.List; +import java.util.Map; + +public interface RoleService { + + List<Role> selectList(); + + Map<String, Object> selectUserList(IPage<Role> page, Role role); + + int delRole(Integer id); + +} diff --git a/user-server/src/main/java/com/yuanchu/mom/service/UserService.java b/user-server/src/main/java/com/yuanchu/mom/service/UserService.java index f4e2517..e584c81 100644 --- a/user-server/src/main/java/com/yuanchu/mom/service/UserService.java +++ b/user-server/src/main/java/com/yuanchu/mom/service/UserService.java @@ -1,5 +1,8 @@ package com.yuanchu.mom.service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yuanchu.mom.dto.UserPageDto; import com.yuanchu.mom.pojo.User; import java.util.List; @@ -13,4 +16,10 @@ //鏍规嵁鐢ㄦ埛id鏌ヨ鐢ㄦ埛鍚� String selectNameById(Integer id); + Map<String, Object> selectUserList(IPage<UserPageDto> page, UserPageDto user); + + int updateUser(User user); + + int addUser(User user); + } diff --git a/user-server/src/main/java/com/yuanchu/mom/service/imp/RoleServiceImp.java b/user-server/src/main/java/com/yuanchu/mom/service/imp/RoleServiceImp.java new file mode 100644 index 0000000..9edb882 --- /dev/null +++ b/user-server/src/main/java/com/yuanchu/mom/service/imp/RoleServiceImp.java @@ -0,0 +1,46 @@ +package com.yuanchu.mom.service.imp; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yuanchu.mom.common.PrintChina; +import com.yuanchu.mom.dto.UserPageDto; +import com.yuanchu.mom.mapper.RoleMapper; +import com.yuanchu.mom.mapper.UserMapper; +import com.yuanchu.mom.pojo.Role; +import com.yuanchu.mom.pojo.User; +import com.yuanchu.mom.service.RoleService; +import com.yuanchu.mom.service.UserService; +import com.yuanchu.mom.utils.Jwt; +import com.yuanchu.mom.utils.QueryWrappers; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.util.DigestUtils; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +@AllArgsConstructor +public class RoleServiceImp implements RoleService { + + private RoleMapper roleMapper; + + @Override + public List<Role> selectList() { + return roleMapper.selectList(null); + } + + @Override + public Map<String, Object> selectUserList(IPage<Role> page, Role role) { + Map<String, Object> map = new HashMap<>(); + map.put("head", PrintChina.printChina(Role.class)); + map.put("body", roleMapper.selectPage(page, QueryWrappers.queryWrappers(role))); + return map; + } + + @Override + public int delRole(Integer id) { + return roleMapper.deleteById(id); + } +} diff --git a/user-server/src/main/java/com/yuanchu/mom/service/imp/UserServiceImp.java b/user-server/src/main/java/com/yuanchu/mom/service/imp/UserServiceImp.java index 25d8056..1ef4784 100644 --- a/user-server/src/main/java/com/yuanchu/mom/service/imp/UserServiceImp.java +++ b/user-server/src/main/java/com/yuanchu/mom/service/imp/UserServiceImp.java @@ -1,27 +1,42 @@ package com.yuanchu.mom.service.imp; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.extension.plugins.pagination.Page; +import com.yuanchu.mom.common.PrintChina; +import com.yuanchu.mom.dto.UserPageDto; import com.yuanchu.mom.mapper.UserMapper; import com.yuanchu.mom.pojo.User; import com.yuanchu.mom.service.UserService; +import com.yuanchu.mom.utils.JackSonUtil; +import com.yuanchu.mom.utils.Jwt; +import com.yuanchu.mom.utils.QueryWrappers; +import com.yuanchu.mom.utils.ServletUtils; +import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.util.DigestUtils; import javax.annotation.Resource; +import java.util.HashMap; import java.util.List; import java.util.Map; @Service +@AllArgsConstructor public class UserServiceImp implements UserService { - @Resource UserMapper userMapper; + + Jwt jwt; @Override public User selectUserByPwd(String account, String password) { QueryWrapper<User> wrapper = new QueryWrapper<>(); - wrapper.eq("account", account).eq("password", DigestUtils.md5DigestAsHex(password.getBytes())); + wrapper.eq("account", account).eq("password", DigestUtils.md5DigestAsHex(password.getBytes())).eq("state", 1); List<User> list = userMapper.selectList(wrapper); return list.size()>0?list.get(0):null; } @@ -33,4 +48,21 @@ return user.getName(); } + @Override + public Map<String, Object> selectUserList(IPage<UserPageDto> page, UserPageDto user) { + Map<String, Object> map = new HashMap<>(); + map.put("head", PrintChina.printChina(UserPageDto.class)); + map.put("body", userMapper.selectUserDtoPageList(page, QueryWrappers.queryWrappers(user))); + return map; + } + + @Override + public int updateUser(User user) { + return userMapper.updateById(user); + } + + @Override + public int addUser(User user) { + return userMapper.insert(user); + } } diff --git a/user-server/src/main/resources/mapper/RoleMapper.xml b/user-server/src/main/resources/mapper/RoleMapper.xml new file mode 100644 index 0000000..82c0ab5 --- /dev/null +++ b/user-server/src/main/resources/mapper/RoleMapper.xml @@ -0,0 +1,5 @@ +<?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.yuanchu.mom.mapper.RoleMapper"> + +</mapper> \ No newline at end of file diff --git a/user-server/src/main/resources/mapper/UserMapper.xml b/user-server/src/main/resources/mapper/UserMapper.xml index 7f7653f..8dc3b9d 100644 --- a/user-server/src/main/resources/mapper/UserMapper.xml +++ b/user-server/src/main/resources/mapper/UserMapper.xml @@ -2,4 +2,16 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.yuanchu.mom.mapper.UserMapper"> + <select id="selectUserDtoPageList" resultType="com.yuanchu.mom.dto.UserPageDto"> + select * from ( + select u1.id, u1.account, u1.name, u1.state, u1.create_time, u1.update_time, u1.create_user, u1.update_user, u1.age, u1.email, u1.phone, u1.department, u1.company, u1.role_id, u2.name create_user_name, u3.name update_user_name, r.name role_name + from user u1 + left join user u2 on u2.id = u1.create_user + left join user u3 on u3.id = u1.update_user + left join role r on u1.role_id = r.id + ) a + <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> + ${ew.customSqlSegment} + </if> + </select> </mapper> \ No newline at end of file -- Gitblit v1.9.3