| | |
| | | <artifactId>ruoyi-framework</artifactId> |
| | | </dependency> |
| | | |
| | | <!-- ç³»ç»æ¨¡å--> |
| | | <dependency> |
| | | <groupId>com.ruoyi</groupId> |
| | | <artifactId>ruoyi-system</artifactId> |
| | | <groupId>org.flywaydb</groupId> |
| | | <artifactId>flyway-core</artifactId> |
| | | <version>10.11.0</version> <!-- ææ´é«çæ¬ï¼å¦ 10.11.0 --> |
| | | </dependency> |
| | | |
| | | <!-- mysqlè¿ç§» --> |
| | | <dependency> |
| | | <groupId>org.flywaydb</groupId> |
| | | <artifactId>flyway-mysql</artifactId> |
| | | </dependency> |
| | | |
| | | <!-- pgsqlè¿ç§» --> |
| | | <dependency> |
| | | <groupId>org.flywaydb</groupId> |
| | | <artifactId>flyway-database-postgresql</artifactId> |
| | | </dependency> |
| | | </dependencies> |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.basic.controller; |
| | | |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | |
| | | @RestController |
| | | @RequestMapping("test") |
| | | public class TestController1 { |
| | | |
| | | @GetMapping("/list") |
| | | public void ss(){ |
| | | System.out.println("1111"); |
| | | } |
| | | } |
| | |
| | | <artifactId>ruoyi-framework</artifactId> |
| | | </dependency> |
| | | |
| | | <dependency> |
| | | <groupId>com.ruoyi</groupId> |
| | | <artifactId>basic-server</artifactId> |
| | | </dependency> |
| | | |
| | | <!-- 宿¶ä»»å¡--> |
| | | <dependency> |
| | | <groupId>com.ruoyi</groupId> |
| | |
| | | }) |
| | | .packageConfig(builder -> { |
| | | builder.parent(BASE_PACKAGE) // åºç¡å
å |
| | | .moduleName(MODULE_NAME) // 模åå |
| | | .moduleName(MODULE_NAME) // 模ååï¼æ ¹æ®å
·ä½ä¿®æ¹ï¼ |
| | | .entity("entity") // Entityå
å |
| | | .mapper("mapper") // Mapperå
å |
| | | .service("service") // Serviceå
å |
| | |
| | | merge-sql: true |
| | | wall: |
| | | config: |
| | | multi-statement-allow: true |
| | | multi-statement-allow: true |
| | | |
| | | minio: |
| | | endpoint: lunor.cn |
| | | port: 9000 |
| | | secure: false |
| | | accessKey: admin |
| | | secretKey: Admin123! |
| | | preview-expiry: 24 # é¢è§å°åé»è®¤24å°æ¶ |
| | | default-bucket: ruoyi # é»è®¤å卿¡¶ |
| | |
| | | minio: |
| | | endpoint: lunor.cn |
| | | port: 9000 |
| | | secure: false |
| | | accessKey: admin |
| | | secretKey: Admin123! |
| | | preview-expiry: 24 # é¢è§å°åé»è®¤24å°æ¶ |
| | | default-bucket: ruoyi # é»è®¤å卿¡¶ |
| | | |
| | | # 项ç®ç¸å
³é
ç½® |
| | | ruoyi: |
| | | # åç§° |
| | |
| | | is_cache VARCHAR(10) DEFAULT 0, |
| | | menu_type CHAR(1) DEFAULT '', |
| | | visible CHAR(1) DEFAULT '0', |
| | | status CHAR(1) DEFAULT '0', |
| | | status INTEGER DEFAULT 0, |
| | | perms VARCHAR(100) DEFAULT NULL, |
| | | icon VARCHAR(100) DEFAULT '#', |
| | | create_by VARCHAR(64) DEFAULT '', |
| | |
| | | dto.setByteSize(file.getSize()); |
| | | dto.setKey(IdUtils.simpleUUID()); |
| | | dto.setBucketName(bucketName); |
| | | dto.setCreateTime(DateUtils.getNowDate()); |
| | | dto.setUrl(minioUtils.getPreviewUrl(res.getBucketFileName(), bucketName, false)); |
| | | // æå
¥æ°æ®åº |
| | | storageBlobMapper.insert(dto); |
| | |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.FieldFill; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableLogic; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import com.fasterxml.jackson.annotation.JsonIgnore; |
| | | import com.fasterxml.jackson.annotation.JsonInclude; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * Entityåºç±» |
| | | * |
| | | * |
| | | * @author ruoyi |
| | | */ |
| | | @Data |
| | | public class BaseEntity implements Serializable |
| | | { |
| | | private static final long serialVersionUID = 1L; |
| | |
| | | @JsonIgnore |
| | | private String searchValue; |
| | | |
| | | /** é»è¾å é¤å段 */ |
| | | @TableLogic |
| | | private Integer deleted; |
| | | |
| | | /** å建è
*/ |
| | | @TableField(fill = FieldFill.INSERT) |
| | | private String createBy; |
| | | |
| | | /** å建æ¶é´ */ |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | @TableField(fill = FieldFill.INSERT) |
| | | private Date createTime; |
| | | |
| | | /** æ´æ°è
*/ |
| | | @TableField(fill = FieldFill.INSERT_UPDATE) |
| | | private String updateBy; |
| | | |
| | | /** æ´æ°æ¶é´ */ |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | @TableField(fill = FieldFill.INSERT_UPDATE) |
| | | private Date updateTime; |
| | | |
| | | /** 夿³¨ */ |
| | |
| | | package com.ruoyi.common.handler; |
| | | |
| | | import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import org.apache.ibatis.reflection.MetaObject; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | |
| | | */ |
| | | @Component |
| | | public class MyMetaObjectHandler implements MetaObjectHandler { |
| | | @Override |
| | | public void insertFill(MetaObject metaObject) { |
| | | Long userId = SecurityUtils.getLoginUser().getUserId(); |
| | | this.strictInsertFill(metaObject, "createBy", Long.class, userId); |
| | | this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now()); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void insertFill(MetaObject metaObject) { |
| | | this.setFieldValByName("createTime", LocalDateTime.now(), metaObject); |
| | | this.setFieldValByName("updateTime", LocalDateTime.now(), metaObject); |
| | | // å¼çº¿ç¨ï¼åä¸å°user |
| | | try { |
| | | // SysUser currentUser = SecurityUtils.getLoginUser(); |
| | | // if (currentUser != null) { |
| | | // this.setFieldValByName("createUser", currentUser.getUsername(), metaObject); |
| | | // this.setFieldValByName("updateUser", currentUser.getUsername(), metaObject); |
| | | // } |
| | | } catch (Exception e) { |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void updateFill(MetaObject metaObject) { |
| | | this.setFieldValByName("updateTime", LocalDateTime.now(), metaObject); |
| | | try { |
| | | // ZttUser currentUser = SecurityUtils.getUser(); |
| | | // if (currentUser != null) { |
| | | // this.setFieldValByName("updateUser", currentUser.getUsername(), metaObject); |
| | | // } |
| | | } catch (Exception e) { |
| | | } |
| | | } |
| | | @Override |
| | | public void updateFill(MetaObject metaObject) { |
| | | Long userId = SecurityUtils.getLoginUser().getUserId(); |
| | | this.strictInsertFill(metaObject, "updateBy", Long.class, userId); |
| | | this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | DROP TABLE IF EXISTS supply; |
| | | |
| | | CREATE TABLE supply |
| | | ( |
| | | id BIGSERIAL PRIMARY KEY, |
| | | supplier_name VARCHAR(255) NOT NULL, -- ä¾åºååç§° |
| | | taxpayer_id VARCHAR(255) NOT NULL, -- 纳ç¨äººè¯å«å· |
| | | business_address VARCHAR(255) NOT NULL DEFAULT '', -- ç»è¥å°å |
| | | bank_account VARCHAR(255) NOT NULL DEFAULT '', -- é¶è¡è´¦å· |
| | | bank_name VARCHAR(255) NOT NULL DEFAULT '', -- 弿·è¡ |
| | | contact_person VARCHAR(255) NOT NULL DEFAULT '', -- è系人 |
| | | contact_address VARCHAR(255) NOT NULL DEFAULT '', -- èç³»å°å |
| | | province_id BIGINT NOT NULL DEFAULT 0, |
| | | city_id BIGINT NOT NULL DEFAULT 0, |
| | | district_id BIGINT NOT NULL DEFAULT 0, |
| | | create_time TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP -- èªå¨å¡«å
å建æ¶é´ |
| | | ); |
| | | |
| | | -- 表注éï¼ä¾åºåä¿¡æ¯è¡¨ï¼åå¨ä¾åºååºæ¬ä¿¡æ¯ï¼å«å°åå±çº§å
³èï¼ |
| | | COMMENT ON TABLE supply IS 'ä¾åºåä¿¡æ¯è¡¨'; |
| | | |
| | | -- åæ®µæ³¨éï¼ä¸»é®ï¼èªå¢å¤§æ´æ°ï¼ |
| | | COMMENT ON COLUMN supply.id IS 'ä¾åºåå¯ä¸æ è¯ï¼éç¨BIGSERIALèªå¢ä¸»é®ï¼ç¡®ä¿æ°æ®å¯ä¸æ§'; |
| | | |
| | | -- ä¾åºååç§°ï¼éç©ºï¼ |
| | | COMMENT ON COLUMN supply.supplier_name IS 'ä¾åºåå
¨ç§°ï¼ä¸å¡åºæ¯ä¸å¯ä¸è¯å«çåç§°ï¼'; |
| | | |
| | | -- 纳ç¨äººè¯å«å·ï¼éç©ºï¼ |
| | | COMMENT ON COLUMN supply.taxpayer_id IS 'ä¾åºåç¨å¡ç»è®°å¯ä¸æ è¯ï¼å¦ç»ä¸ç¤¾ä¼ä¿¡ç¨ä»£ç ï¼ï¼ç¨äºè´¢ç¨ç®¡ç'; |
| | | |
| | | -- ç»è¥å°åï¼é»è®¤ç©ºå符串ï¼éç©ºï¼ |
| | | COMMENT ON COLUMN supply.business_address IS 'ä¾åºåè¥ä¸æ§ç
§æ³¨åå°åæä¸»è¦ç»è¥åºæï¼é»è®¤ç©ºå符串'; |
| | | |
| | | -- é¶è¡è´¦å·ï¼é»è®¤ç©ºå符串ï¼éç©ºï¼ |
| | | COMMENT ON COLUMN supply.bank_account IS 'ä¾åºåæ¶æ¬¾é¶è¡è´¦æ·ä¿¡æ¯ï¼é»è®¤ç©ºå符串ï¼ç¨äºèµé徿¥'; |
| | | |
| | | -- 弿·è¡ï¼é»è®¤ç©ºå符串ï¼éç©ºï¼ |
| | | COMMENT ON COLUMN supply.bank_name IS 'ä¾åºåé¶è¡è´¦æ·ç弿·æºæåç§°ï¼é»è®¤ç©ºå符串ï¼'; |
| | | |
| | | -- è系人ï¼é»è®¤ç©ºå符串ï¼éç©ºï¼ |
| | | COMMENT ON COLUMN supply.contact_person IS 'ä¾åºåä¸å¡å¯¹æ¥äººå§å'; |
| | | |
| | | -- èç³»å°åï¼é»è®¤ç©ºå符串ï¼éç©ºï¼ |
| | | COMMENT ON COLUMN supply.contact_address IS 'ä¾åºåè系人çèç³»å°å'; |
| | | |
| | | -- ç份IDï¼é»è®¤0ï¼é空ï¼å
³èå°ååå
¸ï¼ |
| | | COMMENT ON COLUMN supply.province_id IS 'ä¾åºåæå¨ç份çIDï¼å
³èå°ååå
¸è¡¨ï¼ï¼é»è®¤0'; |
| | | |
| | | -- åå¸IDï¼é»è®¤0ï¼é空ï¼å
³èå°ååå
¸ï¼ |
| | | COMMENT ON COLUMN supply.city_id IS 'ä¾åºåæå¨åå¸çIDï¼å
³èå°ååå
¸è¡¨ï¼ï¼é»è®¤0'; |
| | | |
| | | -- åºå¿IDï¼é»è®¤0ï¼é空ï¼å
³èå°ååå
¸ï¼ |
| | | COMMENT ON COLUMN supply.district_id IS 'ä¾åºåæå¨åºå¿çIDï¼å
³èå°ååå
¸è¡¨ï¼ï¼é»è®¤0ï¼ç¨äºå°åå±çº§åå'; |
| | | |
| | | -- å建æ¶é´ï¼å¸¦æ¶åºï¼èªå¨å¡«å
ï¼ |
| | | COMMENT ON COLUMN supply.create_time IS 'è®°å½æ°æ®åå»ºçæ¶é´æ³ï¼å¸¦æ¶åºï¼ï¼ç³»ç»èªå¨å¡«å
å½åæ¶é´'; |
| | | |
| | |
| | | </resultMap> |
| | | |
| | | <sql id="selectMenuVo"> |
| | | select menu_id, menu_name, parent_id, order_num, path, component, `query`, route_name, is_frame, is_cache, menu_type, visible, status, COALESCE(perms,'') as perms, icon, create_time |
| | | select menu_id, menu_name, parent_id, order_num, path, component, "query", route_name, is_frame, is_cache, menu_type, visible, status, COALESCE(perms,'') as perms, icon, create_time |
| | | from sys_menu |
| | | </sql> |
| | | |
| | |
| | | </select> |
| | | |
| | | <select id="selectMenuTreeAll" resultMap="SysMenuResult"> |
| | | select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.query, m.route_name, m.visible, m.status, COALESCE(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time |
| | | select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m."query", m.route_name, m.visible, m.status, COALESCE(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time |
| | | from sys_menu m where m.menu_type in ('M', 'C') and m.status = '0' |
| | | order by m.parent_id, m.order_num |
| | | </select> |
| | |
| | | <if test="orderNum != null">order_num = #{orderNum},</if> |
| | | <if test="path != null and path != ''">path = #{path},</if> |
| | | <if test="component != null">component = #{component},</if> |
| | | <if test="query != null">`query` = #{query},</if> |
| | | <if test="query != null">"query" = #{query},</if> |
| | | <if test="routeName != null">route_name = #{routeName},</if> |
| | | <if test="isFrame != null and isFrame != ''">is_frame = #{isFrame},</if> |
| | | <if test="isCache != null and isCache != ''">is_cache = #{isCache},</if> |
| | |
| | | <if test="orderNum != null">order_num,</if> |
| | | <if test="path != null and path != ''">path,</if> |
| | | <if test="component != null and component != ''">component,</if> |
| | | <if test="query != null and query != ''">`query`,</if> |
| | | <if test="query != null and query != ''">"query",</if> |
| | | <if test="routeName != null">route_name,</if> |
| | | <if test="isFrame != null and isFrame != ''">is_frame,</if> |
| | | <if test="isCache != null and isCache != ''">is_cache,</if> |