修改活动表单设计器的功能
This commit is contained in:
parent
ba75f988a0
commit
50fff07c73
@ -22,7 +22,7 @@ import java.util.List;
|
||||
* @author Lingma
|
||||
* @since 2026-01-10
|
||||
*/
|
||||
@Tag(name = "ADMIN - 活动与表单关联")
|
||||
@Tag(name = "ADMIN - 活动与表单关联关系")
|
||||
@RestController
|
||||
@RequestMapping("/activity/form/relation")
|
||||
@LogPrint
|
||||
@ -33,31 +33,28 @@ public class AdminActivityFormRelationController {
|
||||
|
||||
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 = "获取活动关联的表单列表")
|
||||
@GetMapping("/{activityId}")
|
||||
@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);
|
||||
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
|
||||
public class AdminActivityFormRelationResp {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@Schema(description = "主键ID")
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* 活动ID
|
||||
@ -34,22 +39,4 @@ public class AdminActivityFormRelationResp {
|
||||
@Schema(description = "版本,如1.0.0")
|
||||
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);
|
||||
|
||||
/**
|
||||
* 删除活动关联的特定表单
|
||||
*
|
||||
* @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.convert.AdminMpActivityFormRelationConvert;
|
||||
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.service.IMpActivityFormRelationService;
|
||||
import com.seer.teach.mp.service.IMpActivityFormService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@ -34,7 +28,6 @@ import java.util.stream.Collectors;
|
||||
public class AdminActivityFormRelationServiceImpl implements IAdminActivityFormRelationService {
|
||||
|
||||
private final IMpActivityFormRelationService activityFormTemplateRelationService;
|
||||
private final IMpActivityFormService activityFormTemplateService;
|
||||
|
||||
@Override
|
||||
public Boolean associateFormWithActivity(Integer activityId, Integer formId) {
|
||||
@ -44,47 +37,52 @@ public class AdminActivityFormRelationServiceImpl implements IAdminActivityFormR
|
||||
@Override
|
||||
public Boolean disassociateFormWithActivity(Integer activityId, Integer formId) {
|
||||
return activityFormTemplateRelationService.remove(
|
||||
new LambdaQueryWrapper<MpActivityFormRelationEntity>()
|
||||
.eq(MpActivityFormRelationEntity::getActivityId, activityId)
|
||||
.eq(MpActivityFormRelationEntity::getFormId, formId)
|
||||
new LambdaQueryWrapper<MpActivityFormRelationEntity>()
|
||||
.eq(MpActivityFormRelationEntity::getActivityId, activityId)
|
||||
.eq(MpActivityFormRelationEntity::getFormId, formId)
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AdminActivityFormRelationResp> getFormsByActivity(Integer activityId) {
|
||||
if (activityId == null) {
|
||||
return java.util.Collections.emptyList();
|
||||
return Collections.emptyList();
|
||||
}
|
||||
List<MpActivityFormRelationEntity> relations = activityFormTemplateRelationService.list(
|
||||
new LambdaQueryWrapper<MpActivityFormRelationEntity>()
|
||||
.eq(MpActivityFormRelationEntity::getActivityId, activityId)
|
||||
new LambdaQueryWrapper<MpActivityFormRelationEntity>()
|
||||
.eq(MpActivityFormRelationEntity::getActivityId, activityId)
|
||||
);
|
||||
if(CollectionUtil.isEmpty(relations)){
|
||||
if (CollectionUtil.isEmpty(relations)) {
|
||||
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);
|
||||
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);
|
||||
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