提交 d0fd925d 作者: 余乾开

Merge branch 'develop'

...@@ -101,7 +101,7 @@ ...@@ -101,7 +101,7 @@
<dependency> <dependency>
<groupId>org.apache.httpcomponents</groupId> <groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId> <artifactId>httpclient</artifactId>
<version>4.5.2</version> <version>4.5.13</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.mmc.csf.common</groupId> <groupId>com.mmc.csf.common</groupId>
......
...@@ -44,7 +44,7 @@ public enum ResultEnum implements BaseErrorInfoInterface { ...@@ -44,7 +44,7 @@ public enum ResultEnum implements BaseErrorInfoInterface {
PARAM_DEFECT("5004", "参数缺失"), PARAM_DEFECT("5004", "参数缺失"),
LOGIN_ACCOUNT_NOT_EXIT_ERROR("5005", "账号不存在"), LOGIN_ACCOUNT_NOT_EXIT_ERROR("5005", "账号不存在"),
LOGIN_PASSWORD_ERROR("5006", "密码错误"), LOGIN_PASSWORD_ERROR("5006", "密码错误"),
LOGIN_ACCOUNT_STATUS_ERROR("5008", "外部访问"), LOGIN_ACCOUNT_STATUS_ERROR("5008", "未登录"),
OPERATE_USER_ORDERCOUNT_ERROR("5007", "当前账号有存在相关订单未关闭"), OPERATE_USER_ORDERCOUNT_ERROR("5007", "当前账号有存在相关订单未关闭"),
WALLET_CASH_NOT_ENOUGH_ERROR("5009", "现金余额不足"), WALLET_CASH_NOT_ENOUGH_ERROR("5009", "现金余额不足"),
......
...@@ -17,4 +17,4 @@ patches: ...@@ -17,4 +17,4 @@ patches:
images: images:
- name: REGISTRY/NAMESPACE/IMAGE:TAG - name: REGISTRY/NAMESPACE/IMAGE:TAG
newName: mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/ims newName: mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/ims
newTag: c0a84142d766d9b4441e2ad31ded34a3d8172f8d newTag: 75c6aedf979acbf6ec7a72adedaf09ff33625b54
...@@ -103,7 +103,7 @@ ...@@ -103,7 +103,7 @@
<dependency> <dependency>
<groupId>mysql</groupId> <groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId> <artifactId>mysql-connector-java</artifactId>
<version>8.0.15</version> <version>8.0.16</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
...@@ -146,7 +146,7 @@ ...@@ -146,7 +146,7 @@
<dependency> <dependency>
<groupId>commons-fileupload</groupId> <groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId> <artifactId>commons-fileupload</artifactId>
<version>1.4</version> <version>1.5</version>
</dependency> </dependency>
<dependency> <dependency>
...@@ -155,16 +155,17 @@ ...@@ -155,16 +155,17 @@
<version>3.13.1</version> <version>3.13.1</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency> <dependency>
<groupId>com.google.guava</groupId> <groupId>com.google.guava</groupId>
<artifactId>guava</artifactId> <artifactId>guava</artifactId>
<version>18.0</version> <version>31.1-jre</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.poi</groupId> <groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId> <artifactId>poi</artifactId>
<version>4.1.0</version> <version>4.1.1</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
......
...@@ -3,6 +3,7 @@ package com.mmc.csf.release.auth; ...@@ -3,6 +3,7 @@ package com.mmc.csf.release.auth;
import com.mmc.csf.common.util.web.ResultBody; import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.common.util.web.ResultEnum; import com.mmc.csf.common.util.web.ResultEnum;
import com.mmc.csf.release.util.PathUtil; import com.mmc.csf.release.util.PathUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -29,24 +30,23 @@ public class TokenCheckHandleInterceptor implements HandlerInterceptor { ...@@ -29,24 +30,23 @@ public class TokenCheckHandleInterceptor implements HandlerInterceptor {
@Override @Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// 扫码登录还没做好,暂时先注释 // 扫码登录还没做好,暂时先注释
// String requestURI = request.getRequestURI(); String requestURI = request.getRequestURI();
// //根据uri确认是否要拦截 if (!shouldFilter(requestURI)){
// if (!shouldFilter(requestURI)){ return true;
// return true; }
// } if (request.getServerName().equals("iuav.mmcuav.cn") || request.getServerName().equals("test.iuav.mmcuav.cn")){
// String token = request.getHeader("token"); String token = request.getHeader("token");
// String tokenJson = stringRedisTemplate.opsForValue().get(token); if (StringUtils.isBlank(token)){
// exceptionProcess(response);
// if (StringUtils.isBlank(tokenJson)){ return false;
// exceptionProcess(response); }
// return false; String tokenJson = stringRedisTemplate.opsForValue().get(token);
// } if (StringUtils.isBlank(tokenJson)){
// LoginSuccessDTO loginSuccessDTO = JSONObject.parseObject(tokenJson, LoginSuccessDTO.class); exceptionProcess(response);
// if (loginSuccessDTO != null){ return false;
// request.setAttribute("userAccountId", loginSuccessDTO.getUserAccountId()); }
// } return true;
}
//test
return true; return true;
} }
......
package com.mmc.csf.release.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.reactive.CorsWebFilter;
import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
/**
* @author 作者 geDuo
* @version 创建时间:2021年9月4日 上午9:33:40
* @explain 跨域
*/
@Configuration
public class CorsConfig {
// 添加跨域过滤器
@Bean
public CorsWebFilter corsWebFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
config.addAllowedOrigin("*");
config.setAllowCredentials(true);
config.addAllowedHeader("*");
config.addAllowedMethod("*");
source.registerCorsConfiguration("/**", config);
return new CorsWebFilter(source);
}
}
package com.mmc.csf.release.config;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.ConversionServiceFactoryBean;
import org.springframework.core.convert.ConversionService;
import org.springframework.core.convert.converter.Converter;
import org.springframework.http.MediaType;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@Configuration
public class WebConfig {
// JSON格式 全局日期转换器配置
@Bean
public MappingJackson2HttpMessageConverter getMappingJackson2HttpMessageConverter() {
MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
// 设置日期格式
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setDateFormat(GlobalJsonDateConvert.instance);
objectMapper.setSerializationInclusion(JsonInclude.Include.ALWAYS);
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
mappingJackson2HttpMessageConverter.setObjectMapper(objectMapper);
// 设置中文编码格式
List<MediaType> list = new ArrayList<MediaType>();
list.add(MediaType.APPLICATION_JSON_UTF8);
mappingJackson2HttpMessageConverter.setSupportedMediaTypes(list);
return mappingJackson2HttpMessageConverter;
}
// 表单格式 全局日期转换器
@Bean
@Autowired
public ConversionService getConversionService(GlobalFormDateConvert globalDateConvert) {
ConversionServiceFactoryBean factoryBean = new ConversionServiceFactoryBean();
Set<Converter> converters = new HashSet<>();
converters.add(globalDateConvert);
factoryBean.setConverters(converters);
return factoryBean.getObject();
}
}
...@@ -44,6 +44,9 @@ public abstract class BaseController { ...@@ -44,6 +44,9 @@ public abstract class BaseController {
*/ */
public LoginSuccessDTO getUserLoginInfoFromRedis(HttpServletRequest request) { public LoginSuccessDTO getUserLoginInfoFromRedis(HttpServletRequest request) {
String token = request.getHeader("token"); String token = request.getHeader("token");
if (StringUtils.isBlank(token)){
return null;
}
String json = stringRedisTemplate.opsForValue().get(token); String json = stringRedisTemplate.opsForValue().get(token);
if (StringUtils.isBlank(json)){ if (StringUtils.isBlank(json)){
throw new BizException(ResultEnum.LOGIN_ACCOUNT_STATUS_ERROR); throw new BizException(ResultEnum.LOGIN_ACCOUNT_STATUS_ERROR);
......
...@@ -33,7 +33,7 @@ import java.util.Date; ...@@ -33,7 +33,7 @@ import java.util.Date;
@Api(tags = {"招标相关"}) @Api(tags = {"招标相关"})
@RestController @RestController
@RequestMapping("/tender/") @RequestMapping("/tender/")
public class TenderController { public class TenderController extends BaseController{
@Autowired @Autowired
private TenderService tenderService; private TenderService tenderService;
...@@ -126,7 +126,7 @@ public class TenderController { ...@@ -126,7 +126,7 @@ public class TenderController {
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = AppTenderInfoDTO.class)}) @ApiResponses({@ApiResponse(code = 200, message = "OK", response = AppTenderInfoDTO.class)})
@PostMapping(value = "listNewTenderInfo") @PostMapping(value = "listNewTenderInfo")
public ResultBody listNewTenderInfo(@Validated(value = {Page.class})@RequestBody IndustryCaseQO industryCaseQO, HttpServletRequest request){ public ResultBody listNewTenderInfo(@Validated(value = {Page.class})@RequestBody IndustryCaseQO industryCaseQO, HttpServletRequest request){
return tenderService.listNewTenderInfo(industryCaseQO); return tenderService.listNewTenderInfo(industryCaseQO, this.getUserLoginInfoFromRedis(request));
} }
} }
...@@ -4,6 +4,7 @@ import com.mmc.csf.common.util.web.ResultBody; ...@@ -4,6 +4,7 @@ import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.infomation.qo.IndustryCaseQO; import com.mmc.csf.infomation.qo.IndustryCaseQO;
import com.mmc.csf.infomation.vo.TenderApplyVO; import com.mmc.csf.infomation.vo.TenderApplyVO;
import com.mmc.csf.infomation.vo.TenderNewsVO; import com.mmc.csf.infomation.vo.TenderNewsVO;
import com.mmc.csf.release.auth.dto.LoginSuccessDTO;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.io.IOException; import java.io.IOException;
...@@ -36,5 +37,6 @@ public interface TenderService { ...@@ -36,5 +37,6 @@ public interface TenderService {
ResultBody listTenderInfoAppLatest(Integer pageNo, Integer pageSize, Integer userAccountId); ResultBody listTenderInfoAppLatest(Integer pageNo, Integer pageSize, Integer userAccountId);
ResultBody listNewTenderInfo(IndustryCaseQO industryCaseQO); ResultBody listNewTenderInfo(IndustryCaseQO industryCaseQO,
LoginSuccessDTO loginSuccessDTO);
} }
package com.mmc.csf.release.service.impl; package com.mmc.csf.release.service.impl;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import com.alibaba.druid.sql.visitor.functions.If;
import com.mmc.csf.common.util.page.PageResult; import com.mmc.csf.common.util.page.PageResult;
import com.mmc.csf.common.util.web.ResultBody; import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.common.util.web.ResultEnum; import com.mmc.csf.common.util.web.ResultEnum;
import com.mmc.csf.infomation.dto.AppTenderInfoDTO; import com.mmc.csf.infomation.dto.*;
import com.mmc.csf.infomation.dto.TenderApplyDTO;
import com.mmc.csf.infomation.dto.TenderInfoDTO;
import com.mmc.csf.infomation.dto.TenderNewsDTO;
import com.mmc.csf.infomation.qo.IndustryCaseQO; import com.mmc.csf.infomation.qo.IndustryCaseQO;
import com.mmc.csf.infomation.vo.TenderApplyVO; import com.mmc.csf.infomation.vo.TenderApplyVO;
import com.mmc.csf.infomation.vo.TenderNewsVO; import com.mmc.csf.infomation.vo.TenderNewsVO;
import com.mmc.csf.release.auth.dto.LoginSuccessDTO;
import com.mmc.csf.release.dao.TenderDao; import com.mmc.csf.release.dao.TenderDao;
import com.mmc.csf.release.entity.TenderApplyDO; import com.mmc.csf.release.entity.TenderApplyDO;
import com.mmc.csf.release.entity.TenderInfoDO; import com.mmc.csf.release.entity.TenderInfoDO;
...@@ -26,7 +21,6 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -26,7 +21,6 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -202,7 +196,11 @@ public class TenderServiceImpl implements TenderService { ...@@ -202,7 +196,11 @@ public class TenderServiceImpl implements TenderService {
if(beforeTenderApplyDO != null){ if(beforeTenderApplyDO != null){
return ResultBody.error(ResultEnum.HAS_BEEN_APPLY_ERROR); return ResultBody.error(ResultEnum.HAS_BEEN_APPLY_ERROR);
} }
UserAccountSimpleDTO userAccountSimpleDTO = userAppApi.feignGetUserSimpleInfo(tenderApplyVO.getUserAccountId());
TenderApplyDO tenderApplyDO = new TenderApplyDO(tenderApplyVO); TenderApplyDO tenderApplyDO = new TenderApplyDO(tenderApplyVO);
tenderApplyDO.setNickName(userAccountSimpleDTO.getNickName());
tenderApplyDO.setUserName(userAccountSimpleDTO.getUserName());
tenderApplyDO.setPhoneNum(userAccountSimpleDTO.getPhoneNum());
tenderDao.addTenderApply(tenderApplyDO); tenderDao.addTenderApply(tenderApplyDO);
return ResultBody.success(); return ResultBody.success();
} }
...@@ -275,9 +273,11 @@ public class TenderServiceImpl implements TenderService { ...@@ -275,9 +273,11 @@ public class TenderServiceImpl implements TenderService {
} }
@Override @Override
public ResultBody listNewTenderInfo(IndustryCaseQO industryCaseQO) { public ResultBody listNewTenderInfo(IndustryCaseQO industryCaseQO,
//查询对应地区的用户 LoginSuccessDTO loginSuccessDTO) {
List<Integer> userIds = userAppApi.feignListUserAccountIds(industryCaseQO.getProvinceCode(), industryCaseQO.getCityCode(), industryCaseQO.getDistrictCode()); //查询对应地区的用户, 默认查广东
industryCaseQO.setProvinceCode(industryCaseQO.getProvinceCode() == null ? 440000 : industryCaseQO.getProvinceCode());
List<Integer> userIds = userAppApi.feignListUserAccountIds(industryCaseQO.getProvinceCode() , industryCaseQO.getCityCode(), industryCaseQO.getDistrictCode());
industryCaseQO.setUserIds(userIds); industryCaseQO.setUserIds(userIds);
int count = tenderDao.countNewListTenderInfo(industryCaseQO); int count = tenderDao.countNewListTenderInfo(industryCaseQO);
if (count == 0) { if (count == 0) {
...@@ -290,17 +290,18 @@ public class TenderServiceImpl implements TenderService { ...@@ -290,17 +290,18 @@ public class TenderServiceImpl implements TenderService {
List<AppTenderInfoDTO> pageList = list.stream().map(d -> { List<AppTenderInfoDTO> pageList = list.stream().map(d -> {
return d.buildAppTenderInfoDTO(); return d.buildAppTenderInfoDTO();
}).collect(Collectors.toList()); }).collect(Collectors.toList());
Integer applyUserId = 1; if (loginSuccessDTO != null) {
//查出已申请过的并做标记 //查出已申请过的并做标记
List<Integer> applyTenderInfoIds = tenderDao.listApplyTenderInfoIds(tenderInfoIds, applyUserId); List<Integer> applyTenderInfoIds = tenderDao.listApplyTenderInfoIds(tenderInfoIds, loginSuccessDTO.getUserAccountId());
if (CollectionUtils.isNotEmpty(applyTenderInfoIds)) { if (CollectionUtils.isNotEmpty(applyTenderInfoIds)) {
pageList.forEach(d->{ pageList.forEach(d->{
if(applyTenderInfoIds.contains(d.getId())){ if(applyTenderInfoIds.contains(d.getId())){
d.setApply(1); d.setApply(1);
}else { }else {
d.setApply(0); d.setApply(0);
} }
}); });
}
} }
return ResultBody.success(PageResult.buildPage(pageNo, industryCaseQO.getPageSize(), count, pageList)); return ResultBody.success(PageResult.buildPage(pageNo, industryCaseQO.getPageSize(), count, pageList));
} }
......
...@@ -296,10 +296,10 @@ ...@@ -296,10 +296,10 @@
limit #{pageNo}, #{pageSize} limit #{pageNo}, #{pageSize}
</select> </select>
<select id="listApplyTenderInfoIds" resultType="java.util.List"> <select id="listApplyTenderInfoIds" resultType="java.lang.Integer">
select ti.id select ti.id
from tender_news tn INNER JOIN tender_info ti ON tn.id = ti.tender_news_id INNER JOIN tender_apply ta ON ta.tender_info_id = ti.id from tender_news tn INNER JOIN tender_info ti ON tn.id = ti.tender_news_id INNER JOIN tender_apply ta ON ta.tender_info_id = ti.id
where ta.user_account_id = #{applyUserId} where ta.user_account_id = #{applyUserId} and ta.is_deleted = 0
<if test="tenderInfoIds != null"> <if test="tenderInfoIds != null">
<foreach collection="tenderInfoIds" item="id" index="index" <foreach collection="tenderInfoIds" item="id" index="index"
open="and ta.tender_info_id in (" close=")" separator=","> open="and ta.tender_info_id in (" close=")" separator=",">
......
...@@ -6,3 +6,22 @@ data-filter: ...@@ -6,3 +6,22 @@ data-filter:
- /release/doc.html - /release/doc.html
- /release/swagger-resources/** - /release/swagger-resources/**
- /release/webjars/** - /release/webjars/**
- /release/tender/listNewTenderInfo
- /release/requirements/listType
- /release/requirements/listPublishPage
- /release/industry-news/listNewsPage
- /release/industry-news/details
- /release/industry-case/listCasePage
- /release/industry-case/details
- /release/work/queryTaskServiceList
- /release/work/selectInspection
- /release/work/listAllIndustry
- /release/work/listAllAppType
- /release/work/listAllTaskService
- /release/curriculum/queryCurriculumInfoList
- /release/website/getWebsiteByAdCode
- /release/website/getWebsiteList
- /release/website/flyer/bitmap
- /release/website/uav/bitmap
- /release/curriculum/getIndustryFlightSkills
- /release/curriculum/getDronePilotLicense
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论