From bd33d9649906e88271725a7d450b0c49afd54df5 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期二, 20 一月 2026 15:30:16 +0800
Subject: [PATCH] 经销商管理
---
admin/src/views/business/shop.vue | 2
server/dmmall_service/src/main/resources/templates/controller.vm | 85 ++++++++
admin/src/components/business/OperaShopInfoWindow.vue | 1
server/dmmall_service/src/main/resources/templates/service.vm | 97 +++++++++
server/pom.xml | 10 +
server/dmmall_service/src/main/resources/templates/entity.vm | 32 +++
server/dmmall_service/src/main/resources/templates/serviceImpl.vm | 118 +++++++++++
server/dmmall_service/src/main/java/com/doumee/core/utils/CodeGenerator.java | 208 ++++++++++++++++++++
server/dmmall_service/src/main/resources/templates/mapper.vm | 12 +
9 files changed, 563 insertions(+), 2 deletions(-)
diff --git a/admin/src/components/business/OperaShopInfoWindow.vue b/admin/src/components/business/OperaShopInfoWindow.vue
index ce95283..ca299db 100644
--- a/admin/src/components/business/OperaShopInfoWindow.vue
+++ b/admin/src/components/business/OperaShopInfoWindow.vue
@@ -199,7 +199,6 @@
</el-table-column>
<el-table-column prop="price" label="瀹炰粯浠锋牸(鍏�)" align="center" min-width="200px"></el-table-column>
<el-table-column prop="shopSettlement" label="搴旂粨绠楅噾棰�(鍏�)" align="center" min-width="150px"></el-table-column>
- <el-table-column prop="orderCode" label="搴旂粨绠楅噾棰�(鍏�)" align="center" min-width="150px"></el-table-column>
<el-table-column prop="returnMemberIntegral" label="杩旂敤鎴风Н鍒�" align="center" min-width="150px"></el-table-column>
<el-table-column prop="returnCustomerIntegral" label="杩旂粡閿�鍟嗙Н鍒�" align="center" min-width="150px"></el-table-column>
<el-table-column prop="payDate" label="鏀粯鏃堕棿" align="center" min-width="200px"></el-table-column>
diff --git a/admin/src/views/business/shop.vue b/admin/src/views/business/shop.vue
index 3f77ae9..301effe 100644
--- a/admin/src/views/business/shop.vue
+++ b/admin/src/views/business/shop.vue
@@ -184,7 +184,7 @@
})
},
showDetail (row) {
- this.$refs.OperaShopInfoWindow.open('缁忛攢鍟嗚鎯�', row)
+ this.$refs.OperaShopInfoWindow.open('缁忛攢鍟嗚鎯呫��'+row.name+'銆�', row)
}
}
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/core/utils/CodeGenerator.java b/server/dmmall_service/src/main/java/com/doumee/core/utils/CodeGenerator.java
new file mode 100644
index 0000000..7e38616
--- /dev/null
+++ b/server/dmmall_service/src/main/java/com/doumee/core/utils/CodeGenerator.java
@@ -0,0 +1,208 @@
+package com.doumee.core.utils;
+
+
+import org.apache.velocity.Template;
+import org.apache.velocity.VelocityContext;
+import org.apache.velocity.app.VelocityEngine;
+import org.apache.velocity.runtime.RuntimeConstants;
+import org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.sql.*;
+import java.util.Date;
+import java.util.*;
+
+// 婕旂ず渚嬪瓙锛屾墽琛� main 鏂规硶鎺у埗鍙拌緭鍏ユā鍧楄〃鍚嶅洖杞﹁嚜鍔ㄧ敓鎴愬搴旈」鐩洰褰曚腑
+public class CodeGenerator {
+public static String packName ="com.doumee";
+ public static void main(String[] args) {
+ // 閰嶇疆鏁版嵁搴撹繛鎺�
+ String url = "jdbc:mysql://192.168.0.211:3306/dmmall_full";
+ String username = "root";
+ String password = "Doumee@168";
+ String database = "dmmall_full";
+ String tableName = "car_driver";
+ // 鑾峰彇琛ㄤ俊鎭苟鐢熸垚浠g爜
+ Map<String, Object> tableInfo = getTableInfo(url, username, password, database, tableName);
+ generateCode(tableInfo);
+ }
+
+ public static Map<String, Object> getTableInfo(String url, String username, String password, String database, String tableName) {
+ Map<String, Object> map = new HashMap<>();
+ try (Connection conn = DriverManager.getConnection(url, username, password)) {
+ // 鏌ヨ琛ㄦ敞閲�
+ String tableQuery = "SELECT table_comment FROM information_schema.tables WHERE table_schema = ? AND table_name = ?";
+ try (PreparedStatement ps = conn.prepareStatement(tableQuery)) {
+ ps.setString(1, database);
+ ps.setString(2, tableName);
+ ResultSet rs = ps.executeQuery();
+ if (rs.next()) {
+ map.put("tableComment", rs.getString("table_comment"));
+ }
+ }
+ // 鏌ヨ瀛楁淇℃伅 auto_increment
+ String columnQuery = "SELECT extra,column_name, column_type, column_comment FROM information_schema.columns WHERE table_schema = ? AND table_name = ? order by ordinal_position";
+ List<Map<String, String>> columns = new ArrayList<>();
+ try (PreparedStatement ps = conn.prepareStatement(columnQuery)) {
+ ps.setString(1, database);
+ ps.setString(2, tableName);
+ ResultSet rs = ps.executeQuery();
+ int index = 1;
+ while (rs.next()) {
+ String javaName = toCamelCase(rs.getString("column_name"));
+ String getJavaName = javaName.substring(0,1).toUpperCase()+javaName.substring(1);
+ Map<String, String> columnInfo = new HashMap<>();
+ if(rs.getString("extra") !=null
+ && rs.getString("extra").contains("auto_increment")){
+ //濡傛灉鏄嚜澧為暱
+ columnInfo.put("auto","1"); // 杞崲涓� Java 鍙橀噺鍚�
+ }else{
+ columnInfo.put("auto","0"); // 杞崲涓� Java 鍙橀噺鍚�
+ }
+ columnInfo.put("index",index++ +"");
+ columnInfo.put("columnName", rs.getString("column_name"));
+ columnInfo.put("javaName",javaName); // 杞崲涓� Java 鍙橀噺鍚�
+ columnInfo.put("getJavaName",getJavaName); // 杞崲涓� Java 鍙橀噺鍚�
+ columnInfo.put("javaType", sqlTypeToJavaType(rs.getString("column_type"))); // 杞崲涓� Java 绫诲瀷
+ columnInfo.put("comment", rs.getString("column_comment"));
+ columns.add(columnInfo);
+ }
+ }
+ map.put("columns", columns);
+ map.put("tableName", tableName);
+ map.put("entityName", toCamelCase(tableName));
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ return map;
+ }
+
+ private static String sqlTypeToJavaType(String sqlType) {
+ sqlType = sqlType.toLowerCase();
+ if (sqlType.contains("int")) {
+ return "Integer";
+ } else if (sqlType.contains("bigint")) {
+ return "Long";
+ } else if (sqlType.contains("char") || sqlType.contains("text") || sqlType.contains("varchar")) {
+ return "String";
+ } else if (sqlType.contains("datetime") || sqlType.contains("timestamp")) {
+ return "Date";
+ } else if (sqlType.contains("date")) {
+ return "Date";
+ } else if (sqlType.contains("decimal") || sqlType.contains("double")) {
+ return "BigDecimal";
+ } else {
+ return "String";
+ }
+ }
+
+ private static String toCamelCase(String name) {
+ StringBuilder result = new StringBuilder();
+ String[] parts = name.split("_");
+ for (int i = 0; i < parts.length; i++) {
+ if (i == 0) {
+ result.append(parts[i].toLowerCase());
+ } else {
+ result.append(Character.toUpperCase(parts[i].charAt(0))).append(parts[i].substring(1).toLowerCase());
+ }
+ }
+ return result.toString();
+ }
+ private static void generateCode(Map<String, Object> tableInfo) {
+ // 璇诲彇琛ㄤ俊鎭�
+ String entityName = (String) tableInfo.get("entityName");
+ String tableName = (String) tableInfo.get("tableName");
+ String tableComment = (String) tableInfo.get("tableComment");
+ List<Map<String, String>> columns = (List<Map<String, String>>) tableInfo.get("columns");
+
+ String templateDir = "D:\\code\\idea\\doumee_code\\server\\src\\main\\resources\\templates"; // 妯℃澘鏂囦欢鐨勮矾寰�
+ Properties p = new Properties();
+ // 鎸囧畾妯℃澘鐨勫姞杞戒綅缃�
+ p.setProperty(VelocityEngine.FILE_RESOURCE_LOADER_PATH, templateDir);
+ // 鎸囧畾杈撳叆缂栫爜
+ p.setProperty(VelocityEngine.INPUT_ENCODING, "UTF-8");
+
+ p.setProperty(RuntimeConstants.RESOURCE_LOADER, "file");
+ p.setProperty("file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.FileResourceLoader");
+ p.setProperty("velocimacro.library", "macro_library.vm"); // 璁剧疆瀹忓簱鏂囦欢鍚�
+ p.setProperty("velocimacro.library.autoreload", "true"); // 鍏佽鑷姩閲嶆柊鍔犺浇瀹忓簱
+ p.setProperty("velocimacro.permissions.allow.inline.to.replace.global", "true"); // 鍏佽鍐呰仈瀹忔浛鎹㈠叏灞�瀹�
+ p.setProperty("velocimacro.library", "/templates/macro_library.vm"); // 璁剧疆瀹忓簱鏂囦欢鍚�
+ p.setProperty("velocimacro.library.autoreload", "true"); // 鍏佽鑷姩閲嶆柊鍔犺浇瀹忓簱
+
+ // 璁剧疆 Velocity 閰嶇疆
+ VelocityEngine velocityEngine = new VelocityEngine();
+ velocityEngine.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");
+ velocityEngine.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName());
+ velocityEngine.init();
+
+ // 閰嶇疆妯℃澘鐩綍
+
+
+ // 璁剧疆杈撳嚭鐩綍
+ String outputDir = "D:\\code\\idea\\doumee_code\\server\\src\\main\\java\\com\\testcom"; // 杈撳嚭鐨勪唬鐮佹枃浠跺す璺緞
+
+ String baseName = entityName.substring(0, 1).toUpperCase() + entityName.substring(1);
+ // 鍒涘缓 Velocity 涓婁笅鏂�
+ Map<String,String> pack = new HashMap<>();
+ pack.put("Base",packName);
+ pack.put("Entity",packName+".dao.businees.model");
+ pack.put("Controller",packName+".api.businees");
+ pack.put("Mapper",packName+".dao.businees");
+ pack.put("Service",packName+".service.businees");
+ pack.put("ServiceImpl",packName+".service.businees.impl");
+ VelocityContext context = new VelocityContext();
+ context.put("package",pack); // 璁剧疆鍖呰矾寰�
+ context.put("entityName", baseName);
+ context.put("entityNameLower", entityName);
+ context.put("entityNameLowerFull", entityName.toLowerCase());
+ context.put("tableName", tableName);
+ context.put("tableComment", tableComment);
+ context.put("columns", columns);
+ context.put("nowDate", DateUtil.getPlusTime2(new Date()));
+
+ // 鐢熸垚 Entity 鏂囦欢
+ generateFile(velocityEngine, context, "entity.vm", baseName, outputDir + "/dao/businees/model/" , ".java");
+
+ // 鐢熸垚 Mapper 鏂囦欢
+ generateFile(velocityEngine, context, "mapper.vm", baseName, outputDir + "/dao/businees/" , "Mapper.java");
+
+ // 鐢熸垚 Service 鎺ュ彛鏂囦欢
+ generateFile(velocityEngine, context, "service.vm", baseName, outputDir + "/service/businees/" , "Service.java");
+
+ // 鐢熸垚 ServiceImpl 鏂囦欢
+ generateFile(velocityEngine, context, "serviceImpl.vm", baseName, outputDir + "/service/businees/impl/" , "ServiceImpl.java");
+
+ // 鐢熸垚 Controller 鏂囦欢
+ generateFile(velocityEngine, context, "controller.vm", baseName, outputDir + "/api/businees/", "Controller.java");
+ }
+
+ private static void generateFile(VelocityEngine velocityEngine, VelocityContext context, String templateName, String baseName,String outputFilePath,String endName) {
+ // 鑾峰彇妯℃澘
+ File file = new File(outputFilePath);
+ if(!file.isDirectory()){
+ file.mkdirs();
+ }
+ System.out.println(file.isFile());
+ Template template = velocityEngine.getTemplate( "templates/"+templateName);
+
+ // 鍒涘缓鏂囦欢杈撳嚭娴�
+ try{
+ File f = new File(outputFilePath+baseName+endName);
+ if(f.isFile()){
+ f.delete();
+ }
+ f.createNewFile();
+ // 灏嗕笂涓嬫枃鏁版嵁娓叉煋鍒版ā鏉夸腑
+ FileWriter writer = new FileWriter(outputFilePath+baseName+endName);
+ template.merge(context, writer);
+ writer.flush();
+ writer.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/server/dmmall_service/src/main/resources/templates/controller.vm b/server/dmmall_service/src/main/resources/templates/controller.vm
new file mode 100644
index 0000000..77255ce
--- /dev/null
+++ b/server/dmmall_service/src/main/resources/templates/controller.vm
@@ -0,0 +1,85 @@
+package ${package.Controller};
+
+import ${package.Base}.core.annotation.excel.ExcelExporter;
+import ${package.Base}.core.annotation.pr.PreventRepeat;
+
+import ${package.Base}.core.model.ApiResponse;
+import ${package.Base}.core.model.PageData;
+import ${package.Base}.core.model.PageWrap;
+import ${package.Entity}.${entityName};
+import ${package.Base}.core.utils.Utils;
+import ${package.Service}.${entityName}Service;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+
+import ${package.Base}.api.BaseController;
+/**
+ * ${tableComment}Controller瀹氫箟
+ * @author doumee
+ * @date ${nowDate}
+ */
+@Api(tags = "tableName鎺ュ彛")
+@RestController
+@RequestMapping("/business/${entityNameLower}")
+public class ${entityName}Controller extends BaseController {
+
+ @Autowired
+ private ${entityName}Service ${entityNameLower}Service;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @RequiresPermissions("business:${entityNameLowerFull}:create")
+ public ApiResponse create(@RequestBody ${entityName} ${entityNameLower}) {
+ return ApiResponse.success(${entityNameLower}Service.create(${entityNameLower}));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @RequiresPermissions("business:${entityNameLowerFull}:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ ${entityNameLower}Service.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @RequiresPermissions("business:${entityNameLowerFull}:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ ${entityNameLower}Service.deleteByIdInBatch(this.getIdList(ids));
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @RequiresPermissions("business:${entityNameLowerFull}:update")
+ public ApiResponse updateById(@RequestBody ${entityName} ${entityNameLower}) {
+ ${entityNameLower}Service.updateById(${entityNameLower});
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @RequiresPermissions("business:${entityNameLowerFull}:query")
+ public ApiResponse<PageData<${entityName}>> findPage (@RequestBody PageWrap<${entityName}> pageWrap) {
+ return ApiResponse.success(${entityNameLower}Service.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @RequiresPermissions("business:${entityNameLowerFull}:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<${entityName}> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(${entityName}.class).export(${entityNameLower}Service.findPage(pageWrap).getRecords(), "鏈堝彴_浣滀笟鎿嶄綔鍘嗗彶琛�", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @RequiresPermissions("business:${entityNameLowerFull}:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(${entityNameLower}Service.findById(id));
+ }
+}
diff --git a/server/dmmall_service/src/main/resources/templates/entity.vm b/server/dmmall_service/src/main/resources/templates/entity.vm
new file mode 100644
index 0000000..dd73b45
--- /dev/null
+++ b/server/dmmall_service/src/main/resources/templates/entity.vm
@@ -0,0 +1,32 @@
+package ${package.Entity};
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+import java.math.BigDecimal;
+/**
+ * ${tableComment}Model瀹氫箟
+ * @author doumee
+ * @date ${nowDate}
+ */
+@Data
+@TableName("${tableName}")
+@ApiModel(value = "${entityName} 瀹炰綋绫�")
+public class ${entityName} {
+
+#foreach ($column in $columns)
+ @ApiModelProperty("${column.comment}")
+ @ExcelColumn(name="${column.comment}",index=${column.index} ,width=10)
+ #if(${column.auto}=='1' and (${column.javaType}=='Integer' or ${column.javaType}=='Long') )
+ @TableId(type = IdType.AUTO)
+ #end
+ private ${column.javaType} ${column.javaName};
+#end
+}
diff --git a/server/dmmall_service/src/main/resources/templates/mapper.vm b/server/dmmall_service/src/main/resources/templates/mapper.vm
new file mode 100644
index 0000000..b250d65
--- /dev/null
+++ b/server/dmmall_service/src/main/resources/templates/mapper.vm
@@ -0,0 +1,12 @@
+package ${package.Mapper};
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import ${package.Entity}.${entityName};
+import com.github.yulichang.base.MPJBaseMapper;
+/**
+ * ${tableComment}Mapper瀹氫箟
+ * @author doumee
+ * @date ${nowDate}
+ */
+public interface ${entityName}Mapper extends MPJBaseMapper<${entityName}> {
+}
diff --git a/server/dmmall_service/src/main/resources/templates/service.vm b/server/dmmall_service/src/main/resources/templates/service.vm
new file mode 100644
index 0000000..33ea31b
--- /dev/null
+++ b/server/dmmall_service/src/main/resources/templates/service.vm
@@ -0,0 +1,97 @@
+package ${package.Service};
+
+import ${package.Base}.core.model.PageData;
+import ${package.Base}.core.model.PageWrap;
+import ${package.Entity}.${entityName};
+import java.util.List;
+
+/**
+ * ${tableComment}Service瀹氫箟
+ * @author doumee
+ * @date ${nowDate}
+ */
+public interface ${entityName}Service {
+
+ /**
+ * 鍒涘缓
+ *
+ * @param model 瀹炰綋瀵硅薄
+ * @return Integer
+ */
+ Integer create(${entityName} model);
+
+ /**
+ * 涓婚敭鍒犻櫎
+ *
+ * @param id 涓婚敭
+ */
+ void deleteById(Integer id);
+
+ /**
+ * 鍒犻櫎
+ *
+ * @param model 瀹炰綋瀵硅薄
+ */
+ void delete(${entityName} model);
+
+ /**
+ * 鎵归噺涓婚敭鍒犻櫎
+ *
+ * @param ids 涓婚敭闆�
+ */
+ void deleteByIdInBatch(List<Integer> ids);
+
+ /**
+ * 涓婚敭鏇存柊
+ *
+ * @param model 瀹炰綋瀵硅薄
+ */
+ void updateById(${entityName} model);
+
+ /**
+ * 鎵归噺涓婚敭鏇存柊
+ *
+ * @param model 瀹炰綋闆�
+ */
+ void updateByIdInBatch(List<${entityName}> model);
+
+ /**
+ * 涓婚敭鏌ヨ
+ *
+ * @param id 涓婚敭
+ * @return model
+ */
+ ${entityName} findById(Integer id);
+
+ /**
+ * 鏉′欢鏌ヨ鍗曟潯璁板綍
+ *
+ * @param model 瀹炰綋瀵硅薄
+ * @return ${entityName}
+ */
+ ${entityName} findOne(${entityName} model);
+
+ /**
+ * 鏉′欢鏌ヨ
+ *
+ * @param model 瀹炰綋瀵硅薄
+ * @return List<${entityName}>
+ */
+ List<${entityName}> findList(${entityName} model);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ *
+ * @param pageWrap 鍒嗛〉瀵硅薄
+ * @return PageData<${entityName}>
+ */
+ PageData<${entityName}> findPage(PageWrap<${entityName}> pageWrap);
+
+ /**
+ * 鏉′欢缁熻
+ *
+ * @param model 瀹炰綋瀵硅薄
+ * @return long
+ */
+ long count(${entityName} model);
+}
diff --git a/server/dmmall_service/src/main/resources/templates/serviceImpl.vm b/server/dmmall_service/src/main/resources/templates/serviceImpl.vm
new file mode 100644
index 0000000..5ff71f2
--- /dev/null
+++ b/server/dmmall_service/src/main/resources/templates/serviceImpl.vm
@@ -0,0 +1,118 @@
+package ${package.ServiceImpl};
+
+import ${package.Base}.core.model.PageData;
+import ${package.Base}.core.model.PageWrap;
+import ${package.Entity}.${entityName};
+import ${package.Base}.core.utils.Utils;
+import ${package.Mapper}.${entityName}Mapper;
+import ${package.Service}.${entityName}Service;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+/**
+ * ${tableComment}Service瀹炵幇
+ * @author doumee
+ * @date ${nowDate}
+ */
+@Service
+public class ${entityName}ServiceImpl implements ${entityName}Service {
+
+ @Autowired
+ private ${entityName}Mapper ${entityNameLower}Mapper;
+
+ @Override
+ public Integer create(${entityName} ${entityNameLower}) {
+ ${entityNameLower}Mapper.insert(${entityNameLower});
+ return ${entityNameLower}.getId();
+ }
+
+ @Override
+ public void deleteById(Integer id) {
+ ${entityNameLower}Mapper.deleteById(id);
+ }
+
+ @Override
+ public void delete(${entityName} ${entityNameLower}) {
+ UpdateWrapper<${entityName}> deleteWrapper = new UpdateWrapper<>(${entityNameLower});
+ ${entityNameLower}Mapper.delete(deleteWrapper);
+ }
+
+ @Override
+ public void deleteByIdInBatch(List<Integer> ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return;
+ }
+ ${entityNameLower}Mapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void updateById(${entityName} ${entityNameLower}) {
+ ${entityNameLower}Mapper.updateById(${entityNameLower});
+ }
+
+ @Override
+ public void updateByIdInBatch(List<${entityName}> ${entityNameLower}s) {
+ if (CollectionUtils.isEmpty(${entityNameLower}s)) {
+ return;
+ }
+ for (${entityName} ${entityNameLower}: ${entityNameLower}s) {
+ this.updateById(${entityNameLower});
+ }
+ }
+
+ @Override
+ public ${entityName} findById(Integer id) {
+ return ${entityNameLower}Mapper.selectById(id);
+ }
+
+ @Override
+ public ${entityName} findOne(${entityName} ${entityNameLower}) {
+ QueryWrapper<${entityName}> wrapper = new QueryWrapper<>(${entityNameLower}).last("limit 1");
+ return ${entityNameLower}Mapper.selectOne(wrapper);
+ }
+
+ @Override
+ public List<${entityName}> findList(${entityName} ${entityNameLower}) {
+ QueryWrapper<${entityName}> wrapper = new QueryWrapper<>(${entityNameLower});
+ return ${entityNameLower}Mapper.selectList(wrapper);
+ }
+
+ @Override
+ public PageData<${entityName}> findPage(PageWrap<${entityName}> pageWrap) {
+ IPage<${entityName}> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ QueryWrapper<${entityName}> queryWrapper = new QueryWrapper<>();
+ Utils.MP.blankToNull(pageWrap.getModel());
+ #foreach ($column in $columns)
+ #if(${column.javaType} !='Date')
+ queryWrapper.lambda().eq(pageWrap.getModel().get${column.getJavaName}() != null,${entityName}::get${column.getJavaName}, pageWrap.getModel().get${column.getJavaName}());
+ #end
+ #if(${column.javaType} =='Date')
+ if (pageWrap.getModel().getId() != null) {
+ queryWrapper.lambda().ge(${entityName}::get${column.getJavaName}, Utils.Date.getStart(pageWrap.getModel().get${column.getJavaName}()));
+ queryWrapper.lambda().le(${entityName}::get${column.getJavaName}, Utils.Date.getEnd(pageWrap.getModel().get${column.getJavaName}()));
+ }
+ #end
+ #end
+ for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+ if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+ queryWrapper.orderByDesc(sortData.getProperty());
+ } else {
+ queryWrapper.orderByAsc(sortData.getProperty());
+ }
+ }
+ return PageData.from(${entityNameLower}Mapper.selectPage(page, queryWrapper));
+ }
+
+ @Override
+ public long count(${entityName} ${entityNameLower}) {
+ QueryWrapper<${entityName}> wrapper = new QueryWrapper<>(${entityNameLower});
+ return ${entityNameLower}Mapper.selectCount(wrapper);
+ }
+}
diff --git a/server/pom.xml b/server/pom.xml
index 9be2e51..b078b94 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -92,6 +92,16 @@
</dependency>
<!-- 杩炴帴姹� -->
<dependency>
+ <groupId>com.baomidou</groupId>
+ <artifactId>mybatis-plus-generator</artifactId>
+ <version>3.5.3.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.velocity</groupId>
+ <artifactId>velocity-engine-core</artifactId>
+ <version>2.3</version>
+ </dependency>
+ <dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
--
Gitblit v1.9.3