Commit c2d87a59 authored by yangshuxing's avatar yangshuxing

修改模板

parent 4ad70773
......@@ -31,6 +31,11 @@
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
......@@ -61,12 +66,12 @@
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
<version>3.1.1</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis-spring.version}</version>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
......@@ -108,7 +113,7 @@
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
<version>8.5.8</version>
<version>8.0.28</version>
</dependency>
<dependency>
......@@ -131,21 +136,68 @@
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.2.2</version>
<version>2.8.5</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.6.9</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.2</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>nexus</id>
<name>Private Repositories</name>
<url>http://maven.geexek.com.cn:8081/nexus/content/groups/public/</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</repository>
<!--<repository>
<id>center</id>
<name>Private Repositories</name>
<url>https://oss.sonatype.org/content/groups/public/</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>interval:60</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</repository>-->
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>Private Repositories</name>
<url>http://maven.geexek.com.cn:8081/nexus/content/groups/public/</url>
<snapshots>
<enabled>false</enabled>
<updatePolicy>daily</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
<profiles>
<profile>
<id>test</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<env>test</env>
</properties>
......@@ -167,6 +219,9 @@
<properties>
<env>product</env>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
</profiles>
......
###############mysql###############
mysql.host=10.25.255.146
mysql.port=36936
mysql.host=rm-bp15ojs1ys1eur32z.mysql.rds.aliyuncs.com
mysql.port=3306
mysql.db=geeRunner
mysql.username=geexek
mysql.password=xALQsrjKZaeP
mysql.username=mysql_master
mysql.password=mysql_master_geexek_408
###############nginx###############
nginx.race.runner.server.path=http://img.geexek.com/files/race/runner/
nginx.race.runner.path=/home/nginx/nginx_data/race/runner/
......
###############url###############
enroll.queryByOpenId.url=http://192.168.66.102:9703/registerInfo/queryByOpenId.do
project.domain=http://test.geexek.cn/common
enroll.queryByOpenId.url=http://testenroll.geexek.com.cn/registerInfo/queryByOpenId.do
project.domain=http://localhost:8080/common
#project.domain=http://127.0.0.1:8080/common
server.domain=http://testtimerbackend.geexek.cn
###############mysql###############
#mysql.host=127.0.0.1
#mysql.port=3306
#mysql.db=mylocal_geerunner
mysql.host=192.168.66.106
mysql.host=47.111.166.211
mysql.port=3306
mysql.db=geeRunner_test
mysql.username=geexek
mysql.password=neusoft
mysql.password=geexekNewPass4!
###############nginx###############
nginx.race.runner.server.path=http://testimg.geexek.cn/files/race/runner/
nginx.race.runner.path=/home/nginx/nginx_data/race/runner/
......
......@@ -10,12 +10,14 @@ import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.neusoft.calendar.service.impl.CalendarServiceImpl;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.math.NumberUtils;
import org.apache.log4j.Logger;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
......@@ -37,10 +39,11 @@ import com.neusoft.utils.ResponseJSON;
*/
@Controller
public class CalendarController {
@Autowired
private ICalendarService service;
private static final Logger log=Logger.getLogger(CalendarController.class);
Logger log = LoggerFactory.getLogger(CalendarController.class);
/**每页多少行*/
private static final int PER_PAGE_CNT = 20;
......@@ -262,10 +265,27 @@ public class CalendarController {
@RequestMapping(value="/usr/mergeCmptCalendar.do",method=RequestMethod.POST)
public ModelAndView mergeCmptCalendar(@RequestBody List<CmptCale> ccl,
HttpServletResponse response){
log.info("/usr/mergeCmptCalendar");
log.info("上传数据条数:"+ccl.size());
JSONObject object = new JSONObject();
List<CmptCale> rsa = new ArrayList<>();
for(CmptCale c : ccl){
if(StringUtils.isBlank(c.getStartTime())){
log.error("无赛事开始时间");
continue;
}
if(StringUtils.isBlank(c.getCmptName())){
log.error("无赛事名称");
continue;
}
if(StringUtils.isBlank(c.getCmptCountry())){
log.error("无赛事地点");
continue;
}
rsa.add(c);
}
try {
int rs=service.addOrUpdate(ccl);
int rs=service.addOrUpdate(rsa);
log.info("处理条数:"+rs);
if (rs==ccl.size()) {
object.put("status", 0);
} else {
......@@ -273,6 +293,7 @@ public class CalendarController {
object.put("message", "有"+(ccl.size()-rs)+"条数据处理失败!");
}
} catch (Exception e) {
log.info(e.getMessage(),e);
object.put("status", -1);
object.put("message", e.getMessage());
}
......
......@@ -120,5 +120,6 @@ public interface ICalendarDao {
* @return
*/
public int insertSysMsg(CmptCaleMsg bean);
List<CmptCale> getCmptByStartTime(String startTime);
}
......@@ -9,7 +9,10 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.neusoft.calendar.service.impl.CalendarServiceImpl;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.PreparedStatementCreator;
......@@ -32,6 +35,8 @@ import com.neusoft.utils.DateUtil;
@Repository("calendarDao")
public class CalendarDao implements ICalendarDao {
Logger logger = LoggerFactory.getLogger(CalendarServiceImpl.class);
@Autowired
private JdbcTemplate geeRunnerJdbcTemplate;
......@@ -686,4 +691,25 @@ public class CalendarDao implements ICalendarDao {
// }
return msgId;
}
@Override
public List<CmptCale> getCmptByStartTime(String startTime) {
if(startTime.length() > 10){
startTime = startTime.substring(0,10);
}
String sql = "select cmpt_name from cmpt_calendar where date_format(start_time,'%Y-%m-%d')='"+startTime+"'";
logger.info("sql:"+sql);
List<CmptCale> query = geeRunnerJdbcTemplate.query(sql, new RowMapper<CmptCale>() {
@Override
public CmptCale mapRow(ResultSet rs, int rowNum) throws SQLException {
CmptCale cmpt = new CmptCale();
cmpt.setCmptName(rs.getString("cmpt_name"));
return cmpt;
}
});
return query;
}
}
......@@ -2,7 +2,10 @@ package com.neusoft.calendar.service.impl;
import java.util.List;
import com.neusoft.utils.SimilarCompare;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -15,6 +18,9 @@ import com.neusoft.calendar.service.ICalendarService;
@Service
@Transactional
public class CalendarServiceImpl implements ICalendarService {
Logger logger = LoggerFactory.getLogger(CalendarServiceImpl.class);
@Autowired
private ICalendarDao calendarDao;
......@@ -52,6 +58,23 @@ public class CalendarServiceImpl implements ICalendarService {
public int addOrUpdate(List<CmptCale> ccl) {
int rs=0;
for(CmptCale cc:ccl){
List<CmptCale> cmptByStartTime = getCmptByStartTime(cc.getStartTime());
boolean insertFlag = true;
if(cmptByStartTime != null){
logger.info("查到的数据量:"+cmptByStartTime.size());
for(CmptCale ccc:cmptByStartTime){
float similarityRatio = SimilarCompare.getSimilarityRatio(cc.getCmptName(), ccc.getCmptName(), true);
System.out.println(cc.getCmptName()+","+ccc.getCmptName()+",相似度位过滤掉:"+similarityRatio);
if(similarityRatio>=0.7){
logger.info(cc.getCmptName()+","+ccc.getCmptName()+",相似度位过滤掉:"+similarityRatio);
insertFlag = false;
break;
}
}
}
if(!insertFlag){
continue;
}
// "" -> NULL
if (StringUtils.isBlank(cc.getCreate_time())) cc.setCreate_time(null);
if (StringUtils.isBlank(cc.getEnrollEnd())) cc.setEnrollEnd(null);
......@@ -107,6 +130,11 @@ public class CalendarServiceImpl implements ICalendarService {
}
return rs;
}
private List<CmptCale> getCmptByStartTime(String startTime) {
return calendarDao.getCmptByStartTime(startTime);
}
@Override
public List<CmptCale> getCmpts(int index, int num, String keyword,String flag) {
return calendarDao.getCmpts(index, num, keyword,flag);
......
package com.neusoft.cmpt;
import com.neusoft.calendar.bean.CmptCale;
import java.util.List;
public interface CmptService {
List<CmptCale> queryCompetition(int startId);
Integer getMaxSeq();
}
package com.neusoft.cmpt.controller;
import com.neusoft.calendar.bean.CmptCale;
import com.neusoft.calendar.service.ICalendarService;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.ResourceUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
@Controller
@RequestMapping("/cmpt")
public class CmptController {
@Autowired
ICalendarService calendarService;
@RequestMapping("/importExcel")
@ResponseBody
public String importExcel(MultipartFile file,HttpServletResponse response) throws IOException {
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition","attachment;filename=" + file.getOriginalFilename());
Workbook workbook = new HSSFWorkbook(file.getInputStream());
List<CmptCale> list = new ArrayList<>();
Sheet sheet = workbook.getSheetAt(0);
int lastRowNum = sheet.getLastRowNum();
for(int i = 1; i <= lastRowNum; i++){
Row row = sheet.getRow(i);
String cmptName = row.getCell(0).getStringCellValue();
if(StringUtils.isEmpty(cmptName)){
continue;
}
String startTime = row.getCell(1) != null ? row.getCell(1).getStringCellValue() : null;
String cmptType = row.getCell(2) != null ? row.getCell(2).getStringCellValue() : null;
String country = row.getCell(3) != null ? row.getCell(3).getStringCellValue() : null;
String province = row.getCell(4) != null ? row.getCell(4).getStringCellValue() : null;
String city = row.getCell(5) != null ? row.getCell(5).getStringCellValue() : null;
String cmptItem = row.getCell(6) != null ? row.getCell(6).getStringCellValue() : null;
String closeTime = row.getCell(7) != null ? row.getCell(7).getStringCellValue() : null;
String intro = row.getCell(8) != null ? row.getCell(8).getStringCellValue() : null;
String introUrl = row.getCell(9) != null ? row.getCell(9).getStringCellValue() : null;
String imageUrl = row.getCell(10) != null ? row.getCell(10).getStringCellValue() : null;
String enrollUrl = row.getCell(11) != null ? row.getCell(11).getStringCellValue() : null;
String enrollSt = row.getCell(12) != null ? row.getCell(12).getStringCellValue() : null;
String enrollEnd = row.getCell(13) != null ? row.getCell(13).getStringCellValue() : null;
String scoreUrl = row.getCell(14) != null ? row.getCell(14).getStringCellValue() : null;
String form = row.getCell(15) != null ? row.getCell(15).getStringCellValue() : null;
CmptCale cmptCale = new CmptCale();
cmptCale.setCmptName(cmptName);
cmptCale.setCmptItem(cmptItem);
cmptCale.setCmptImgUrl(imageUrl);
int type = 0;
if("马拉松".equals(cmptType)){
type = 0;
}else if("越野赛".equals(cmptType)){
type = 1;
}else if("铁人三项".equals(cmptType)){
type = 2;
}else if("徒步".equals(cmptType)){
type = 3;
}else if("其他".equals(cmptType)){
type = 4;
}
cmptCale.setCmptType(type);
cmptCale.setEnrollEnd(enrollEnd);
cmptCale.setEnrollSt(enrollSt);
cmptCale.setCmptImgUrl(enrollUrl);
cmptCale.setStartTime(startTime);
cmptCale.setCloseTime(closeTime);
cmptCale.setCmptCity(city);
cmptCale.setCmptCountry(country);
cmptCale.setCmptScoreUrl(scoreUrl);
cmptCale.setCmptAddr(city);
cmptCale.setCmptDetail(intro);
cmptCale.setCmptLookUrl(introUrl);
int formType = 9;
if("赛客".equals(form)){
formType = 1;
}else if("爱燃烧".equals(form)){
formType = 2;
}else if("最酷".equals(form)){
formType = 3;
}else if("42旅".equals(form)){
formType = 4;
}
cmptCale.setCmptFrom(formType+"");
int count = calendarService.addOrUpdate(Arrays.asList(cmptCale));
if(count == 0){
row.createCell(17).setCellValue("添加失败");
}else{
row.createCell(17).setCellValue("添加成功");
}
}
String name = UUID.randomUUID().toString()+".xls";
workbook.write(new FileOutputStream(new File("/home/nginx/geexek_nginx_data/file/"+ name)));
return name;
}
@RequestMapping("/download")
public void importExcel(HttpServletResponse response) throws IOException {
File file = ResourceUtils.getFile("classpath:/doc/导入模板.xls");
response.setHeader("content-disposition", "attachment;fileName=" + new String("导入模板.xls".getBytes(), "ISO8859-1"));
InputStream in = new FileInputStream(file); //获取下载文件的输入流
int count = 0;
byte[] by = new byte[1024];
//通过response对象获取OutputStream流
OutputStream out = response.getOutputStream();
while ((count = in.read(by)) != -1) {
out.write(by, 0, count);//将缓冲区的数据输出到浏览器
}
in.close();
out.flush();
out.close();
}
}
\ No newline at end of file
package com.neusoft.cmpt.dao;
import com.neusoft.calendar.bean.CmptCale;
import com.neusoft.utils.Base64;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
@Repository("cmptDao")
public class CmptDao {
@Autowired
private JdbcTemplate cmptJdbcTemplate;
public List<CmptCale> queryCompetition(int startId) {
List<CmptCale> list = new ArrayList<>();
String sql = "SELECT a.cmptName,a.startTime,a.type ,a.area,a.province,a.city,GROUP_CONCAT(b.roadName) cmptItem,a.imageUrl,a.cmptId," +
"a.location,date_format('%Y-%m-%d',a.openTime) openTime,date_format('%Y-%m-%d',a.deadLine) deadLine from raceenroll.competition a inner join raceenroll.competitionroadmap b on a.cmptId=b.cmptId\n " +
"where a.cmptId>"+startId+" and a.cmptAuditLevel=1 and a.isDelete=0 group by a.cmptId";
List<CmptCale> query = cmptJdbcTemplate.query(sql, new RowMapper<CmptCale>() {
@Override
public CmptCale mapRow(ResultSet rs, int i) throws SQLException {
CmptCale cmpt = new CmptCale();
String cmptName = rs.getString("cmptName");
String startTime = rs.getString("startTime");
int type = rs.getInt("type");
String area = rs.getString("area");
String province = rs.getString("province");
String city = rs.getString("city");
String cmptItem = rs.getString("cmptItem");
String imageUrl = rs.getString("imageUrl");
String location = rs.getString("location");
String openTime = rs.getString("openTime");
String deadLine = rs.getString("deadLine");
int cmptId = rs.getInt("cmptId");
cmpt.setCmptName(cmptName);
cmpt.setStartTime(startTime);
cmpt.setCmptCity(city);
cmpt.setCmptItem(cmptItem);
cmpt.setEnrollSt(openTime);
cmpt.setEnrollEnd(deadLine);
if(StringUtils.isNotBlank(imageUrl)) {
if ((imageUrl.startsWith("http") || imageUrl.startsWith("https"))) {
cmpt.setCmptImgUrl(imageUrl);
} else {
cmpt.setCmptImgUrl("https://www.geexek.com/files/" + imageUrl);
}
}
cmpt.setCmptCountry("大陆".equals(area) ? " 中国" : area);
cmpt.setCmptEnrollId(cmptId);
cmpt.setCmptFrom("1");
cmpt.setCmptAddr(location);
if(type>=3){
cmpt.setCmptType(9);
}else{
cmpt.setCmptType(type-1);
}
cmpt.setCmptEnrollUrl("https://www.geexek.com/cmpt/detail?"+Base64.encode(("cid="+cmptId).getBytes()));
return cmpt;
}
});
list.addAll(query);
return list;
}
public List<CmptCale> queryTxCompetition(int startId) {
List<CmptCale> list = new ArrayList<>();
String sql = "SELECT pk_id,f_name,f_protocol_date,fk_province_id,fk_city_id,f_address,f_project,f_type," +
"f_regtime,f_regtime_end,f_hold_date,f_holdend_date,f_join_url\n " +
"from t_competition where pk_id>"+startId;
List<CmptCale> query = cmptJdbcTemplate.query(sql, new RowMapper<CmptCale>() {
@Override
public CmptCale mapRow(ResultSet rs, int i) throws SQLException {
CmptCale cmpt = new CmptCale();
String cmptName = rs.getString("f_name");
String startTime = rs.getString("f_protocol_date");
int type = rs.getInt("f_type");
String city = rs.getString("f_address");
String cmptItem = rs.getString("f_project");
String openTime = rs.getString("f_regtime");
String deadLine = rs.getString("f_regtime_end");
int cmptId = rs.getInt("pk_id");
cmpt.setCmptName(cmptName);
cmpt.setStartTime(startTime);
cmpt.setCmptCity(city);
cmpt.setCmptItem(cmptItem);
cmpt.setEnrollSt(openTime);
cmpt.setEnrollEnd(deadLine);
cmpt.setCmptEnrollId(cmptId);
cmpt.setCmptFrom("4");
if(type>=3){
cmpt.setCmptType(9);
}else{
cmpt.setCmptType(type-1);
}
cmpt.setCmptEnrollUrl( rs.getString("f_join_url"));
return cmpt;
}
});
list.addAll(query);
return list;
}
public Integer getMaxSeq() {
String sql = "SELECT max(CONVERT(cmpt_enrollid,UNSIGNED)) from cmpt_calendar";
Integer integer = cmptJdbcTemplate.queryForObject(sql, new RowMapper<Integer>() {
@Override
public Integer mapRow(ResultSet rs, int rowNum) throws SQLException {
return rs.getInt(1);
}
});
return integer;
}
}
package com.neusoft.cmpt.impl;
import com.neusoft.calendar.bean.CmptCale;
import com.neusoft.cmpt.CmptService;
import com.neusoft.cmpt.dao.CmptDao;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service("platFormCmptService")
public class PlatFormCmptServiceImpl implements CmptService {
@Resource
CmptDao cmptDao;
@Override
public List<CmptCale> queryCompetition(int startId) {
return cmptDao.queryCompetition(startId);
}
@Override
public Integer getMaxSeq() {
return cmptDao.getMaxSeq();
}
}
package com.neusoft.cmpt.impl;
import com.neusoft.calendar.bean.CmptCale;
import com.neusoft.cmpt.CmptService;
import com.neusoft.cmpt.dao.CmptDao;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service("txCmptService")
public class TxCmptServiceImpl implements CmptService {
@Resource
CmptDao cmptDao;
@Override
public List<CmptCale> queryCompetition(int startId) {
return cmptDao.queryTxCompetition(startId);
}
@Override
public Integer getMaxSeq() {
return null;
}
}
package com.neusoft.job;
import com.neusoft.calendar.bean.CmptCale;
import com.neusoft.calendar.service.ICalendarService;
import com.neusoft.calendar.service.impl.CalendarServiceImpl;
import com.neusoft.cmpt.CmptService;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Configuration
@EnableScheduling
@Controller
public class CmptCronJob {
private Logger logger = Logger.getLogger(CmptCronJob.class);
@Autowired
@Qualifier("platFormCmptService")
CmptService platformService;
@Autowired
@Qualifier("txCmptService")
CmptService txService;
@Autowired
ICalendarService calendarService;
@RequestMapping("/reload")
@ResponseBody
public String reload(){
loadCompetition();
return "reload";
}
@Scheduled(cron = "0 0 0 */1 * ?")
public void loadCompetition(){
logger.info("定时任务开始");
List<CmptCale> cmptCales = platformService.queryCompetition(platformService.getMaxSeq());
for(CmptCale cmptCale : cmptCales){
if(StringUtils.isNotBlank(cmptCale.getCmptItem())){
String item = cmptCale.getCmptItem().replaceAll(","," ");
cmptCale.setCmptItem(item);
}
}
logger.info("查询赛事数据");
calendarService.addOrUpdate(cmptCales);
}
}
package com.neusoft.utils;
public class SimilarCompare {
private static int compare(String str, String target, boolean isIgnore) {
int d[][]; // 矩阵
int n = str.length();
int m = target.length();
int i; // 遍历str的
int j; // 遍历target的
char ch1; // str的
char ch2; // target的
int temp; // 记录相同字符,在某个矩阵位置值的增量,不是0就是1
if (n == 0) {
return m;
}
if (m == 0) {
return n;
}
d = new int[n + 1][m + 1];
for (i = 0; i <= n; i++) { // 初始化第一列
d[i][0] = i;
}
for (j = 0; j <= m; j++) { // 初始化第一行
d[0][j] = j;
}
for (i = 1; i <= n; i++) { // 遍历str
ch1 = str.charAt(i - 1);
// 去匹配target
for (j = 1; j <= m; j++) {
ch2 = target.charAt(j - 1);
if (isIgnore) {
if (ch1 == ch2 || ch1 == ch2 + 32 || ch1 + 32 == ch2) {
temp = 0;
} else {
temp = 1;
}
} else {
if (ch1 == ch2) {
temp = 0;
} else {
temp = 1;
}
}
// 左边+1,上边+1, 左上角+temp取最小
d[i][j] = min(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + temp);
}
}
return d[n][m];
}
private static int min(int one, int two, int three) {
return (one = one < two ? one : two) < three ? one : three;
}
public static float getSimilarityRatio(String str, String target, boolean isIgnore) {
float ret = 0;
if (Math.max(str.length(), target.length()) == 0) {
ret = 1;
} else {
ret = 1 - (float) compare(str, target, isIgnore) / Math.max(str.length(), target.length());
}
return ret;
}
}
......@@ -26,8 +26,10 @@ import com.neusoft.utils.Consts;
*/
public class SessionInterceptor implements HandlerInterceptor {
/*
@Value("${project.domain}")
private String domain;
*/
@Override
public void afterCompletion(HttpServletRequest arg0,
......@@ -45,7 +47,7 @@ public class SessionInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
if (!HandlerMethod.class.isAssignableFrom(handler.getClass())) {
/*if (!HandlerMethod.class.isAssignableFrom(handler.getClass())) {
return true;
}
HandlerMethod handlerMethod = (HandlerMethod) handler;
......@@ -61,7 +63,7 @@ public class SessionInterceptor implements HandlerInterceptor {
} else if (!url.contains("/usr/login") && userObj == null) {
response.sendRedirect("/common/sys/login.html");
return false;
}
}*/
return true;
}
......
project.domain=${project.domain}
server.domain=${server.domain}
project.domain=http://common.geexek.com/common/
server.domain=http://testtimerbackend.geexek.com
project.production=false
#authorize
accesstoken.url=http://wxgeexek.geexek.com/weixinAPI/getAccessToken
auth.domain=http://www.geexek.com/weixin/get-weixin-code.html
geexek.appid=wx1afdef8c2d55426f
geexek.secret=673a6e5defd8a8e106929d67318d17d8
geexek.appid=wx6aec738bfd553991
geexek.secret=f5a12f780aaa5bbd8cd9e1b3e286abd2
#enroll
enroll.url=http://enroll.geexek.com/registerInfo
......
#==== mysql config ====
mysql.host=${mysql.host}
mysql.port=${mysql.port}
mysql.db=${mysql.db}
mysql.username=${mysql.username}
mysql.password=${mysql.password}
mysql.host=47.111.166.211
mysql.port=3306
mysql.db=geerunner_test
mysql.username=geexek
mysql.password=geexekNewPass4!
mysql.validationQuery=select 1;
\ No newline at end of file
# Root logger option
log4j.rootLogger=INFO,stdout,file,E
log4j.rootLogger=DEBUG,stdout,file,E
#log4j.additivity=false
# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
......
......@@ -6,12 +6,12 @@
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss:SSS} %l %m%n"/>
</layout> <!--限制输出级别 -->
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMax" value="ERROR"/>
<param name="LevelMax" value="DEBUG"/>
<param name="LevelMin" value="DEBUG"/>
</filter>
</appender>
<root>
<priority value="info"/>
<priority value="DEBUG"/>
<appender-ref ref="CONSOLE"/>
</root>
</log4j:configuration>
\ No newline at end of file
......@@ -17,15 +17,15 @@
<!-- 配置数据源 -->
<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://${mysql.host}:${mysql.port}/${mysql.db}?useUnicode=true&amp;characterEncoding=utf-8"/>
<property name="username" value="${mysql.username}" />
<property name="password" value="${mysql.password}" />
<property name="url" value="jdbc:mysql://rm-bp15ojs1ys1eur32zwo.mysql.rds.aliyuncs.com:3306/geerunner?useUnicode=true&amp;characterEncoding=utf-8"/>
<property name="username" value="mysql_master" />
<property name="password" value="mysql_master_geexek_408!" />
<property name="maxActive" value="20" />
<property name="maxIdle" value="5" />
<property name="minIdle" value="0" />
<property name="timeBetweenEvictionRunsMillis" value="6000" />
<property name="minEvictableIdleTimeMillis" value="6000" />
<property name="validationQuery" value="${mysql.validationQuery}" />
<property name="validationQuery" value="select 1 from dual" />
<property name="testWhileIdle" value="true" />
<property name="jmxEnabled" value="false" />
</bean>
......
......@@ -61,7 +61,13 @@
<property name="suffix" value=".jsp" />
<property name="contentType" value="text/html;charset=UTF-8"/>
</bean>
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8" />
<!-- 指定所上传文件的总大小,单位字节。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 -->
<property name="maxUploadSize" value="10240000" /><!-- 上传的最大size -->
<property name="maxInMemorySize" value="40960" />
<property name="resolveLazily" value="true" /><!-- 懒接收 -->
</bean>
<context:property-placeholder location="classpath:config/common.properties" />
<bean id="servletContextHolder" class="com.neusoft.utils.ServletContextHolder"
destroy-method="destroy" />
......
......@@ -12,12 +12,38 @@
<script type="text/javascript" src="${ctx}/js/jquery-1.12.3.min.js"></script>
<script type="text/javascript" src="${ctx}/js/jquery.session.min.js"></script>
<script type="text/javascript" src="${ctx}/js/geexekMob.js"></script>
<style>
input{
width: 135px!important;
}
input[type=button]{
width: 90px;
text-align: center;
}
.btn{
margin: 0px 5px;
font-size: 13px;
cursor: pointer;
text-align: center;
width: 90px;
line-height: 30px;
height: 30px;
background: #aba0a0;
color: white;
display: inline-block;
border-radius: 4px;
}
</style>
</head>
<body>
<div class="table">
&nbsp;<input type="text" placeholder="赛事关键字" id="keyword"> <input type="button" value="搜索" id="search">
&nbsp;<input type="text" placeholder="赛事关键字" id="keyword">
<input type="button" value="搜索" id="search">
&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" value="新建赛事" id="add">
<span id="near"><input type="button" value="最近更新" id="orderby"></span>
<span id="import" class="btn">上传文件 </span>
<span id="download" class="btn">下载模板</span>
<input id="file" type="file" onchange="uploadFile(this)" style="display: none">
<table border="0.5" cellspacing="0" cellpadding="0">
<thead>
<tr id="first">
......@@ -55,5 +81,37 @@
</div>
<script type="text/javascript" src="${ctx}/js/mergeCale.js"></script>
<script>
//文件上传处理
function uploadFile(obj) {
var reads = new FileReader();
logoFile = obj.files[0];
reads.readAsDataURL(logoFile);
reads.onload = function (e) {
//将处理完的图片文件上传到阿里云服务器
//上传LOGO图片
var formData = new FormData();
formData.append("file", logoFile);
$.ajax({
url: ctx + '/cmpt/importExcel', /*接口域名地址*/
type: 'post',
data: formData,
contentType: false,
processData: false,
success: function (res) {
// 转换完成,创建一个a标签用于下载
window.open("http://www.geexek.com/files/file/"+res);
$('#file').val('')
}
})
};
}
$('#import').click(function(){
$('#file').trigger('click')
});
$('#download').click(function () {
window.open("http://common.geexek.com/common/cmpt/download");
})
</script>
</body>
</html>
\ No newline at end of file
......@@ -39,6 +39,7 @@ html,body {
}
input{
text-align:left;
width: 160px!important;
}
label{
width:100px;
......@@ -50,9 +51,7 @@ label{
p{
margin-left:30px
}
#near{
margin-left:740px;
}
.form-group .ttl-cls {
width:120px;
......
......@@ -49,16 +49,16 @@ var caleLunar = {
caleLunar2020 : [
["初七","初八","初九","初十","十一","十二","十三","十四","十五","十六","十七","十八","十九","二十","廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","三十","初一","初二","初三","初四","初五","初六","初七",],
["初八","初九","初十","十一","十二","十三","十四","十五","十六","十七","十八","十九","二十","廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","初一","初二","初三","初四","初五","初六","初七",],
["初八","初九","初十","十一","十二","十三","十四","十五","十六","十七","十八","十九","二十","廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","初一","初二","初三","初四","初五","初六","初七","初八",],
["初九","初十","十一","十二","十三","十四","十五","十六","十七","十八","十九","二十","廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","初一","初二","初三","初四","初五","初六","初七","初八",],
["初九","初十","十一","十二","十三","十四","十五","十六","十七","十八","十九","二十","廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","初一","初二","初三","初四","初五","初六","初七","初八","初九",],
["初八","初九","初十","十一","十二","十三","十四","十五","十六","十七","十八","十九","二十","廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","三十","初一","初二","初三","初四","初五","初六","初七","初八",],
["初九","初十","十一","十二","十三","十四","十五","十六","十七","十八","十九","二十","廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","三十","初一","初二","初三","初四","初五","初六","初七","初八",],
["初九","初十","十一","十二","十三","十四","十五","十六","十七","十八","十九","二十","廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","三十","初一","初二","初三","初四","初五","初六","初七","初八","初九",],
["初十","十一","十二","十三","十四","十五","十六","十七","十八","十九","二十","廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","初一","初二","初三","初四","初五","初六","初七","初八","初九","初十",],
["十一","十二","十三","十四","十五","十六","十七","十八","十九","二十","廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","初一","初二","初三","初四","初五","初六","初七","初八","初九","初十","十一",],
["十一","十二","十三","十四","十五","十六","十七","十八","十九","二十","廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","三十","初一","初二","初三","初四","初五","初六","初七","初八","初九","初十","十一",],
["十二","十三","十四","十五","十六","十七","十八","十九","二十","廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","初一","初二","初三","初四","初五","初六","初七","初八","初九","初十","十一","十二","十三",],
["十四","十五","十六","十七","十八","十九","二十","廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","初一","初二","初三","初四","初五","初六","初七","初八","初九","初十","十一","十二","十三","十四",],
["十五","十六","十七","十八","十九","二十","廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","初一","初二","初三","初四","初五","初六","初七","初八","初九","初十","十一","十二","十三","十四","十五",],
["十五","十六","十七","十八","十九","二十","廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","三十","初一","初二","初三","初四","初五","初六","初七","初八","初九","初十","十一","十二","十三","十四","十五",],
["十六","十七","十八","十九","二十","廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","初一","初二","初三","初四","初五","初六","初七","初八","初九","初十","十一","十二","十三","十四","十五","十六",],
["十七","十八","十九","二十","廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","初一","初二","初三","初四","初五","初六","初七","初八","初九","初十","十一","十二","十三","十四","十五","十六","十七",],
["十七","十八","十九","二十","廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","三十","初一","初二","初三","初四","初五","初六","初七","初八","初九","初十","十一","十二","十三","十四","十五","十六","十七",],
],
};
lunarEmpty = ["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""];
......
......@@ -81,7 +81,7 @@ function request(paras){
}
function fmtStr(_data, _def) {
if (_data==undefined || _data==null || String(_data)=="undefined") {
if (_data==undefined || _data==null || String(_data)=="undefined" || String(_data).indexOf("undefined") > -1) {
if (_def!=undefined && _def!=null) return _def;
return "";
}
......
......@@ -78,7 +78,10 @@ $.extend({
$box.show().addClass("msg-show");
$box.find(".msg-title-html").html(options.title);
$box.find(".msg-html").html("<p>" + options.content + "</p>");
if(options.content){
$box.find(".msg-html").html("<p>" + options.content + "</p>");
}
//var closeTime = options.closeTime || "";
//var itemType = options.itemType || "";
//$box.find("span.item-type").text(itemType);
......
......@@ -199,29 +199,29 @@ function updateCmpt(content){
}
function deleteCmpt(content){
$('body').on('click',content,function(){
if(confirm("警告!确定删除吗?")){
var dataArray=[];
var data={
"caleId":$(this).parents("tr").find("input[name=caleId]").val()
};
dataArray.push(data);
var param=JSON.stringify(dataArray);
$.ajax({
'url': ctx+'/usr/mergeCmptCalendar.do',
'type':'post',
'data':param,
'dataType':'json',
'contentType':'application/json',
'success':function(data){
if(data.status==0){
initCmpts(pageNoFlg);
}else{
alert(data.message);
if(confirm("警告!确定删除吗?")){
var dataArray=[];
var data={
"caleId":$(this).parents("tr").find("input[name=caleId]").val()
};
dataArray.push(data);
var param=JSON.stringify(dataArray);
$.ajax({
'url': ctx+'/usr/mergeCmptCalendar.do',
'type':'post',
'data':param,
'dataType':'json',
'contentType':'application/json',
'success':function(data){
if(data.status==0){
initCmpts(pageNoFlg);
}else{
alert(data.message);
}
}
});
}
});
}
});
}
function reloadList() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment