提交 204efb6c 作者: zhenjie

项目咨询

上级 e0e708f9
package com.mmc.csf.infomation.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author MMC_hzj
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AppTenderInfoDTO implements Serializable {
private static final long serialVersionUID = -7967146890958218318L;
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "招标快讯id")
private Integer tenderNewsId;
@ApiModelProperty(value = "招标快讯内容序号")
private String tenderInfoNo;
@ApiModelProperty(value = "招标快讯内容")
private String tenderContent;
@ApiModelProperty(value = "价格")
private BigDecimal tenderPrice;
@ApiModelProperty(value = "生成时间")
private Date createTime;
@ApiModelProperty(value = "0未申请,1已申请", example = "1")
private Integer apply;
}
package com.mmc.csf.infomation.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @author MMC_hzj
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TenderApplyDTO implements Serializable {
private static final long serialVersionUID = 1224292564881346360L;
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "招标快讯编号")
private String tenderInfoNo;
@ApiModelProperty(value = "招标快讯内容")
private String tenderContent;
// @ApiModelProperty(value = "用户id")
// private Integer userAccountId;
// @ApiModelProperty(value = "招标快讯id")
// private Integer tenderNewsId;
@ApiModelProperty(value = "招标快讯内容id")
private Integer tenderInfoId;
@ApiModelProperty(value = "昵称")
private String nickName;
@ApiModelProperty(value = "用户名")
private String userName;
@ApiModelProperty(value = "手机号")
private String phoneNum;
@ApiModelProperty(value = "生成时间")
private Date createTime;
}
package com.mmc.csf.infomation.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author MMC_hzj
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TenderInfoDTO implements Serializable {
private static final long serialVersionUID = -8404011575132191740L;
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "招标快讯id")
private Integer tenderNewsId;
@ApiModelProperty(value = "招标快讯内容序号")
private String tenderInfoNo;
@ApiModelProperty(value = "招标快讯内容")
private String tenderContent;
@ApiModelProperty(value = "价格")
private BigDecimal tenderPrice;
@ApiModelProperty(value = "生成时间")
private Date createTime;
}
package com.mmc.csf.infomation.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @author MMC_hzj
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TenderNewsDTO implements Serializable {
private static final long serialVersionUID = 8814209421015383178L;
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "招标快讯名称")
private String tenderName;
@ApiModelProperty(value = "状态")
private Integer using;
@ApiModelProperty(value = "所属产品")
private Integer port;
@ApiModelProperty(value = "发布日期")
private Date createTime;
}
package com.mmc.csf.infomation.qo;
import com.mmc.csf.release.model.group.Page;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
/**
* @author: zj
* @Date: 2023/5/19 13:44
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class IndustryCaseQO implements Serializable {
private static final long serialVersionUID = -4615177472593013257L;
@ApiModelProperty(value = "关键字", required = false, hidden = true)
private String keyword;
@ApiModelProperty(value = "省份编码", required = false)
private Integer provinceCode;
@ApiModelProperty(value = "市编码", required = false)
private Integer cityCode;
@ApiModelProperty(value = "区编码", required = false)
private Integer districtCode;
@ApiModelProperty(value = "时间:2023-05-19", required = false)
private String date;
@ApiModelProperty(value = "用户id集合", hidden = true)
private List<Integer> userIds;
@ApiModelProperty(value = "页码", required = true)
@NotNull(message = "页码不能为空", groups = Page.class)
@Min(value = 1, groups = Page.class)
private Integer pageNo;
@ApiModelProperty(value = "每页显示数", required = true)
@NotNull(message = "每页显示数不能为空", groups = Page.class)
@Min(value = 1, groups = Page.class)
private Integer pageSize;
public void buildCurrentPage() {
this.pageNo = (pageNo - 1) * pageSize;
}
}
package com.mmc.csf.infomation.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @author: zj
* @Date: 2023/5/19 11:30
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class IndustryCaseVO implements Serializable {
private static final long serialVersionUID = 8278011392722950911L;
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "案例标题")
private String newsTitle;
@ApiModelProperty(value = "作者")
private String newsAuthor;
@ApiModelProperty(value = "发布者id")
private Integer userAccountId;
@ApiModelProperty(value = "封面图")
private String surfaceImg;
@ApiModelProperty(value = "案例内容")
private String newsContents;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "最新修改时间")
private Date updateTime;
}
package com.mmc.csf.infomation.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @author: zj
* @Date: 2023/5/19 11:23
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class IndustryNewsVO implements Serializable {
private static final long serialVersionUID = 8479619142765659138L;
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "新闻标题")
private String newsTitle;
@ApiModelProperty(value = "作者")
private String newsAuthor;
@ApiModelProperty(value = "发布者id")
private Integer userAccountId;
@ApiModelProperty(value = "封面图")
private String surfaceImg;
@ApiModelProperty(value = "新闻内容")
private String newsContents;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "最新修改时间")
private Date updateTime;
}
package com.mmc.csf.infomation.vo;
import com.mmc.csf.release.model.group.Create;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @author MMC_hzj
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TenderApplyVO implements Serializable {
private static final long serialVersionUID = -5519324350926972959L;
@ApiModelProperty(value = "招标id")
@NotNull(message = "招标id不能为空", groups = {Create.class})
private Integer tenderNewsId;
@ApiModelProperty(value = "用户id")
@NotNull(message = "用户id不能为空", groups = {Create.class})
private Integer userAccountId;
@ApiModelProperty(value = "招标详情id")
@NotNull(message = "招标详情id不能为空", groups = {Create.class})
private Integer tenderInfoId;
@ApiModelProperty(value = "昵称", hidden = true)
private String nickName;
@ApiModelProperty(value = "用户名", hidden = true)
private String userName;
@ApiModelProperty(value = "联系电话", hidden = true)
//@NotNull(message = "联系电话不能为空", groups = {Create.class})
private String phoneNum;
}
package com.mmc.csf.infomation.vo;
import com.mmc.csf.release.model.group.Update;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @author MMC_hzj
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TenderNewsVO implements Serializable {
private static final long serialVersionUID = -8188835029420792396L;
@ApiModelProperty(value = "id")
@NotNull(message = "id不能为空", groups = { Update.class })
private Integer id;
@ApiModelProperty(value = "招标快讯名称")
private String tenderName;
@ApiModelProperty(value = "状态")
private Integer using;
@ApiModelProperty(value = "所属产品")
private Integer port;
}
package com.mmc.csf.release.controller;
import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.infomation.qo.IndustryCaseQO;
import com.mmc.csf.infomation.vo.IndustryCaseVO;
import com.mmc.csf.release.model.group.Page;
import com.mmc.csf.release.service.IndustryCaseService;
import io.swagger.annotations.Api;
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.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
* @author: zj
* @Date: 2023/5/19 11:34
*/
@Api(tags = {"业务案例相关"})
@RestController
@RequestMapping("/industry-case/")
public class IndustryCaseController {
@Autowired
private IndustryCaseService industryCaseService;
@ApiOperation(value = "案例列表")
@ApiResponses({ @ApiResponse(code = 200, message = "OK", response = IndustryCaseVO.class) })
@PostMapping("listCasePage")
public ResultBody listCasePage(@Validated(value = {Page.class})@RequestBody IndustryCaseQO industryCaseQO){
return industryCaseService.listCasePage(industryCaseQO);
}
@ApiOperation(value = "案例详情")
@ApiResponses({ @ApiResponse(code = 200, message = "OK", response = IndustryCaseVO.class) })
@GetMapping("details")
public ResultBody details(@RequestParam Integer id){
return industryCaseService.details(id);
}
}
package com.mmc.csf.release.controller;
import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.infomation.qo.IndustryCaseQO;
import com.mmc.csf.infomation.vo.IndustryCaseVO;
import com.mmc.csf.infomation.vo.IndustryNewsVO;
import com.mmc.csf.release.model.group.Page;
import com.mmc.csf.release.service.IndustryNewsService;
import io.swagger.annotations.Api;
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.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
* @author: zj
* @Date: 2023/5/19 10:42
*/
@Api(tags = {"行业新闻相关"})
@RestController
@RequestMapping("/industry-news/")
public class IndustryNewsController {
@Autowired
private IndustryNewsService industryNewsService;
@ApiOperation(value = "新闻列表")
@ApiResponses({ @ApiResponse(code = 200, message = "OK", response = IndustryNewsVO.class) })
@PostMapping("listNewsPage")
public ResultBody listNewsPage(@Validated(value = {Page.class})@RequestBody IndustryCaseQO industryCaseQO){
return industryNewsService.listNewsPage(industryCaseQO);
}
@ApiOperation(value = "案例详情")
@ApiResponses({ @ApiResponse(code = 200, message = "OK", response = IndustryNewsVO.class) })
@GetMapping("details")
public ResultBody details(@RequestParam Integer id){
return industryNewsService.details(id);
}
}
package com.mmc.csf.release.controller;
import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.infomation.qo.IndustryCaseQO;
import com.mmc.csf.infomation.vo.RequirementsInfoVO;
import com.mmc.csf.infomation.vo.RequirementsTypeVO;
import com.mmc.csf.release.model.group.Insert;
import com.mmc.csf.release.model.group.Page;
import com.mmc.csf.release.model.group.Query;
import com.mmc.csf.release.service.RequirementsService;
import io.swagger.annotations.Api;
......@@ -43,8 +45,8 @@ public class RequirementsController {
@ApiOperation(value = "需求发布列表")
@ApiResponses({ @ApiResponse(code = 200, message = "OK", response = RequirementsInfoVO.class) })
@PostMapping("listPublishPage")
public ResultBody listPublishPage(){
return ResultBody.success();
public ResultBody listPublishPage(@Validated(value = {Page.class})@RequestBody IndustryCaseQO industryCaseQO){
return requirementsService.listPublishPage(industryCaseQO);
}
@ApiOperation(value = "需求已解决")
......
package com.mmc.csf.release.controller;
import com.mmc.csf.common.util.group.Create;
import com.mmc.csf.common.util.group.Page;
import com.mmc.csf.common.util.group.Update;
import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.infomation.dto.AppTenderInfoDTO;
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.vo.TenderApplyVO;
import com.mmc.csf.infomation.vo.TenderNewsVO;
import com.mmc.csf.release.service.TenderService;
import io.swagger.annotations.Api;
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.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author: zj
* @Date: 2023/5/18 14:26
*/
@Api(tags = {"招标相关"})
@RestController
@RequestMapping("/tender/")
public class TenderController {
@Autowired
private TenderService tenderService;
@ApiOperation(value = "新增招标快讯", hidden = true)
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping(value = "news")
public ResultBody addTenderNews(@RequestPart(value = "file") MultipartFile file,
@RequestPart TenderNewsVO tenderNewsVO)
throws IOException {
return tenderService.addTenderNews(file, tenderNewsVO);
}
@ApiOperation(value = "查询招标快讯列表-分页", hidden = true)
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = TenderNewsDTO.class)})
@GetMapping(value = "news")
public ResultBody listTenderNews(@RequestParam Integer pageNo, @RequestParam Integer pageSize,
@RequestParam(value = "tenderName", required = false) String tenderName,
@RequestParam(value = "startTime", required = false) Date startTime,
@RequestParam(value = "endTime", required = false) Date endTime,
@RequestParam(value = "using", required = false)Integer using){
return tenderService.listTenderNews(pageNo, pageSize, tenderName, startTime, endTime, using);
}
@ApiOperation(value = "修改招标快讯列表", hidden = true)
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PutMapping(value = "news")
public ResultBody updateTenderNews(@RequestParam(value = "file", required = false) MultipartFile file,
@Validated(value = {Update.class}) @RequestPart TenderNewsVO tenderNewsVO) throws IOException {
return tenderService.updateTenderNews(file, tenderNewsVO);
}
@ApiOperation(value = "删除查询招标快讯", hidden = true)
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@DeleteMapping(value = "news/{id}")
public ResultBody removeTenderNews(@PathVariable("id") Integer id){
return tenderService.removeTenderNews(id);
}
@ApiOperation(value = "查询招标快讯详情列表-分页", hidden = true)
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = TenderInfoDTO.class)})
@GetMapping(value = "info")
public ResultBody listTenderInfo(@RequestParam Integer pageNo, @RequestParam Integer pageSize,
@RequestParam Integer tenderNewsId){
return tenderService.listTenderInfo(pageNo, pageSize, tenderNewsId);
}
@ApiOperation(value = "修改招标快讯详情", hidden = true)
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PutMapping(value = "info")
public ResultBody updateTenderInfo(@RequestParam(value = "id", required = true) Integer id,
@RequestParam(value = "tenderContent", required = true) String tenderContent,
@RequestParam(required = false)BigDecimal tenderPrice){
return tenderService.updateTenderInfo(id, tenderContent, tenderPrice);
}
@ApiOperation(value = "合作申请提交")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping(value = "apply")
public ResultBody addTenderApply(@Validated(value = {Create.class})@RequestBody TenderApplyVO tenderApplyVO){
return tenderService.addTenderApply(tenderApplyVO);
}
@ApiOperation(value = "用户反馈列表-分页", hidden = true)
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = TenderApplyDTO.class)})
@GetMapping(value = "apply")
public ResultBody listTenderApply(@RequestParam Integer pageNo, @RequestParam Integer pageSize,
@RequestParam Integer tenderNewsId, @RequestParam(required = false) Integer tenderInfoId,
@RequestParam(required = false) String keyword){
return tenderService.listTenderApply(pageNo, pageSize, tenderNewsId, tenderInfoId, keyword);
}
@ApiOperation(value = "app往期招标快讯详情列表-分页", hidden = true)
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = AppTenderInfoDTO.class)})
@GetMapping(value = "info/app")
public ResultBody listTenderInfoApp(@RequestParam Integer pageNo, @RequestParam Integer pageSize,
@RequestParam Integer tenderNewsId, @RequestParam(required = false) Integer userAccountId){
return tenderService.listTenderInfoApp(pageNo, pageSize, tenderNewsId, userAccountId);
}
@ApiOperation(value = "app最新招标快讯详情列表-分页", hidden = true)
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = AppTenderInfoDTO.class)})
@GetMapping(value = "info/app/latest")
public ResultBody listTenderInfoAppLatest(@RequestParam Integer pageNo, @RequestParam Integer pageSize,
@RequestParam(required = false) Integer userAccountId){
return tenderService.listTenderInfoAppLatest(pageNo, pageSize, userAccountId);
}
@ApiOperation(value = "招投标列表")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = AppTenderInfoDTO.class)})
@PostMapping(value = "listNewTenderInfo")
public ResultBody listNewTenderInfo(@Validated(value = {Page.class})@RequestBody IndustryCaseQO industryCaseQO, HttpServletRequest request){
return tenderService.listNewTenderInfo(industryCaseQO);
}
}
package com.mmc.csf.release.dao;
import com.mmc.csf.infomation.qo.IndustryCaseQO;
import com.mmc.csf.release.entity.IndustryCaseDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @author: zj
* @Date: 2023/5/19 13:38
*/
@Mapper
public interface IndustryCaseDao {
/**
* 案例列表数量
* @param industryCaseQO
* @return
*/
int countListCasePage(IndustryCaseQO industryCaseQO);
/**
* 案例列表
* @param industryCaseQO
* @return
*/
List<IndustryCaseDO> listCasePage(IndustryCaseQO industryCaseQO);
/**
* 案例详情
* @param id
* @return
*/
IndustryCaseDO details(Integer id);
}
package com.mmc.csf.release.dao;
import com.mmc.csf.infomation.qo.IndustryCaseQO;
import com.mmc.csf.release.entity.IndustryNewsDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @author: zj
* @Date: 2023/5/19 13:36
*/
@Mapper
public interface IndustryNewsDao {
/**
* 新闻数量
* @param industryCaseQO
* @return
*/
int countListNewsPage(IndustryCaseQO industryCaseQO);
/**
* 新闻列表信息
* @param industryCaseQO
* @return
*/
List<IndustryNewsDO> listNewsPage(IndustryCaseQO industryCaseQO);
/**
* 新闻详情
* @param id
* @return
*/
IndustryNewsDO details(Integer id);
}
package com.mmc.csf.release.dao;
import com.mmc.csf.infomation.qo.IndustryCaseQO;
import com.mmc.csf.release.entity.RequirementsInfoDO;
import com.mmc.csf.release.entity.RequirementsTypeDO;
import org.apache.ibatis.annotations.Mapper;
......@@ -35,4 +36,18 @@ public interface RequirementsDao {
* @param requirementsInfoId
*/
void solveRequire(Integer requirementsInfoId);
/**
* 需求发布的数量
* @param industryCaseQO
* @return
*/
int countListPublishPage(IndustryCaseQO industryCaseQO);
/**
* 需求发布列表
* @param industryCaseQO
* @return
*/
List<RequirementsInfoDO> listPublishPage(IndustryCaseQO industryCaseQO);
}
package com.mmc.csf.release.dao;
import com.mmc.csf.infomation.qo.IndustryCaseQO;
import com.mmc.csf.release.entity.TenderApplyDO;
import com.mmc.csf.release.entity.TenderInfoDO;
import com.mmc.csf.release.entity.TenderNewsDO;
import org.apache.ibatis.annotations.Mapper;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* author:zhenjie
* Date:2022/5/21
* time:17:10
*/
@Mapper
public interface TenderDao {
void addTenderNewsDO(TenderNewsDO tenderNewsDO);
void batchAddTenderInfo(List<TenderInfoDO> tenderInfoDOList);
int countListTenderNews(String tenderName, Date startTime, Date endTime, Integer using);
List<TenderNewsDO> listTenderNews(int itemIndex, Integer pageSize, String tenderName, Date startTime, Date endTime, Integer using);
void batchRemoveTenderInfo(Integer tenderNewsId);
void updateTenderNews(TenderNewsDO tenderNewsDO);
void removeTenderNews(Integer id);
int countListTenderInfo(Integer tenderNewsId);
List<TenderInfoDO> listTenderInfo(int itemIndex, Integer pageSize, Integer tenderNewsId);
void updateTenderInfo(Integer id, String tenderContent, BigDecimal tenderPrice);
TenderApplyDO getTenderApplyByUId(Integer userAccountId, Integer tenderInfoId);
void addTenderApply(TenderApplyDO tenderApplyDO);
int countListTenderApply(Integer tenderNewsId, Integer tenderInfoId, String keyword);
List<TenderApplyDO> listTenderApply(int itemIndex, Integer pageSize, Integer tenderNewsId, Integer tenderInfoId, String keyword);
List<TenderApplyDO> listAppTenderApply(Integer tenderNewsId, Integer userAccountId);
TenderNewsDO latestTenderNewsDO();
int countListTenderInfoApp(Integer tenderNewsId);
List<TenderInfoDO> listTenderInfoApp(int itemIndex, Integer pageSize, Integer tenderNewsId);
int countExistSameName(Integer id, String tenderName);
int countNewListTenderInfo(IndustryCaseQO industryCaseQO);
List<TenderInfoDO> listNewListTenderInfo(IndustryCaseQO industryCaseQO);
List<Integer> listApplyTenderInfoIds(List<Integer> tenderInfoIds, Integer applyUserId);
}
package com.mmc.csf.release.entity;
import com.mmc.csf.infomation.vo.IndustryCaseVO;
import com.mmc.csf.infomation.vo.IndustryNewsVO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @author: zj
* @Date: 2023/5/19 11:27
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class IndustryCaseDO implements Serializable {
private static final long serialVersionUID = 664297500411067297L;
private Integer id;
private String caseTitle;
private String caseAuthor;
private Integer userAccountId;
private String surfaceImg;
private String caseContents;
private Integer deleted;
private Date createTime;
private Date updateTime;
public IndustryCaseVO buildIndustryCaseVO(){
return IndustryCaseVO.builder().id(id).newsTitle(caseTitle).newsAuthor(caseAuthor).userAccountId(userAccountId).surfaceImg(surfaceImg).
newsContents(caseContents).createTime(createTime).updateTime(updateTime).build();
}
public IndustryCaseDO(IndustryCaseVO industryCaseVO){
this.id = industryCaseVO.getId();
this.caseTitle = industryCaseVO.getNewsTitle();
this.caseAuthor = industryCaseVO.getNewsAuthor();
this.userAccountId = industryCaseVO.getUserAccountId();
this.surfaceImg = industryCaseVO.getSurfaceImg();
this.caseContents = industryCaseVO.getNewsContents();
}
}
package com.mmc.csf.release.entity;
import com.mmc.csf.infomation.vo.IndustryNewsVO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @author: zj
* @Date: 2023/5/19 11:20
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class IndustryNewsDO implements Serializable {
private static final long serialVersionUID = 3296973167970903480L;
private Integer id;
private String newsTitle;
private String newsAuthor;
private Integer userAccountId;
private String surfaceImg;
private String newsContents;
private Date createTime;
private Date updateTime;
public IndustryNewsVO buildIndustryNewsVO(){
return IndustryNewsVO.builder().id(id).newsTitle(newsTitle).newsAuthor(newsAuthor).userAccountId(userAccountId).surfaceImg(surfaceImg).
newsContents(newsContents).createTime(createTime).updateTime(updateTime).build();
}
public IndustryNewsDO(IndustryNewsVO industryNewsVO){
this.id = industryNewsVO.getId();
this.newsTitle = industryNewsVO.getNewsTitle();
this.newsAuthor = industryNewsVO.getNewsAuthor();
this.userAccountId = industryNewsVO.getUserAccountId();
this.surfaceImg = industryNewsVO.getSurfaceImg();
this.newsContents = industryNewsVO.getNewsContents();
}
}
package com.mmc.csf.release.entity;
import com.mmc.csf.infomation.dto.TenderApplyDTO;
import com.mmc.csf.infomation.vo.TenderApplyVO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* author:zhenjie
* Date:2022/5/21
* time:16:02
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TenderApplyDO implements Serializable {
private static final long serialVersionUID = 4290565153507919210L;
private Integer id;
private Integer userAccountId;
private Integer tenderNewsId;
private Integer tenderInfoId;
private String nickName;
private String userName;
private String phoneNum;
private Integer deleted;
private Date createTime;
private Date updateTime;
private String tenderInfoNo;
private String tenderContent;
public TenderApplyDO(TenderApplyVO tenderApplyVO) {
this.userAccountId = tenderApplyVO.getUserAccountId();
this.tenderNewsId = tenderApplyVO.getTenderNewsId();
this.tenderInfoId = tenderApplyVO.getTenderInfoId();
this.nickName = tenderApplyVO.getNickName();
this.userName = tenderApplyVO.getUserName();
this.phoneNum = tenderApplyVO.getPhoneNum();
}
public TenderApplyDTO buildTenderApplyDTO(){
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();
}
}
package com.mmc.csf.release.entity;
import com.mmc.csf.infomation.dto.AppTenderInfoDTO;
import com.mmc.csf.infomation.dto.TenderInfoDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* author:zhenjie
* Date:2022/5/21
* time:16:00
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TenderInfoDO implements Serializable {
private static final long serialVersionUID = 6547272373224463237L;
private Integer id;
private Integer tenderNewsId;
private String tenderInfoNo;
private String tenderContent;
private BigDecimal tenderPrice;
private Integer deleted;
private Date createTime;
private Date updateTime;
public TenderInfoDTO buildTenderInfoDTO(){
return TenderInfoDTO.builder().id(this.id).tenderNewsId(this.tenderNewsId).tenderInfoNo(this.tenderInfoNo).tenderContent(this.tenderContent)
.tenderPrice(this.tenderPrice).createTime(this.createTime).build();
}
public AppTenderInfoDTO buildAppTenderInfoDTO(){
return AppTenderInfoDTO.builder().id(this.id).tenderNewsId(this.tenderNewsId).tenderInfoNo(this.tenderInfoNo).tenderContent(this.tenderContent)
.tenderPrice(this.tenderPrice).createTime(this.createTime).apply(0).build();
}
}
package com.mmc.csf.release.entity;
import com.mmc.csf.infomation.dto.TenderNewsDTO;
import com.mmc.csf.infomation.vo.TenderNewsVO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* author:zhenjie
* Date:2022/5/21
* time:15:56
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TenderNewsDO implements Serializable {
private static final long serialVersionUID = 3403042130524788589L;
private Integer id;
private String tenderName;
private Integer using;
private Integer port;
private Integer deleted;
private Date createTime;
private Date updateTime;
public TenderNewsDTO buildTenderNewsDTO(){
return TenderNewsDTO.builder().id(this.id).tenderName(this.tenderName).using(this.using).port(this.port).createTime(this.createTime)
.build();
}
public TenderNewsDO(TenderNewsVO tenderNewsVO){
this.id = tenderNewsVO.getId();
this.tenderName = tenderNewsVO.getTenderName();
this.using = tenderNewsVO.getUsing();
this.port = tenderNewsVO.getPort();
}
}
package com.mmc.csf.release.feign;
import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.infomation.dto.UserAccountSimpleDTO;
import com.mmc.csf.release.feign.hystrix.UserAppApiHystrix;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* @author: zj
* @Date: 2023/5/18 17:06
*/
@FeignClient(name = "cms-svc.dev.svc.cluster.local", fallback = UserAppApiHystrix.class)
@FeignClient(name = "cms-svc:30150", fallback = UserAppApiHystrix.class)
public interface UserAppApi {
/**
* 根据用户id获取基本信息
......@@ -21,4 +23,14 @@ public interface UserAppApi {
*/
@RequestMapping(value = "/userapp/user-account/feignGetUserSimpleInfo", method = RequestMethod.GET)
public UserAccountSimpleDTO feignGetUserSimpleInfo(@RequestParam Integer userAccountId);
/**
* 根据地区信息查询用户id
* @param provinceCode
* @param cityCode
* @param districtCode
* @return
*/
@GetMapping("/userapp/user-account/feignListUserAccountIds")
List<Integer> feignListUserAccountIds(@RequestParam Integer provinceCode, @RequestParam Integer cityCode, @RequestParam Integer districtCode);
}
......@@ -4,6 +4,8 @@ import com.mmc.csf.infomation.dto.UserAccountSimpleDTO;
import com.mmc.csf.release.feign.UserAppApi;
import lombok.extern.slf4j.Slf4j;
import java.util.List;
/**
* @author: zj
* @Date: 2023/5/18 17:08
......@@ -15,4 +17,10 @@ public class UserAppApiHystrix implements UserAppApi {
log.error("熔断:feignGetUserSimpleInfo:{}", userAccountId);
return null;
}
@Override
public List<Integer> feignListUserAccountIds(Integer provinceCode, Integer cityCode, Integer districtCode) {
log.error("熔断:feignListUserAccountIds:{}, {}, {}", provinceCode, cityCode, districtCode);
return null;
}
}
package com.mmc.csf.release.service;
import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.infomation.qo.IndustryCaseQO;
/**
* @author: zj
* @Date: 2023/5/19 13:40
*/
public interface IndustryCaseService {
/**
* 案例列表
* @param industryCaseQO
* @return
*/
ResultBody listCasePage(IndustryCaseQO industryCaseQO);
/**
* 案例详情
* @param id
* @return
*/
ResultBody details(Integer id);
}
package com.mmc.csf.release.service;
import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.infomation.qo.IndustryCaseQO;
/**
* @author: zj
* @Date: 2023/5/19 13:40
*/
public interface IndustryNewsService {
/**
* 新闻列表
* @param industryCaseQO
* @return
*/
ResultBody listNewsPage(IndustryCaseQO industryCaseQO);
/**
* 新闻详情
* @param id
* @return
*/
ResultBody details(Integer id);
}
package com.mmc.csf.release.service;
import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.infomation.qo.IndustryCaseQO;
import com.mmc.csf.infomation.vo.RequirementsInfoVO;
/**
......@@ -28,4 +29,11 @@ public interface RequirementsService {
* @return
*/
ResultBody solveRequire(Integer requirementsInfoId, Integer userAccountId);
/**
* 需求发布列表
* @param industryCaseQO
* @return
*/
ResultBody listPublishPage(IndustryCaseQO industryCaseQO);
}
package com.mmc.csf.release.service;
import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.infomation.qo.IndustryCaseQO;
import com.mmc.csf.infomation.vo.TenderApplyVO;
import com.mmc.csf.infomation.vo.TenderNewsVO;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.Date;
/**
* author:zhenjie
* Date:2022/5/21
* time:17:11
*/
public interface TenderService {
ResultBody addTenderNews(MultipartFile file, TenderNewsVO tenderNewsVO) throws IOException;
ResultBody listTenderNews(Integer pageNo, Integer pageSize, String tenderName, Date startTime, Date endTime, Integer using);
ResultBody updateTenderNews(MultipartFile file, TenderNewsVO tenderNewsVO) throws IOException;
ResultBody removeTenderNews(Integer id);
ResultBody listTenderInfo(Integer pageNo, Integer pageSize, Integer tenderNewsId);
ResultBody updateTenderInfo(Integer id, String tenderContent, BigDecimal tenderPrice);
ResultBody addTenderApply(TenderApplyVO tenderApplyVO);
ResultBody listTenderApply(Integer pageNo, Integer pageSize, Integer tenderNewsId, Integer tenderInfoId, String keyword);
ResultBody listTenderInfoApp(Integer pageNo, Integer pageSize, Integer tenderNewsId, Integer userAccountId);
ResultBody listTenderInfoAppLatest(Integer pageNo, Integer pageSize, Integer userAccountId);
ResultBody listNewTenderInfo(IndustryCaseQO industryCaseQO);
}
package com.mmc.csf.release.service.impl;
import com.mmc.csf.common.util.page.PageResult;
import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.infomation.qo.IndustryCaseQO;
import com.mmc.csf.infomation.vo.IndustryCaseVO;
import com.mmc.csf.infomation.vo.IndustryNewsVO;
import com.mmc.csf.release.dao.IndustryCaseDao;
import com.mmc.csf.release.entity.IndustryCaseDO;
import com.mmc.csf.release.entity.IndustryNewsDO;
import com.mmc.csf.release.feign.UserAppApi;
import com.mmc.csf.release.service.IndustryCaseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author: zj
* @Date: 2023/5/19 13:40
*/
@Service
public class IndustryCaseServiceImpl implements IndustryCaseService {
@Autowired
private IndustryCaseDao industryCaseDao;
@Autowired
private UserAppApi userAppApi;
@Override
public ResultBody listCasePage(IndustryCaseQO industryCaseQO) {
//查询对应地区的用户
List<Integer> userIds = userAppApi.feignListUserAccountIds(industryCaseQO.getProvinceCode(), industryCaseQO.getCityCode(), industryCaseQO.getDistrictCode());
industryCaseQO.setUserIds(userIds);
int count = industryCaseDao.countListCasePage(industryCaseQO);
if (count == 0) {
return ResultBody.success(PageResult.buildPage(industryCaseQO.getPageNo(), industryCaseQO.getPageSize(), count));
}
Integer pageNo = industryCaseQO.getPageNo();
industryCaseQO.buildCurrentPage();
List<IndustryCaseDO> industryCaseDOList = industryCaseDao.listCasePage(industryCaseQO);
List<IndustryCaseVO> industryCaseVOS = industryCaseDOList.stream().map(IndustryCaseDO::buildIndustryCaseVO).collect(Collectors.toList());
return ResultBody.success(PageResult.buildPage(pageNo, industryCaseQO.getPageSize(), count, industryCaseVOS));
}
@Override
public ResultBody details(Integer id) {
IndustryCaseDO industryCaseDO = industryCaseDao.details(id);
if (industryCaseDO != null) {
return ResultBody.success(industryCaseDO.buildIndustryCaseVO());
}
return ResultBody.success();
}
}
\ No newline at end of file
package com.mmc.csf.release.service.impl;
import com.mmc.csf.common.util.page.PageResult;
import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.infomation.qo.IndustryCaseQO;
import com.mmc.csf.infomation.vo.IndustryNewsVO;
import com.mmc.csf.release.dao.IndustryNewsDao;
import com.mmc.csf.release.entity.IndustryNewsDO;
import com.mmc.csf.release.feign.UserAppApi;
import com.mmc.csf.release.service.IndustryNewsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author: zj
* @Date: 2023/5/19 13:41
*/
@Service
public class IndustryNewsServiceImpl implements IndustryNewsService {
@Autowired
private IndustryNewsDao industryNewsDao;
@Autowired
private UserAppApi userAppApi;
@Override
public ResultBody listNewsPage(IndustryCaseQO industryCaseQO) {
//查询对应地区的用户
List<Integer> userIds = userAppApi.feignListUserAccountIds(industryCaseQO.getProvinceCode(), industryCaseQO.getCityCode(), industryCaseQO.getDistrictCode());
industryCaseQO.setUserIds(userIds);
int count = industryNewsDao.countListNewsPage(industryCaseQO);
if (count == 0) {
return ResultBody.success(PageResult.buildPage(industryCaseQO.getPageNo(), industryCaseQO.getPageSize(), count));
}
Integer pageNo = industryCaseQO.getPageNo();
industryCaseQO.buildCurrentPage();
List<IndustryNewsDO> industryNewsDOList = industryNewsDao.listNewsPage(industryCaseQO);
List<IndustryNewsVO> industryNewsVOS = industryNewsDOList.stream().map(IndustryNewsDO::buildIndustryNewsVO).collect(Collectors.toList());
return ResultBody.success(PageResult.buildPage(pageNo, industryCaseQO.getPageSize(), count, industryNewsVOS));
}
@Override
public ResultBody details(Integer id) {
IndustryNewsDO industryNewsDO = industryNewsDao.details(id);
if (industryNewsDO!= null) {
return ResultBody.success(industryNewsDO.buildIndustryNewsVO());
}
return ResultBody.success();
}
}
package com.mmc.csf.release.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.mmc.csf.common.util.page.PageResult;
import com.mmc.csf.common.util.web.ResultBody;
import com.mmc.csf.common.util.web.ResultEnum;
import com.mmc.csf.infomation.dto.UserAccountSimpleDTO;
import com.mmc.csf.infomation.qo.IndustryCaseQO;
import com.mmc.csf.infomation.vo.RequirementsInfoVO;
import com.mmc.csf.infomation.vo.RequirementsTypeVO;
import com.mmc.csf.release.dao.RequirementsDao;
......@@ -59,4 +61,20 @@ public class RequirementsServiceImpl implements RequirementsService {
requirementsDao.solveRequire(requirementsInfoId);
return ResultBody.success();
}
@Override
public ResultBody listPublishPage(IndustryCaseQO industryCaseQO) {
//查询对应地区的用户
List<Integer> userIds = userAppApi.feignListUserAccountIds(industryCaseQO.getProvinceCode(), industryCaseQO.getCityCode(), industryCaseQO.getDistrictCode());
industryCaseQO.setUserIds(userIds);
int count = requirementsDao.countListPublishPage(industryCaseQO);
if (count == 0) {
return ResultBody.success(PageResult.buildPage(industryCaseQO.getPageNo(), industryCaseQO.getPageSize(), count));
}
Integer pageNo = industryCaseQO.getPageNo();
industryCaseQO.buildCurrentPage();
List<RequirementsInfoDO> requirementsInfoDOList = requirementsDao.listPublishPage(industryCaseQO);
List<RequirementsInfoVO> requirementsInfoVOS = requirementsInfoDOList.stream().map(RequirementsInfoDO::buildRequirementsInfoVO).collect(Collectors.toList());
return ResultBody.success(PageResult.buildPage(pageNo, industryCaseQO.getPageSize(), count, requirementsInfoVOS));
}
}
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.web.ResultBody;
import com.mmc.csf.common.util.web.ResultEnum;
import com.mmc.csf.infomation.dto.AppTenderInfoDTO;
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.vo.TenderApplyVO;
import com.mmc.csf.infomation.vo.TenderNewsVO;
import com.mmc.csf.release.dao.TenderDao;
import com.mmc.csf.release.entity.TenderApplyDO;
import com.mmc.csf.release.entity.TenderInfoDO;
import com.mmc.csf.release.entity.TenderNewsDO;
import com.mmc.csf.release.feign.UserAppApi;
import com.mmc.csf.release.service.TenderService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* author:zhenjie
* Date:2022/5/21
* time:17:11
*/
@Service
public class TenderServiceImpl implements TenderService {
@Autowired
private TenderDao tenderDao;
@Autowired
private UserAppApi userAppApi;
@Override
@Transactional
public ResultBody addTenderNews(MultipartFile file, TenderNewsVO tenderNewsVO) throws IOException {
TenderNewsDO tenderNewsDO = new TenderNewsDO(tenderNewsVO);
//检查快讯标题名称是否重复
int count = tenderDao.countExistSameName(tenderNewsVO.getId(), tenderNewsDO.getTenderName());
if(count > 0){
return ResultBody.error(ResultEnum.EXIST_SAME_NAME_ERROR);
}
tenderDao.addTenderNewsDO(tenderNewsDO);
List<TenderInfoDO> tenderInfoDOList = new ArrayList<>();
ResultBody resultBody = listTenderInfo(file, tenderNewsDO);
if(resultBody.getCode().toString().equals("200")){
tenderInfoDOList = (List<TenderInfoDO>)resultBody.getResult();
}else {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return resultBody;
}
tenderDao.batchAddTenderInfo(tenderInfoDOList);
return ResultBody.success();
}
@Override
public ResultBody listTenderNews(Integer pageNo, Integer pageSize, String tenderName, Date startTime, Date endTime, Integer using) {
int count = tenderDao.countListTenderNews(tenderName, startTime, endTime, using);
if (count == 0) {
return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count));
}
int itemIndex = (pageNo - 1) * pageSize;
List<TenderNewsDO> list = tenderDao.listTenderNews(itemIndex, pageSize, tenderName, startTime, endTime, using);
List<TenderNewsDTO> pageList = list.stream().map(d -> {
return d.buildTenderNewsDTO();
}).collect(Collectors.toList());
return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count, pageList));
}
@Override
@Transactional
public ResultBody updateTenderNews(MultipartFile file, TenderNewsVO tenderNewsVO) throws IOException {
TenderNewsDO tenderNewsDO = new TenderNewsDO(tenderNewsVO);
//检查快讯标题名称是否重复
int count = tenderDao.countExistSameName(tenderNewsVO.getId(), tenderNewsDO.getTenderName());
if(count > 0){
return ResultBody.error(ResultEnum.EXIST_SAME_NAME_ERROR);
}
if(file != null && !file.isEmpty()){
//把之前的覆盖
//删除之前的
tenderDao.batchRemoveTenderInfo(tenderNewsVO.getId());
List<TenderInfoDO> tenderInfoDOList = new ArrayList<>();
ResultBody resultBody = listTenderInfo(file, tenderNewsDO);
if(resultBody.getCode().toString().equals("200")){
tenderInfoDOList = (List<TenderInfoDO>)resultBody.getResult();
}else {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return resultBody;
}
tenderDao.batchAddTenderInfo(tenderInfoDOList);
}
tenderDao.updateTenderNews(tenderNewsDO);
return ResultBody.success();
}
private ResultBody listTenderInfo(MultipartFile file, TenderNewsDO tenderNewsDO) throws IOException {
//TenderNewsDO tenderNewsDO = new TenderNewsDO(tenderNewsVO);
// ImportParams params = new ImportParams();
// params.setTitleRows(0);
// params.setHeadRows(1);
// File importFile = MultipartFileUtil.multipartFileToFile(file);
// List<ExcelTenderInfo> list = ExcelImportUtil.importExcel(importFile, ExcelTenderInfo.class, params);
// //删除必填项都为空的记录,有一个空的情况不去除,可以提醒用户重新上传
// list.removeIf(d-> d.getTenderContent() == null && d.getTenderInfoNo() == null);
// // 删除临时文件
// MultipartFileUtil.delteTempFile(importFile);
// //判断是否为空,空的话,要提醒
// if(list.isEmpty()){
// return ResultBody.error(ResultEnum.FILE_PARSE_ERROR);
// }
// //把之前的覆盖
// //删除之前的
// //tenderDao.batchRemoveTenderInfo(tenderNewsVO.getId());
// //添加
// List<TenderInfoDO> tenderInfoDOList = new ArrayList<>();
// for(ExcelTenderInfo tenderInfo : list){
// TenderInfoDO tenderInfoDO = new TenderInfoDO();
// tenderInfoDO.setTenderNewsId(tenderNewsDO.getId());
// //不能为空,
// if(tenderInfo.getTenderInfoNo() == null || tenderInfo.getTenderInfoNo().trim().isEmpty()){
// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
// return ResultBody.error(ResultEnum.TENDER_FORMAT_ERROR);
// }else {
// tenderInfoDO.setTenderInfoNo(tenderInfo.getTenderInfoNo().trim());
// }
// //判断长度,不能为空,且长度在64之内
// if(tenderInfo.getTenderContent() == null || tenderInfo.getTenderContent().trim().isEmpty()){
// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
// return ResultBody.error(ResultEnum.TENDER_FORMAT_ERROR);
// }else {
// if(tenderInfo.getTenderContent().trim().length() > 120){
// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
// return ResultBody.error(ResultEnum.TENDER_CONTENT_TOO_LONG_ERROR);
// }
// tenderInfoDO.setTenderContent(tenderInfo.getTenderContent().trim());
// }
// //做判断
// BigDecimal beforeTenderPrice = BigDecimal.valueOf(10000000);
// BigDecimal afterTenderPrice = tenderInfo.getTenderPrice() == null ? BigDecimal.ZERO : tenderInfo.getTenderPrice();
// if( afterTenderPrice.compareTo(BigDecimal.ZERO) >= 0 && afterTenderPrice.compareTo(beforeTenderPrice) <= 0 ){
// tenderInfoDO.setTenderPrice(afterTenderPrice);
// }else {
// //抛出异常
// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
// return ResultBody.error(ResultEnum.PRICE_TO_HIGH_ERROR);
// }
// tenderInfoDOList.add(tenderInfoDO);
// }
// return ResultBody.success(tenderInfoDOList);
return ResultBody.success();
}
@Override
public ResultBody removeTenderNews(Integer id) {
tenderDao.removeTenderNews(id);
return ResultBody.success();
}
@Override
public ResultBody listTenderInfo(Integer pageNo, Integer pageSize, Integer tenderNewsId) {
int count = tenderDao.countListTenderInfo(tenderNewsId);
if (count == 0) {
return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count));
}
int itemIndex = (pageNo - 1) * pageSize;
List<TenderInfoDO> list = tenderDao.listTenderInfo(itemIndex, pageSize, tenderNewsId);
List<TenderInfoDTO> pageList = list.stream().map(d -> {
return d.buildTenderInfoDTO();
}).collect(Collectors.toList());
return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count, pageList));
}
@Override
public ResultBody updateTenderInfo(Integer id, String tenderContent, BigDecimal tenderPrice) {
tenderDao.updateTenderInfo(id, tenderContent, tenderPrice);
return ResultBody.success();
}
@Override
public ResultBody addTenderApply(TenderApplyVO tenderApplyVO) {
//判断之前有没有申请
TenderApplyDO beforeTenderApplyDO = tenderDao.getTenderApplyByUId(tenderApplyVO.getUserAccountId(), tenderApplyVO.getTenderInfoId());
if(beforeTenderApplyDO != null){
return ResultBody.error(ResultEnum.HAS_BEEN_APPLY_ERROR);
}
TenderApplyDO tenderApplyDO = new TenderApplyDO(tenderApplyVO);
tenderDao.addTenderApply(tenderApplyDO);
return ResultBody.success();
}
@Override
public ResultBody listTenderApply(Integer pageNo, Integer pageSize, Integer tenderNewsId, Integer tenderInfoId, String keyword) {
int count = tenderDao.countListTenderApply(tenderNewsId, tenderInfoId, keyword);
if (count == 0) {
return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count));
}
int itemIndex = (pageNo - 1) * pageSize;
List<TenderApplyDO> list = tenderDao.listTenderApply(itemIndex, pageSize, tenderNewsId, tenderInfoId, keyword);
List<TenderApplyDTO> pageList = list.stream().map(d -> {
return d.buildTenderApplyDTO();
}).collect(Collectors.toList());
return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count, pageList));
}
@Override
public ResultBody listTenderInfoApp(Integer pageNo, Integer pageSize, Integer tenderNewsId, Integer userAccountId) {
int count = tenderDao.countListTenderInfoApp(tenderNewsId);
int itemIndex = (pageNo - 1) * pageSize;
if (count == 0) {
return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count));
}
List<TenderInfoDO> list = tenderDao.listTenderInfoApp(itemIndex, pageSize, tenderNewsId);
List<AppTenderInfoDTO> pageList = list.stream().map(d -> {
return d.buildAppTenderInfoDTO();
}).collect(Collectors.toList());
List<TenderApplyDO> applyDOList = tenderDao.listAppTenderApply(tenderNewsId, userAccountId);
if(userAccountId == null){
return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count, pageList));
}
for(AppTenderInfoDTO appTenderInfoDTO : pageList){
for(TenderApplyDO tenderApplyDO : applyDOList){
if(tenderApplyDO.getTenderInfoId().toString().equals(appTenderInfoDTO.getId().toString())){
appTenderInfoDTO.setApply(1);
break;
}
}
}
return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count, pageList));
}
@Override
public ResultBody listTenderInfoAppLatest(Integer pageNo, Integer pageSize, Integer userAccountId) {
TenderNewsDO tenderNewsDO = tenderDao.latestTenderNewsDO();
if( tenderNewsDO == null ){
return ResultBody.success(PageResult.buildPage(pageNo, pageSize, 0));
}
int count = tenderDao.countListTenderInfoApp(tenderNewsDO.getId());
int itemIndex = (pageNo - 1) * pageSize;
List<TenderInfoDO> list = tenderDao.listTenderInfoApp(itemIndex, pageSize, tenderNewsDO.getId());
List<AppTenderInfoDTO> pageList = list.stream().map(d -> {
return d.buildAppTenderInfoDTO();
}).collect(Collectors.toList());
if(userAccountId == null){
return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count, pageList));
}
List<TenderApplyDO> applyDOList = tenderDao.listAppTenderApply(tenderNewsDO.getId(), userAccountId);
for(AppTenderInfoDTO appTenderInfoDTO : pageList){
for(TenderApplyDO tenderApplyDO : applyDOList){
if(tenderApplyDO.getTenderInfoId().toString().equals(appTenderInfoDTO.getId().toString())){
appTenderInfoDTO.setApply(1);
break;
}
}
}
return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count, pageList));
}
@Override
public ResultBody listNewTenderInfo(IndustryCaseQO industryCaseQO) {
//查询对应地区的用户
List<Integer> userIds = userAppApi.feignListUserAccountIds(industryCaseQO.getProvinceCode(), industryCaseQO.getCityCode(), industryCaseQO.getDistrictCode());
industryCaseQO.setUserIds(userIds);
int count = tenderDao.countNewListTenderInfo(industryCaseQO);
if (count == 0) {
return ResultBody.success(PageResult.buildPage(0, 0, count));
}
Integer pageNo = industryCaseQO.getPageNo();
industryCaseQO.buildCurrentPage();
List<TenderInfoDO> list = tenderDao.listNewListTenderInfo(industryCaseQO);
List<Integer> tenderInfoIds = list.stream().map(TenderInfoDO::getId).collect(Collectors.toList());
List<AppTenderInfoDTO> pageList = list.stream().map(d -> {
return d.buildAppTenderInfoDTO();
}).collect(Collectors.toList());
Integer applyUserId = 1;
//查出已申请过的并做标记
List<Integer> applyTenderInfoIds = tenderDao.listApplyTenderInfoIds(tenderInfoIds, applyUserId);
if (CollectionUtils.isNotEmpty(applyTenderInfoIds)) {
pageList.forEach(d->{
if(applyTenderInfoIds.contains(d.getId())){
d.setApply(1);
}
});
}
return ResultBody.success(PageResult.buildPage(pageNo, industryCaseQO.getPageSize(), count, pageList));
}
}
......@@ -48,6 +48,8 @@ spring:
loadbalancer:
retry:
enabled: true
jackson:
date-format: yyyy-MM-dd HH:mm:ss
#Redis
redis:
database: 0
......
......@@ -48,6 +48,8 @@ spring:
loadbalancer:
retry:
enabled: true
jackson:
date-format: yyyy-MM-dd HH:mm:ss
#Redis
redis:
database: 0
......
......@@ -48,6 +48,8 @@ spring:
loadbalancer:
retry:
enabled: true
jackson:
date-format: yyyy-MM-dd HH:mm:ss
#Redis
redis:
database: 0
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mmc.csf.release.dao.IndustryCaseDao">
<select id="countListCasePage" resultType="java.lang.Integer" parameterType="com.mmc.csf.infomation.qo.IndustryCaseQO">
select count(*) from industry_case
where is_deleted = 0
<if test=" userIds != null ">
<foreach collection="userIds" item="id" index="index"
open="and user_account_id in (" close=")" separator=",">
#{id}
</foreach>
</if>
<if test="date != null ">
Date(create_time) = #{date}
</if>
</select>
<select id="listCasePage" resultType="com.mmc.csf.release.entity.IndustryCaseDO" parameterType="com.mmc.csf.infomation.qo.IndustryCaseQO">
select id,
case_title,
case_author,
user_account_id,
surface_img,
case_contents,
create_time,
update_time
from industry_case
where is_deleted = 0
<if test=" userIds != null ">
<foreach collection="userIds" item="id" index="index"
open="and user_account_id in (" close=")" separator=",">
#{id}
</foreach>
</if>
<if test="date != null ">
Date(create_time) = #{date}
</if>
order by create_time desc
limit #{pageNo}, #{pageSize}
</select>
<select id="details" resultType="com.mmc.csf.release.entity.IndustryCaseDO">
select id,
case_title,
case_author,
user_account_id,
surface_img,
case_contents,
create_time,
update_time
from industry_case
where is_deleted = 0 and id = #{id}
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mmc.csf.release.dao.IndustryNewsDao">
<select id="countListNewsPage" resultType="java.lang.Integer" parameterType="com.mmc.csf.infomation.qo.IndustryCaseQO">
select count(*) from industry_news
where is_deleted = 0
<if test=" userIds != null ">
<foreach collection="userIds" item="id" index="index"
open="and user_account_id in (" close=")" separator=",">
#{id}
</foreach>
</if>
<if test="date != null ">
Date(create_time) = #{date}
</if>
</select>
<select id="listNewsPage" resultType="com.mmc.csf.release.entity.IndustryNewsDO" parameterType="com.mmc.csf.infomation.qo.IndustryCaseQO">
select id,
news_title,
news_author,
user_account_id,
surface_img,
news_contents,
create_time,
update_time
from industry_news
where is_deleted = 0
<if test=" userIds != null ">
<foreach collection="userIds" item="id" index="index"
open="and user_account_id in (" close=")" separator=",">
#{id}
</foreach>
</if>
<if test="date != null ">
Date(create_time) = #{date}
</if>
order by create_time desc
limit #{pageNo}, #{pageSize}
</select>
<select id="details" resultType="com.mmc.csf.release.entity.IndustryNewsDO">
select id,
news_title,
news_author,
user_account_id,
surface_img,
news_contents,
create_time,
update_time
from industry_news
where is_deleted = 0 and id = #{id}
</select>
</mapper>
\ No newline at end of file
......@@ -21,4 +21,50 @@
<select id="getRequirementsInfoById" resultType="com.mmc.csf.release.entity.RequirementsInfoDO">
select id, requirement_type_id, user_account_id, publish_name, publish_phone, require_description, is_solved as solved, create_time from requirements_info where id = #{id}
</select>
<select id="countListPublishPage" resultType="java.lang.Integer" parameterType="com.mmc.csf.infomation.qo.IndustryCaseQO">
select count(*) from requirements_info
where is_deleted = 0
<if test="date != null ">
Date(create_time) = #{date}
</if>
<if test="provinceCode != null ">
province_code = #{provinceCode}
</if>
<if test="cityCode != null ">
city_code = #{cityCode}
</if>
<if test="districtCode != null ">
district_code = #{districtCode}
</if>
</select>
<select id="listPublishPage" resultType="com.mmc.csf.release.entity.RequirementsInfoDO" parameterType="com.mmc.csf.infomation.qo.IndustryCaseQO">
select id,
requirement_type_id,
user_account_id,
publish_name,
publish_phone,
require_description,
is_solved,
is_deleted,
create_time,
update_time
from requirements_info
where is_deleted = 0
<if test="date != null ">
Date(create_time) = #{date}
</if>
<if test="provinceCode != null ">
province_code = #{provinceCode}
</if>
<if test="cityCode != null ">
city_code = #{cityCode}
</if>
<if test="districtCode != null ">
district_code = #{districtCode}
</if>
order by create_time desc
limit #{pageNo}, #{pageSize}
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mmc.csf.release.dao.TenderDao">
<resultMap id="tenderNewsResultMap" type="com.mmc.csf.release.entity.TenderNewsDO">
<id column="id" property="id"/>
<result column="tender_name" property="tenderName"/>
<result column="is_using" property="using"/>
<result column="port" property="port"/>
<result column="is_deleted" property="deleted"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
</resultMap>
<resultMap id="tenderInfoResultMap" type="com.mmc.csf.release.entity.TenderInfoDO">
<id column="id" property="id"/>
<result column="tender_news_id" property="tenderNewsId"/>
<result column="tender_info_no" property="tenderInfoNo"/>
<result column="tender_content" property="tenderContent"/>
<result column="tender_price" property="tenderPrice"/>
<result column="is_deleted" property="deleted"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
</resultMap>
<resultMap id="tenderApplyResultMap" type="com.mmc.csf.release.entity.TenderApplyDO">
<id column="id" property="id"/>
<result column="tender_news_id" property="tenderNewsId"/>
<result column="user_account_id" property="userAccountId"/>
<result column="tender_info_id" property="tenderInfoId"/>
<result column="nick_name" property="nickName"/>
<result column="user_name" property="userName"/>
<result column="phone_num" property="phoneNum"/>
<result column="is_deleted" property="deleted"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
<result column="tender_info_no" property="tenderInfoNo"/>
<result column="tender_content" property="tenderContent"/>
</resultMap>
<insert id="addTenderNewsDO" useGeneratedKeys="true"
keyProperty="id" parameterType="com.mmc.csf.release.entity.TenderNewsDO">
insert into tender_news(tender_name,is_using,port,create_time)
values(#{tenderName},#{using},#{port},NOW())
</insert>
<insert id="batchAddTenderInfo" useGeneratedKeys="true"
keyProperty="id" parameterType="com.mmc.csf.release.entity.TenderInfoDO">
insert into
tender_info(tender_news_id,tender_info_no,tender_content,tender_price,create_time)
values
<foreach item="item" index="index" collection="list"
separator=",">
(
#{item.tenderNewsId},
#{item.tenderInfoNo},
#{item.tenderContent},
#{item.tenderPrice},
NOW()
)
</foreach>
</insert>
<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)
values(#{userAccountId},#{tenderNewsId},#{tenderInfoId},#{nickName},#{userName},#{phoneNum},NOW());
</insert>
<update id="batchRemoveTenderInfo">
update tender_info set is_deleted = 1 where tender_news_id = #{tenderNewsId}
</update>
<update id="updateTenderNews" parameterType="com.mmc.csf.release.entity.TenderNewsDO">
update tender_news
<set>
<if test=" tenderName != null and tenderName != ''">
tender_name = #{tenderName},
</if>
<if test=" using != null ">
is_using = #{using},
</if>
<if test=" port != null ">
port = #{port}
</if>
</set>
where id = #{id}
</update>
<update id="removeTenderNews">
update tender_news set is_deleted = 1 where id = #{id}
</update>
<update id="updateTenderInfo">
update tender_info
<set>
<if test=" tenderContent != null ">
tender_content = #{tenderContent},
</if>
<if test=" tenderPrice != null ">
tender_price = #{tenderPrice}
</if>
</set>
where id = #{id}
</update>
<select id="countListTenderNews" resultType="java.lang.Integer">
select count(*) from tender_news
where is_deleted = 0
<if test=" tenderName != null and tenderName != '' ">
and tender_name like CONCAT('%',#{tenderName},'%')
</if>
<if test=" startTime != null ">
and create_time &gt; #{startTime}
</if>
<if test=" endTime != null ">
and create_time &lt; #{endTime}
</if>
<if test=" using != null ">
and is_using = #{using}
</if>
</select>
<select id="listTenderNews" resultMap="tenderNewsResultMap">
select id,tender_name,is_using,port,is_deleted,create_time from tender_news
where is_deleted = 0
<if test=" tenderName != null and tenderName != '' ">
and tender_name like CONCAT('%',#{tenderName},'%')
</if>
<if test=" startTime != null ">
and create_time &gt; #{startTime}
</if>
<if test=" endTime != null ">
and create_time &lt; #{endTime}
</if>
<if test=" using != null ">
and is_using = #{using}
</if>
order by create_time desc
limit #{itemIndex},#{pageSize}
</select>
<select id="countListTenderInfoApp" resultType="java.lang.Integer">
select count(*) from tender_info
where is_deleted = 0 and tender_news_id = #{tenderNewsId}
</select>
<select id="listTenderInfoApp" resultMap="tenderInfoResultMap">
select id, tender_news_id, tender_price, tender_info_no, tender_content, is_deleted, create_time, update_time
from tender_info
where is_deleted = 0
<if test=" tenderNewsId != null ">
and tender_news_id = #{tenderNewsId}
</if>
order by id
limit #{itemIndex},#{pageSize}
</select>
<select id="countListTenderInfo" resultType="java.lang.Integer">
select count(*) from tender_info
where is_deleted = 0 and tender_news_id = #{tenderNewsId}
</select>
<select id="listTenderInfo" resultMap="tenderInfoResultMap">
select id, tender_news_id, tender_price, tender_info_no, tender_content, is_deleted, create_time, update_time
from tender_info
where is_deleted = 0
<if test=" tenderNewsId != null ">
and tender_news_id = #{tenderNewsId}
</if>
order by id
limit #{itemIndex},#{pageSize}
</select>
<select id="getTenderApplyByUId" resultMap="tenderApplyResultMap">
select id, user_account_id, tender_news_id, tender_info_id, nick_name,
user_name, phone_num, is_deleted, create_time, update_time
from tender_apply
where user_account_id = #{userAccountId} and tender_info_id = #{tenderInfoId}
</select>
<select id="countListTenderApply" resultType="java.lang.Integer">
SELECT
count(*)
FROM
tender_apply ta left join tender_info ti on ta.tender_info_id = ti.id
where ti.is_deleted = 0
<if test=" tenderNewsId != null ">
and ta.tender_news_id = #{tenderNewsId}
</if>
<if test=" tenderInfoId != null ">
and ti.id = #{tenderInfoId}
</if>
<if test=" keyword != null and keyword != '' ">
and ta.user_name like CONCAT('%',#{keyword},'%')
</if>
</select>
<select id="listTenderApply" resultMap="tenderApplyResultMap">
SELECT
ta.id,
ti.tender_info_no,
ta.user_account_id,
ti.tender_content,
ta.tender_news_id,
ta.tender_info_id,
ta.nick_name,
ta.user_name,
ta.phone_num,
ta.is_deleted,
ta.create_time,
ta.update_time
FROM
tender_apply ta left join tender_info ti on ta.tender_info_id = ti.id
where ti.is_deleted = 0
<if test=" tenderNewsId != null ">
and ta.tender_news_id = #{tenderNewsId}
</if>
<if test=" tenderInfoId != null ">
and ti.id = #{tenderInfoId}
</if>
<if test=" keyword != null and keyword != '' ">
and ta.user_name like CONCAT('%',#{keyword},'%')
</if>
order by ti.id
limit #{itemIndex}, #{pageSize}
</select>
<select id="listAppTenderApply" resultMap="tenderApplyResultMap">
SELECT
ta.id,
ta.tender_info_id,
ti.tender_news_id,
ti.tender_info_no,
ti.tender_content,
ti.is_deleted,
ti.create_time,
ti.update_time,
ta.user_account_id
FROM
tender_apply ta
INNER JOIN tender_info ti ON ta.tender_info_id = ti.id
WHERE
ti.is_deleted = 0 and ta.tender_news_id = #{tenderNewsId} and ta.user_account_id = #{userAccountId}
</select>
<select id="latestTenderNewsDO" resultMap="tenderNewsResultMap">
select id,tender_name,is_using,port,is_deleted,create_time from tender_news
where is_deleted = 0 and is_using = 1
order by create_time desc
limit 0, 1
</select>
<select id="countExistSameName" resultType="java.lang.Integer">
select count(*) from tender_news
where is_deleted = 0
<if test=" id != null ">
and id &lt;&gt; #{id}
</if>
<if test=" tenderName != null ">
and tender_name = #{tenderName}
</if>
</select>
<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
where
tn.is_deleted = 0 and tn.is_using = 1 and ti.is_deleted = 0
<if test=" date != null ">
and Date(ti.create_time) = #{date}
</if>
<if test=" userIds != null ">
<foreach collection="userIds" item="id" index="index"
open="and tn.user_account_id in (" close=")" separator=",">
#{id}
</foreach>
</if>
</select>
<select id="listNewListTenderInfo" resultType="com.mmc.csf.release.entity.TenderInfoDO">
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
from tender_news tn INNER JOIN tender_info ti ON tn.id = ti.tender_news_id
where
tn.is_deleted = 0 and tn.is_using = 1 and ti.is_deleted = 0
<if test=" date != null ">
and Date(ti.create_time) = #{date}
</if>
<if test=" userIds != null ">
<foreach collection="userIds" item="id" index="index"
open="and tn.user_account_id in (" close=")" separator=",">
#{id}
</foreach>
</if>
order by ti.create_time
limit #{pageNo}, #{pageSize}
</select>
<select id="listApplyTenderInfoIds" resultType="java.util.List">
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
where ta.user_account_id = #{applyUserId}
<if test="tenderInfoIds != null">
<foreach collection="tenderInfoIds" item="id" index="index"
open="and ta.tender_info_id in (" close=")" separator=",">
#{id}
</foreach>
</if>
</select>
</mapper>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论