Explorar el Código

群用户v0.01

(cherry picked from commit c532f6beb1e446821abf99a86dba97c5eb9f118a)
MOKASZ\lw12420 hace 2 años
padre
commit
a9e8fa9e1d

+ 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<GroupUsers>>> page(@RequestParam("type") String 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;
+}

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

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

+ 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 String groupUsersType;
+
+}

+ 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);
+
+
+}

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

@@ -0,0 +1,118 @@
+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.entity.groupUsers.Dto.GroupUsersDto;
+import com.webflux.launchadmin.mysql.entity.groupUsers.GroupUsers;
+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;
+
+@Service
+public class GroupUsersServiceImpl implements GroupUsersServiceInterface {
+    @Resource
+    private GroupUsersRepository groupUsersRepository;
+    @Resource
+    private R2dbcEntityTemplate template;
+
+    @Override
+    public Mono<RStatus<Paged<GroupUsers>>> page(String type, int page, int size) {
+        Criteria criteria = Criteria.empty();
+        if (Objects.nonNull(type) && !"".equals(type.trim())) {
+            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<GroupUsers>> pagedMono = Mono.zip(count, created_at).flatMap(f -> {
+            Paged<GroupUsers> groupUsersPaged = new Paged<>(f.getT1(), f.getT2(), page, size);
+            return Mono.just(groupUsersPaged);
+        });
+        return RStatus.successList(pagedMono);
+    }
+
+    @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())));
+    }
+}
+

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

@@ -0,0 +1,20 @@
+package com.webflux.launchadmin.mysql.service.groupUsers;
+
+import com.webflux.launchadmin.mysql.controller.groupUsers.res.DeleteRes;
+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<GroupUsers>>> page(String type, int page, int size);
+
+    Mono<RStatus<DeleteRes>> deletePosterById(Long[] groupUsersId);
+
+    Mono<RStatus<GroupUsers>> saveOrUpdate(GroupUsersDto groupUsersDto);
+
+    Mono<RStatus<GroupUsers>> getById(Long groupUsersId);
+}