Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
training-project
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
hqzhdj
training-project
Commits
eb433873
Commit
eb433873
authored
Dec 20, 2024
by
梅存智
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into 'master'
管理端活动服务需求优化 See merge request
!4
parents
937950c9
b97b5d95
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
297 additions
and
24 deletions
+297
-24
cloud-training-project-api/src/main/java/com/yizhi/training/application/vo/domain/TrainingProjectSaveVo.java
+51
-4
cloud-training-project-api/src/main/java/com/yizhi/training/application/vo/domain/TrainingProjectVo.java
+55
-6
cloud-training-project-service/src/main/java/com/yizhi/training/application/controller/TrainingProjectController.java
+10
-1
cloud-training-project-service/src/main/java/com/yizhi/training/application/domain/TrainingProject.java
+14
-5
cloud-training-project-service/src/main/java/com/yizhi/training/application/mapper/TrainingProjectDetailsImageMapper.java
+44
-0
cloud-training-project-service/src/main/java/com/yizhi/training/application/mapper/TrainingProjectDetailsImageMapper.xml
+23
-0
cloud-training-project-service/src/main/java/com/yizhi/training/application/mapper/TrainingProjectMapper.xml
+8
-1
cloud-training-project-service/src/main/java/com/yizhi/training/application/service/impl/TrainingProjectServiceImpl.java
+92
-7
No files found.
cloud-training-project-api/src/main/java/com/yizhi/training/application/vo/domain/TrainingProjectSaveVo.java
View file @
eb433873
package
com
.
yizhi
.
training
.
application
.
vo
.
domain
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
import
com.baomidou.mybatisplus.activerecord.Model
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.yizhi.training.application.vo.api.TrainingProjectDetailsImageVO
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
* <p>
* 培训项目主体表(报名、签到 是在报名签到表中记录项目id,论坛是单独的关系表)
...
...
@@ -131,6 +133,51 @@ public class TrainingProjectSaveVo extends Model<TrainingProjectSaveVo> {
@ApiModelProperty
(
value
=
"权重"
)
private
Integer
weight
;
@ApiModelProperty
(
value
=
"活动类型的ID,从site_dic获取(当业务类型是1时是这些枚举值)"
)
private
Integer
activityType
;
@ApiModelProperty
(
value
=
"业务类型:1活动服务;2培训测试"
)
private
Integer
bizType
;
@ApiModelProperty
(
value
=
"活动CODE"
)
private
String
activityCode
;
@ApiModelProperty
(
value
=
"副标题"
)
private
String
subtitle
;
@ApiModelProperty
(
value
=
"图片来源"
)
private
String
pictureSource
;
@ApiModelProperty
(
value
=
"活动地址"
)
private
String
activityAddress
;
@ApiModelProperty
(
value
=
"组织方"
)
private
String
organizer
;
@ApiModelProperty
(
value
=
"协办方"
)
private
String
coOrganizer
;
@ApiModelProperty
(
value
=
"温馨提示"
)
private
String
tips
;
@ApiModelProperty
(
value
=
"其它提示"
)
private
String
other
;
@ApiModelProperty
(
value
=
"是否置顶:false否;true是"
)
private
Boolean
topUp
;
@ApiModelProperty
(
value
=
"关联投票ID"
)
private
Long
researchId
;
@ApiModelProperty
(
value
=
"上传视频地址"
)
private
String
videoUrl
;
@ApiModelProperty
(
value
=
"活动奖励"
)
private
String
activityReward
;
@ApiModelProperty
(
value
=
"上传图片"
)
private
List
<
TrainingProjectDetailsImageVO
>
detailsImage
;
@Override
protected
Serializable
pkVal
()
{
return
this
.
id
;
...
...
cloud-training-project-api/src/main/java/com/yizhi/training/application/vo/domain/TrainingProjectVo.java
View file @
eb433873
package
com
.
yizhi
.
training
.
application
.
vo
.
domain
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
import
com.baomidou.mybatisplus.activerecord.Model
;
import
com.baomidou.mybatisplus.annotations.TableField
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.yizhi.training.application.vo.api.TrainingProjectDetailsImageVO
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
* <p>
* 培训项目主体表(报名、签到 是在报名签到表中记录项目id,论坛是单独的关系表)
...
...
@@ -156,12 +157,60 @@ public class TrainingProjectVo extends Model<TrainingProjectVo> {
@ApiModelProperty
(
value
=
"签到结束时间"
)
private
Date
signEndTime
;
@ApiModelProperty
(
value
=
"活动类型
CODE
"
)
@ApiModelProperty
(
value
=
"活动类型
的ID,从site_dic获取(当业务类型是1时是这些枚举值)
"
)
private
Integer
activityType
;
@ApiModelProperty
(
value
=
"业务类型:1活动服务;2培训测试"
)
private
Integer
bizType
;
@ApiModelProperty
(
value
=
"活动CODE"
)
private
String
activityCode
;
@ApiModelProperty
(
value
=
"副标题"
)
private
String
subtitle
;
@ApiModelProperty
(
value
=
"图片来源"
)
private
String
pictureSource
;
@ApiModelProperty
(
value
=
"活动地址"
)
private
String
activityAddress
;
@ApiModelProperty
(
value
=
"组织方"
)
private
String
organizer
;
@ApiModelProperty
(
value
=
"协办方"
)
private
String
coOrganizer
;
@ApiModelProperty
(
value
=
"温馨提示"
)
private
String
tips
;
@ApiModelProperty
(
value
=
"其它提示"
)
private
String
other
;
@ApiModelProperty
(
value
=
"是否置顶:false否;true是"
)
private
Boolean
topUp
;
@ApiModelProperty
(
value
=
"关联投票ID"
)
private
Long
researchId
;
@ApiModelProperty
(
value
=
"上传视频地址"
)
private
String
videoUrl
;
@ApiModelProperty
(
value
=
"活动奖励"
)
private
String
activityReward
;
@ApiModelProperty
(
value
=
"上传图片"
)
private
List
<
TrainingProjectDetailsImageVO
>
detailsImage
;
@ApiModelProperty
(
value
=
"报名人数"
)
private
String
enrollCount
;
@ApiModelProperty
(
value
=
"签到人数"
)
private
String
signCount
;
@ApiModelProperty
(
value
=
"评论人数"
)
private
String
commentCount
;
@Override
protected
Serializable
pkVal
()
{
return
this
.
id
;
...
...
cloud-training-project-service/src/main/java/com/yizhi/training/application/controller/TrainingProjectController.java
View file @
eb433873
...
...
@@ -23,6 +23,7 @@ import com.yizhi.training.application.job.Process2PlatTrainingProject;
import
com.yizhi.training.application.job.ProcessFinishedRecordCacheJob
;
import
com.yizhi.training.application.mapper.TpPlanMapper
;
import
com.yizhi.training.application.mapper.TpViewRecordMapper
;
import
com.yizhi.training.application.mapper.TrainingProjectDetailsImageMapper
;
import
com.yizhi.training.application.model.BaseModel
;
import
com.yizhi.training.application.param.PaidTrainingProjectQO
;
import
com.yizhi.training.application.param.TrainingProjectParam
;
...
...
@@ -95,6 +96,9 @@ public class TrainingProjectController {
@Autowired
private
RedisDistributedLock
redisDistributedLock
;
@Autowired
private
TrainingProjectDetailsImageMapper
trainingProjectDetailsImageMapper
;
@GetMapping
(
value
=
"/list"
)
public
Page
<
TrainingProject
>
list
(
@RequestBody
SearchProjectVo
searchProjectVo
)
{
Page
<
TrainingProject
>
page
=
trainingProjectService
...
...
@@ -505,7 +509,12 @@ public class TrainingProjectController {
*/
@GetMapping
(
"/one/get"
)
public
TrainingProject
getOne
(
@RequestParam
(
"id"
)
Long
id
)
{
return
trainingProjectService
.
selectById
(
id
);
TrainingProject
trainingProject
=
trainingProjectService
.
selectById
(
id
);
if
(
trainingProject
!=
null
){
List
<
TrainingProjectDetailsImageVO
>
detailsImage
=
trainingProjectDetailsImageMapper
.
selectTrainingProjectDetailsImage
(
id
);
trainingProject
.
setDetailsImage
(
detailsImage
);
}
return
trainingProject
;
}
/**
...
...
cloud-training-project-service/src/main/java/com/yizhi/training/application/domain/TrainingProject.java
View file @
eb433873
package
com
.
yizhi
.
training
.
application
.
domain
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
import
com.baomidou.mybatisplus.activerecord.Model
;
import
com.baomidou.mybatisplus.annotations.TableField
;
import
com.baomidou.mybatisplus.annotations.TableName
;
import
com.baomidou.mybatisplus.enums.FieldFill
;
import
com.yizhi.training.application.vo.api.TrainingProjectDetailsImageVO
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
* <p>
* 培训项目主体表(报名、签到 是在报名签到表中记录项目id,论坛是单独的关系表)
...
...
@@ -168,7 +170,7 @@ public class TrainingProject extends Model<TrainingProject> {
@ApiModelProperty
(
value
=
"副标题"
)
private
String
subtitle
;
@ApiModelProperty
(
value
=
"活动类型
:1支部主题党日;2特色活动;3献计献策;4其他
(当业务类型是1时是这些枚举值)"
)
@ApiModelProperty
(
value
=
"活动类型
的ID,从site_dic获取
(当业务类型是1时是这些枚举值)"
)
private
String
activityType
;
@ApiModelProperty
(
value
=
"图片来源"
)
...
...
@@ -198,6 +200,13 @@ public class TrainingProject extends Model<TrainingProject> {
@ApiModelProperty
(
value
=
"视频地址"
)
private
String
videoUrl
;
@ApiModelProperty
(
value
=
"活动奖励"
)
private
String
activityReward
;
@ApiModelProperty
(
value
=
"上传图片"
)
@TableField
(
exist
=
false
)
private
List
<
TrainingProjectDetailsImageVO
>
detailsImage
;
@Override
protected
Serializable
pkVal
()
{
return
this
.
id
;
...
...
cloud-training-project-service/src/main/java/com/yizhi/training/application/mapper/TrainingProjectDetailsImageMapper.java
0 → 100644
View file @
eb433873
package
com
.
yizhi
.
training
.
application
.
mapper
;
import
java.util.List
;
import
org.apache.ibatis.annotations.Param
;
import
com.baomidou.mybatisplus.mapper.BaseMapper
;
import
com.yizhi.training.application.domain.TrainingProjectDetailsImage
;
import
com.yizhi.training.application.vo.api.TrainingProjectDetailsImageVO
;
/**
* <p>
* 培训项目 - 详情图片 Mapper 接口
* </p>
*
* @author shengchenglong
* @since 2018-03-27
*/
public
interface
TrainingProjectDetailsImageMapper
extends
BaseMapper
<
TrainingProjectDetailsImage
>
{
/**
* 获取最大Sort
* @param trainingId
* @return
*/
Integer
selectMaxSort
(
@Param
(
"projectId"
)
Long
projectId
);
/**
* 获取项目关联图片
* @param projectId
* @return
*/
List
<
TrainingProjectDetailsImageVO
>
selectTrainingProjectDetailsImage
(
@Param
(
"projectId"
)
Long
projectId
);
/**
* 删除项目关联图片
* @param id
* @param updateById
* @param updateByName
* @return
*/
Integer
deleImg
(
@Param
(
"id"
)
Long
id
,
@Param
(
"updateById"
)
Long
updateById
,
@Param
(
"updateByName"
)
String
updateByName
);
}
cloud-training-project-service/src/main/java/com/yizhi/training/application/mapper/TrainingProjectDetailsImageMapper.xml
0 → 100644
View file @
eb433873
<?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.yizhi.training.application.mapper.TrainingProjectDetailsImageMapper"
>
<select
id=
"selectMaxSort"
resultType=
"java.lang.Integer"
>
SELECT MAX(sort) AS sort
FROM training_project_details_image
WHERE training_id=#{projectId} AND deleted=0
</select>
<select
id=
"selectTrainingProjectDetailsImage"
resultType=
"com.yizhi.training.application.vo.api.TrainingProjectDetailsImageVO"
>
SELECT id,training_id,img,sort
FROM training_project_details_image
WHERE training_id=#{projectId} AND deleted=0
</select>
<update
id=
"deleImg"
>
UPDATE training_project_details_image
SET deleted=1, update_by_id=#{updateById},update_by_name=#{updateByName},update_time=NOW()
WHERE id=#{id}
</update>
</mapper>
cloud-training-project-service/src/main/java/com/yizhi/training/application/mapper/TrainingProjectMapper.xml
View file @
eb433873
...
...
@@ -130,9 +130,15 @@
tp.enable_queue as enableQueue,
enroll.actual_price as actualPrice,
enroll.original_price as originalPrice,
enroll.enable_pay as enablePay
enroll.enable_pay as enablePay,
COUNT(DISTINCT enr.account_id) AS enrollCount,
COUNT(DISTINCT sre.account_id) AS signCount,
COUNT(DISTINCT comm.create_by_id) AS commentCount
FROM training_project tp
left join tr_enroll enroll on tp.id = enroll.training_project_id
left join tp_student_enroll_passed enr on tp.id=enr.training_project_id
left join tr_sign_record sre on tp.id=sre.training_project_id
left join tp_comment comm on tp.id=comm.training_project_id AND comm.biz_type=1
<where>
tp.deleted = 0
<if
test=
"enableEnroll != null"
>
...
...
@@ -159,6 +165,7 @@
</if>
</where>
GROUP BY tp.id
ORDER BY tp.`create_time` DESC
</select>
...
...
cloud-training-project-service/src/main/java/com/yizhi/training/application/service/impl/TrainingProjectServiceImpl.java
View file @
eb433873
...
...
@@ -50,6 +50,7 @@ import com.yizhi.training.application.domain.TpStudentEnrollPassed;
import
com.yizhi.training.application.domain.TpStudentProjectRecord
;
import
com.yizhi.training.application.domain.TpViewRecord
;
import
com.yizhi.training.application.domain.TrainingProject
;
import
com.yizhi.training.application.domain.TrainingProjectDetailsImage
;
import
com.yizhi.training.application.enums.TrEnrollStatusEnum
;
import
com.yizhi.training.application.mapper.TpAuthorizationRangeMapper
;
import
com.yizhi.training.application.mapper.TpPlanActivityConditionPostMapper
;
...
...
@@ -64,6 +65,7 @@ import com.yizhi.training.application.mapper.TpStudentActivityRecordMapper;
import
com.yizhi.training.application.mapper.TpStudentEnrollPassedMapper
;
import
com.yizhi.training.application.mapper.TpStudentProjectRecordMapper
;
import
com.yizhi.training.application.mapper.TpViewRecordMapper
;
import
com.yizhi.training.application.mapper.TrainingProjectDetailsImageMapper
;
import
com.yizhi.training.application.mapper.TrainingProjectMapper
;
import
com.yizhi.training.application.model.BaseModel
;
import
com.yizhi.training.application.param.PaidTrainingProjectQO
;
...
...
@@ -171,6 +173,9 @@ public class TrainingProjectServiceImpl extends ServiceImpl<TrainingProjectMappe
@Autowired
ResearchClient
researchClient
;
@Autowired
private
TrainingProjectDetailsImageMapper
trainingProjectDetailsImageMapper
;
private
static
final
String
ACTIVITY_KEY
=
"activity"
;
private
static
final
String
REDIS_PRO_ACTIVITY_TYPE_KEY
=
"REDIS_PRO_ACTIVITY_TYPE"
;
...
...
@@ -220,6 +225,27 @@ public class TrainingProjectServiceImpl extends ServiceImpl<TrainingProjectMappe
public
TrainingProject
save
(
TrainingProject
trainingProject
)
{
trainingProject
.
setId
(
idGenerator
.
generate
());
trainingProjectMapper
.
insert
(
trainingProject
);
//保存项目图片
if
(!
CollectionUtils
.
isEmpty
(
trainingProject
.
getDetailsImage
()))
{
TrainingProjectDetailsImage
saveImg
=
new
TrainingProjectDetailsImage
();
int
sort
=
0
;
for
(
TrainingProjectDetailsImageVO
item
:
trainingProject
.
getDetailsImage
()){
item
.
setId
(
idGenerator
.
generate
());
item
.
setTrainingId
(
trainingProject
.
getId
());
item
.
setCreateById
(
trainingProject
.
getCreateById
());
item
.
setCreateByName
(
trainingProject
.
getCreateByName
());
item
.
setCreateTime
(
trainingProject
.
getCreateTime
());
item
.
setUpdateById
(
trainingProject
.
getCreateById
());
item
.
setUpdateByName
(
trainingProject
.
getCreateByName
());
item
.
setUpdateTime
(
trainingProject
.
getCreateTime
());
item
.
setSort
(++
sort
);
BeanUtils
.
copyProperties
(
item
,
saveImg
);
trainingProjectDetailsImageMapper
.
insert
(
saveImg
);
}
}
return
trainingProject
;
}
...
...
@@ -243,7 +269,63 @@ public class TrainingProjectServiceImpl extends ServiceImpl<TrainingProjectMappe
LOGGER
.
info
(
"删除项目报名结果;1成功;-1失败: projectId = {} , result = {}"
,
trainingProject
,
result
);
}
}
return
trainingProjectMapper
.
selectById
(
trainingProject
.
getId
());
//保存项目图片
if
(!
CollectionUtils
.
isEmpty
(
trainingProject
.
getDetailsImage
()))
{
TrainingProjectDetailsImage
saveImg
=
new
TrainingProjectDetailsImage
();
Integer
sort
=
trainingProjectDetailsImageMapper
.
selectMaxSort
(
trainingProject
.
getId
());
for
(
TrainingProjectDetailsImageVO
item
:
trainingProject
.
getDetailsImage
()){
if
(
item
.
getId
()
==
null
){
item
.
setId
(
idGenerator
.
generate
());
item
.
setTrainingId
(
trainingProject
.
getId
());
item
.
setCreateById
(
trainingProject
.
getUpdateById
());
item
.
setCreateByName
(
trainingProject
.
getUpdateByName
());
item
.
setCreateTime
(
trainingProject
.
getUpdateTime
());
}
item
.
setUpdateById
(
trainingProject
.
getUpdateById
());
item
.
setUpdateByName
(
trainingProject
.
getUpdateByName
());
item
.
setUpdateTime
(
trainingProject
.
getUpdateTime
());
item
.
setSort
(++
sort
);
BeanUtils
.
copyProperties
(
item
,
saveImg
);
trainingProjectDetailsImageMapper
.
insert
(
saveImg
);
}
//删除不存在的项目图片
RequestContext
context
=
ContextHolder
.
get
();
List
<
TrainingProjectDetailsImageVO
>
oldImgs
=
trainingProjectDetailsImageMapper
.
selectTrainingProjectDetailsImage
(
trainingProject
.
getId
());
if
(!
CollectionUtils
.
isEmpty
(
oldImgs
))
{
boolean
isDel
=
true
;
for
(
TrainingProjectDetailsImageVO
oldItem
:
oldImgs
){
isDel
=
true
;
for
(
TrainingProjectDetailsImageVO
item
:
trainingProject
.
getDetailsImage
()){
if
(
oldItem
.
getId
().
equals
(
item
.
getId
())){
isDel
=
false
;
break
;
}
}
if
(
isDel
){
trainingProjectDetailsImageMapper
.
deleImg
(
oldItem
.
getId
(),
context
.
getAccountId
(),
context
.
getAccountName
());
}
}
}
}
else
{
//删除不存在的项目图片
RequestContext
context
=
ContextHolder
.
get
();
List
<
TrainingProjectDetailsImageVO
>
oldImgs
=
trainingProjectDetailsImageMapper
.
selectTrainingProjectDetailsImage
(
trainingProject
.
getId
());
if
(!
CollectionUtils
.
isEmpty
(
oldImgs
))
{
for
(
TrainingProjectDetailsImageVO
oldItem
:
oldImgs
){
trainingProjectDetailsImageMapper
.
deleImg
(
oldItem
.
getId
(),
context
.
getAccountId
(),
context
.
getAccountName
());
}
}
}
TrainingProject
project
=
trainingProjectMapper
.
selectById
(
trainingProject
.
getId
());
project
.
setDetailsImage
(
trainingProject
.
getDetailsImage
());
return
project
;
}
@Override
...
...
@@ -718,12 +800,15 @@ public class TrainingProjectServiceImpl extends ServiceImpl<TrainingProjectMappe
addViewRecord
(
accountId
,
context
,
project
,
now
);
//获取投票ID和名称
if
(
project
.
getResearchId
()
!=
null
){
ResearchVo
researchVo
=
researchClient
.
viewInfo
(
project
.
getResearchId
());
if
(
researchVo
!=
null
){
introductionVo
.
setResearchId
(
researchVo
.
getId
());
introductionVo
.
setResearchName
(
researchVo
.
getName
());
}
TpPlanActivity
tpPlanActivity
=
new
TpPlanActivity
();
tpPlanActivity
.
setDeleted
(
0
);
tpPlanActivity
.
setType
(
2
);
tpPlanActivity
.
setTrainingProjectId
(
trainingProjectId
);
EntityWrapper
<
TpPlanActivity
>
wrapper
=
new
EntityWrapper
<
TpPlanActivity
>(
tpPlanActivity
);
List
<
TpPlanActivity
>
planActivitys
=
tpPlanActivityMapper
.
selectList
(
wrapper
);
if
(!
CollectionUtils
.
isEmpty
(
planActivitys
)){
introductionVo
.
setResearchId
(
planActivitys
.
get
(
0
).
getRelationId
());
introductionVo
.
setResearchName
(
planActivitys
.
get
(
0
).
getName
());
}
/**
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment