修改活动表单设计器的功能
This commit is contained in:
parent
ba75f988a0
commit
50fff07c73
@ -22,7 +22,7 @@ import java.util.List;
|
|||||||
* @author Lingma
|
* @author Lingma
|
||||||
* @since 2026-01-10
|
* @since 2026-01-10
|
||||||
*/
|
*/
|
||||||
@Tag(name = "ADMIN - 活动与表单关联")
|
@Tag(name = "ADMIN - 活动与表单关联关系")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/activity/form/relation")
|
@RequestMapping("/activity/form/relation")
|
||||||
@LogPrint
|
@LogPrint
|
||||||
@ -33,31 +33,28 @@ public class AdminActivityFormRelationController {
|
|||||||
|
|
||||||
private final IAdminActivityFormRelationService adminActivityFormRelationService;
|
private final IAdminActivityFormRelationService adminActivityFormRelationService;
|
||||||
|
|
||||||
@Operation(summary = "为活动关联表单")
|
|
||||||
@PostMapping("/associate")
|
|
||||||
@SaCheckPermission("mp:admin:activity:form:relation:associate")
|
|
||||||
public ResultBean<Boolean> associateFormWithActivity(
|
|
||||||
@RequestParam Integer activityId,
|
|
||||||
@RequestParam Integer templateId) {
|
|
||||||
Boolean result = adminActivityFormRelationService.associateFormWithActivity(activityId, templateId);
|
|
||||||
return ResultBean.success(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Operation(summary = "解除活动与表单的关联")
|
|
||||||
@DeleteMapping("/disassociate")
|
|
||||||
@SaCheckPermission("mp:admin:activity:form:relation:disassociate")
|
|
||||||
public ResultBean<Boolean> disassociateFormWithActivity(
|
|
||||||
@RequestParam Integer activityId,
|
|
||||||
@RequestParam Integer templateId) {
|
|
||||||
Boolean result = adminActivityFormRelationService.disassociateFormWithActivity(activityId, templateId);
|
|
||||||
return ResultBean.success(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Operation(summary = "获取活动关联的表单列表")
|
@Operation(summary = "获取活动关联的表单列表")
|
||||||
@GetMapping("/{activityId}")
|
@GetMapping("/{activityId}")
|
||||||
@SaCheckPermission("mp:admin:activity:form:relation:list")
|
@SaCheckPermission("mp:admin:activity:form:relation:list")
|
||||||
public ResultBean<List<AdminActivityFormRelationResp>> getFormsByActivity(@PathVariable Integer activityId) {
|
public ResultBean<List<AdminActivityFormRelationResp>> getFormsByActivity(@PathVariable("activityId") Integer activityId) {
|
||||||
List<AdminActivityFormRelationResp> result = adminActivityFormRelationService.getFormsByActivity(activityId);
|
List<AdminActivityFormRelationResp> result = adminActivityFormRelationService.getFormsByActivity(activityId);
|
||||||
return ResultBean.success(result);
|
return ResultBean.success(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "删除活动关联的特定表单")
|
||||||
|
@DeleteMapping("/{id}")
|
||||||
|
@SaCheckPermission("mp:admin:activity:form:relation:delete")
|
||||||
|
public ResultBean<Boolean> deleteFormByActivity(
|
||||||
|
@PathVariable("id") Integer id) {
|
||||||
|
Boolean result = adminActivityFormRelationService.deleteFormRelationById(id);
|
||||||
|
return ResultBean.success(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "设置活动关联表单的默认版本")
|
||||||
|
@PutMapping("/{id}/default-version")
|
||||||
|
@SaCheckPermission("mp:admin:activity:form:relation:set-default")
|
||||||
|
public ResultBean<Boolean> setDefaultVersion( @PathVariable("id") Integer id){
|
||||||
|
Boolean result = adminActivityFormRelationService.setDefaultVersion(id);
|
||||||
|
return ResultBean.success(result);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -9,6 +9,11 @@ import java.util.List;
|
|||||||
@Data
|
@Data
|
||||||
public class AdminActivityFormRelationResp {
|
public class AdminActivityFormRelationResp {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键ID
|
||||||
|
*/
|
||||||
|
@Schema(description = "主键ID")
|
||||||
|
private Integer id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 活动ID
|
* 活动ID
|
||||||
@ -34,22 +39,4 @@ public class AdminActivityFormRelationResp {
|
|||||||
@Schema(description = "版本,如1.0.0")
|
@Schema(description = "版本,如1.0.0")
|
||||||
private String version;
|
private String version;
|
||||||
|
|
||||||
/**
|
|
||||||
* 表单名称
|
|
||||||
*/
|
|
||||||
@Schema(description = "表单名称")
|
|
||||||
private String formName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 表单描述
|
|
||||||
*/
|
|
||||||
@Schema(description = "表单描述")
|
|
||||||
private String fromDescription;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 状态:0-禁用,1-启用
|
|
||||||
*/
|
|
||||||
@Schema(description = "状态:0-禁用,1-启用")
|
|
||||||
private Integer status;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -40,4 +40,19 @@ public interface IAdminActivityFormRelationService {
|
|||||||
*/
|
*/
|
||||||
List<AdminActivityFormRelationResp> getFormsByActivity(Integer activityId);
|
List<AdminActivityFormRelationResp> getFormsByActivity(Integer activityId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除活动关联的特定表单
|
||||||
|
*
|
||||||
|
* @param id ID
|
||||||
|
* @return 操作结果
|
||||||
|
*/
|
||||||
|
Boolean deleteFormRelationById(Integer id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置活动关联表单的默认版本
|
||||||
|
*
|
||||||
|
* @param id ID
|
||||||
|
* @return 操作结果
|
||||||
|
*/
|
||||||
|
Boolean setDefaultVersion(Integer id);
|
||||||
}
|
}
|
||||||
@ -5,20 +5,14 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||||||
import com.seer.teach.mp.admin.controller.resp.AdminActivityFormRelationResp;
|
import com.seer.teach.mp.admin.controller.resp.AdminActivityFormRelationResp;
|
||||||
import com.seer.teach.mp.admin.convert.AdminMpActivityFormRelationConvert;
|
import com.seer.teach.mp.admin.convert.AdminMpActivityFormRelationConvert;
|
||||||
import com.seer.teach.mp.admin.service.IAdminActivityFormRelationService;
|
import com.seer.teach.mp.admin.service.IAdminActivityFormRelationService;
|
||||||
import com.seer.teach.mp.entity.MpActivityFormEntity;
|
|
||||||
import com.seer.teach.mp.entity.MpActivityFormRelationEntity;
|
import com.seer.teach.mp.entity.MpActivityFormRelationEntity;
|
||||||
import com.seer.teach.mp.service.IMpActivityFormRelationService;
|
import com.seer.teach.mp.service.IMpActivityFormRelationService;
|
||||||
import com.seer.teach.mp.service.IMpActivityFormService;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.function.Function;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@ -34,7 +28,6 @@ import java.util.stream.Collectors;
|
|||||||
public class AdminActivityFormRelationServiceImpl implements IAdminActivityFormRelationService {
|
public class AdminActivityFormRelationServiceImpl implements IAdminActivityFormRelationService {
|
||||||
|
|
||||||
private final IMpActivityFormRelationService activityFormTemplateRelationService;
|
private final IMpActivityFormRelationService activityFormTemplateRelationService;
|
||||||
private final IMpActivityFormService activityFormTemplateService;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean associateFormWithActivity(Integer activityId, Integer formId) {
|
public Boolean associateFormWithActivity(Integer activityId, Integer formId) {
|
||||||
@ -44,47 +37,52 @@ public class AdminActivityFormRelationServiceImpl implements IAdminActivityFormR
|
|||||||
@Override
|
@Override
|
||||||
public Boolean disassociateFormWithActivity(Integer activityId, Integer formId) {
|
public Boolean disassociateFormWithActivity(Integer activityId, Integer formId) {
|
||||||
return activityFormTemplateRelationService.remove(
|
return activityFormTemplateRelationService.remove(
|
||||||
new LambdaQueryWrapper<MpActivityFormRelationEntity>()
|
new LambdaQueryWrapper<MpActivityFormRelationEntity>()
|
||||||
.eq(MpActivityFormRelationEntity::getActivityId, activityId)
|
.eq(MpActivityFormRelationEntity::getActivityId, activityId)
|
||||||
.eq(MpActivityFormRelationEntity::getFormId, formId)
|
.eq(MpActivityFormRelationEntity::getFormId, formId)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<AdminActivityFormRelationResp> getFormsByActivity(Integer activityId) {
|
public List<AdminActivityFormRelationResp> getFormsByActivity(Integer activityId) {
|
||||||
if (activityId == null) {
|
if (activityId == null) {
|
||||||
return java.util.Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
List<MpActivityFormRelationEntity> relations = activityFormTemplateRelationService.list(
|
List<MpActivityFormRelationEntity> relations = activityFormTemplateRelationService.list(
|
||||||
new LambdaQueryWrapper<MpActivityFormRelationEntity>()
|
new LambdaQueryWrapper<MpActivityFormRelationEntity>()
|
||||||
.eq(MpActivityFormRelationEntity::getActivityId, activityId)
|
.eq(MpActivityFormRelationEntity::getActivityId, activityId)
|
||||||
);
|
);
|
||||||
if(CollectionUtil.isEmpty(relations)){
|
if (CollectionUtil.isEmpty(relations)) {
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
List<Integer> formIds = relations.stream()
|
|
||||||
.map(MpActivityFormRelationEntity::getFormId)
|
|
||||||
.collect(java.util.stream.Collectors.toList());
|
|
||||||
|
|
||||||
List<MpActivityFormEntity> forms = activityFormTemplateService.list(
|
|
||||||
new LambdaQueryWrapper<MpActivityFormEntity>()
|
|
||||||
.in(MpActivityFormEntity::getId, formIds)
|
|
||||||
);
|
|
||||||
log.info("getFormsByActivity: {}", forms);
|
|
||||||
if(CollectionUtil.isEmpty(forms)){
|
|
||||||
return Collections.emptyList();
|
|
||||||
}
|
|
||||||
Map<Integer, MpActivityFormEntity> mapping = forms.stream().collect(Collectors.toMap(MpActivityFormEntity::getId, Function.identity(), (old, newOne) -> newOne));
|
|
||||||
|
|
||||||
List<AdminActivityFormRelationResp> adminActivityFormRelationRespList = AdminMpActivityFormRelationConvert.INSTANCE.toAdminActivityFormRelationRespList(relations);
|
List<AdminActivityFormRelationResp> adminActivityFormRelationRespList = AdminMpActivityFormRelationConvert.INSTANCE.toAdminActivityFormRelationRespList(relations);
|
||||||
for (AdminActivityFormRelationResp adminActivityFormRelationResp : adminActivityFormRelationRespList) {
|
|
||||||
MpActivityFormEntity activityForm = mapping.get(adminActivityFormRelationResp.getFormId());
|
|
||||||
if(Objects.nonNull(activityForm)){
|
|
||||||
adminActivityFormRelationResp.setFormName(activityForm.getFormName());
|
|
||||||
adminActivityFormRelationResp.setFromDescription(activityForm.getFormDescription());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
log.debug("getFormsByActivity: {}", adminActivityFormRelationRespList);
|
log.debug("getFormsByActivity: {}", adminActivityFormRelationRespList);
|
||||||
return adminActivityFormRelationRespList;
|
return adminActivityFormRelationRespList;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean deleteFormRelationById(Integer id) {
|
||||||
|
return activityFormTemplateRelationService.removeById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean setDefaultVersion(Integer id) {
|
||||||
|
MpActivityFormRelationEntity relation = activityFormTemplateRelationService.getById(id);
|
||||||
|
// 先将同一活动的其他表单版本设为非主要
|
||||||
|
activityFormTemplateRelationService.update(
|
||||||
|
new com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper<MpActivityFormRelationEntity>()
|
||||||
|
.eq(MpActivityFormRelationEntity::getActivityId, relation.getActivityId())
|
||||||
|
.notIn(MpActivityFormRelationEntity::getId, id)
|
||||||
|
.set(MpActivityFormRelationEntity::getIsPrimary, 0)
|
||||||
|
);
|
||||||
|
|
||||||
|
// 然后将指定的表单版本设为主要版本
|
||||||
|
return activityFormTemplateRelationService.update(
|
||||||
|
new com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper<MpActivityFormRelationEntity>()
|
||||||
|
.eq(MpActivityFormRelationEntity::getId, id)
|
||||||
|
.set(MpActivityFormRelationEntity::getIsPrimary, 1)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user