|
|
@ -5,6 +5,7 @@ import cn.hutool.core.util.IdUtil; |
|
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
|
import cn.hutool.core.util.StrUtil; |
|
|
|
import cn.hutool.json.JSONUtil; |
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|
|
|
import com.google.common.collect.Sets; |
|
|
@ -13,6 +14,7 @@ import com.tduck.cloud.api.util.HttpUtils; |
|
|
|
import com.tduck.cloud.common.constant.CommonConstants; |
|
|
|
import com.tduck.cloud.common.entity.BaseEntity; |
|
|
|
import com.tduck.cloud.common.util.JsonUtils; |
|
|
|
import com.tduck.cloud.common.util.LoginUserUtil; |
|
|
|
import com.tduck.cloud.common.util.RedisUtils; |
|
|
|
import com.tduck.cloud.common.util.Result; |
|
|
|
import com.tduck.cloud.common.validator.ValidatorUtils; |
|
|
@ -23,10 +25,7 @@ import com.tduck.cloud.project.entity.*; |
|
|
|
import com.tduck.cloud.project.entity.enums.ProjectSourceTypeEnum; |
|
|
|
import com.tduck.cloud.project.entity.enums.ProjectStatusEnum; |
|
|
|
import com.tduck.cloud.project.entity.struct.ItemDefaultValueStruct; |
|
|
|
import com.tduck.cloud.project.request.OperateProjectItemRequest; |
|
|
|
import com.tduck.cloud.project.request.QueryProjectItemRequest; |
|
|
|
import com.tduck.cloud.project.request.QueryProjectRequest; |
|
|
|
import com.tduck.cloud.project.request.SortProjectItemRequest; |
|
|
|
import com.tduck.cloud.project.request.*; |
|
|
|
import com.tduck.cloud.project.service.*; |
|
|
|
import com.tduck.cloud.project.util.SortUtils; |
|
|
|
import com.tduck.cloud.project.vo.OperateProjectItemVO; |
|
|
@ -42,6 +41,7 @@ import lombok.extern.slf4j.Slf4j; |
|
|
|
import me.chanjar.weixin.common.error.WxErrorException; |
|
|
|
import me.chanjar.weixin.mp.api.WxMpService; |
|
|
|
import me.chanjar.weixin.mp.bean.result.WxMpQrCodeTicket; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.springframework.web.bind.annotation.*; |
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest; |
|
|
@ -71,7 +71,7 @@ public class UserProjectController { |
|
|
|
private final WxMpUserService wxMpUserService; |
|
|
|
private final RedisUtils redisUtils; |
|
|
|
private final WxMpService wxMpService; |
|
|
|
|
|
|
|
private final PrPublishRangeService publishRangeService; |
|
|
|
|
|
|
|
/** |
|
|
|
* 创建项目 |
|
|
@ -187,14 +187,32 @@ public class UserProjectController { |
|
|
|
*/ |
|
|
|
@Login |
|
|
|
@PostMapping("/user/project/publish") |
|
|
|
public Result publishProject(@RequestBody UserProjectEntity request) { |
|
|
|
public Result publishProject(@RequestBody PublishProjectRequest request) { |
|
|
|
int count = projectItemService |
|
|
|
.count(Wrappers.<UserProjectItemEntity>lambdaQuery().eq(UserProjectItemEntity::getProjectKey, request.getKey())); |
|
|
|
if (count == CommonConstants.ConstantNumber.ZERO) { |
|
|
|
return Result.failed("无有效表单项,无法发布"); |
|
|
|
} |
|
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(request.getRangeList())) { |
|
|
|
//获取旧的发布范围
|
|
|
|
List<PrPublishRangeEntity> publishRangeList = publishRangeService.list(Wrappers.<PrPublishRangeEntity>lambdaQuery().eq(PrPublishRangeEntity::getProjectKey, request.getKey())); |
|
|
|
if (CollectionUtils.isNotEmpty(publishRangeList)) { |
|
|
|
//删除旧的发布范围
|
|
|
|
publishRangeService.removeByIds(publishRangeList.stream().map(PrPublishRangeEntity::getId).collect(Collectors.toList())); |
|
|
|
} |
|
|
|
//保存发布范围
|
|
|
|
request.getRangeList().forEach(item -> { |
|
|
|
item.setProjectKey(request.getKey()); |
|
|
|
}); |
|
|
|
publishRangeService.saveBatch(request.getRangeList()); |
|
|
|
} |
|
|
|
|
|
|
|
UserProjectEntity entity = projectService.getByKey(request.getKey()); |
|
|
|
entity.setStatus(ProjectStatusEnum.RELEASE); |
|
|
|
if (StringUtils.isNotEmpty(request.getClient())) { |
|
|
|
entity.setClient(request.getClient()); |
|
|
|
} |
|
|
|
return Result.success(projectService.updateById(entity)); |
|
|
|
} |
|
|
|
|
|
|
|