Procházet zdrojové kódy

Merge branch 'pro' of http://git.mokasz.com/liuwei/launch-webFlux-platform into dev-w

wangcheng před 2 roky
rodič
revize
21bbf3b162

+ 75 - 0
launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/groupUsers/GroupUsersController.java

@@ -0,0 +1,75 @@
+package com.webflux.launchadmin.mysql.controller.groupUsers;
+
+import com.webflux.launchadmin.mysql.controller.groupUsers.res.DeleteRes;
+import com.webflux.launchadmin.mysql.controller.groupUsers.res.GroupUsersRes;
+import com.webflux.launchadmin.mysql.entity.groupUsers.Dto.GroupUsersDto;
+import com.webflux.launchadmin.mysql.entity.groupUsers.GroupUsers;
+import com.webflux.launchadmin.mysql.service.groupUsers.GroupUsersServiceInterface;
+import com.webflux.launchcommon.returnObj.Paged;
+import com.webflux.launchcommon.returnObj.RStatus;
+import jakarta.annotation.Resource;
+import jakarta.validation.constraints.NotNull;
+import org.springframework.data.relational.core.query.Query;
+import org.springframework.web.bind.annotation.*;
+import reactor.core.publisher.Mono;
+
+import java.util.List;
+
+/**
+ * 群用户
+ * @author lw12420
+ * @date 2024/07/10
+ */
+@RestController
+@RequestMapping("in/groupUsers")
+public class GroupUsersController {
+
+    @Resource
+    private GroupUsersServiceInterface groupUsersServiceInterfave;
+
+    /**
+     * 列表查询
+     * @param type
+     * @param page
+     * @param size
+     * @return {@link Mono}<{@link RStatus}<{@link Paged}<{@link GroupUsers}>>>
+     */
+    @GetMapping("page")
+    public Mono<RStatus<Paged<GroupUsersRes>>> page(@RequestParam("type") Integer type,
+                                                 @RequestParam("page")int page,
+                                                 @RequestParam("size")int size){
+       return groupUsersServiceInterfave.page(type, page, size);
+    }
+
+
+    /**
+     * 通过id删除 支持批量 案例:././deleteById/1,2,3
+     * @param groupUsersId
+     * @return {@link Mono}<{@link RStatus}<{@link Long}>>
+     */
+    @DeleteMapping("deleteById/{groupUsersId}")
+    public Mono<RStatus<DeleteRes>> deletePosterById(@PathVariable("groupUsersId") @NotNull Long[]  groupUsersId) {
+        return  groupUsersServiceInterfave.deletePosterById(groupUsersId);
+
+    }
+
+    /**
+     * 新增或修改 (groupUsersId校验是否有值)
+     * @param groupUsersDto
+     * @return {@link Mono}<{@link RStatus}<{@link GroupUsers}>>
+     */
+    @PostMapping("saveOrUpdate")
+    public Mono<RStatus<GroupUsers>> saveOrUpdate(@RequestBody GroupUsersDto groupUsersDto) {
+        return  groupUsersServiceInterfave.saveOrUpdate(groupUsersDto);
+    }
+
+    /**
+     * 回显通过id查询
+     * @param groupUsersId
+     * @return {@link Mono}<{@link RStatus}<{@link GroupUsers}>>
+     */
+    @GetMapping("getById/{groupUsersId}")
+    public Mono<RStatus<GroupUsers>> getById(@PathVariable("groupUsersId") @NotNull Long  groupUsersId) {
+        return  groupUsersServiceInterfave.getById(groupUsersId);
+    }
+}

+ 12 - 0
launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/groupUsers/res/DeleteRes.java

@@ -0,0 +1,12 @@
+package com.webflux.launchadmin.mysql.controller.groupUsers.res;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+public class DeleteRes<T> {
+    private List<T> Ids;
+}

+ 40 - 0
launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/groupUsers/res/GroupUsersRes.java

@@ -0,0 +1,40 @@
+package com.webflux.launchadmin.mysql.controller.groupUsers.res;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.time.ZonedDateTime;
+
+@Data
+public class GroupUsersRes {
+    /**
+     * id 修改必填
+     */
+    private Long groupUsersId;//id
+    /**
+     * 头像
+     */
+    private  String groupUsersHead;
+    /**
+     * 昵称
+     */
+    private String groupUsersNickname;
+
+    /**
+     * 分類
+     */
+    private Integer groupUsersType;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private ZonedDateTime createdAt;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private ZonedDateTime updatedAt;
+
+
+    private String groupUsersName;
+
+    private  String createUser;
+
+    private   String createId;
+
+}

+ 20 - 26
launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/PlanNewCommonController.java

@@ -34,11 +34,10 @@ import java.util.List;
 import java.util.Objects;
 import java.util.Objects;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
+
 /**
 /**
  * 裂变计划通用配置列表
  * 裂变计划通用配置列表
- *
- * @author: wangcheng
- * @date: 2024/7/9 16:10
+ * @date 2024/07/10
  */
  */
 @RestController
 @RestController
 @RequestMapping("in/planNewCommon")
 @RequestMapping("in/planNewCommon")
@@ -49,13 +48,11 @@ public class PlanNewCommonController {
     @Resource
     @Resource
     private GoGenerateService goGenerateService;
     private GoGenerateService goGenerateService;
 
 
+
     /**
     /**
      * 保存计划
      * 保存计划
-     *
-     * @param saveRequest saveRequest
-     * @return reactor.core.publisher.Mono<com.webflux.launchcommon.returnObj.RStatus < java.lang.String>>
-     * @author wangcheng
-     * @date 2024/7/9 16:22
+     * @param saveRequest
+     * @return {@link Mono}<{@link RStatus}<{@link String}>>
      */
      */
     @PostMapping("savePlan")
     @PostMapping("savePlan")
     public Mono<RStatus<String>> savePlan(@RequestBody PlanReq saveRequest) {
     public Mono<RStatus<String>> savePlan(@RequestBody PlanReq saveRequest) {
@@ -74,6 +71,9 @@ public class PlanNewCommonController {
 
 
     /**
     /**
      * 新增计划
      * 新增计划
+     *
+     * @param saveRequest
+     * @return {@link Mono}<{@link RStatus}<{@link String}>>
      */
      */
     private Mono<RStatus<String>> savePlanCommon(PlanReq saveRequest) {
     private Mono<RStatus<String>> savePlanCommon(PlanReq saveRequest) {
         String userName = BaseContextHandler.getUserName();
         String userName = BaseContextHandler.getUserName();
@@ -217,14 +217,12 @@ public class PlanNewCommonController {
                 .insert(PlanNewBackgroupPoster.class).using(entity)).collectList();
                 .insert(PlanNewBackgroupPoster.class).using(entity)).collectList();
     }
     }
 
 
+
     /**
     /**
      * 获取计划详情
      * 获取计划详情
-     *
-     * @param type   type
-     * @param planId planId
-     * @return reactor.core.publisher.Mono<com.webflux.launchcommon.returnObj.RStatus < com.webflux.launchadmin.mysql.entity.planNew.PlanNewCommon>>
-     * @author wangcheng
-     * @date 2024/7/9 18:18
+     * @param type
+     * @param planId
+     * @return {@link Mono}<{@link RStatus}<{@link PlanNewCommon}>>
      */
      */
     @GetMapping("getPlanInfo/{type}/{planId}")
     @GetMapping("getPlanInfo/{type}/{planId}")
     public Mono<RStatus<PlanNewCommon>> planNewInfo(@PathVariable("type") @NotNull Integer type, @PathVariable("planId") @NotNull String planId) {
     public Mono<RStatus<PlanNewCommon>> planNewInfo(@PathVariable("type") @NotNull Integer type, @PathVariable("planId") @NotNull String planId) {
@@ -238,14 +236,12 @@ public class PlanNewCommonController {
         throw new BaseException("type类型错误");
         throw new BaseException("type类型错误");
     }
     }
 
 
+
     /**
     /**
      * 复制计划
      * 复制计划
-     *
-     * @param type   type
-     * @param planId planId
-     * @return reactor.core.publisher.Mono<com.webflux.launchcommon.returnObj.RStatus < java.lang.String>>
-     * @author wangcheng
-     * @date 2024/7/9 19:34
+     * @param type
+     * @param planId
+     * @return {@link Mono}<{@link RStatus}<{@link String}>>
      */
      */
     @GetMapping("copyById/{type}/{planId}")
     @GetMapping("copyById/{type}/{planId}")
     public Mono<RStatus<String>> copyById(@PathVariable("type") @NotNull Integer type, @PathVariable("planId") @NotNull String planId) {
     public Mono<RStatus<String>> copyById(@PathVariable("type") @NotNull Integer type, @PathVariable("planId") @NotNull String planId) {
@@ -314,14 +310,12 @@ public class PlanNewCommonController {
         throw new BaseException("type类型错误");
         throw new BaseException("type类型错误");
     }
     }
 
 
+
     /**
     /**
      * 删除计划
      * 删除计划
-     *
-     * @param type   type
-     * @param planId planId
-     * @return reactor.core.publisher.Mono<com.webflux.launchcommon.returnObj.RStatus < java.lang.Long>>
-     * @author wangcheng
-     * @date 2024/7/9 19:36
+     * @param type
+     * @param planId
+     * @return {@link Mono}<{@link RStatus}<{@link Long}>>
      */
      */
     @DeleteMapping("deleteById/{type}/{planId}")
     @DeleteMapping("deleteById/{type}/{planId}")
     public Mono<RStatus<Long>> deleteById(@PathVariable("type") @NotNull Integer type, @PathVariable("planId") @NotNull String planId) {
     public Mono<RStatus<Long>> deleteById(@PathVariable("type") @NotNull Integer type, @PathVariable("planId") @NotNull String planId) {

+ 25 - 0
launch-admin/src/main/java/com/webflux/launchadmin/mysql/entity/groupUsers/Dto/GroupUsersDto.java

@@ -0,0 +1,25 @@
+package com.webflux.launchadmin.mysql.entity.groupUsers.Dto;
+
+import lombok.Data;
+
+@Data
+public class GroupUsersDto {
+    /**
+     * id 修改必填
+     */
+    private Long groupUsersId;//id
+    /**
+     * 头像
+     */
+    private  String groupUsersHead;
+    /**
+     * 昵称
+     */
+    private String groupUsersNickname;
+
+    /**
+     * 分類
+     */
+    private Integer groupUsersType;
+
+}

+ 1 - 1
launch-admin/src/main/java/com/webflux/launchadmin/mysql/entity/groupUsers/GroupUsers.java

@@ -13,7 +13,7 @@ public record GroupUsers(
         String groupUsersNickname,//昵称
         String groupUsersNickname,//昵称
         @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") ZonedDateTime createdAt,
         @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") ZonedDateTime createdAt,
         @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") ZonedDateTime updatedAt,
         @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") ZonedDateTime updatedAt,
-        String groupUsersType,
+        Integer groupUsersType,
         String createUser,
         String createUser,
         String createId
         String createId
 
 

+ 17 - 0
launch-admin/src/main/java/com/webflux/launchadmin/mysql/repository/groupUsers/GroupUsersRepository.java

@@ -0,0 +1,17 @@
+package com.webflux.launchadmin.mysql.repository.groupUsers;
+
+import com.webflux.launchadmin.mysql.entity.groupUsers.GroupUsers;
+
+import org.springframework.data.domain.Example;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.repository.reactive.ReactiveCrudRepository;
+import org.springframework.stereotype.Repository;
+import reactor.core.publisher.Flux;
+
+@Repository
+public interface GroupUsersRepository extends ReactiveCrudRepository<GroupUsers,Long> {
+    Flux<GroupUsers> findByGroupUsersType(String groupUsersType, Pageable pageable);
+    Flux<GroupUsers> findByGroupUsersType(String groupUsersType);
+
+
+}

+ 155 - 0
launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/groupUsers/GroupUsersServiceImpl.java

@@ -0,0 +1,155 @@
+package com.webflux.launchadmin.mysql.service.groupUsers;
+
+import com.webflux.launchadmin.config.BaseContextHandler;
+import com.webflux.launchadmin.global.BaseException;
+import com.webflux.launchadmin.mysql.controller.groupUsers.res.DeleteRes;
+import com.webflux.launchadmin.mysql.controller.groupUsers.res.GroupUsersRes;
+import com.webflux.launchadmin.mysql.entity.groupUsers.Dto.GroupUsersDto;
+import com.webflux.launchadmin.mysql.entity.groupUsers.GroupUsers;
+import com.webflux.launchadmin.mysql.entity.planNew.GroupType;
+import com.webflux.launchadmin.mysql.entity.planNew.PlanNew;
+import com.webflux.launchadmin.mysql.repository.groupUsers.GroupUsersRepository;
+import com.webflux.launchcommon.returnObj.Paged;
+import com.webflux.launchcommon.returnObj.RStatus;
+import jakarta.annotation.Resource;
+import org.springframework.data.domain.*;
+import org.springframework.data.r2dbc.core.R2dbcEntityTemplate;
+import org.springframework.data.r2dbc.repository.R2dbcRepository;
+import org.springframework.data.relational.core.query.Criteria;
+import org.springframework.data.relational.core.query.Query;
+import org.springframework.stereotype.Service;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+import java.time.ZonedDateTime;
+import java.util.List;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+@Service
+public class GroupUsersServiceImpl implements GroupUsersServiceInterface {
+    @Resource
+    private GroupUsersRepository groupUsersRepository;
+    @Resource
+    private R2dbcEntityTemplate template;
+
+    @Override
+    public Mono<RStatus<Paged<GroupUsersRes>>> page(Integer type, int page, int size) {
+        Criteria criteria = Criteria.empty();
+        if (Objects.nonNull(type) &&type>0) {
+            criteria = criteria.and("group_users_type").is(type);
+        }
+        Query query = Query.query(criteria);
+        int skip = (page - 1) *size;
+        int limit = size;
+        Mono<Long> count = template.count(query, GroupUsers.class);
+        Mono<List<GroupUsers>> created_at = template.select(Query.query(criteria)
+                .offset(skip)
+                .limit(limit)
+                .sort(Sort.by(Sort.Order.desc("created_at"))), GroupUsers.class)
+                .onErrorResume(throwable -> Mono.error(new BaseException("查询失败::error::" + throwable.getMessage())))
+                .collectList();
+        Mono<Paged<GroupUsersRes>> id1 = Mono.zip(count, created_at).flatMap(f -> {
+            List<GroupUsers> t2 = f.getT2();
+            List<Integer> collect = t2.stream()
+                    .filter(f3->Objects.nonNull(f3.groupUsersType()))
+                    .map(GroupUsers::groupUsersType)
+                    .collect(Collectors.toList());
+            if (collect.isEmpty()) {
+                collect.add(0);
+            }
+            Mono<List<GroupType>> id = template.select(Query.query(Criteria.where("id").in(collect)), GroupType.class)
+                    .collectList()
+                    .onErrorResume(throwable -> Mono.error(new BaseException("查询groupType异常" + throwable.getMessage())));
+            return Mono.zip(id, Mono.just(f.getT1()), Mono.just(f.getT2())).flatMap(fff -> {
+                List<GroupUsers> t3 = fff.getT3();
+                Long t21 = fff.getT2();
+                List<GroupType> t1 = fff.getT1();
+                List<GroupUsersRes> collect1 = t3.stream().map(fm -> {
+                    GroupUsersRes groupUsersRes = new GroupUsersRes();
+                    groupUsersRes.setGroupUsersId(fm.groupUsersId());
+                    groupUsersRes.setGroupUsersHead(fm.groupUsersHead());
+                    groupUsersRes.setGroupUsersType(fm.groupUsersType());
+                    groupUsersRes.setGroupUsersNickname(fm.groupUsersNickname());
+                    groupUsersRes.setCreatedAt(fm.createdAt());
+                    groupUsersRes.setCreateUser(fm.createUser());
+                    return groupUsersRes;
+                }).collect(Collectors.toList());
+                collect1.stream().filter(f1 -> Objects.nonNull(f1.getGroupUsersType())).forEach(fe1 -> {
+                    Optional<String> first = t1.stream()
+                            .filter(f11 -> f11.id() == Long.valueOf(fe1.getGroupUsersType()))
+                            .map(GroupType::name).findFirst();
+                    first.ifPresent(fe1::setGroupUsersName);
+                });
+                Paged<GroupUsersRes> groupUsersPaged = new Paged<>(t21, collect1, page, size);
+                return Mono.just(groupUsersPaged);
+            });
+
+        });
+        return RStatus.successList(id1);
+    }
+
+    @Override
+    public Mono<RStatus<DeleteRes>> deletePosterById(Long[] groupUsersId) {
+        Mono<DeleteRes> deleteResMono = groupUsersRepository
+                .deleteAllById(List.of(groupUsersId))
+                .then(Mono.just(new DeleteRes(List.of(groupUsersId))))
+                .onErrorResume(throwable -> Mono.error(new BaseException("删除::error::" + throwable.getMessage())));
+        return RStatus.success(deleteResMono);
+    }
+
+    @Override
+    public Mono<RStatus<GroupUsers>> saveOrUpdate(GroupUsersDto groupUsersDto) {
+        ZonedDateTime now = ZonedDateTime.now();
+        if(Objects.isNull(groupUsersDto.getGroupUsersId())){
+            Mono<GroupUsers> insert = insertGroupUsersMono(groupUsersDto, BaseContextHandler.getUserName(), BaseContextHandler.getUserId(), now);
+            return RStatus.success(insert);
+        }else {
+            Mono<GroupUsers> groupUsersMono = updateGroupUsersMono(groupUsersDto, now);
+            return RStatus.success(groupUsersMono);
+        }
+    }
+
+    @Override
+    public Mono<RStatus<GroupUsers>> getById(Long groupUsersId) {
+        Mono<GroupUsers> groupUsersMono = groupUsersRepository
+                .findById(groupUsersId)
+                .switchIfEmpty( Mono.error(new BaseException("id异常 查询结果为空")))
+                .onErrorResume(throwable -> Mono.error(new BaseException("查询失败::" + throwable.getMessage())));
+        return RStatus.success(groupUsersMono);
+    }
+
+    private Mono<GroupUsers> updateGroupUsersMono(GroupUsersDto groupUsersDto, ZonedDateTime now) {
+        return groupUsersRepository.findById(groupUsersDto.getGroupUsersId())
+                .onErrorResume(throwable -> Mono.error(new BaseException("修改失败::" + throwable.getMessage())))
+                .flatMap(f -> {
+                    GroupUsers groupUsers = new GroupUsers(groupUsersDto.getGroupUsersId(),
+                            groupUsersDto.getGroupUsersHead(),
+                            groupUsersDto.getGroupUsersNickname(),
+                            f.createdAt(),
+                            now,
+                            groupUsersDto.getGroupUsersType(),
+                            f.createUser(),
+                            f.createId()
+                    );
+                 return groupUsersRepository.save(groupUsers)
+                         .onErrorResume(throwable -> Mono.error(new BaseException("修改失败::" + throwable.getMessage())));
+                });
+    }
+
+    private Mono<GroupUsers> insertGroupUsersMono(GroupUsersDto groupUsersDto, String userName, String userId, ZonedDateTime now) {
+        GroupUsers groupUsers = new GroupUsers(groupUsersDto.getGroupUsersId(),
+                groupUsersDto.getGroupUsersHead(),
+                groupUsersDto.getGroupUsersNickname(),
+                now,
+               null,
+                groupUsersDto.getGroupUsersType(),
+                userName,
+                userId
+        );
+        return template.insert(groupUsers)
+                .onErrorResume(throwable -> Mono.error(new BaseException("插入失败::"+ throwable.getMessage())));
+    }
+}
+

+ 21 - 0
launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/groupUsers/GroupUsersServiceInterface.java

@@ -0,0 +1,21 @@
+package com.webflux.launchadmin.mysql.service.groupUsers;
+
+import com.webflux.launchadmin.mysql.controller.groupUsers.res.DeleteRes;
+import com.webflux.launchadmin.mysql.controller.groupUsers.res.GroupUsersRes;
+import com.webflux.launchadmin.mysql.entity.groupUsers.Dto.GroupUsersDto;
+import com.webflux.launchadmin.mysql.entity.groupUsers.GroupUsers;
+import com.webflux.launchcommon.returnObj.Paged;
+import com.webflux.launchcommon.returnObj.RStatus;
+import reactor.core.publisher.Mono;
+
+import java.util.List;
+
+public interface GroupUsersServiceInterface {
+    Mono<RStatus<Paged<GroupUsersRes>>> page(Integer type, int page, int size);
+
+    Mono<RStatus<DeleteRes>> deletePosterById(Long[] groupUsersId);
+
+    Mono<RStatus<GroupUsers>> saveOrUpdate(GroupUsersDto groupUsersDto);
+
+    Mono<RStatus<GroupUsers>> getById(Long groupUsersId);
+}