basic-server/src/main/java/com/ruoyi/basic/controller/CoalInfoController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,56 @@ package com.ruoyi.basic.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.basic.dto.CoalInfoDto; import com.ruoyi.basic.dto.SupplyDto; import com.ruoyi.basic.entity.CoalInfo; import com.ruoyi.basic.entity.Supply; import com.ruoyi.basic.service.CoalInfoService; import com.ruoyi.common.core.domain.R; import org.springframework.web.bind.annotation.*; import lombok.AllArgsConstructor; /** * <p> * ç ¤ç§ä¿¡æ¯è¡¨ å端æ§å¶å¨ * </p> * * @author ruoyi * @since 2025-06-03 */ @RestController @AllArgsConstructor @RequestMapping("/basic/coalInfo") public class CoalInfoController { private CoalInfoService coalInfoService; /** * æ¥è¯¢ */ @GetMapping("/list") public R<IPage<CoalInfo>> list(Page page, CoalInfoDto coalInfoDto) { IPage<CoalInfo> list = coalInfoService.selectCoalInfoList(page,coalInfoDto); return R.ok(list); } /** * æ°å¢ä¿®æ¹ */ @PostMapping("/addOrEditCoalInfo") public R addOrEditCoalInfo(@RequestBody CoalInfoDto coalInfoDto) { return R.ok(coalInfoService.addOrEditCoalInfo(coalInfoDto)); } /** * å é¤ */ @DeleteMapping("/delCoalInfo") public R remove(@RequestBody Long[] ids) { return R.ok(coalInfoService.delCoalInfoByIds(ids)); } } basic-server/src/main/java/com/ruoyi/basic/controller/CustomerController.java
@@ -2,20 +2,20 @@ import org.springframework.web.bind.annotation.RequestMapping; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController; /** * <p> * å端æ§å¶å¨ * </p> * * @author ruoyi * @since 2025-06-03 */ * <p> * å端æ§å¶å¨ * </p> * * @author ruoyi * @since 2025-06-03 */ @RestController @AllArgsConstructor @RequestMapping("/basic/customer") public class CustomerController { public class CustomerController { } } basic-server/src/main/java/com/ruoyi/basic/dto/CoalInfoDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ package com.ruoyi.basic.dto; import com.ruoyi.basic.entity.CoalInfo; import lombok.Data; @Data public class CoalInfoDto extends CoalInfo { } basic-server/src/main/java/com/ruoyi/basic/entity/CoalInfo.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,41 @@ package com.ruoyi.basic.entity; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import com.ruoyi.common.core.domain.MyBaseEntity; import java.util.Date; /** * ç ¤ç§ä¿¡æ¯è¡¨ å®ä½ç±» * * @author ruoyi * @date 2025-06-03 */ @Data @TableName("coal_info") public class CoalInfo extends MyBaseEntity { private static final long serialVersionUID = 1L; /** * 主é®ID */ @TableId(value = "id", type = IdType.AUTO) private Integer id; /** * ç ¤ç§åç§° */ @TableField(value = "coal_name") private String coalName; /** * ç»´æ¤äººå§å */ @TableField(value = "maintainer") private String maintainer; /** * ç»´æ¤æ¥æ */ @TableField(value = "maintenance_date") private Date maintenanceDate; } basic-server/src/main/java/com/ruoyi/basic/mapper/CoalInfoMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,18 @@ package com.ruoyi.basic.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.basic.entity.CoalInfo; import org.apache.ibatis.annotations.Mapper; /** * <p> * ç ¤ç§ä¿¡æ¯è¡¨ Mapper æ¥å£ * </p> * * @author ruoyi * @since 2025-06-03 */ @Mapper public interface CoalInfoMapper extends BaseMapper<CoalInfo> { } basic-server/src/main/java/com/ruoyi/basic/service/CoalInfoService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,24 @@ package com.ruoyi.basic.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.basic.dto.CoalInfoDto; import com.ruoyi.basic.entity.CoalInfo; import com.baomidou.mybatisplus.extension.service.IService; /** * <p> * ç ¤ç§ä¿¡æ¯è¡¨ æå¡ç±» * </p> * * @author ruoyi * @since 2025-06-03 */ public interface CoalInfoService extends IService<CoalInfo> { IPage<CoalInfo> selectCoalInfoList(Page page, CoalInfoDto coalInfoDto); int addOrEditCoalInfo(CoalInfoDto coalInfoDto); int delCoalInfoByIds(Long[] ids); } basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalInfoServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,67 @@ package com.ruoyi.basic.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.basic.dto.CoalInfoDto; import com.ruoyi.basic.entity.CoalInfo; import com.ruoyi.basic.entity.Supply; import com.ruoyi.basic.mapper.CoalInfoMapper; import com.ruoyi.basic.service.CoalInfoService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.utils.bean.BeanUtils; import org.springframework.stereotype.Service; import lombok.RequiredArgsConstructor; import org.springframework.util.StringUtils; import java.util.Objects; /** * <p> * ç ¤ç§ä¿¡æ¯è¡¨ æå¡å®ç°ç±» * </p> * * @author ruoyi * @since 2025-06-03 */ @Service @RequiredArgsConstructor public class CoalInfoServiceImpl extends ServiceImpl<CoalInfoMapper, CoalInfo> implements CoalInfoService { private final CoalInfoMapper coalInfoMapper; @Override public IPage<CoalInfo> selectCoalInfoList(Page page, CoalInfoDto coalInfoDto) { LambdaQueryWrapper<CoalInfo> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.orderByDesc(CoalInfo::getCreateTime); return coalInfoMapper.selectPage(page, queryWrapper); } @Override public int addOrEditCoalInfo(CoalInfoDto coalInfoDto) { CoalInfo coalInfo = new CoalInfo(); BeanUtils.copyProperties(coalInfoDto, coalInfo); if (Objects.isNull(coalInfo.getId())) { return coalInfoMapper.insert(coalInfo); } else { return coalInfoMapper.updateById(coalInfo); } } @Override public int delCoalInfoByIds(Long[] ids) { // æ£æ¥åæ° if (ids == null || ids.length == 0) { return 0; } // æé æ´æ°æ¡ä»¶ UpdateWrapper<CoalInfo> updateWrapper = new UpdateWrapper<>(); updateWrapper.in("id", ids) .set("deleted", 1); // 设置 deleted 为 1 表示已å é¤ // æ§è¡æ¹éé»è¾å é¤ return coalInfoMapper.update(null, updateWrapper); } } basic-server/src/main/resources/db/migration/postgresql/V20250603102701__create_table_coal_info.sql
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,31 @@ -- å建 coal_info 表 CREATE TABLE coal_info ( id SERIAL PRIMARY KEY, -- 主é®ï¼èªå¨éå¢ coal_name VARCHAR(255) NOT NULL, -- ç ¤ç§åç§°ï¼ä¸å 许为空 maintainer VARCHAR(255) NOT NULL, -- ç»´æ¤äººï¼ä¸å 许为空 maintenance_date DATE NOT NULL, -- ç»´æ¤æ¥æï¼ä¸å 许为空 -- æ°å¢å段 deleted int4 NOT NULL DEFAULT 0, -- æ¯å¦å é¤ï¼è½¯å 餿 å¿ï¼ create_by VARCHAR(255), -- å建人 create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- å建æ¶é´ï¼é»è®¤å½åæ¶é´ update_by VARCHAR(255), -- æåæ´æ°äºº update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP -- æåæ´æ°æ¶é´ï¼é»è®¤å½åæ¶é´ ); -- ä¸ºè¡¨æ·»å æ³¨é COMMENT ON TABLE coal_info IS 'ç ¤ç§ä¿¡æ¯è¡¨'; -- ä¸ºåæ®µæ·»å 注é COMMENT ON COLUMN coal_info.id IS '主é®ID'; COMMENT ON COLUMN coal_info.coal_name IS 'ç ¤ç§åç§°'; COMMENT ON COLUMN coal_info.maintainer IS 'ç»´æ¤äººå§å'; COMMENT ON COLUMN coal_info.maintenance_date IS 'ç»´æ¤æ¥æ'; -- æ°å¢åæ®µçæ³¨é COMMENT ON COLUMN coal_info.deleted IS '软å 餿 å¿ï¼true表示已å é¤'; COMMENT ON COLUMN coal_info.create_by IS 'åå»ºäººç¨æ·å'; COMMENT ON COLUMN coal_info.create_time IS 'è®°å½å建æ¶é´'; COMMENT ON COLUMN coal_info.update_by IS 'æåæ´æ°äººç¨æ·å'; COMMENT ON COLUMN coal_info.update_time IS 'è®°å½æåæ´æ°æ¶é´'; basic-server/src/main/resources/mapper/CoalInfoMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,28 @@ <?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.ruoyi.basic.mapper.CoalInfoMapper"> <!-- éç¨æ¥è¯¢æ å°ç»æ --> <resultMap id="BaseResultMap" type="com.ruoyi.basic.entity.CoalInfo"> <id column="id" property="id" /> <result column="deleted" property="deleted" /> <result column="create_by" property="createBy" /> <result column="create_time" property="createTime" /> <result column="update_by" property="updateBy" /> <result column="update_time" property="updateTime" /> <result column="coal_name" property="coalName" /> <result column="maintainer" property="maintainer" /> <result column="maintenance_date" property="maintenanceDate" /> </resultMap> <!-- éç¨æ¥è¯¢ç»æå --> <sql id="Base_Column_List"> deleted, create_by, create_time, update_by, update_time, id, coal_name, maintainer, maintenance_date </sql> </mapper> pom.xml
@@ -234,6 +234,12 @@ <version>${mybatis-plus.version}</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-jsqlparser</artifactId> <version>${mybatis-plus.version}</version> </dependency> <!--mybatis-plus代ç çæå¨--> <dependency> <groupId>com.baomidou</groupId> ruoyi-admin/pom.xml
@@ -73,6 +73,11 @@ <artifactId>basic-server</artifactId> </dependency> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-common</artifactId> </dependency> <!-- 宿¶ä»»å¡--> <dependency> <groupId>com.ruoyi</groupId> ruoyi-admin/src/main/java/com/ruoyi/PlusCodeGenerator.java
@@ -28,9 +28,9 @@ public class PlusCodeGenerator { // æ°æ®åºé ç½® private static final String DB_URL = "jdbc:postgresql://localhost:5432/ruoyi-java"; private static final String DB_URL = "jdbc:postgresql://localhost:5432/ruoyi-zd"; private static final String DB_USERNAME = "postgres"; private static final String DB_PASSWORD = "root"; private static final String DB_PASSWORD = "123456"; // 项ç®åºç¡é ç½® private static final String BASE_PACKAGE = "com.ruoyi"; @@ -38,8 +38,8 @@ public static void main(String[] args) { String projectPath = System.getProperty("user.dir"); // è·åé¡¹ç®æ ¹è·¯å¾ String path = "ruoyi-system"; // 模ååç§° String table = "province,city,district"; // 表åï¼å¤ä¸ªè¡¨éå·éå¼ String path = "basic-server"; // 模ååç§° String table = "coal_info"; // 表åï¼å¤ä¸ªè¡¨éå·éå¼ // 代ç è¾åºè·¯å¾é ç½® String outputBasePath = Paths.get(projectPath, path, "src", "main", "java").toString(); @@ -48,7 +48,7 @@ // 代ç çææ ¸å¿é ç½® FastAutoGenerator.create(DB_URL, DB_USERNAME, DB_PASSWORD) .globalConfig(builder -> { builder.author("chenhj") // ä½è ä¿¡æ¯ builder.author("ld") // ä½è ä¿¡æ¯ .outputDir(outputBasePath) // 代ç è¾åºç®å½ .dateType(DateType.ONLY_DATE) // æ¥æç±»å .commentDate("yyyy-MM-dd") // æ³¨éæ¥ææ ¼å¼ @@ -73,7 +73,7 @@ // å®ä½ç±»é ç½® .entityBuilder() .superClass("com.ruoyi.common.core.domain.BaseEntity") // ç»§æ¿åºç±» .superClass("com.ruoyi.common.core.domain.MyBaseEntity") // ç»§æ¿åºç±» .addSuperEntityColumns("create_by", "create_time", "update_by", "update_time") // æé¤åºç±»å段 .enableLombok() // å¯ç¨Lombok .naming(NamingStrategy.underline_to_camel) // 表å转驼峰 @@ -127,7 +127,7 @@ "create_by", "create_time", "update_by", "update_time" )); // åºç±»å段 customMap.put("idType", "AUTO"); // 主é®ç±»å customMap.put("superEntityClass", "com.ruoyi.common.core.domain.BaseEntity"); // åºç±»å ¨è·¯å¾ customMap.put("superEntityClass", "com.ruoyi.common.core.domain.MyBaseEntity"); // åºç±»å ¨è·¯å¾ customMap.put("author", "ruoyi"); // ä½è ä¿¡æ¯ customMap.put("packageName", BASE_PACKAGE + "." + MODULE_NAME); // å å customMap.put("tableName", table); // 表å @@ -148,8 +148,8 @@ if (Files.exists(entityPath)) { String content = Files.readString(entityPath); content = content.replace( "extends com.ruoyi.common.core.domain.BaseEntity", "extends BaseEntity" "extends com.ruoyi.common.core.domain.MyBaseEntity", "extends MyBaseEntity" ); // ç®ååºç±»å¼ç¨ Files.writeString(entityPath, content); } ruoyi-common/pom.xml
@@ -125,12 +125,6 @@ <version>3.5.16</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-spring-boot3-starter</artifactId> <version>3.5.12</version> </dependency> <!-- minio --> <dependency> <groupId>io.minio</groupId> ruoyi-framework/pom.xml
@@ -53,17 +53,19 @@ <artifactId>oshi-core</artifactId> </dependency> <!-- MyBatis Plus Starter for Spring Boot 3 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-spring-boot3-starter</artifactId> <version>3.5.12</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-extension</artifactId> <version>3.5.6</version> </dependency> <!-- <!– å¯éï¼æå¨å¼å ¥ extension æ¨¡å –>--> <!-- <dependency>--> <!-- <groupId>com.baomidou</groupId>--> <!-- <artifactId>mybatis-plus-extension</artifactId>--> <!-- <version>3.5.12</version>--> <!-- </dependency>--> <!-- ç³»ç»æ¨¡å--> <dependency> ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java
@@ -7,51 +7,20 @@ import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.transaction.annotation.EnableTransactionManagement; /** * Mybatis Plus é ç½® * * @author ruoyi */ @EnableTransactionManagement(proxyTargetClass = true) @Configuration public class MybatisPlusConfig { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { public MybatisPlusInterceptor mybatisPlusInterceptor(){ MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); // å页æä»¶ interceptor.addInnerInterceptor(paginationInnerInterceptor()); // ä¹è§éæä»¶ interceptor.addInnerInterceptor(optimisticLockerInnerInterceptor()); // 黿æä»¶ interceptor.addInnerInterceptor(blockAttackInnerInterceptor()); // å页 interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.POSTGRE_SQL)); // ä¹è§é interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor()); // 鲿¢å ¨å±å é¤ææ´æ° interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor()); return interceptor; } /** * å页æä»¶ï¼èªå¨è¯å«æ°æ®åºç±»å https://baomidou.com/guide/interceptor-pagination.html */ public PaginationInnerInterceptor paginationInnerInterceptor() { PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(); // è®¾ç½®æ°æ®åºç±»å为mysql paginationInnerInterceptor.setDbType(DbType.MYSQL); // 设置æå¤§å页éå¶æ°éï¼é»è®¤ 500 æ¡ï¼-1 ä¸åéå¶ paginationInnerInterceptor.setMaxLimit(-1L); return paginationInnerInterceptor; } /** * ä¹è§éæä»¶ https://baomidou.com/guide/interceptor-optimistic-locker.html */ public OptimisticLockerInnerInterceptor optimisticLockerInnerInterceptor() { return new OptimisticLockerInnerInterceptor(); } /** * 妿æ¯å¯¹å ¨è¡¨çå é¤ææ´æ°æä½ï¼å°±ä¼ç»æ¢è¯¥æä½ https://baomidou.com/guide/interceptor-block-attack.html */ public BlockAttackInnerInterceptor blockAttackInnerInterceptor() { return new BlockAttackInnerInterceptor(); } }