提交 ec03ed85 作者: panda 提交者: 余乾开

招标快讯相关接口

上级 4aecbd69
...@@ -23,8 +23,8 @@ public class TenderApplyDTO implements Serializable { ...@@ -23,8 +23,8 @@ public class TenderApplyDTO implements Serializable {
private Integer id; private Integer id;
@ApiModelProperty(value = "招标快讯编号") @ApiModelProperty(value = "招标快讯编号")
private String tenderInfoNo; private String tenderInfoNo;
@ApiModelProperty(value = "招标快讯内容") @ApiModelProperty(value = "招标快讯标题")
private String tenderContent; private String tenderTitle;
// @ApiModelProperty(value = "用户id") // @ApiModelProperty(value = "用户id")
// private Integer userAccountId; // private Integer userAccountId;
// @ApiModelProperty(value = "招标快讯id") // @ApiModelProperty(value = "招标快讯id")
......
...@@ -26,6 +26,8 @@ public class TenderInfoDTO implements Serializable { ...@@ -26,6 +26,8 @@ public class TenderInfoDTO implements Serializable {
private Integer tenderNewsId; private Integer tenderNewsId;
@ApiModelProperty(value = "招标快讯内容序号") @ApiModelProperty(value = "招标快讯内容序号")
private String tenderInfoNo; private String tenderInfoNo;
@ApiModelProperty(value = "招标快讯标题")
private String tenderTitle;
@ApiModelProperty(value = "招标快讯内容") @ApiModelProperty(value = "招标快讯内容")
private String tenderContent; private String tenderContent;
@ApiModelProperty(value = "价格") @ApiModelProperty(value = "价格")
......
package com.mmc.csf.infomation.vo;
import com.mmc.csf.release.model.group.Create;
import com.mmc.csf.release.model.group.Freeze;
import com.mmc.csf.release.model.group.Page;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TenderApplyQO implements Serializable {
private static final long serialVersionUID = -5519324350926972959L;
@ApiModelProperty(value = "招标id")
private Integer tenderNewsId;
@ApiModelProperty(value = "招标详情id")
private Integer tenderInfoId;
@ApiModelProperty(value = "用户名",example = "用户名")
private String userName;
@ApiModelProperty(value = "页码")
@NotNull(message = "页码不能为空", groups = { Page.class})
@Min(value = 1, groups = Page.class,message = "pageNo不能少于1")
private Integer pageNo;
@ApiModelProperty(value = "每页显示数")
@NotNull(message = "每页显示数不能为空", groups = { Page.class})
@Min(value = 1, groups = Page.class,message = "pageSize不能少于1")
private Integer pageSize;
}
package com.mmc.csf.infomation.vo;
import com.mmc.csf.release.model.group.Update;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Null;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TenderInfoVO implements Serializable {
private static final long serialVersionUID = -8188835029420792396L;
@NotNull(message = "修改时id不能为空",groups = Update.class)
private Integer id;
@ApiModelProperty(value = "招标快讯标题")
@Length(message = "修改标题不能超过64字符",max = 64,groups = Update.class)
@NotBlank(message = "修改时标题不能为空",groups = Update.class)
private String tenderTitle;
@ApiModelProperty(value = "价格")
private BigDecimal tenderPrice;
@ApiModelProperty(value = "招标快讯内容")
private String tenderContent;
}
...@@ -11,11 +11,14 @@ import javax.validation.constraints.NotNull; ...@@ -11,11 +11,14 @@ import javax.validation.constraints.NotNull;
import java.io.Serializable; import java.io.Serializable;
/** /**
* @author MMC_hzj * author:zhenjie
* Date:2022/5/21
* time:16:17
*/ */
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@ApiModel(value = "com.mmc.csf.sharefly.vo.TenderNewsVO", description = "招标快讯内容参数")
public class TenderNewsVO implements Serializable { public class TenderNewsVO implements Serializable {
private static final long serialVersionUID = -8188835029420792396L; private static final long serialVersionUID = -8188835029420792396L;
@ApiModelProperty(value = "id") @ApiModelProperty(value = "id")
......
...@@ -351,7 +351,7 @@ public enum ResultEnum implements BaseErrorInfoInterface { ...@@ -351,7 +351,7 @@ public enum ResultEnum implements BaseErrorInfoInterface {
FILE_PARSE_ERROR("40600", "上传文件无数据或内容识别失败,请重新上传"), FILE_PARSE_ERROR("40600", "上传文件无数据或内容识别失败,请重新上传"),
HAS_BEEN_APPLY_ERROR("40601", "已提交申请!将有客服人员与你联系"), HAS_BEEN_APPLY_ERROR("40601", "已提交申请!将有客服人员与你联系"),
PRICE_TO_HIGH_ERROR("40602", "标价确认在0-10000000万元内"), PRICE_TO_HIGH_ERROR("40602", "标价确认在0-10000000万元内"),
EXIST_SAME_NAME_ERROR("40603", "快讯名称重复,请重新上传"), EXIST_SAME_NAME_ERROR("40603", "快讯名称重复,请重新上传"),
TENDER_FORMAT_ERROR("40604", "招标序号或内容不能为空,请补全后上传"), TENDER_FORMAT_ERROR("40604", "招标序号或内容不能为空,请补全后上传"),
TENDER_CONTENT_TOO_LONG_ERROR("40605", "存在招标内容字符过长"), TENDER_CONTENT_TOO_LONG_ERROR("40605", "存在招标内容字符过长"),
......
...@@ -2,7 +2,8 @@ package com.mmc.csf.release.controller; ...@@ -2,7 +2,8 @@ package com.mmc.csf.release.controller;
import com.mmc.csf.common.util.group.Create; import com.mmc.csf.common.util.group.Create;
import com.mmc.csf.common.util.group.Page; import com.mmc.csf.common.util.group.Page;
import com.mmc.csf.common.util.group.Update; import com.mmc.csf.infomation.vo.TenderApplyQO;
import com.mmc.csf.release.model.group.Update;
import com.mmc.csf.common.util.web.ResultBody; import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.infomation.dto.AppTenderInfoDTO; import com.mmc.csf.infomation.dto.AppTenderInfoDTO;
import com.mmc.csf.infomation.dto.TenderApplyDTO; import com.mmc.csf.infomation.dto.TenderApplyDTO;
...@@ -10,12 +11,10 @@ import com.mmc.csf.infomation.dto.TenderInfoDTO; ...@@ -10,12 +11,10 @@ import com.mmc.csf.infomation.dto.TenderInfoDTO;
import com.mmc.csf.infomation.dto.TenderNewsDTO; 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.TenderInfoVO;
import com.mmc.csf.infomation.vo.TenderNewsVO; import com.mmc.csf.infomation.vo.TenderNewsVO;
import com.mmc.csf.release.service.TenderService; import com.mmc.csf.release.service.TenderService;
import io.swagger.annotations.Api; import io.swagger.annotations.*;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -23,7 +22,6 @@ import org.springframework.web.multipart.MultipartFile; ...@@ -23,7 +22,6 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
/** /**
...@@ -38,7 +36,7 @@ public class TenderController extends BaseController{ ...@@ -38,7 +36,7 @@ public class TenderController extends BaseController{
@Autowired @Autowired
private TenderService tenderService; private TenderService tenderService;
@ApiOperation(value = "新增招标快讯", hidden = true) @ApiOperation(value = "新增招标快讯")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)}) @ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping(value = "news") @PostMapping(value = "news")
public ResultBody addTenderNews(@RequestPart(value = "file") MultipartFile file, public ResultBody addTenderNews(@RequestPart(value = "file") MultipartFile file,
...@@ -47,10 +45,10 @@ public class TenderController extends BaseController{ ...@@ -47,10 +45,10 @@ public class TenderController extends BaseController{
return tenderService.addTenderNews(file, tenderNewsVO); return tenderService.addTenderNews(file, tenderNewsVO);
} }
@ApiOperation(value = "查询招标快讯列表-分页", hidden = true) @ApiOperation(value = "查询招标快讯列表-分页")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = TenderNewsDTO.class)}) @ApiResponses({@ApiResponse(code = 200, message = "OK", response = TenderNewsDTO.class)})
@GetMapping(value = "news") @GetMapping(value = "news")
public ResultBody listTenderNews(@RequestParam Integer pageNo, @RequestParam Integer pageSize, public ResultBody<TenderNewsDTO> listTenderNews(@RequestParam Integer pageNo, @RequestParam Integer pageSize,
@RequestParam(value = "tenderName", required = false) String tenderName, @RequestParam(value = "tenderName", required = false) String tenderName,
@RequestParam(value = "startTime", required = false) Date startTime, @RequestParam(value = "startTime", required = false) Date startTime,
@RequestParam(value = "endTime", required = false) Date endTime, @RequestParam(value = "endTime", required = false) Date endTime,
...@@ -58,7 +56,7 @@ public class TenderController extends BaseController{ ...@@ -58,7 +56,7 @@ public class TenderController extends BaseController{
return tenderService.listTenderNews(pageNo, pageSize, tenderName, startTime, endTime, using); return tenderService.listTenderNews(pageNo, pageSize, tenderName, startTime, endTime, using);
} }
@ApiOperation(value = "修改招标快讯列表", hidden = true) @ApiOperation(value = "修改-招标快讯列表")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)}) @ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PutMapping(value = "news") @PutMapping(value = "news")
public ResultBody updateTenderNews(@RequestParam(value = "file", required = false) MultipartFile file, public ResultBody updateTenderNews(@RequestParam(value = "file", required = false) MultipartFile file,
...@@ -66,14 +64,14 @@ public class TenderController extends BaseController{ ...@@ -66,14 +64,14 @@ public class TenderController extends BaseController{
return tenderService.updateTenderNews(file, tenderNewsVO); return tenderService.updateTenderNews(file, tenderNewsVO);
} }
@ApiOperation(value = "删除查询招标快讯", hidden = true) @ApiOperation(value = "删除招标快讯")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)}) @ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@DeleteMapping(value = "news/{id}") @DeleteMapping(value = "news/{id}")
public ResultBody removeTenderNews(@PathVariable("id") Integer id){ public ResultBody removeTenderNews(@PathVariable("id") Integer id){
return tenderService.removeTenderNews(id); return tenderService.removeTenderNews(id);
} }
@ApiOperation(value = "查询招标快讯详情列表-分页", hidden = true) @ApiOperation(value = "查询-招标快讯详情列表-分页")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = TenderInfoDTO.class)}) @ApiResponses({@ApiResponse(code = 200, message = "OK", response = TenderInfoDTO.class)})
@GetMapping(value = "info") @GetMapping(value = "info")
public ResultBody listTenderInfo(@RequestParam Integer pageNo, @RequestParam Integer pageSize, public ResultBody listTenderInfo(@RequestParam Integer pageNo, @RequestParam Integer pageSize,
...@@ -81,13 +79,11 @@ public class TenderController extends BaseController{ ...@@ -81,13 +79,11 @@ public class TenderController extends BaseController{
return tenderService.listTenderInfo(pageNo, pageSize, tenderNewsId); return tenderService.listTenderInfo(pageNo, pageSize, tenderNewsId);
} }
@ApiOperation(value = "修改招标快讯详情", hidden = true) @ApiOperation(value = "修改-招标快讯详情")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)}) @ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PutMapping(value = "info") @PutMapping(value = "info")
public ResultBody updateTenderInfo(@RequestParam(value = "id", required = true) Integer id, public ResultBody updateTenderInfo(@Validated(value = Update.class) @RequestBody TenderInfoVO tenderInfoVO){
@RequestParam(value = "tenderContent", required = true) String tenderContent, return tenderService.updateTenderInfo(tenderInfoVO);
@RequestParam(required = false)BigDecimal tenderPrice){
return tenderService.updateTenderInfo(id, tenderContent, tenderPrice);
} }
@ApiOperation(value = "合作申请提交") @ApiOperation(value = "合作申请提交")
...@@ -98,16 +94,14 @@ public class TenderController extends BaseController{ ...@@ -98,16 +94,14 @@ public class TenderController extends BaseController{
return tenderService.addTenderApply(tenderApplyVO, request); return tenderService.addTenderApply(tenderApplyVO, request);
} }
@ApiOperation(value = "用户反馈列表-分页", hidden = true) @ApiOperation(value = "用户反馈列表-分页")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = TenderApplyDTO.class)}) @ApiResponses({@ApiResponse(code = 200, message = "OK", response = TenderApplyDTO.class)})
@GetMapping(value = "apply") @PostMapping(value = "applyList")
public ResultBody listTenderApply(@RequestParam Integer pageNo, @RequestParam Integer pageSize, public ResultBody listTenderApply(@RequestBody TenderApplyQO tenderApplyQO){
@RequestParam Integer tenderNewsId, @RequestParam(required = false) Integer tenderInfoId, return tenderService.listTenderApply(tenderApplyQO);
@RequestParam(required = false) String keyword){
return tenderService.listTenderApply(pageNo, pageSize, tenderNewsId, tenderInfoId, keyword);
} }
@ApiOperation(value = "app往期招标快讯详情列表-分页", hidden = true) @ApiOperation(value = "app往期招标快讯详情列表-分页")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = AppTenderInfoDTO.class)}) @ApiResponses({@ApiResponse(code = 200, message = "OK", response = AppTenderInfoDTO.class)})
@GetMapping(value = "info/app") @GetMapping(value = "info/app")
public ResultBody listTenderInfoApp(@RequestParam Integer pageNo, @RequestParam Integer pageSize, public ResultBody listTenderInfoApp(@RequestParam Integer pageNo, @RequestParam Integer pageSize,
...@@ -115,7 +109,7 @@ public class TenderController extends BaseController{ ...@@ -115,7 +109,7 @@ public class TenderController extends BaseController{
return tenderService.listTenderInfoApp(pageNo, pageSize, tenderNewsId, userAccountId); return tenderService.listTenderInfoApp(pageNo, pageSize, tenderNewsId, userAccountId);
} }
@ApiOperation(value = "app最新招标快讯详情列表-分页", hidden = true) @ApiOperation(value = "app最新招标快讯详情列表-分页")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = AppTenderInfoDTO.class)}) @ApiResponses({@ApiResponse(code = 200, message = "OK", response = AppTenderInfoDTO.class)})
@GetMapping(value = "info/app/latest") @GetMapping(value = "info/app/latest")
public ResultBody listTenderInfoAppLatest(@RequestParam Integer pageNo, @RequestParam Integer pageSize, public ResultBody listTenderInfoAppLatest(@RequestParam Integer pageNo, @RequestParam Integer pageSize,
...@@ -129,5 +123,4 @@ public class TenderController extends BaseController{ ...@@ -129,5 +123,4 @@ public class TenderController extends BaseController{
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, this.getUserLoginInfoFromRedis(request), request); return tenderService.listNewTenderInfo(industryCaseQO, this.getUserLoginInfoFromRedis(request), request);
} }
} }
...@@ -5,6 +5,7 @@ import com.mmc.csf.release.entity.TenderApplyDO; ...@@ -5,6 +5,7 @@ import com.mmc.csf.release.entity.TenderApplyDO;
import com.mmc.csf.release.entity.TenderInfoDO; import com.mmc.csf.release.entity.TenderInfoDO;
import com.mmc.csf.release.entity.TenderNewsDO; import com.mmc.csf.release.entity.TenderNewsDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
...@@ -35,7 +36,7 @@ public interface TenderDao { ...@@ -35,7 +36,7 @@ public interface TenderDao {
List<TenderInfoDO> listTenderInfo(int itemIndex, Integer pageSize, Integer tenderNewsId); List<TenderInfoDO> listTenderInfo(int itemIndex, Integer pageSize, Integer tenderNewsId);
void updateTenderInfo(Integer id, String tenderContent, BigDecimal tenderPrice); void updateTenderInfo(@Param("id") Integer id, @Param("tenderTitle") String tenderTitle, @Param("tenderPrice") BigDecimal tenderPrice, @Param("tenderContent") String tenderContent);
TenderApplyDO getTenderApplyByUId(Integer userAccountId, Integer tenderInfoId); TenderApplyDO getTenderApplyByUId(Integer userAccountId, Integer tenderInfoId);
......
...@@ -31,7 +31,7 @@ public class TenderApplyDO implements Serializable { ...@@ -31,7 +31,7 @@ public class TenderApplyDO implements Serializable {
private Date updateTime; private Date updateTime;
private String tenderInfoNo; private String tenderInfoNo;
private String tenderContent; private String tenderTitle;
public TenderApplyDO(TenderApplyVO tenderApplyVO) { public TenderApplyDO(TenderApplyVO tenderApplyVO) {
this.userAccountId = tenderApplyVO.getUserAccountId(); this.userAccountId = tenderApplyVO.getUserAccountId();
...@@ -44,7 +44,6 @@ public class TenderApplyDO implements Serializable { ...@@ -44,7 +44,6 @@ public class TenderApplyDO implements Serializable {
public TenderApplyDTO buildTenderApplyDTO(){ public TenderApplyDTO buildTenderApplyDTO(){
return TenderApplyDTO.builder().id(this.id).tenderInfoId(this.tenderInfoId).nickName(this.nickName).userName(this.userName).phoneNum(this.phoneNum) return TenderApplyDTO.builder().id(this.id).tenderInfoId(this.tenderInfoId).nickName(this.nickName).userName(this.userName).phoneNum(this.phoneNum)
.createTime(this.createTime).tenderInfoNo(this.tenderInfoNo).tenderContent(this.tenderContent).build(); .createTime(this.createTime).tenderInfoNo(this.tenderInfoNo).tenderTitle(this.tenderTitle).build();
} }
} }
...@@ -2,6 +2,7 @@ package com.mmc.csf.release.entity; ...@@ -2,6 +2,7 @@ package com.mmc.csf.release.entity;
import com.mmc.csf.infomation.dto.AppTenderInfoDTO; import com.mmc.csf.infomation.dto.AppTenderInfoDTO;
import com.mmc.csf.infomation.dto.TenderInfoDTO; import com.mmc.csf.infomation.dto.TenderInfoDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
...@@ -23,6 +24,8 @@ public class TenderInfoDO implements Serializable { ...@@ -23,6 +24,8 @@ public class TenderInfoDO implements Serializable {
private Integer id; private Integer id;
private Integer tenderNewsId; private Integer tenderNewsId;
private String tenderInfoNo; private String tenderInfoNo;
private String tenderTitle;
@ApiModelProperty(value = "招标快讯内容")
private String tenderContent; private String tenderContent;
private BigDecimal tenderPrice; private BigDecimal tenderPrice;
private Integer deleted; private Integer deleted;
...@@ -30,12 +33,12 @@ public class TenderInfoDO implements Serializable { ...@@ -30,12 +33,12 @@ public class TenderInfoDO implements Serializable {
private Date updateTime; private Date updateTime;
public TenderInfoDTO buildTenderInfoDTO(){ public TenderInfoDTO buildTenderInfoDTO(){
return TenderInfoDTO.builder().id(this.id).tenderNewsId(this.tenderNewsId).tenderInfoNo(this.tenderInfoNo).tenderContent(this.tenderContent) return TenderInfoDTO.builder().id(this.id).tenderNewsId(this.tenderNewsId).tenderInfoNo(this.tenderInfoNo).tenderTitle(this.tenderTitle)
.tenderPrice(this.tenderPrice).createTime(this.createTime).build(); .tenderPrice(this.tenderPrice).createTime(this.createTime).tenderContent(this.tenderContent).build();
} }
public AppTenderInfoDTO buildAppTenderInfoDTO(){ public AppTenderInfoDTO buildAppTenderInfoDTO(){
return AppTenderInfoDTO.builder().id(this.id).tenderNewsId(this.tenderNewsId).tenderInfoNo(this.tenderInfoNo).tenderContent(this.tenderContent) return AppTenderInfoDTO.builder().id(this.id).tenderNewsId(this.tenderNewsId).tenderInfoNo(this.tenderInfoNo).tenderContent(this.tenderTitle)
.tenderPrice(this.tenderPrice).createTime(this.createTime).apply(0).build(); .tenderPrice(this.tenderPrice).createTime(this.createTime).apply(0).build();
} }
} }
package com.mmc.csf.release.entity.tender;
import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.annotation.ExcelTarget;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* author:zhenjie
* Date:2022/5/23
* time:10:47
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ExcelTarget("ExcelTenderInfo")
public class ExcelTenderInfo implements Serializable {
private static final long serialVersionUID = -3213483141870899916L;
@Excel(name = "*序号", width = 25)
@NotNull
private String tenderInfoNo;
@Excel(name = "*内容", width = 25)
@NotNull
@Size(max = 64, message = "标题长度过长")
private String tenderTitle;
@Excel(name = "价格(万元)", width = 25)
private BigDecimal tenderPrice;
}
...@@ -2,11 +2,12 @@ package com.mmc.csf.release.service; ...@@ -2,11 +2,12 @@ package com.mmc.csf.release.service;
import com.mmc.csf.common.util.web.ResultBody; 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.TenderApplyQO;
import com.mmc.csf.infomation.vo.TenderApplyVO; import com.mmc.csf.infomation.vo.TenderApplyVO;
import com.mmc.csf.infomation.vo.TenderInfoVO;
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.auth.dto.LoginSuccessDTO;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal; import java.math.BigDecimal;
...@@ -28,11 +29,11 @@ public interface TenderService { ...@@ -28,11 +29,11 @@ public interface TenderService {
ResultBody listTenderInfo(Integer pageNo, Integer pageSize, Integer tenderNewsId); ResultBody listTenderInfo(Integer pageNo, Integer pageSize, Integer tenderNewsId);
ResultBody updateTenderInfo(Integer id, String tenderContent, BigDecimal tenderPrice); ResultBody updateTenderInfo(TenderInfoVO tenderInfoVO);
ResultBody addTenderApply(TenderApplyVO tenderApplyVO, HttpServletRequest request); ResultBody addTenderApply(TenderApplyVO tenderApplyVO, HttpServletRequest request);
ResultBody listTenderApply(Integer pageNo, Integer pageSize, Integer tenderNewsId, Integer tenderInfoId, String keyword); ResultBody listTenderApply(TenderApplyQO param);
ResultBody listTenderInfoApp(Integer pageNo, Integer pageSize, Integer tenderNewsId, Integer userAccountId); ResultBody listTenderInfoApp(Integer pageNo, Integer pageSize, Integer tenderNewsId, Integer userAccountId);
......
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.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.*; import com.mmc.csf.infomation.dto.*;
import com.mmc.csf.infomation.qo.IndustryCaseQO; import com.mmc.csf.infomation.qo.IndustryCaseQO;
import com.mmc.csf.infomation.vo.TenderApplyQO;
import com.mmc.csf.infomation.vo.TenderApplyVO; import com.mmc.csf.infomation.vo.TenderApplyVO;
import com.mmc.csf.infomation.vo.TenderInfoVO;
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.auth.dto.LoginSuccessDTO;
import com.mmc.csf.release.constant.TokenConstant; import com.mmc.csf.release.constant.TokenConstant;
...@@ -13,9 +17,12 @@ import com.mmc.csf.release.dao.TenderDao; ...@@ -13,9 +17,12 @@ 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;
import com.mmc.csf.release.entity.TenderNewsDO; import com.mmc.csf.release.entity.TenderNewsDO;
import com.mmc.csf.release.entity.tender.ExcelTenderInfo;
import com.mmc.csf.release.feign.UserAppApi; import com.mmc.csf.release.feign.UserAppApi;
import com.mmc.csf.release.service.TenderService; import com.mmc.csf.release.service.TenderService;
import com.mmc.csf.release.util.MultipartFileUtil;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -23,6 +30,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport; ...@@ -23,6 +30,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
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;
...@@ -45,25 +53,23 @@ public class TenderServiceImpl implements TenderService { ...@@ -45,25 +53,23 @@ public class TenderServiceImpl implements TenderService {
private UserAppApi userAppApi; private UserAppApi userAppApi;
@Override @Override
@Transactional @Transactional(rollbackFor = Exception.class)
public ResultBody addTenderNews(MultipartFile file, TenderNewsVO tenderNewsVO) throws IOException { public ResultBody addTenderNews(MultipartFile file, TenderNewsVO tenderNewsVO) throws IOException {
TenderNewsDO tenderNewsDO = new TenderNewsDO(tenderNewsVO); TenderNewsDO tenderNewsDO = new TenderNewsDO(tenderNewsVO);
//检查快讯标题名称是否重复 //检查快讯标题名称是否重复
int count = tenderDao.countExistSameName(tenderNewsVO.getId(), tenderNewsDO.getTenderName()); int count = tenderDao.countExistSameName(tenderNewsVO.getId(), tenderNewsDO.getTenderName());
if(count > 0){ if (count > 0) {
return ResultBody.error(ResultEnum.EXIST_SAME_NAME_ERROR); return ResultBody.error(ResultEnum.EXIST_SAME_NAME_ERROR);
} }
tenderDao.addTenderNewsDO(tenderNewsDO); tenderDao.addTenderNewsDO(tenderNewsDO);
List<TenderInfoDO> tenderInfoDOList = new ArrayList<>(); List<TenderInfoDO> tenderInfoDOList;
ResultBody resultBody = listTenderInfo(file, tenderNewsDO); ResultBody resultBody = listTenderInfo(file, tenderNewsDO);
if(resultBody.getCode().toString().equals("200")){ if(!resultBody.getCode().equals("200")){
tenderInfoDOList = (List<TenderInfoDO>)resultBody.getResult();
}else {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return resultBody; return resultBody;
} }
tenderInfoDOList = (List<TenderInfoDO>) resultBody.getResult();
tenderDao.batchAddTenderInfo(tenderInfoDOList); tenderDao.batchAddTenderInfo(tenderInfoDOList);
return ResultBody.success(); return ResultBody.success();
} }
...@@ -75,9 +81,7 @@ public class TenderServiceImpl implements TenderService { ...@@ -75,9 +81,7 @@ public class TenderServiceImpl implements TenderService {
} }
int itemIndex = (pageNo - 1) * pageSize; int itemIndex = (pageNo - 1) * pageSize;
List<TenderNewsDO> list = tenderDao.listTenderNews(itemIndex, pageSize, tenderName, startTime, endTime, using); List<TenderNewsDO> list = tenderDao.listTenderNews(itemIndex, pageSize, tenderName, startTime, endTime, using);
List<TenderNewsDTO> pageList = list.stream().map(d -> { List<TenderNewsDTO> pageList = list.stream().map(TenderNewsDO::buildTenderNewsDTO).collect(Collectors.toList());
return d.buildTenderNewsDTO();
}).collect(Collectors.toList());
return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count, pageList)); return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count, pageList));
} }
...@@ -87,18 +91,18 @@ public class TenderServiceImpl implements TenderService { ...@@ -87,18 +91,18 @@ public class TenderServiceImpl implements TenderService {
TenderNewsDO tenderNewsDO = new TenderNewsDO(tenderNewsVO); TenderNewsDO tenderNewsDO = new TenderNewsDO(tenderNewsVO);
//检查快讯标题名称是否重复 //检查快讯标题名称是否重复
int count = tenderDao.countExistSameName(tenderNewsVO.getId(), tenderNewsDO.getTenderName()); int count = tenderDao.countExistSameName(tenderNewsVO.getId(), tenderNewsDO.getTenderName());
if(count > 0){ if (count > 0) {
return ResultBody.error(ResultEnum.EXIST_SAME_NAME_ERROR); return ResultBody.error(ResultEnum.EXIST_SAME_NAME_ERROR);
} }
if(file != null && !file.isEmpty()){ if (file != null && !file.isEmpty()) {
//把之前的覆盖 //把之前的覆盖
//删除之前的 //删除之前的
tenderDao.batchRemoveTenderInfo(tenderNewsVO.getId()); tenderDao.batchRemoveTenderInfo(tenderNewsVO.getId());
List<TenderInfoDO> tenderInfoDOList = new ArrayList<>(); List<TenderInfoDO> tenderInfoDOList;
ResultBody resultBody = listTenderInfo(file, tenderNewsDO); ResultBody resultBody = listTenderInfo(file, tenderNewsDO);
if(resultBody.getCode().toString().equals("200")){ if (resultBody.getCode().equals("200")) {
tenderInfoDOList = (List<TenderInfoDO>)resultBody.getResult(); tenderInfoDOList = (List<TenderInfoDO>) resultBody.getResult();
}else { } else {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return resultBody; return resultBody;
} }
...@@ -109,60 +113,52 @@ public class TenderServiceImpl implements TenderService { ...@@ -109,60 +113,52 @@ public class TenderServiceImpl implements TenderService {
} }
private ResultBody listTenderInfo(MultipartFile file, TenderNewsDO tenderNewsDO) throws IOException { private ResultBody listTenderInfo(MultipartFile file, TenderNewsDO tenderNewsDO) throws IOException {
//TenderNewsDO tenderNewsDO = new TenderNewsDO(tenderNewsVO); ImportParams params = new ImportParams();
// ImportParams params = new ImportParams(); params.setTitleRows(0);
// params.setTitleRows(0); params.setHeadRows(1);
// params.setHeadRows(1); File importFile = MultipartFileUtil.multipartFileToFile(file);
// File importFile = MultipartFileUtil.multipartFileToFile(file); List<ExcelTenderInfo> list = ExcelImportUtil.importExcel(importFile, ExcelTenderInfo.class, params);
// List<ExcelTenderInfo> list = ExcelImportUtil.importExcel(importFile, ExcelTenderInfo.class, params); //删除必填项都为空的记录,有一个空的情况不去除,可以提醒用户重新上传
// //删除必填项都为空的记录,有一个空的情况不去除,可以提醒用户重新上传 list.removeIf(d -> d.getTenderTitle() == null && d.getTenderInfoNo() == null);
// list.removeIf(d-> d.getTenderContent() == null && d.getTenderInfoNo() == null); // 删除临时文件
// // 删除临时文件 MultipartFileUtil.delteTempFile(importFile);
// MultipartFileUtil.delteTempFile(importFile); //判断是否为空,空的话,要提醒
// //判断是否为空,空的话,要提醒 if (list.isEmpty()) {
// if(list.isEmpty()){ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
// return ResultBody.error(ResultEnum.FILE_PARSE_ERROR); return ResultBody.error(ResultEnum.FILE_PARSE_ERROR);
// } }
// //把之前的覆盖 //添加
// //删除之前的 List<TenderInfoDO> tenderInfoDOList = new ArrayList<>();
// //tenderDao.batchRemoveTenderInfo(tenderNewsVO.getId()); for (ExcelTenderInfo tenderInfo : list) {
// //添加 TenderInfoDO tenderInfoDO = new TenderInfoDO();
// List<TenderInfoDO> tenderInfoDOList = new ArrayList<>(); tenderInfoDO.setTenderNewsId(tenderNewsDO.getId());
// for(ExcelTenderInfo tenderInfo : list){ //序号不能为空
// TenderInfoDO tenderInfoDO = new TenderInfoDO(); if (StringUtils.isBlank(tenderInfo.getTenderInfoNo())) {
// tenderInfoDO.setTenderNewsId(tenderNewsDO.getId()); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
// //不能为空, return ResultBody.error(ResultEnum.TENDER_FORMAT_ERROR);
// if(tenderInfo.getTenderInfoNo() == null || tenderInfo.getTenderInfoNo().trim().isEmpty()){ }
// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); tenderInfoDO.setTenderInfoNo(tenderInfo.getTenderInfoNo().trim());
// return ResultBody.error(ResultEnum.TENDER_FORMAT_ERROR); //内容判断长度,不能为空,且长度在64之内
// }else { if (StringUtils.isBlank(tenderInfo.getTenderTitle())) {
// tenderInfoDO.setTenderInfoNo(tenderInfo.getTenderInfoNo().trim()); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
// } return ResultBody.error(ResultEnum.TENDER_FORMAT_ERROR);
// //判断长度,不能为空,且长度在64之内 }
// if(tenderInfo.getTenderContent() == null || tenderInfo.getTenderContent().trim().isEmpty()){ if (tenderInfo.getTenderTitle().trim().length() > 64) {
// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
// return ResultBody.error(ResultEnum.TENDER_FORMAT_ERROR); return ResultBody.error(ResultEnum.TENDER_CONTENT_TOO_LONG_ERROR);
// }else { }
// if(tenderInfo.getTenderContent().trim().length() > 120){ tenderInfoDO.setTenderTitle(tenderInfo.getTenderTitle().trim());
// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); BigDecimal beforeTenderPrice = BigDecimal.valueOf(10000000);
// return ResultBody.error(ResultEnum.TENDER_CONTENT_TOO_LONG_ERROR); BigDecimal afterTenderPrice = tenderInfo.getTenderPrice() == null ? BigDecimal.ZERO : tenderInfo.getTenderPrice();
// } // 标价请确认在0-10000000万元内
// tenderInfoDO.setTenderContent(tenderInfo.getTenderContent().trim()); if (afterTenderPrice.compareTo(BigDecimal.ZERO) <= 0 || afterTenderPrice.compareTo(beforeTenderPrice) >= 0) {
// } TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
// //做判断 return ResultBody.error(ResultEnum.PRICE_TO_HIGH_ERROR);
// BigDecimal beforeTenderPrice = BigDecimal.valueOf(10000000); }
// BigDecimal afterTenderPrice = tenderInfo.getTenderPrice() == null ? BigDecimal.ZERO : tenderInfo.getTenderPrice(); tenderInfoDO.setTenderPrice(afterTenderPrice);
// if( afterTenderPrice.compareTo(BigDecimal.ZERO) >= 0 && afterTenderPrice.compareTo(beforeTenderPrice) <= 0 ){ tenderInfoDOList.add(tenderInfoDO);
// tenderInfoDO.setTenderPrice(afterTenderPrice); }
// }else { return ResultBody.success(tenderInfoDOList);
// //抛出异常
// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
// return ResultBody.error(ResultEnum.PRICE_TO_HIGH_ERROR);
// }
// tenderInfoDOList.add(tenderInfoDO);
// }
// return ResultBody.success(tenderInfoDOList);
return ResultBody.success();
} }
@Override @Override
...@@ -179,15 +175,13 @@ public class TenderServiceImpl implements TenderService { ...@@ -179,15 +175,13 @@ public class TenderServiceImpl implements TenderService {
} }
int itemIndex = (pageNo - 1) * pageSize; int itemIndex = (pageNo - 1) * pageSize;
List<TenderInfoDO> list = tenderDao.listTenderInfo(itemIndex, pageSize, tenderNewsId); List<TenderInfoDO> list = tenderDao.listTenderInfo(itemIndex, pageSize, tenderNewsId);
List<TenderInfoDTO> pageList = list.stream().map(d -> { List<TenderInfoDTO> pageList = list.stream().map(TenderInfoDO::buildTenderInfoDTO).collect(Collectors.toList());
return d.buildTenderInfoDTO();
}).collect(Collectors.toList());
return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count, pageList)); return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count, pageList));
} }
@Override @Override
public ResultBody updateTenderInfo(Integer id, String tenderContent, BigDecimal tenderPrice) { public ResultBody updateTenderInfo(TenderInfoVO param) {
tenderDao.updateTenderInfo(id, tenderContent, tenderPrice); tenderDao.updateTenderInfo(param.getId(), param.getTenderTitle(), param.getTenderPrice(),param.getTenderContent());
return ResultBody.success(); return ResultBody.success();
} }
...@@ -195,7 +189,7 @@ public class TenderServiceImpl implements TenderService { ...@@ -195,7 +189,7 @@ public class TenderServiceImpl implements TenderService {
public ResultBody addTenderApply(TenderApplyVO tenderApplyVO, HttpServletRequest request) { public ResultBody addTenderApply(TenderApplyVO tenderApplyVO, HttpServletRequest request) {
//判断之前有没有申请 //判断之前有没有申请
TenderApplyDO beforeTenderApplyDO = tenderDao.getTenderApplyByUId(tenderApplyVO.getUserAccountId(), tenderApplyVO.getTenderInfoId()); TenderApplyDO beforeTenderApplyDO = tenderDao.getTenderApplyByUId(tenderApplyVO.getUserAccountId(), tenderApplyVO.getTenderInfoId());
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(), request.getHeader(TokenConstant.TOKEN)); UserAccountSimpleDTO userAccountSimpleDTO = userAppApi.feignGetUserSimpleInfo(tenderApplyVO.getUserAccountId(), request.getHeader(TokenConstant.TOKEN));
...@@ -208,16 +202,16 @@ public class TenderServiceImpl implements TenderService { ...@@ -208,16 +202,16 @@ public class TenderServiceImpl implements TenderService {
} }
@Override @Override
public ResultBody listTenderApply(Integer pageNo, Integer pageSize, Integer tenderNewsId, Integer tenderInfoId, String keyword) { public ResultBody listTenderApply(TenderApplyQO param) {
int count = tenderDao.countListTenderApply(tenderNewsId, tenderInfoId, keyword); Integer pageNo = param.getPageNo();
Integer pageSize = param.getPageSize();
int count = tenderDao.countListTenderApply(param.getTenderNewsId(), param.getTenderInfoId(), param.getUserName());
if (count == 0) { if (count == 0) {
return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count)); return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count));
} }
int itemIndex = (pageNo - 1) * pageSize; int itemIndex = (pageNo - 1) * pageSize;
List<TenderApplyDO> list = tenderDao.listTenderApply(itemIndex, pageSize, tenderNewsId, tenderInfoId, keyword); List<TenderApplyDO> list = tenderDao.listTenderApply(itemIndex, pageSize, param.getTenderNewsId(), param.getTenderInfoId(), param.getUserName());
List<TenderApplyDTO> pageList = list.stream().map(d -> { List<TenderApplyDTO> pageList = list.stream().map(TenderApplyDO::buildTenderApplyDTO).collect(Collectors.toList());
return d.buildTenderApplyDTO();
}).collect(Collectors.toList());
return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count, pageList)); return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count, pageList));
} }
...@@ -233,12 +227,12 @@ public class TenderServiceImpl implements TenderService { ...@@ -233,12 +227,12 @@ public class TenderServiceImpl implements TenderService {
return d.buildAppTenderInfoDTO(); return d.buildAppTenderInfoDTO();
}).collect(Collectors.toList()); }).collect(Collectors.toList());
List<TenderApplyDO> applyDOList = tenderDao.listAppTenderApply(tenderNewsId, userAccountId); List<TenderApplyDO> applyDOList = tenderDao.listAppTenderApply(tenderNewsId, userAccountId);
if(userAccountId == null){ if (userAccountId == null) {
return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count, pageList)); return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count, pageList));
} }
for(AppTenderInfoDTO appTenderInfoDTO : pageList){ for (AppTenderInfoDTO appTenderInfoDTO : pageList) {
for(TenderApplyDO tenderApplyDO : applyDOList){ for (TenderApplyDO tenderApplyDO : applyDOList) {
if(tenderApplyDO.getTenderInfoId().toString().equals(appTenderInfoDTO.getId().toString())){ if (tenderApplyDO.getTenderInfoId().toString().equals(appTenderInfoDTO.getId().toString())) {
appTenderInfoDTO.setApply(1); appTenderInfoDTO.setApply(1);
break; break;
} }
...@@ -250,7 +244,7 @@ public class TenderServiceImpl implements TenderService { ...@@ -250,7 +244,7 @@ public class TenderServiceImpl implements TenderService {
@Override @Override
public ResultBody listTenderInfoAppLatest(Integer pageNo, Integer pageSize, Integer userAccountId) { public ResultBody listTenderInfoAppLatest(Integer pageNo, Integer pageSize, Integer userAccountId) {
TenderNewsDO tenderNewsDO = tenderDao.latestTenderNewsDO(); TenderNewsDO tenderNewsDO = tenderDao.latestTenderNewsDO();
if( tenderNewsDO == null ){ if (tenderNewsDO == null) {
return ResultBody.success(PageResult.buildPage(pageNo, pageSize, 0)); return ResultBody.success(PageResult.buildPage(pageNo, pageSize, 0));
} }
int count = tenderDao.countListTenderInfoApp(tenderNewsDO.getId()); int count = tenderDao.countListTenderInfoApp(tenderNewsDO.getId());
...@@ -259,13 +253,13 @@ public class TenderServiceImpl implements TenderService { ...@@ -259,13 +253,13 @@ 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());
if(userAccountId == null){ if (userAccountId == null) {
return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count, pageList)); return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count, pageList));
} }
List<TenderApplyDO> applyDOList = tenderDao.listAppTenderApply(tenderNewsDO.getId(), userAccountId); List<TenderApplyDO> applyDOList = tenderDao.listAppTenderApply(tenderNewsDO.getId(), userAccountId);
for(AppTenderInfoDTO appTenderInfoDTO : pageList){ for (AppTenderInfoDTO appTenderInfoDTO : pageList) {
for(TenderApplyDO tenderApplyDO : applyDOList){ for (TenderApplyDO tenderApplyDO : applyDOList) {
if(tenderApplyDO.getTenderInfoId().toString().equals(appTenderInfoDTO.getId().toString())){ if (tenderApplyDO.getTenderInfoId().toString().equals(appTenderInfoDTO.getId().toString())) {
appTenderInfoDTO.setApply(1); appTenderInfoDTO.setApply(1);
break; break;
} }
...@@ -278,8 +272,8 @@ public class TenderServiceImpl implements TenderService { ...@@ -278,8 +272,8 @@ public class TenderServiceImpl implements TenderService {
public ResultBody listNewTenderInfo(IndustryCaseQO industryCaseQO, public ResultBody listNewTenderInfo(IndustryCaseQO industryCaseQO,
LoginSuccessDTO loginSuccessDTO, HttpServletRequest request) { LoginSuccessDTO loginSuccessDTO, HttpServletRequest request) {
//查询对应地区的用户, 默认查广东 //查询对应地区的用户, 默认查广东
industryCaseQO.setProvinceCode(industryCaseQO.getProvinceCode() == null ? 440000 : industryCaseQO.getProvinceCode()); industryCaseQO.setProvinceCode(industryCaseQO.getProvinceCode() == null ? 440000 : industryCaseQO.getProvinceCode());
List<Integer> userIds = userAppApi.feignListUserAccountIds(industryCaseQO.getProvinceCode() , industryCaseQO.getCityCode(), industryCaseQO.getDistrictCode(), request.getHeader(TokenConstant.TOKEN)); List<Integer> userIds = userAppApi.feignListUserAccountIds(industryCaseQO.getProvinceCode(), industryCaseQO.getCityCode(), industryCaseQO.getDistrictCode(), request.getHeader(TokenConstant.TOKEN));
industryCaseQO.setUserIds(userIds); industryCaseQO.setUserIds(userIds);
int count = tenderDao.countNewListTenderInfo(industryCaseQO); int count = tenderDao.countNewListTenderInfo(industryCaseQO);
if (count == 0) { if (count == 0) {
...@@ -296,10 +290,10 @@ public class TenderServiceImpl implements TenderService { ...@@ -296,10 +290,10 @@ public class TenderServiceImpl implements TenderService {
//查出已申请过的并做标记 //查出已申请过的并做标记
List<Integer> applyTenderInfoIds = tenderDao.listApplyTenderInfoIds(tenderInfoIds, loginSuccessDTO.getUserAccountId()); 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);
} }
}); });
......
package com.mmc.csf.release.util;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
/**
* @author 作者 geDuo
* @version 创建时间:2021年11月18日 下午5:40:56
* @explain 类说明
*/
public class MultipartFileUtil {
/**
* MultipartFile 转 File
*
* @param file
* @throws Exception
*/
public static File multipartFileToFile(MultipartFile file) throws IOException {
File toFile = null;
if (file.equals("") || file.getSize() <= 0) {
file = null;
} else {
InputStream ins = null;
ins = file.getInputStream();
toFile = new File(file.getOriginalFilename());
inputStreamToFile(ins, toFile);
ins.close();
}
return toFile;
}
// 获取流文件
private static void inputStreamToFile(InputStream ins, File file) {
try {
OutputStream os = new FileOutputStream(file);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytesRead);
}
os.close();
ins.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 删除本地临时文件
*
* @param file
*/
public static void delteTempFile(File file) {
if (file != null) {
File del = new File(file.toURI());
del.delete();
}
}
}
...@@ -17,11 +17,12 @@ ...@@ -17,11 +17,12 @@
<id column="id" property="id"/> <id column="id" property="id"/>
<result column="tender_news_id" property="tenderNewsId"/> <result column="tender_news_id" property="tenderNewsId"/>
<result column="tender_info_no" property="tenderInfoNo"/> <result column="tender_info_no" property="tenderInfoNo"/>
<result column="tender_content" property="tenderContent"/> <result column="tender_title" property="tenderTitle"/>
<result column="tender_price" property="tenderPrice"/> <result column="tender_price" property="tenderPrice"/>
<result column="is_deleted" property="deleted"/> <result column="is_deleted" property="deleted"/>
<result column="create_time" property="createTime"/> <result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/> <result column="update_time" property="updateTime"/>
<result column="tender_content" property="tenderContent"/>
</resultMap> </resultMap>
<resultMap id="tenderApplyResultMap" type="com.mmc.csf.release.entity.TenderApplyDO"> <resultMap id="tenderApplyResultMap" type="com.mmc.csf.release.entity.TenderApplyDO">
...@@ -36,26 +37,26 @@ ...@@ -36,26 +37,26 @@
<result column="create_time" property="createTime"/> <result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/> <result column="update_time" property="updateTime"/>
<result column="tender_info_no" property="tenderInfoNo"/> <result column="tender_info_no" property="tenderInfoNo"/>
<result column="tender_content" property="tenderContent"/> <result column="tender_title" property="tenderTitle"/>
</resultMap> </resultMap>
<insert id="addTenderNewsDO" useGeneratedKeys="true" <insert id="addTenderNewsDO" useGeneratedKeys="true"
keyProperty="id" parameterType="com.mmc.csf.release.entity.TenderNewsDO"> keyProperty="id" parameterType="com.mmc.csf.release.entity.TenderNewsDO">
insert into tender_news(tender_name,is_using,port,create_time) insert into tender_news(tender_name, is_using, port, create_time)
values(#{tenderName},#{using},#{port},NOW()) values (#{tenderName}, #{using}, #{port}, NOW())
</insert> </insert>
<insert id="batchAddTenderInfo" useGeneratedKeys="true" <insert id="batchAddTenderInfo" useGeneratedKeys="true"
keyProperty="id" parameterType="com.mmc.csf.release.entity.TenderInfoDO"> keyProperty="id" parameterType="com.mmc.csf.release.entity.TenderInfoDO">
insert into insert into
tender_info(tender_news_id,tender_info_no,tender_content,tender_price,create_time) tender_info(tender_news_id,tender_info_no,tender_title,tender_price,create_time)
values values
<foreach item="item" index="index" collection="list" <foreach item="item" index="index" collection="list"
separator=","> separator=",">
( (
#{item.tenderNewsId}, #{item.tenderNewsId},
#{item.tenderInfoNo}, #{item.tenderInfoNo},
#{item.tenderContent}, #{item.tenderTitle},
#{item.tenderPrice}, #{item.tenderPrice},
NOW() NOW()
) )
...@@ -63,12 +64,15 @@ ...@@ -63,12 +64,15 @@
</insert> </insert>
<insert id="addTenderApply" parameterType="com.mmc.csf.release.entity.TenderApplyDO"> <insert id="addTenderApply" parameterType="com.mmc.csf.release.entity.TenderApplyDO">
insert into tender_apply(user_account_id, tender_news_id, tender_info_id, nick_name, user_name, phone_num, create_time) insert into tender_apply(user_account_id, tender_news_id, tender_info_id, nick_name, user_name, phone_num,
values(#{userAccountId},#{tenderNewsId},#{tenderInfoId},#{nickName},#{userName},#{phoneNum},NOW()); create_time)
values (#{userAccountId}, #{tenderNewsId}, #{tenderInfoId}, #{nickName}, #{userName}, #{phoneNum}, NOW());
</insert> </insert>
<update id="batchRemoveTenderInfo"> <update id="batchRemoveTenderInfo">
update tender_info set is_deleted = 1 where tender_news_id = #{tenderNewsId} update tender_info
set is_deleted = 1
where tender_news_id = #{tenderNewsId}
</update> </update>
<update id="updateTenderNews" parameterType="com.mmc.csf.release.entity.TenderNewsDO"> <update id="updateTenderNews" parameterType="com.mmc.csf.release.entity.TenderNewsDO">
...@@ -88,17 +92,22 @@ ...@@ -88,17 +92,22 @@
</update> </update>
<update id="removeTenderNews"> <update id="removeTenderNews">
update tender_news set is_deleted = 1 where id = #{id} update tender_news
set is_deleted = 1
where id = #{id}
</update> </update>
<update id="updateTenderInfo"> <update id="updateTenderInfo">
update tender_info update tender_info
<set> <set>
<if test=" tenderContent != null "> <if test=" tenderTitle != null ">
tender_content = #{tenderContent}, tender_title = #{tenderTitle},
</if> </if>
<if test=" tenderPrice != null "> <if test=" tenderPrice != null ">
tender_price = #{tenderPrice} tender_price = #{tenderPrice},
</if>
<if test="tenderContent!=null">
tender_content = #{tenderContent}
</if> </if>
</set> </set>
where id = #{id} where id = #{id}
...@@ -141,12 +150,15 @@ ...@@ -141,12 +150,15 @@
</select> </select>
<select id="countListTenderInfoApp" resultType="java.lang.Integer"> <select id="countListTenderInfoApp" resultType="java.lang.Integer">
select count(*) from tender_info select count(*)
where is_deleted = 0 and tender_news_id = #{tenderNewsId} from tender_info
where is_deleted = 0
and tender_news_id = #{tenderNewsId}
</select> </select>
<select id="listTenderInfoApp" resultMap="tenderInfoResultMap"> <select id="listTenderInfoApp" resultMap="tenderInfoResultMap">
select id, tender_news_id, tender_price, tender_info_no, tender_content, is_deleted, create_time, update_time select id, tender_news_id, tender_price, tender_info_no, tender_title, is_deleted, create_time,
update_time,tender_content
from tender_info from tender_info
where is_deleted = 0 where is_deleted = 0
<if test=" tenderNewsId != null "> <if test=" tenderNewsId != null ">
...@@ -157,12 +169,15 @@ ...@@ -157,12 +169,15 @@
</select> </select>
<select id="countListTenderInfo" resultType="java.lang.Integer"> <select id="countListTenderInfo" resultType="java.lang.Integer">
select count(*) from tender_info select count(*)
where is_deleted = 0 and tender_news_id = #{tenderNewsId} from tender_info
where is_deleted = 0
and tender_news_id = #{tenderNewsId}
</select> </select>
<select id="listTenderInfo" resultMap="tenderInfoResultMap"> <select id="listTenderInfo" resultMap="tenderInfoResultMap">
select id, tender_news_id, tender_price, tender_info_no, tender_content, is_deleted, create_time, update_time select id, tender_news_id, tender_price, tender_info_no, tender_title, is_deleted, create_time,
update_time,tender_content
from tender_info from tender_info
where is_deleted = 0 where is_deleted = 0
<if test=" tenderNewsId != null "> <if test=" tenderNewsId != null ">
...@@ -173,17 +188,26 @@ ...@@ -173,17 +188,26 @@
</select> </select>
<select id="getTenderApplyByUId" resultMap="tenderApplyResultMap"> <select id="getTenderApplyByUId" resultMap="tenderApplyResultMap">
select id, user_account_id, tender_news_id, tender_info_id, nick_name, select id,
user_name, phone_num, is_deleted, create_time, update_time user_account_id,
tender_news_id,
tender_info_id,
nick_name,
user_name,
phone_num,
is_deleted,
create_time,
update_time
from tender_apply from tender_apply
where user_account_id = #{userAccountId} and tender_info_id = #{tenderInfoId} where user_account_id = #{userAccountId}
and tender_info_id = #{tenderInfoId}
</select> </select>
<select id="countListTenderApply" resultType="java.lang.Integer"> <select id="countListTenderApply" resultType="java.lang.Integer">
SELECT SELECT
count(*) count(*)
FROM FROM
tender_apply ta left join tender_info ti on ta.tender_info_id = ti.id tender_apply ta left join tender_info ti on ta.tender_info_id = ti.id
where ti.is_deleted = 0 where ti.is_deleted = 0
<if test=" tenderNewsId != null "> <if test=" tenderNewsId != null ">
and ta.tender_news_id = #{tenderNewsId} and ta.tender_news_id = #{tenderNewsId}
...@@ -198,20 +222,20 @@ ...@@ -198,20 +222,20 @@
<select id="listTenderApply" resultMap="tenderApplyResultMap"> <select id="listTenderApply" resultMap="tenderApplyResultMap">
SELECT SELECT
ta.id, ta.id,
ti.tender_info_no, ti.tender_info_no,
ta.user_account_id, ta.user_account_id,
ti.tender_content, ti.tender_title,
ta.tender_news_id, ta.tender_news_id,
ta.tender_info_id, ta.tender_info_id,
ta.nick_name, ta.nick_name,
ta.user_name, ta.user_name,
ta.phone_num, ta.phone_num,
ta.is_deleted, ta.is_deleted,
ta.create_time, ta.create_time,
ta.update_time ta.update_time
FROM FROM
tender_apply ta left join tender_info ti on ta.tender_info_id = ti.id tender_apply ta left join tender_info ti on ta.tender_info_id = ti.id
where ti.is_deleted = 0 where ti.is_deleted = 0
<if test=" tenderNewsId != null "> <if test=" tenderNewsId != null ">
and ta.tender_news_id = #{tenderNewsId} and ta.tender_news_id = #{tenderNewsId}
...@@ -227,42 +251,43 @@ ...@@ -227,42 +251,43 @@
</select> </select>
<select id="listAppTenderApply" resultMap="tenderApplyResultMap"> <select id="listAppTenderApply" resultMap="tenderApplyResultMap">
SELECT SELECT ta.id,
ta.id, ta.tender_info_id,
ta.tender_info_id, ti.tender_news_id,
ti.tender_news_id, ti.tender_info_no,
ti.tender_info_no, ti.tender_title,
ti.tender_content, ti.is_deleted,
ti.is_deleted, ti.create_time,
ti.create_time, ti.update_time,
ti.update_time, ta.user_account_id
ta.user_account_id FROM tender_apply ta
FROM INNER JOIN tender_info ti ON ta.tender_info_id = ti.id
tender_apply ta WHERE ti.is_deleted = 0
INNER JOIN tender_info ti ON ta.tender_info_id = ti.id and ta.tender_news_id = #{tenderNewsId}
WHERE and ta.user_account_id = #{userAccountId}
ti.is_deleted = 0 and ta.tender_news_id = #{tenderNewsId} and ta.user_account_id = #{userAccountId}
</select> </select>
<select id="latestTenderNewsDO" resultMap="tenderNewsResultMap"> <select id="latestTenderNewsDO" resultMap="tenderNewsResultMap">
select id,tender_name,is_using,port,is_deleted,create_time from tender_news select id, tender_name, is_using, port, is_deleted, create_time
where is_deleted = 0 and is_using = 1 from tender_news
order by create_time desc where is_deleted = 0
limit 0, 1 and is_using = 1
order by create_time desc limit 0, 1
</select> </select>
<select id="countExistSameName" resultType="java.lang.Integer"> <select id="countExistSameName" resultType="java.lang.Integer">
select count(*) from tender_news select count(*) from tender_news
where is_deleted = 0 where is_deleted = 0
<if test=" id != null "> <if test=" id != null ">
and id &lt;&gt; #{id} and id &lt;&gt; #{id}
</if> </if>
<if test=" tenderName != null "> <if test=" tenderName != null ">
and tender_name = #{tenderName} and tender_name = #{tenderName}
</if> </if>
</select> </select>
<select id="countNewListTenderInfo" resultType="java.lang.Integer" parameterType="com.mmc.csf.infomation.qo.IndustryCaseQO"> <select id="countNewListTenderInfo" resultType="java.lang.Integer"
parameterType="com.mmc.csf.infomation.qo.IndustryCaseQO">
select count(*) from tender_news tn INNER JOIN tender_info ti ON tn.id = ti.tender_news_id select count(*) from tender_news tn INNER JOIN tender_info ti ON tn.id = ti.tender_news_id
where where
tn.is_deleted = 0 and tn.is_using = 1 and ti.is_deleted = 0 tn.is_deleted = 0 and tn.is_using = 1 and ti.is_deleted = 0
...@@ -279,8 +304,9 @@ ...@@ -279,8 +304,9 @@
<select id="listNewListTenderInfo" resultType="com.mmc.csf.release.entity.TenderInfoDO"> <select id="listNewListTenderInfo" resultType="com.mmc.csf.release.entity.TenderInfoDO">
select select
ti.id, ti.tender_news_id, ti.tender_price, ti.tender_info_no, ti.tender_content, ti.is_deleted, ti.create_time, ti.update_time ti.id, ti.tender_news_id, ti.tender_price, ti.tender_info_no, ti.tender_title, ti.is_deleted, ti.create_time,
from tender_news tn INNER JOIN tender_info ti ON tn.id = ti.tender_news_id ti.update_time
from tender_news tn INNER JOIN tender_info ti ON tn.id = ti.tender_news_id
where where
tn.is_deleted = 0 and tn.is_using = 1 and ti.is_deleted = 0 tn.is_deleted = 0 and tn.is_using = 1 and ti.is_deleted = 0
<if test=" date != null "> <if test=" date != null ">
...@@ -298,7 +324,8 @@ ...@@ -298,7 +324,8 @@
<select id="listApplyTenderInfoIds" resultType="java.lang.Integer"> <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} and ta.is_deleted = 0 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"
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论