chenhj
4 天以前 718e95b4d0fa5cda71724a48a4c34114c57fa523
区域代码初始化
已修改6个文件
已重命名1个文件
已添加1个文件
179 ■■■■■ 文件已修改
pom.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/init/MyStartupRunner.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/init/dto/AreaDTO.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/db/beforeSql/postgresql/beforeSQL__sys.sql 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/doc/area.json 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/basic/entity/City.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/basic/entity/District.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/basic/entity/Province.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml
@@ -224,7 +224,7 @@
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-core</artifactId>
            <version>3.5.12</version> <!-- ä¸Žä½ çš„ Spring Boot å…¼å®¹çš„版本 -->
            <version>3.5.12</version>
        </dependency>
        <!--mybatis-plus-->
ruoyi-admin/src/main/java/com/ruoyi/web/controller/init/MyStartupRunner.java
@@ -1,11 +1,109 @@
package com.ruoyi.web.controller.init;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ruoyi.basic.entity.City;
import com.ruoyi.basic.entity.District;
import com.ruoyi.basic.entity.Province;
import com.ruoyi.basic.mapper.CityMapper;
import com.ruoyi.basic.mapper.DistrictMapper;
import com.ruoyi.basic.mapper.ProvinceMapper;
import com.ruoyi.web.controller.init.dto.AreaDTO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Component
public class MyStartupRunner implements CommandLineRunner{
public class MyStartupRunner implements CommandLineRunner {
    @Autowired
    private ProvinceMapper provinceMapper;
    @Autowired
    private CityMapper cityMapper;
    @Autowired
    private DistrictMapper districtMapper;
    /**
     * é¡¹ç›®å¯åŠ¨æ—¶éœ€è¦æ‰§è¡Œçš„æ–¹æ³•
     *
     * @param args
     * @throws Exception
     */
    @Override
    public void run(String... args) throws Exception {
        System.out.println("!!!!!!!!!!!!!!!!!!!!!");
        // åˆå§‹åŒ–省市区
        initRegion();
    }
    private void initRegion() {
        // åˆ¤æ–­æ˜¯æ˜¯å¦æœ‰çœå¸‚区信息
        List<Province> olds = provinceMapper.selectList(null);
        if (olds.isEmpty()) {
            // è¯»å–地区json文件
            List<AreaDTO> areaDTOS = null;
            try {
                // ä»Ž resources/doc/ åŠ è½½ JSON æ–‡ä»¶
                ClassPathResource resource = new ClassPathResource("doc/area.json");
                ObjectMapper objectMapper = new ObjectMapper();
                areaDTOS = objectMapper.readValue(
                        resource.getInputStream(),
                        objectMapper.getTypeFactory().constructCollectionType(List.class, AreaDTO.class)
                );
            } catch (Exception e) {
                log.error("读取地区json文件失败:" + e);
            }
            List<Province> provinces = new ArrayList<>();
            List<City> cities = new ArrayList<>();
            List<District> districts = new ArrayList<>();
            if (!areaDTOS.isEmpty()) {
                log.info("地区信息初始化开始");
                // çœ
                areaDTOS.forEach(areaDTO -> {
                    Province province = new Province();
                    province.setId(Long.parseLong(areaDTO.getNo()));
                    province.setName(areaDTO.getName());
                    provinces.add(province);
                    if (!areaDTO.getChildren().isEmpty()) {
                        // å¸‚
                        areaDTO.getChildren().forEach(cityDTO -> {
                            City city = new City();
                            city.setId(Long.parseLong(cityDTO.getNo()));
                            city.setName(cityDTO.getName());
                            city.setProvinceId(Long.valueOf(areaDTO.getNo()));
                            cities.add(city);
                            if (!cityDTO.getChildren().isEmpty()) {
                                // åŒº
                                cityDTO.getChildren().forEach(districtDTO -> {
                                    District district = new District();
                                    district.setId(Long.parseLong(districtDTO.getNo()));
                                    district.setName(districtDTO.getName());
                                    district.setCityId(Long.valueOf(cityDTO.getNo()));
                                    districts.add(district);
                                });
                            }
                        });
                    }
                });
                provinceMapper.insertOrUpdate(provinces);
                cityMapper.insertOrUpdate(cities);
                districtMapper.insertOrUpdate(districts);
                log.info("地区信息初始化结束");
            }
        }
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/init/dto/AreaDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
package com.ruoyi.web.controller.init.dto;
import lombok.Data;
import java.util.List;
@Data
public class AreaDTO {
    private String name;
    private String no;
    private List<AreaDTO> children;
}
ruoyi-admin/src/main/resources/db/beforeSql/postgresql/beforeSQL__sys.sql
@@ -1158,14 +1158,10 @@
COMMENT ON COLUMN sys_notice.remark IS '备注';
-- æ’入初始化数据
INSERT INTO sys_notice (notice_id, notice_title, notice_type, notice_content, status, create_by, create_time, update_by,
                        update_time, remark)
VALUES (1, '温馨提醒:2018-07-01 è‹¥ä¾æ–°ç‰ˆæœ¬å‘布啦', '2', E'\\x新版本内容'::bytea, '0', 'admin', NOW(), '', NULL,
        '管理员'),
       (2, '维护通知:2018-07-01 è‹¥ä¾ç³»ç»Ÿå‡Œæ™¨ç»´æŠ¤', '1', E'\\x维护内容'::bytea, '0', 'admin', NOW(), '', NULL, '管理员');
INSERT INTO sys_notice
VALUES ('1', '温馨提醒:2018-07-01 è‹¥ä¾æ–°ç‰ˆæœ¬å‘布啦', '2', '新版本内容', '0', 'admin', NOW(), '', NULL, '管理员');
INSERT INTO sys_notice
VALUES ('2', '维护通知:2018-07-01 è‹¥ä¾ç³»ç»Ÿå‡Œæ™¨ç»´æŠ¤', '1', '维护内容', '0', 'admin', NOW(), '', NULL, '管理员');
-- ----------------------------
-- 18、代码生成业务表
ruoyi-admin/src/main/resources/doc/area.json
ruoyi-system/src/main/java/com/ruoyi/basic/entity/City.java
@@ -1,8 +1,11 @@
package com.ruoyi.basic.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import com.ruoyi.common.core.domain.BaseEntity;
import java.io.Serializable;
import java.util.Date;
/**
 * åŸŽå¸‚表 å®žä½“ç±»
@@ -12,7 +15,7 @@
 */
@Data
@TableName("city")
public class City extends BaseEntity {
public class City implements Serializable {
    private static final long serialVersionUID = 1L;
@@ -31,4 +34,14 @@
     */
    @TableField(value = "province_id")
    private Long provinceId;
    /** åˆ›å»ºæ—¶é—´ */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
    /** æ›´æ–°æ—¶é—´ */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
}
ruoyi-system/src/main/java/com/ruoyi/basic/entity/District.java
@@ -1,8 +1,11 @@
package com.ruoyi.basic.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import com.ruoyi.common.core.domain.BaseEntity;
import java.io.Serializable;
import java.util.Date;
/**
 * åŒºè¡¨ å®žä½“ç±»
@@ -12,7 +15,7 @@
 */
@Data
@TableName("district")
public class District extends BaseEntity {
public class District implements Serializable {
    private static final long serialVersionUID = 1L;
@@ -31,4 +34,14 @@
     */
    @TableField(value = "city_id")
    private Long cityId;
    /** åˆ›å»ºæ—¶é—´ */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
    /** æ›´æ–°æ—¶é—´ */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
}
ruoyi-system/src/main/java/com/ruoyi/basic/entity/Province.java
@@ -1,8 +1,11 @@
package com.ruoyi.basic.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import com.ruoyi.common.core.domain.BaseEntity;
import java.io.Serializable;
import java.util.Date;
/**
 * çœè¡¨ å®žä½“ç±»
@@ -12,7 +15,7 @@
 */
@Data
@TableName("province")
public class Province extends BaseEntity {
public class Province implements Serializable {
    private static final long serialVersionUID = 1L;
@@ -26,4 +29,14 @@
     */
    @TableField(value = "name")
    private String name;
    /** åˆ›å»ºæ—¶é—´ */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
    /** æ›´æ–°æ—¶é—´ */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
}