提交 e93a4bb0 authored 作者: 孙于凯's avatar 孙于凯

Initial commit

上级
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="qkh_sjc" />
</profile>
</annotationProcessing>
</component>
<component name="JavacSettings">
<option name="ADDITIONAL_OPTIONS_OVERRIDE">
<module name="qkh_sjc" options="-parameters" />
</option>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="https://maven.aliyun.com/repository/public" />
</remote-repository>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/sjc-qkh" vcs="Git" />
</component>
</project>
\ No newline at end of file
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.tykj</groupId>
<artifactId>qkh_sjc</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>sjc</name>
<description>sjc</description>
<properties>
<java.version>8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<!--redis-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.62</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.56</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<image>
<builder>paketobuildpacks/builder-jammy-base:latest</builder>
</image>
</configuration>
</plugin>
</plugins>
</build>
</project>
package com.tykj.sjc;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@SpringBootApplication
@EnableSwagger2
@MapperScan("com.tykj.sjc.mapper")
@EnableScheduling
public class SjcApplication {
public static void main(String[] args) {
SpringApplication.run(SjcApplication.class, args);
}
}
package com.tykj.sjc.config;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author syk
*/
@Configuration
@MapperScan("com.tykj.sjc.mapper")
public class MybatisPlusConfig {
/**
* 分页查询插件
*
* @return 分页查询插件
*/
@Bean
public MybatisPlusInterceptor mpInterceptor() {
MybatisPlusInterceptor mpInterceptor = new MybatisPlusInterceptor();
mpInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return mpInterceptor;
}
// @Bean(name = "mapperObject")
// public ObjectMapper getObjectMapper() {
// ObjectMapper om = new ObjectMapper();
// JavaTimeModule javaTimeModule = new JavaTimeModule();
// javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
// javaTimeModule.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
// javaTimeModule.addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern("HH:mm:ss")));
// om.registerModule(javaTimeModule);return om;
// }
}
\ No newline at end of file
package com.tykj.sjc.config;
import com.alibaba.fastjson.support.spring.FastJsonRedisSerializer;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;
/**
* @author syk
*/
public class RedisConfig {
@Bean
@ConditionalOnMissingBean(name = "redisTemplate")
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
// fastjson序列化
FastJsonRedisSerializer fastJsonRedisSerializer = new FastJsonRedisSerializer(Object.class);
// key的序列化采用StringRedisSerializer
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
// value的序列化采用FastJsonRedisSerializer
redisTemplate.setValueSerializer(fastJsonRedisSerializer);
redisTemplate.setHashValueSerializer(fastJsonRedisSerializer);
redisTemplate.setConnectionFactory(connectionFactory);
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
@Bean
@ConditionalOnMissingBean(StringRedisTemplate.class)
public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory connectionFactory) {
StringRedisTemplate stringRedisTemplate = new StringRedisTemplate();
stringRedisTemplate.setConnectionFactory(connectionFactory);
return stringRedisTemplate;
}
}
package com.tykj.sjc.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
@Configuration
public class RestTemplateConfig {
@Bean
RestTemplate restTemplate(){
return new RestTemplate();
}
}
package com.tykj.sjc.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.core.env.Profiles;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.ArrayList;
/**
* @author syk
*/
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket docket(Environment environment)
{
Profiles profiles= Profiles.of("dev","test");
boolean flag = environment.acceptsProfiles(profiles);
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.enable(flag)
.select()
.apis(RequestHandlerSelectors.basePackage("com.tykj.sjc.controller"))
.build();
}
private ApiInfo apiInfo()
{
Contact contact = new Contact("syk", "https://www.cnblogs.com/sykswagger", "1172648124@qq.com");
return new ApiInfo(
"这里对应 Api Documentation",
"这里对应 Api Documentation",
"这里对应 v1.0",
"https://www.cnblogs.com/sykswagger",
contact,
"Apache 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList());
}
}
package com.tykj.sjc.controller;
import com.tykj.sjc.service.SjcAcademicianService;
import com.tykj.sjc.service.SjcDcExpertService;
import com.tykj.sjc.service.SjcLearnMemberService;
import com.tykj.sjc.service.SjcScienceTechnologyService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@Api(tags = "qkh数据存储")
@RestController
@RequestMapping("/qkh")
@Slf4j
public class QkhController {
@Resource
private SjcAcademicianService sjcAcademicianService;
@Resource
private SjcDcExpertService sjcDcExpertService;
@Resource
private SjcLearnMemberService sjcLearnMemberService;
@Resource
private SjcScienceTechnologyService sjcScienceTechnologyService;
@GetMapping("/saveDcExpert")
@ApiOperation("专家信息存储")
public void saveDcExpert(){
sjcDcExpertService.saveDcExpert();
}
@GetMapping("/saveLearnMember")
@ApiOperation("科技工作者信息存储")
public void saveLearnMember(){
sjcLearnMemberService.saveLearnMember();
}
@GetMapping("/saveScienceTechnology")
@ApiOperation("青年科技工作者信息存储")
public void saveScienceTechnology(){
sjcScienceTechnologyService.saveScienceTechnology();
}
@GetMapping("/saveAll")
@ApiOperation("青科汇数据仓所有数据存储")
public void saveAll(){
sjcDcExpertService.saveDcExpert();
log.info("专家信息存储完成");
sjcLearnMemberService.saveLearnMember();
log.info("科技工作者信息存储完成");
sjcScienceTechnologyService.saveScienceTechnology();
log.info("青年科技工作者信息存储完成");
}
}
package com.tykj.sjc.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tykj.sjc.qkh_entity.SjcAcademician;
import org.mapstruct.Mapper;
@Mapper
public interface SjcAcademicianMapper extends BaseMapper<SjcAcademician> {
}
package com.tykj.sjc.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tykj.sjc.qkh_entity.SjcDcExpert;
import org.mapstruct.Mapper;
@Mapper
public interface SjcDcExpertMapper extends BaseMapper<SjcDcExpert> {
}
package com.tykj.sjc.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tykj.sjc.qkh_entity.SjcLearnMember;
import org.mapstruct.Mapper;
@Mapper
public interface SjcLearnMemberMapper extends BaseMapper<SjcLearnMember> {
}
package com.tykj.sjc.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tykj.sjc.qkh_entity.SjcScienceTechnology;
import org.mapstruct.Mapper;
@Mapper
public interface SjcScienceTechnologyMapper extends BaseMapper<SjcScienceTechnology> {
}
package com.tykj.sjc.qkh_entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SjcAcademician {
private Long id;
private String name;
private String nation;
private String sex;
private String birthday;
private String nativePlace;
private String phone;
private String address;
private String major;
private String sciences;
private String dealType;
private String job;
private String randomId;
}
package com.tykj.sjc.qkh_entity;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SjcDcExpert {
@TableField("TB_UUID")
private String TBUUID;
@TableField("FIELD")
private String FIELD;
@TableField("PHONE")
private String PHONE;
@TableField("DATA_EXCEPTION")
private String DATAEXCEPTION;
@TableField("TB_UPDATE_DATE")
private LocalDateTime TBUPDATEDATE;
@TableField("POSITION_TITLE")
private String POSITIONTITLE;
@TableField("WORK_UNIT")
private String WORKUNIT;
@TableField("LEVEL")
private String LEVEL;
@TableField("NAME")
private String NAME;
@TableField("DISTRICT")
private String DISTRICT;
@TableField("POSITION")
private String POSITION;
@TableField("DATA_STATUS")
private String DATASTATUS;
@TableField("IMAGE")
private String IMAGE;
@TableField("DESCRIPTION")
private String DESCRIPTION;
@TableField("UUID")
private String UUID;
@TableField("TB_CREATE_DATE")
private LocalDateTime TBCREATEDATE;
@TableField("TEXT_RECORD_ID")
private String TEXTRECORDID;
@TableField("HASH_RECORD_ID")
private String HASHRECORDID;
@TableField("ID")
private Long ID;
private String randomId;
}
package com.tykj.sjc.qkh_entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SjcLearnMember {
private Long id;
private Date createTime;
private Integer createUserId;
private Integer deleteTag;
private Date updateTime;
private Integer updateUserId;
private Date joinData;
private Integer learnId;
private Integer memberType;
private String post;
private String userIdentity;
private Date birthday;
private String name; // 姓名
private Integer sex;
private String learnName; // 所属学会
private Integer stateType;
private String mobile; // 手机号
private String memberNumber;
private String city; // 所在区域
private String dealType;
private String degree; // 学位
private String degreeCeStr;
private String diplomaStr;
private Integer education;
private String headPortraitStr;
private String honor;
private String idCode;
private String job; // 职位
private String mail;
private String nation; // 民族
private String nativePlace;
private String professionalCeStr;
private String professionalName;
private String school;
private Integer title;
private String workUnit;
private Integer stateUser;
private String randomId;
}
package com.tykj.sjc.qkh_entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SjcScienceTechnology {
private Long id;
private Date createTime;
private Integer createUserId;
private Integer deleteTag;
private Date updateTime;
private Integer updateUserId;
private Date joinData;
private Integer learnId;
private Integer memberType;
private String post;
private String userIdentity;
private Date birthday;
private String name; // 姓名
private Integer sex;
private String learnName; // 所属学会
private Integer stateType;
private String phone; // 联系方式
private String memberNumber;
private String city; // 所在区域
private String dealType;
private String degree; // 学位
private String degreeCeStr;
private String diplomaStr;
private Integer education;
private String headPortraitStr;
private String honor;
private String idCode;
private String job; // 职位
private String mail;
private String nation; // 民族
private String nativePlace;
private String professionalCeStr;
private String professionalName;
private String school;
private Integer title;
private String workUnit;
private Integer stateUser;
private String randomId;
}
package com.tykj.sjc.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tykj.sjc.qkh_entity.SjcAcademician;
public interface SjcAcademicianService extends IService<SjcAcademician> {
void saveAcademician();
}
package com.tykj.sjc.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tykj.sjc.qkh_entity.SjcDcExpert;
public interface SjcDcExpertService extends IService<SjcDcExpert> {
void saveDcExpert();
}
package com.tykj.sjc.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tykj.sjc.qkh_entity.SjcLearnMember;
public interface SjcLearnMemberService extends IService<SjcLearnMember> {
void saveLearnMember();
}
package com.tykj.sjc.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tykj.sjc.qkh_entity.SjcScienceTechnology;
public interface SjcScienceTechnologyService extends IService<SjcScienceTechnology> {
void saveScienceTechnology();
}
package com.tykj.sjc.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.tykj.sjc.mapper.SjcAcademicianMapper;
import com.tykj.sjc.qkh_entity.SjcAcademician;
import com.tykj.sjc.service.SjcAcademicianService;
import com.tykj.sjc.util.BillDTO;
import com.tykj.sjc.util.BillRemote;
import javafx.util.Builder;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
@Service
@Slf4j
public class SjcAcademicianServiceImpl extends ServiceImpl<SjcAcademicianMapper, SjcAcademician> implements SjcAcademicianService {
@Resource
private SjcAcademicianMapper sjcAcademicianMapper;
@Resource
private BillRemote billRemote;
@Override
public void saveAcademician() {
List<SjcAcademician> sjcAcademicians = sjcAcademicianMapper.selectList(null);
List<SjcAcademician> rs=new ArrayList<>();
for (SjcAcademician sjcAcademician : sjcAcademicians) {
BillDTO build = BillDTO.builder()
.s1(sjcAcademician.getName())
.s2(sjcAcademician.getPhone())
.build();
String randomId = billRemote.sendSaveBill(build);
sjcAcademician.setRandomId(randomId);
rs.add(sjcAcademician);
}
updateBatchById(rs);
log.info("院士信息存储了{}条数据",rs.size());
}
}
package com.tykj.sjc.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.tykj.sjc.mapper.SjcAcademicianMapper;
import com.tykj.sjc.mapper.SjcDcExpertMapper;
import com.tykj.sjc.qkh_entity.SjcAcademician;
import com.tykj.sjc.qkh_entity.SjcDcExpert;
import com.tykj.sjc.service.SjcAcademicianService;
import com.tykj.sjc.service.SjcDcExpertService;
import com.tykj.sjc.util.BillDTO;
import com.tykj.sjc.util.BillRemote;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
@Service
@Slf4j
public class SjcDcExpertServiceImpl extends ServiceImpl<SjcDcExpertMapper, SjcDcExpert> implements SjcDcExpertService {
@Resource
private BillRemote billRemote;
@Resource
private SjcDcExpertMapper sjcDcExpertMapper;
@Override
@Transactional
public void saveDcExpert() {
List<SjcDcExpert> sjcDcExperts = sjcDcExpertMapper.selectList(null);
List<SjcDcExpert> rs=new ArrayList<>();
for (SjcDcExpert sjcDcExpert : sjcDcExperts) {
BillDTO build = BillDTO.builder()
.s1(sjcDcExpert.getNAME())
.s2(sjcDcExpert.getPHONE())
.build();
String randomId = billRemote.sendSaveBill(build);
sjcDcExpert.setRandomId(randomId);
rs.add(sjcDcExpert);
}
log.info("开始存储专家信息");
updateBatchById(rs);
log.info("专家信息存储了{}条",rs.size());
}
}
package com.tykj.sjc.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.tykj.sjc.mapper.SjcDcExpertMapper;
import com.tykj.sjc.mapper.SjcLearnMemberMapper;
import com.tykj.sjc.qkh_entity.SjcDcExpert;
import com.tykj.sjc.qkh_entity.SjcLearnMember;
import com.tykj.sjc.service.SjcDcExpertService;
import com.tykj.sjc.service.SjcLearnMemberService;
import com.tykj.sjc.util.BillDTO;
import com.tykj.sjc.util.BillRemote;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
@Service
@Slf4j
public class SjcLearnMemberServiceImpl extends ServiceImpl<SjcLearnMemberMapper, SjcLearnMember> implements SjcLearnMemberService {
@Resource
private SjcLearnMemberMapper sjcLearnMemberMapper;
@Resource
private BillRemote billRemote;
@Override
@Transactional
public void saveLearnMember() {
List<SjcLearnMember> sjcLearnMembers = sjcLearnMemberMapper.selectList(null);
List<SjcLearnMember> rs = new ArrayList<>();
for (SjcLearnMember sjcLearnMember : sjcLearnMembers) {
BillDTO build = BillDTO.builder()
.s1(sjcLearnMember.getName())
.s2(sjcLearnMember.getMobile())
.build();
String randomId = billRemote.sendSaveBill(build);
sjcLearnMember.setRandomId(randomId);
rs.add(sjcLearnMember);
}
log.info("开始存储科技工作者信息");
updateBatchById(rs);
log.info("科技工作者信息存储了{}条",rs.size());
}
}
package com.tykj.sjc.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.tykj.sjc.mapper.SjcScienceTechnologyMapper;
import com.tykj.sjc.qkh_entity.SjcScienceTechnology;
import com.tykj.sjc.service.SjcScienceTechnologyService;
import com.tykj.sjc.util.BillDTO;
import com.tykj.sjc.util.BillRemote;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
@Service
@Slf4j
public class SjcScienceTechnologyServiceImpl extends ServiceImpl<SjcScienceTechnologyMapper, SjcScienceTechnology> implements SjcScienceTechnologyService {
@Resource
private SjcScienceTechnologyMapper sjcScienceTechnologyMapper;
@Resource
private BillRemote billRemote;
@Override
@Transactional
public void saveScienceTechnology() {
List<SjcScienceTechnology> sjcScienceTechnologies = sjcScienceTechnologyMapper.selectList(null);
List<SjcScienceTechnology> rs=new ArrayList<>();
for (SjcScienceTechnology sjcScienceTechnology : sjcScienceTechnologies) {
BillDTO build = BillDTO.builder()
.s1(sjcScienceTechnology.getName())
.s2(sjcScienceTechnology.getPhone())
.build();
String randomId = billRemote.sendSaveBill(build);
sjcScienceTechnology.setRandomId(randomId);
rs.add(sjcScienceTechnology);
}
log.info("开始存储青年科技工作者信息");
updateBatchById(rs);
log.info("青年科技工作者信息存储了{}条",rs.size());
}
}
package com.tykj.sjc.util;
import org.springframework.http.HttpStatus;
/**
* 全局错误处理类,用于处理一些不容易定义的错误
*
* @author HuangXiahao
**/
public class ApiException extends RuntimeException {
private final ResponseObj responseObj;
public ApiException(ResponseObj responseObj){
this.responseObj = responseObj;
}
public ApiException(String message) {
this.responseObj = new ResponseObj(message, HttpStatus.NO_CONTENT+"");
}
public ApiException(String message, String errorCode){
this.responseObj = new ResponseObj(message,errorCode);
}
public ResponseObj getResponseObj() {
return responseObj;
}
// private ResponseEntity responseEntity;
//
// public ApiException(ResponseEntity responseEntity) {
// this.responseEntity = responseEntity;
// }
// public ApiException(String message) {
// this.responseEntity = ResponseEntity.status(204).body(new ResultObj(message));
// }
//
// public ApiException(String message, Object data) {
// this.responseEntity = ResponseEntity.status(204).body(new ResultObj(data, message));
// }
// public ApiException(String message) {
// this.responseEntity = ResponseEntity.status(204).body(new ResponseObj(message));
// }
//
// public ApiException(String message, Object data) {
// this.responseEntity = ResponseEntity.status(204).body(new ResponseObj(data, message));
// }
//
//
// public ResponseEntity getResponseEntity() {
// return responseEntity;
// }
//
// public void setResponseEntity(ResponseEntity responseEntity) {
// this.responseEntity = responseEntity;
// }
}
package com.tykj.sjc.util;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author: zsp
* @create: 2023-11-07 10:40
**/
@ApiModel("业务传输对象")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class BillDTO {
@ApiModelProperty(value = "预留字段1", example = "张三")
private String s1;
@ApiModelProperty(value = "预留字段2", example = "张三")
private String s2;
@ApiModelProperty(value = "预留字段3", example = "张三")
private String s3;
@ApiModelProperty(value = "预留字段4", example = "张三")
private String s4;
@ApiModelProperty(value = "预留字段5", example = "张三")
private String s5;
@ApiModelProperty(value = "预留字段6", example = "张三")
private String s6;
@ApiModelProperty(value = "预留字段7", example = "张三")
private String s7;
@ApiModelProperty(value = "预留字段8", example = "张三")
private String s8;
@ApiModelProperty(value = "预留字段9", example = "张三")
private String s9;
@ApiModelProperty(value = "预留字段10", example = "张三")
private String s10;
}
package com.tykj.sjc.util;
import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.*;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
@Component
@Slf4j
public class BillRemote {
@Resource
private RestTemplate restTemplate;
@Value("${remote.bill.save.url}")
private String billSaveUrl;
public String sendSaveBill(BillDTO billDTO){
//设置头部
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> requestEntity = new HttpEntity<>(JSON.toJSONString(billDTO),headers);
ResponseEntity<String> responseEntity = restTemplate.postForEntity(billSaveUrl, requestEntity, String.class);
if (responseEntity.getStatusCode() == HttpStatus.OK) {
String body = responseEntity.getBody();
log.info("保存业务信息成功!");
return body;
} else {
throw new ApiException("远程调用保存业务信息失败");
}
}
}
package com.tykj.sjc.util;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author zsp@gmail.com
* @date 2022/9/28
*/
@Data
@NoArgsConstructor
public class ResponseObj {
public Object data;
private String code;
private String message;
public ResponseObj(Object object, String code, String message) {
this.data = object;
this.code = code;
this.message = message;
}
public ResponseObj(Object object, String message) {
this.data = object;
this.message = message;
}
public ResponseObj(String message, String code) {
this.message = message;
this.code = code;
}
public ResponseObj(Object object) {
this.data = object;
}
}
server.port=8080
spring.datasource.url=jdbc:mysql://47.98.112.248:3306/kx_qkh_test?serverTimezone=Asia/Shanghai&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=tykj@2022
mybatis-plus.mapper-locations=classpath:mybatis/mapper/*.xml,classpath:/mapper/*.xml
mybatis-plus.type-aliases-package=com.tykj.kx.kxgq.entity
spring.redis.port=6379
# Redis服务器地址
spring.redis.host=127.0.0.1
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器连接密码(默认为空)
spring.redis.password=
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.jedis.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.jedis.pool.max-wait=-1ms
# 连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle=8
# 连接池中的最小空闲连接
spring.redis.jedis.pool.min-idle=0
# 连接超时时间(毫秒)
spring.redis.timeout=5000ms
# ??????
remote.bill.save.url=http://localhost:8010/dcms/bill/addBill
\ No newline at end of file
package com.tykj.sjc;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class SjcApplicationTests {
@Test
void contextLoads() {
}
}
server.port=8080
spring.datasource.url=jdbc:mysql://47.98.112.248:3306/kx_qkh_test?serverTimezone=Asia/Shanghai&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=tykj@2022
mybatis-plus.mapper-locations=classpath:mybatis/mapper/*.xml,classpath:/mapper/*.xml
mybatis-plus.type-aliases-package=com.tykj.kx.kxgq.entity
spring.redis.port=6379
# Redis服务器地址
spring.redis.host=127.0.0.1
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器连接密码(默认为空)
spring.redis.password=
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.jedis.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.jedis.pool.max-wait=-1ms
# 连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle=8
# 连接池中的最小空闲连接
spring.redis.jedis.pool.min-idle=0
# 连接超时时间(毫秒)
spring.redis.timeout=5000ms
# ??????
remote.bill.save.url=http://localhost:8010/dcms/bill/addBill
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论