Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
I
ims
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
iuav
ims
Commits
ec03ed85
提交
ec03ed85
authored
6月 17, 2023
作者:
panda
提交者:
余乾开
6月 17, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
招标快讯相关接口
上级
4aecbd69
隐藏空白字符变更
内嵌
并排
正在显示
15 个修改的文件
包含
390 行增加
和
198 行删除
+390
-198
TenderApplyDTO.java
.../main/java/com/mmc/csf/infomation/dto/TenderApplyDTO.java
+2
-2
TenderInfoDTO.java
...c/main/java/com/mmc/csf/infomation/dto/TenderInfoDTO.java
+2
-0
TenderApplyQO.java
...rc/main/java/com/mmc/csf/infomation/vo/TenderApplyQO.java
+35
-0
TenderInfoVO.java
...src/main/java/com/mmc/csf/infomation/vo/TenderInfoVO.java
+36
-0
TenderNewsVO.java
...src/main/java/com/mmc/csf/infomation/vo/TenderNewsVO.java
+4
-1
ResultEnum.java
...src/main/java/com/mmc/csf/common/util/web/ResultEnum.java
+1
-1
TenderController.java
...java/com/mmc/csf/release/controller/TenderController.java
+19
-26
TenderDao.java
...vice/src/main/java/com/mmc/csf/release/dao/TenderDao.java
+2
-1
TenderApplyDO.java
...c/main/java/com/mmc/csf/release/entity/TenderApplyDO.java
+2
-3
TenderInfoDO.java
...rc/main/java/com/mmc/csf/release/entity/TenderInfoDO.java
+6
-3
ExcelTenderInfo.java
...va/com/mmc/csf/release/entity/tender/ExcelTenderInfo.java
+37
-0
TenderService.java
.../main/java/com/mmc/csf/release/service/TenderService.java
+4
-3
TenderServiceImpl.java
...a/com/mmc/csf/release/service/impl/TenderServiceImpl.java
+90
-96
MultipartFileUtil.java
...main/java/com/mmc/csf/release/util/MultipartFileUtil.java
+61
-0
TenderDao.xml
...se-service/src/main/resources/mapper/tender/TenderDao.xml
+89
-62
没有找到文件。
csf-common/csf-common-model/src/main/java/com/mmc/csf/infomation/dto/TenderApplyDTO.java
浏览文件 @
ec03ed85
...
...
@@ -23,8 +23,8 @@ public class TenderApplyDTO implements Serializable {
private
Integer
id
;
@ApiModelProperty
(
value
=
"招标快讯编号"
)
private
String
tenderInfoNo
;
@ApiModelProperty
(
value
=
"招标快讯
内容
"
)
private
String
tender
Content
;
@ApiModelProperty
(
value
=
"招标快讯
标题
"
)
private
String
tender
Title
;
// @ApiModelProperty(value = "用户id")
// private Integer userAccountId;
// @ApiModelProperty(value = "招标快讯id")
...
...
csf-common/csf-common-model/src/main/java/com/mmc/csf/infomation/dto/TenderInfoDTO.java
浏览文件 @
ec03ed85
...
...
@@ -26,6 +26,8 @@ public class TenderInfoDTO implements Serializable {
private
Integer
tenderNewsId
;
@ApiModelProperty
(
value
=
"招标快讯内容序号"
)
private
String
tenderInfoNo
;
@ApiModelProperty
(
value
=
"招标快讯标题"
)
private
String
tenderTitle
;
@ApiModelProperty
(
value
=
"招标快讯内容"
)
private
String
tenderContent
;
@ApiModelProperty
(
value
=
"价格"
)
...
...
csf-common/csf-common-model/src/main/java/com/mmc/csf/infomation/vo/TenderApplyQO.java
0 → 100644
浏览文件 @
ec03ed85
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
;
}
csf-common/csf-common-model/src/main/java/com/mmc/csf/infomation/vo/TenderInfoVO.java
0 → 100644
浏览文件 @
ec03ed85
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
;
}
csf-common/csf-common-model/src/main/java/com/mmc/csf/infomation/vo/TenderNewsVO.java
浏览文件 @
ec03ed85
...
...
@@ -11,11 +11,14 @@ import javax.validation.constraints.NotNull;
import
java.io.Serializable
;
/**
* @author MMC_hzj
* author:zhenjie
* Date:2022/5/21
* time:16:17
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel
(
value
=
"com.mmc.csf.sharefly.vo.TenderNewsVO"
,
description
=
"招标快讯内容参数"
)
public
class
TenderNewsVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
8188835029420792396L
;
@ApiModelProperty
(
value
=
"id"
)
...
...
csf-common/csf-common-util/src/main/java/com/mmc/csf/common/util/web/ResultEnum.java
浏览文件 @
ec03ed85
...
...
@@ -351,7 +351,7 @@ public enum ResultEnum implements BaseErrorInfoInterface {
FILE_PARSE_ERROR
(
"40600"
,
"上传文件无数据或内容识别失败,请重新上传"
),
HAS_BEEN_APPLY_ERROR
(
"40601"
,
"已提交申请!将有客服人员与你联系"
),
PRICE_TO_HIGH_ERROR
(
"40602"
,
"标价确认在0-10000000万元内"
),
PRICE_TO_HIGH_ERROR
(
"40602"
,
"标价
请
确认在0-10000000万元内"
),
EXIST_SAME_NAME_ERROR
(
"40603"
,
"快讯名称重复,请重新上传"
),
TENDER_FORMAT_ERROR
(
"40604"
,
"招标序号或内容不能为空,请补全后上传"
),
TENDER_CONTENT_TOO_LONG_ERROR
(
"40605"
,
"存在招标内容字符过长"
),
...
...
release-service/src/main/java/com/mmc/csf/release/controller/TenderController.java
浏览文件 @
ec03ed85
...
...
@@ -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.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.infomation.dto.AppTenderInfoDTO
;
import
com.mmc.csf.infomation.dto.TenderApplyDTO
;
...
...
@@ -10,12 +11,10 @@ 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.TenderInfoVO
;
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
io.swagger.annotations.*
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -23,7 +22,6 @@ import org.springframework.web.multipart.MultipartFile;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.IOException
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
...
...
@@ -38,7 +36,7 @@ public class TenderController extends BaseController{
@Autowired
private
TenderService
tenderService
;
@ApiOperation
(
value
=
"新增招标快讯"
,
hidden
=
true
)
@ApiOperation
(
value
=
"新增招标快讯"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PostMapping
(
value
=
"news"
)
public
ResultBody
addTenderNews
(
@RequestPart
(
value
=
"file"
)
MultipartFile
file
,
...
...
@@ -47,10 +45,10 @@ public class TenderController extends BaseController{
return
tenderService
.
addTenderNews
(
file
,
tenderNewsVO
);
}
@ApiOperation
(
value
=
"查询招标快讯列表-分页"
,
hidden
=
true
)
@ApiOperation
(
value
=
"查询招标快讯列表-分页"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
TenderNewsDTO
.
class
)})
@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
=
"startTime"
,
required
=
false
)
Date
startTime
,
@RequestParam
(
value
=
"endTime"
,
required
=
false
)
Date
endTime
,
...
...
@@ -58,7 +56,7 @@ public class TenderController extends BaseController{
return
tenderService
.
listTenderNews
(
pageNo
,
pageSize
,
tenderName
,
startTime
,
endTime
,
using
);
}
@ApiOperation
(
value
=
"修改
招标快讯列表"
,
hidden
=
true
)
@ApiOperation
(
value
=
"修改
-招标快讯列表"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
@PutMapping
(
value
=
"news"
)
public
ResultBody
updateTenderNews
(
@RequestParam
(
value
=
"file"
,
required
=
false
)
MultipartFile
file
,
...
...
@@ -66,14 +64,14 @@ public class TenderController extends BaseController{
return
tenderService
.
updateTenderNews
(
file
,
tenderNewsVO
);
}
@ApiOperation
(
value
=
"删除
查询招标快讯"
,
hidden
=
true
)
@ApiOperation
(
value
=
"删除
招标快讯"
)
@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
)
@ApiOperation
(
value
=
"查询
-招标快讯详情列表-分页"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
TenderInfoDTO
.
class
)})
@GetMapping
(
value
=
"info"
)
public
ResultBody
listTenderInfo
(
@RequestParam
Integer
pageNo
,
@RequestParam
Integer
pageSize
,
...
...
@@ -81,13 +79,11 @@ public class TenderController extends BaseController{
return
tenderService
.
listTenderInfo
(
pageNo
,
pageSize
,
tenderNewsId
);
}
@ApiOperation
(
value
=
"修改
招标快讯详情"
,
hidden
=
true
)
@ApiOperation
(
value
=
"修改
-招标快讯详情"
)
@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
);
public
ResultBody
updateTenderInfo
(
@Validated
(
value
=
Update
.
class
)
@RequestBody
TenderInfoVO
tenderInfoVO
){
return
tenderService
.
updateTenderInfo
(
tenderInfoVO
);
}
@ApiOperation
(
value
=
"合作申请提交"
)
...
...
@@ -98,16 +94,14 @@ public class TenderController extends BaseController{
return
tenderService
.
addTenderApply
(
tenderApplyVO
,
request
);
}
@ApiOperation
(
value
=
"用户反馈列表-分页"
,
hidden
=
true
)
@ApiOperation
(
value
=
"用户反馈列表-分页"
)
@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
);
@PostMapping
(
value
=
"applyList"
)
public
ResultBody
listTenderApply
(
@RequestBody
TenderApplyQO
tenderApplyQO
){
return
tenderService
.
listTenderApply
(
tenderApplyQO
);
}
@ApiOperation
(
value
=
"app往期招标快讯详情列表-分页"
,
hidden
=
true
)
@ApiOperation
(
value
=
"app往期招标快讯详情列表-分页"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
AppTenderInfoDTO
.
class
)})
@GetMapping
(
value
=
"info/app"
)
public
ResultBody
listTenderInfoApp
(
@RequestParam
Integer
pageNo
,
@RequestParam
Integer
pageSize
,
...
...
@@ -115,7 +109,7 @@ public class TenderController extends BaseController{
return
tenderService
.
listTenderInfoApp
(
pageNo
,
pageSize
,
tenderNewsId
,
userAccountId
);
}
@ApiOperation
(
value
=
"app最新招标快讯详情列表-分页"
,
hidden
=
true
)
@ApiOperation
(
value
=
"app最新招标快讯详情列表-分页"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
AppTenderInfoDTO
.
class
)})
@GetMapping
(
value
=
"info/app/latest"
)
public
ResultBody
listTenderInfoAppLatest
(
@RequestParam
Integer
pageNo
,
@RequestParam
Integer
pageSize
,
...
...
@@ -129,5 +123,4 @@ public class TenderController extends BaseController{
public
ResultBody
listNewTenderInfo
(
@Validated
(
value
=
{
Page
.
class
})
@RequestBody
IndustryCaseQO
industryCaseQO
,
HttpServletRequest
request
){
return
tenderService
.
listNewTenderInfo
(
industryCaseQO
,
this
.
getUserLoginInfoFromRedis
(
request
),
request
);
}
}
release-service/src/main/java/com/mmc/csf/release/dao/TenderDao.java
浏览文件 @
ec03ed85
...
...
@@ -5,6 +5,7 @@ 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
org.apache.ibatis.annotations.Param
;
import
java.math.BigDecimal
;
import
java.util.Date
;
...
...
@@ -35,7 +36,7 @@ public interface TenderDao {
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
);
...
...
release-service/src/main/java/com/mmc/csf/release/entity/TenderApplyDO.java
浏览文件 @
ec03ed85
...
...
@@ -31,7 +31,7 @@ public class TenderApplyDO implements Serializable {
private
Date
updateTime
;
private
String
tenderInfoNo
;
private
String
tender
Content
;
private
String
tender
Title
;
public
TenderApplyDO
(
TenderApplyVO
tenderApplyVO
)
{
this
.
userAccountId
=
tenderApplyVO
.
getUserAccountId
();
...
...
@@ -44,7 +44,6 @@ public class TenderApplyDO implements Serializable {
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
();
.
createTime
(
this
.
createTime
).
tenderInfoNo
(
this
.
tenderInfoNo
).
tenderTitle
(
this
.
tenderTitle
).
build
();
}
}
release-service/src/main/java/com/mmc/csf/release/entity/TenderInfoDO.java
浏览文件 @
ec03ed85
...
...
@@ -2,6 +2,7 @@ package com.mmc.csf.release.entity;
import
com.mmc.csf.infomation.dto.AppTenderInfoDTO
;
import
com.mmc.csf.infomation.dto.TenderInfoDTO
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
...
...
@@ -23,6 +24,8 @@ public class TenderInfoDO implements Serializable {
private
Integer
id
;
private
Integer
tenderNewsId
;
private
String
tenderInfoNo
;
private
String
tenderTitle
;
@ApiModelProperty
(
value
=
"招标快讯内容"
)
private
String
tenderContent
;
private
BigDecimal
tenderPrice
;
private
Integer
deleted
;
...
...
@@ -30,12 +33,12 @@ public class TenderInfoDO implements Serializable {
private
Date
updateTime
;
public
TenderInfoDTO
buildTenderInfoDTO
(){
return
TenderInfoDTO
.
builder
().
id
(
this
.
id
).
tenderNewsId
(
this
.
tenderNewsId
).
tenderInfoNo
(
this
.
tenderInfoNo
).
tender
Content
(
this
.
tenderContent
)
.
tenderPrice
(
this
.
tenderPrice
).
createTime
(
this
.
createTime
).
build
();
return
TenderInfoDTO
.
builder
().
id
(
this
.
id
).
tenderNewsId
(
this
.
tenderNewsId
).
tenderInfoNo
(
this
.
tenderInfoNo
).
tender
Title
(
this
.
tenderTitle
)
.
tenderPrice
(
this
.
tenderPrice
).
createTime
(
this
.
createTime
).
tenderContent
(
this
.
tenderContent
).
build
();
}
public
AppTenderInfoDTO
buildAppTenderInfoDTO
(){
return
AppTenderInfoDTO
.
builder
().
id
(
this
.
id
).
tenderNewsId
(
this
.
tenderNewsId
).
tenderInfoNo
(
this
.
tenderInfoNo
).
tenderContent
(
this
.
tender
Content
)
return
AppTenderInfoDTO
.
builder
().
id
(
this
.
id
).
tenderNewsId
(
this
.
tenderNewsId
).
tenderInfoNo
(
this
.
tenderInfoNo
).
tenderContent
(
this
.
tender
Title
)
.
tenderPrice
(
this
.
tenderPrice
).
createTime
(
this
.
createTime
).
apply
(
0
).
build
();
}
}
release-service/src/main/java/com/mmc/csf/release/entity/tender/ExcelTenderInfo.java
0 → 100644
浏览文件 @
ec03ed85
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
;
}
release-service/src/main/java/com/mmc/csf/release/service/TenderService.java
浏览文件 @
ec03ed85
...
...
@@ -2,11 +2,12 @@ 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.TenderApplyQO
;
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.release.auth.dto.LoginSuccessDTO
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.IOException
;
import
java.math.BigDecimal
;
...
...
@@ -28,11 +29,11 @@ public interface TenderService {
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
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
);
...
...
release-service/src/main/java/com/mmc/csf/release/service/impl/TenderServiceImpl.java
浏览文件 @
ec03ed85
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.web.ResultBody
;
import
com.mmc.csf.common.util.web.ResultEnum
;
import
com.mmc.csf.infomation.dto.*
;
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.TenderInfoVO
;
import
com.mmc.csf.infomation.vo.TenderNewsVO
;
import
com.mmc.csf.release.auth.dto.LoginSuccessDTO
;
import
com.mmc.csf.release.constant.TokenConstant
;
...
...
@@ -13,9 +17,12 @@ 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.entity.tender.ExcelTenderInfo
;
import
com.mmc.csf.release.feign.UserAppApi
;
import
com.mmc.csf.release.service.TenderService
;
import
com.mmc.csf.release.util.MultipartFileUtil
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
...
...
@@ -23,6 +30,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.File
;
import
java.io.IOException
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
...
...
@@ -45,25 +53,23 @@ public class TenderServiceImpl implements TenderService {
private
UserAppApi
userAppApi
;
@Override
@Transactional
@Transactional
(
rollbackFor
=
Exception
.
class
)
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
)
{
if
(
count
>
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
EXIST_SAME_NAME_ERROR
);
}
tenderDao
.
addTenderNewsDO
(
tenderNewsDO
);
List
<
TenderInfoDO
>
tenderInfoDOList
=
new
ArrayList
<>()
;
List
<
TenderInfoDO
>
tenderInfoDOList
;
ResultBody
resultBody
=
listTenderInfo
(
file
,
tenderNewsDO
);
if
(
resultBody
.
getCode
().
toString
().
equals
(
"200"
)){
tenderInfoDOList
=
(
List
<
TenderInfoDO
>)
resultBody
.
getResult
();
}
else
{
if
(!
resultBody
.
getCode
().
equals
(
"200"
)){
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
return
resultBody
;
}
tenderInfoDOList
=
(
List
<
TenderInfoDO
>)
resultBody
.
getResult
();
tenderDao
.
batchAddTenderInfo
(
tenderInfoDOList
);
return
ResultBody
.
success
();
}
...
...
@@ -75,9 +81,7 @@ public class TenderServiceImpl implements TenderService {
}
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
());
List
<
TenderNewsDTO
>
pageList
=
list
.
stream
().
map
(
TenderNewsDO:
:
buildTenderNewsDTO
).
collect
(
Collectors
.
toList
());
return
ResultBody
.
success
(
PageResult
.
buildPage
(
pageNo
,
pageSize
,
count
,
pageList
));
}
...
...
@@ -87,18 +91,18 @@ public class TenderServiceImpl implements TenderService {
TenderNewsDO
tenderNewsDO
=
new
TenderNewsDO
(
tenderNewsVO
);
//检查快讯标题名称是否重复
int
count
=
tenderDao
.
countExistSameName
(
tenderNewsVO
.
getId
(),
tenderNewsDO
.
getTenderName
());
if
(
count
>
0
)
{
if
(
count
>
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
EXIST_SAME_NAME_ERROR
);
}
if
(
file
!=
null
&&
!
file
.
isEmpty
())
{
if
(
file
!=
null
&&
!
file
.
isEmpty
())
{
//把之前的覆盖
//删除之前的
tenderDao
.
batchRemoveTenderInfo
(
tenderNewsVO
.
getId
());
List
<
TenderInfoDO
>
tenderInfoDOList
=
new
ArrayList
<>()
;
List
<
TenderInfoDO
>
tenderInfoDOList
;
ResultBody
resultBody
=
listTenderInfo
(
file
,
tenderNewsDO
);
if
(
resultBody
.
getCode
().
toString
().
equals
(
"200"
))
{
tenderInfoDOList
=
(
List
<
TenderInfoDO
>)
resultBody
.
getResult
();
}
else
{
if
(
resultBody
.
getCode
().
equals
(
"200"
))
{
tenderInfoDOList
=
(
List
<
TenderInfoDO
>)
resultBody
.
getResult
();
}
else
{
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
return
resultBody
;
}
...
...
@@ -109,60 +113,52 @@ public class TenderServiceImpl implements TenderService {
}
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
();
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
.
getTenderTitle
()
==
null
&&
d
.
getTenderInfoNo
()
==
null
);
// 删除临时文件
MultipartFileUtil
.
delteTempFile
(
importFile
);
//判断是否为空,空的话,要提醒
if
(
list
.
isEmpty
())
{
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
return
ResultBody
.
error
(
ResultEnum
.
FILE_PARSE_ERROR
);
}
//添加
List
<
TenderInfoDO
>
tenderInfoDOList
=
new
ArrayList
<>();
for
(
ExcelTenderInfo
tenderInfo
:
list
)
{
TenderInfoDO
tenderInfoDO
=
new
TenderInfoDO
();
tenderInfoDO
.
setTenderNewsId
(
tenderNewsDO
.
getId
());
//序号不能为空
if
(
StringUtils
.
isBlank
(
tenderInfo
.
getTenderInfoNo
()))
{
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
return
ResultBody
.
error
(
ResultEnum
.
TENDER_FORMAT_ERROR
);
}
tenderInfoDO
.
setTenderInfoNo
(
tenderInfo
.
getTenderInfoNo
().
trim
());
//内容判断长度,不能为空,且长度在64之内
if
(
StringUtils
.
isBlank
(
tenderInfo
.
getTenderTitle
()))
{
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
return
ResultBody
.
error
(
ResultEnum
.
TENDER_FORMAT_ERROR
);
}
if
(
tenderInfo
.
getTenderTitle
().
trim
().
length
()
>
64
)
{
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
return
ResultBody
.
error
(
ResultEnum
.
TENDER_CONTENT_TOO_LONG_ERROR
);
}
tenderInfoDO
.
setTenderTitle
(
tenderInfo
.
getTenderTitle
().
trim
());
BigDecimal
beforeTenderPrice
=
BigDecimal
.
valueOf
(
10000000
);
BigDecimal
afterTenderPrice
=
tenderInfo
.
getTenderPrice
()
==
null
?
BigDecimal
.
ZERO
:
tenderInfo
.
getTenderPrice
();
// 标价请确认在0-10000000万元内
if
(
afterTenderPrice
.
compareTo
(
BigDecimal
.
ZERO
)
<=
0
||
afterTenderPrice
.
compareTo
(
beforeTenderPrice
)
>=
0
)
{
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
return
ResultBody
.
error
(
ResultEnum
.
PRICE_TO_HIGH_ERROR
);
}
tenderInfoDO
.
setTenderPrice
(
afterTenderPrice
);
tenderInfoDOList
.
add
(
tenderInfoDO
);
}
return
ResultBody
.
success
(
tenderInfoDOList
);
}
@Override
...
...
@@ -179,15 +175,13 @@ public class TenderServiceImpl implements TenderService {
}
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
());
List
<
TenderInfoDTO
>
pageList
=
list
.
stream
().
map
(
TenderInfoDO:
:
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
);
public
ResultBody
updateTenderInfo
(
TenderInfoVO
param
)
{
tenderDao
.
updateTenderInfo
(
param
.
getId
(),
param
.
getTenderTitle
(),
param
.
getTenderPrice
(),
param
.
getTenderContent
()
);
return
ResultBody
.
success
();
}
...
...
@@ -195,7 +189,7 @@ public class TenderServiceImpl implements TenderService {
public
ResultBody
addTenderApply
(
TenderApplyVO
tenderApplyVO
,
HttpServletRequest
request
)
{
//判断之前有没有申请
TenderApplyDO
beforeTenderApplyDO
=
tenderDao
.
getTenderApplyByUId
(
tenderApplyVO
.
getUserAccountId
(),
tenderApplyVO
.
getTenderInfoId
());
if
(
beforeTenderApplyDO
!=
null
)
{
if
(
beforeTenderApplyDO
!=
null
)
{
return
ResultBody
.
error
(
ResultEnum
.
HAS_BEEN_APPLY_ERROR
);
}
UserAccountSimpleDTO
userAccountSimpleDTO
=
userAppApi
.
feignGetUserSimpleInfo
(
tenderApplyVO
.
getUserAccountId
(),
request
.
getHeader
(
TokenConstant
.
TOKEN
));
...
...
@@ -208,16 +202,16 @@ public class TenderServiceImpl implements TenderService {
}
@Override
public
ResultBody
listTenderApply
(
Integer
pageNo
,
Integer
pageSize
,
Integer
tenderNewsId
,
Integer
tenderInfoId
,
String
keyword
)
{
int
count
=
tenderDao
.
countListTenderApply
(
tenderNewsId
,
tenderInfoId
,
keyword
);
public
ResultBody
listTenderApply
(
TenderApplyQO
param
)
{
Integer
pageNo
=
param
.
getPageNo
();
Integer
pageSize
=
param
.
getPageSize
();
int
count
=
tenderDao
.
countListTenderApply
(
param
.
getTenderNewsId
(),
param
.
getTenderInfoId
(),
param
.
getUserName
());
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
());
List
<
TenderApplyDO
>
list
=
tenderDao
.
listTenderApply
(
itemIndex
,
pageSize
,
param
.
getTenderNewsId
(),
param
.
getTenderInfoId
(),
param
.
getUserName
());
List
<
TenderApplyDTO
>
pageList
=
list
.
stream
().
map
(
TenderApplyDO:
:
buildTenderApplyDTO
).
collect
(
Collectors
.
toList
());
return
ResultBody
.
success
(
PageResult
.
buildPage
(
pageNo
,
pageSize
,
count
,
pageList
));
}
...
...
@@ -233,12 +227,12 @@ public class TenderServiceImpl implements TenderService {
return
d
.
buildAppTenderInfoDTO
();
}).
collect
(
Collectors
.
toList
());
List
<
TenderApplyDO
>
applyDOList
=
tenderDao
.
listAppTenderApply
(
tenderNewsId
,
userAccountId
);
if
(
userAccountId
==
null
)
{
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
()))
{
for
(
AppTenderInfoDTO
appTenderInfoDTO
:
pageList
)
{
for
(
TenderApplyDO
tenderApplyDO
:
applyDOList
)
{
if
(
tenderApplyDO
.
getTenderInfoId
().
toString
().
equals
(
appTenderInfoDTO
.
getId
().
toString
()))
{
appTenderInfoDTO
.
setApply
(
1
);
break
;
}
...
...
@@ -250,7 +244,7 @@ public class TenderServiceImpl implements TenderService {
@Override
public
ResultBody
listTenderInfoAppLatest
(
Integer
pageNo
,
Integer
pageSize
,
Integer
userAccountId
)
{
TenderNewsDO
tenderNewsDO
=
tenderDao
.
latestTenderNewsDO
();
if
(
tenderNewsDO
==
null
)
{
if
(
tenderNewsDO
==
null
)
{
return
ResultBody
.
success
(
PageResult
.
buildPage
(
pageNo
,
pageSize
,
0
));
}
int
count
=
tenderDao
.
countListTenderInfoApp
(
tenderNewsDO
.
getId
());
...
...
@@ -259,13 +253,13 @@ public class TenderServiceImpl implements TenderService {
List
<
AppTenderInfoDTO
>
pageList
=
list
.
stream
().
map
(
d
->
{
return
d
.
buildAppTenderInfoDTO
();
}).
collect
(
Collectors
.
toList
());
if
(
userAccountId
==
null
)
{
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
()))
{
for
(
AppTenderInfoDTO
appTenderInfoDTO
:
pageList
)
{
for
(
TenderApplyDO
tenderApplyDO
:
applyDOList
)
{
if
(
tenderApplyDO
.
getTenderInfoId
().
toString
().
equals
(
appTenderInfoDTO
.
getId
().
toString
()))
{
appTenderInfoDTO
.
setApply
(
1
);
break
;
}
...
...
@@ -278,8 +272,8 @@ public class TenderServiceImpl implements TenderService {
public
ResultBody
listNewTenderInfo
(
IndustryCaseQO
industryCaseQO
,
LoginSuccessDTO
loginSuccessDTO
,
HttpServletRequest
request
)
{
//查询对应地区的用户, 默认查广东
industryCaseQO
.
setProvinceCode
(
industryCaseQO
.
getProvinceCode
()
==
null
?
440000
:
industryCaseQO
.
getProvinceCode
());
List
<
Integer
>
userIds
=
userAppApi
.
feignListUserAccountIds
(
industryCaseQO
.
getProvinceCode
()
,
industryCaseQO
.
getCityCode
(),
industryCaseQO
.
getDistrictCode
(),
request
.
getHeader
(
TokenConstant
.
TOKEN
));
industryCaseQO
.
setProvinceCode
(
industryCaseQO
.
getProvinceCode
()
==
null
?
440000
:
industryCaseQO
.
getProvinceCode
());
List
<
Integer
>
userIds
=
userAppApi
.
feignListUserAccountIds
(
industryCaseQO
.
getProvinceCode
(),
industryCaseQO
.
getCityCode
(),
industryCaseQO
.
getDistrictCode
(),
request
.
getHeader
(
TokenConstant
.
TOKEN
));
industryCaseQO
.
setUserIds
(
userIds
);
int
count
=
tenderDao
.
countNewListTenderInfo
(
industryCaseQO
);
if
(
count
==
0
)
{
...
...
@@ -296,10 +290,10 @@ public class TenderServiceImpl implements TenderService {
//查出已申请过的并做标记
List
<
Integer
>
applyTenderInfoIds
=
tenderDao
.
listApplyTenderInfoIds
(
tenderInfoIds
,
loginSuccessDTO
.
getUserAccountId
());
if
(
CollectionUtils
.
isNotEmpty
(
applyTenderInfoIds
))
{
pageList
.
forEach
(
d
->
{
if
(
applyTenderInfoIds
.
contains
(
d
.
getId
()))
{
pageList
.
forEach
(
d
->
{
if
(
applyTenderInfoIds
.
contains
(
d
.
getId
()))
{
d
.
setApply
(
1
);
}
else
{
}
else
{
d
.
setApply
(
0
);
}
});
...
...
release-service/src/main/java/com/mmc/csf/release/util/MultipartFileUtil.java
0 → 100644
浏览文件 @
ec03ed85
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
();
}
}
}
release-service/src/main/resources/mapper/tender/TenderDao.xml
浏览文件 @
ec03ed85
...
...
@@ -17,11 +17,12 @@
<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_
title"
property=
"tenderTitle
"
/>
<result
column=
"tender_price"
property=
"tenderPrice"
/>
<result
column=
"is_deleted"
property=
"deleted"
/>
<result
column=
"create_time"
property=
"createTime"
/>
<result
column=
"update_time"
property=
"updateTime"
/>
<result
column=
"tender_content"
property=
"tenderContent"
/>
</resultMap>
<resultMap
id=
"tenderApplyResultMap"
type=
"com.mmc.csf.release.entity.TenderApplyDO"
>
...
...
@@ -36,26 +37,26 @@
<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
"
/>
<result
column=
"tender_
title"
property=
"tenderTitle
"
/>
</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 into tender_news(tender_name,
is_using, port,
create_time)
values (#{tenderName}, #{using}, #{port},
NOW())
</insert>
<insert
id=
"batchAddTenderInfo"
useGeneratedKeys=
"true"
<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)
tender_info(tender_news_id,tender_info_no,tender_
title
,tender_price,create_time)
values
<foreach
item=
"item"
index=
"index"
collection=
"list"
separator=
","
>
(
#{item.tenderNewsId},
#{item.tenderInfoNo},
#{item.tender
Content
},
#{item.tender
Title
},
#{item.tenderPrice},
NOW()
)
...
...
@@ -63,12 +64,15 @@
</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 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 tender_info
set is_deleted = 1
where tender_news_id = #{tenderNewsId}
</update>
<update
id=
"updateTenderNews"
parameterType=
"com.mmc.csf.release.entity.TenderNewsDO"
>
...
...
@@ -88,17 +92,22 @@
</update>
<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
id=
"updateTenderInfo"
>
update tender_info
<set>
<if
test=
" tender
Content
!= null "
>
tender_
content = #{tenderContent
},
<if
test=
" tender
Title
!= null "
>
tender_
title = #{tenderTitle
},
</if>
<if
test=
" tenderPrice != null "
>
tender_price = #{tenderPrice}
tender_price = #{tenderPrice},
</if>
<if
test=
"tenderContent!=null"
>
tender_content = #{tenderContent}
</if>
</set>
where id = #{id}
...
...
@@ -141,12 +150,15 @@
</select>
<select
id=
"countListTenderInfoApp"
resultType=
"java.lang.Integer"
>
select count(*) from tender_info
where is_deleted = 0 and tender_news_id = #{tenderNewsId}
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
select id, tender_news_id, tender_price, tender_info_no, tender_title, is_deleted, create_time,
update_time,tender_content
from tender_info
where is_deleted = 0
<if
test=
" tenderNewsId != null "
>
...
...
@@ -157,12 +169,15 @@
</select>
<select
id=
"countListTenderInfo"
resultType=
"java.lang.Integer"
>
select count(*) from tender_info
where is_deleted = 0 and tender_news_id = #{tenderNewsId}
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
select id, tender_news_id, tender_price, tender_info_no, tender_title, is_deleted, create_time,
update_time,tender_content
from tender_info
where is_deleted = 0
<if
test=
" tenderNewsId != null "
>
...
...
@@ -173,17 +188,26 @@
</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
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}
where user_account_id = #{userAccountId}
and tender_info_id = #{tenderInfoId}
</select>
<select
id=
"countListTenderApply"
resultType=
"java.lang.Integer"
>
SELECT
count(*)
count(*)
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
<if
test=
" tenderNewsId != null "
>
and ta.tender_news_id = #{tenderNewsId}
...
...
@@ -198,20 +222,20 @@
<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
ta.id,
ti.tender_info_no,
ta.user_account_id,
ti.tender_title
,
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
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}
...
...
@@ -227,42 +251,43 @@
</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 ta.id,
ta.tender_info_id,
ti.tender_news_id,
ti.tender_info_no,
ti.tender_title,
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 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
<>
#{id}
and id
<>
#{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
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
...
...
@@ -279,8 +304,9 @@
<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
ti.id, ti.tender_news_id, ti.tender_price, ti.tender_info_no, ti.tender_title, 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 "
>
...
...
@@ -298,7 +324,8 @@
<select
id=
"listApplyTenderInfoIds"
resultType=
"java.lang.Integer"
>
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
<if
test=
"tenderInfoIds != null"
>
<foreach
collection=
"tenderInfoIds"
item=
"id"
index=
"index"
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论