| | |
| | | import cc.mrbird.febs.common.enumerates.*; |
| | | import cc.mrbird.febs.common.exception.FebsException; |
| | | import cc.mrbird.febs.common.utils.LoginUserUtil; |
| | | import cc.mrbird.febs.mall.dto.ApiColletDelDto; |
| | | import cc.mrbird.febs.mall.dto.clothes.*; |
| | | import cc.mrbird.febs.mall.entity.*; |
| | | import cc.mrbird.febs.mall.mapper.*; |
| | | import cc.mrbird.febs.mall.service.ApiClothesSocialService; |
| | | import cc.mrbird.febs.mall.vo.activity.ApiScCategoryInfoVo; |
| | | import cc.mrbird.febs.mall.vo.clothes.*; |
| | | import cc.mrbird.febs.rabbit.producter.AgentProducer; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import cn.hutool.json.JSON; |
| | | import cn.hutool.json.JSONObject; |
| | | import cn.hutool.json.JSONUtil; |
| | |
| | | private final ClothesLocationRemarkMapper clothesLocationRemarkMapper; |
| | | private final ClothesPatternRemarkMapper clothesPatternRemarkMapper; |
| | | private final ClothesSocialCommentMapper clothesSocialCommentMapper; |
| | | private final AgentProducer agentProducer; |
| | | |
| | | |
| | | @Override |
| | | public FebsResponse allCategory() { |
| | | List<ApiClothesCategoryInfoVo> vos = new ArrayList<>(); |
| | | ApiClothesCategoryInfoVo apiClothesCategoryInfoVo = new ApiClothesCategoryInfoVo(); |
| | | apiClothesCategoryInfoVo.setId(0L); |
| | | apiClothesCategoryInfoVo.setName("全部"); |
| | | apiClothesCategoryInfoVo.setType(2); |
| | | vos.add(apiClothesCategoryInfoVo); |
| | | List<ClothesSocialCategory> list = clothesSocialCategoryMapper.selectList( |
| | | Wrappers.lambdaQuery(ClothesSocialCategory.class) |
| | | .select(ClothesSocialCategory::getId, ClothesSocialCategory::getName) |
| | |
| | | .orderByAsc(ClothesSocialCategory::getOrderCnt) |
| | | ); |
| | | if(CollUtil.isNotEmpty(list)){ |
| | | vos = buildApiClothesCategoryInfoVo(list, vos); |
| | | vos = buildApiClothesCategoryInfoVo(list, vos,2); |
| | | } |
| | | ApiClothesCategoryInfoVo apiClothesCategoryInfoVo = new ApiClothesCategoryInfoVo(); |
| | | apiClothesCategoryInfoVo.setId(0L); |
| | | apiClothesCategoryInfoVo.setName("全部"); |
| | | vos.add(apiClothesCategoryInfoVo); |
| | | |
| | | return new FebsResponse().success().data(vos); |
| | | } |
| | | |
| | | private List<ApiClothesCategoryInfoVo> buildApiClothesCategoryInfoVo(List<ClothesSocialCategory> list, List<ApiClothesCategoryInfoVo> vos) { |
| | | private List<ApiClothesCategoryInfoVo> buildApiClothesCategoryInfoVo(List<ClothesSocialCategory> list, List<ApiClothesCategoryInfoVo> vos,Integer type) { |
| | | for (ClothesSocialCategory entity : list) { |
| | | ApiClothesCategoryInfoVo vo = new ApiClothesCategoryInfoVo(); |
| | | vo.setId(entity.getId()); |
| | | vo.setName(entity.getName()); |
| | | vo.setType(type); |
| | | vos.add(vo); |
| | | } |
| | | return vos; |
| | |
| | | .orderByAsc(ClothesSocialCategory::getOrderCnt) |
| | | ); |
| | | if(CollUtil.isNotEmpty(list)){ |
| | | vos = buildApiClothesCategoryInfoVo(list, vos); |
| | | vos = buildApiClothesCategoryInfoVo(list, vos,1); |
| | | } |
| | | return new FebsResponse().success().data(vos); |
| | | } |
| | |
| | | // 调用Mapper方法获取活动分页数据 |
| | | Page<ApiAllSocialVo> voPage = clothesSocialMapper.selectPageInSocial(page, dto); |
| | | |
| | | List<ApiAllSocialVo> vos = voPage.getRecords(); |
| | | if (CollUtil.isNotEmpty(vos)) { |
| | | Set<Long> socialIds = vos.stream() |
| | | .map(ApiAllSocialVo::getId) |
| | | .filter(Objects::nonNull) |
| | | .collect(Collectors.toSet()); |
| | | |
| | | if (CollUtil.isNotEmpty(socialIds)) { |
| | | List<ClothesSocialFollow> clothesSocialFollows = clothesSocialFollowMapper.selectList( |
| | | Wrappers.lambdaQuery(ClothesSocialFollow.class) |
| | | .select(ClothesSocialFollow::getId, ClothesSocialFollow::getSourceId) |
| | | .in(ClothesSocialFollow::getSourceId, socialIds) |
| | | .eq(ClothesSocialFollow::getSourceType, SocialSourceTypeEnum.SOCIAL.getValue()) |
| | | ); |
| | | |
| | | Map<Long, Long> likeCountBySocialIdMap = new HashMap<>(); |
| | | if (CollUtil.isNotEmpty(clothesSocialFollows)) { |
| | | likeCountBySocialIdMap = clothesSocialFollows.stream() |
| | | .collect(Collectors.groupingBy(ClothesSocialFollow::getSourceId, Collectors.counting())); |
| | | } |
| | | |
| | | for (ApiAllSocialVo item : vos){ |
| | | item.setLikeCnt(likeCountBySocialIdMap.getOrDefault(item.getId(), 0L).intValue()); |
| | | } |
| | | } |
| | | } |
| | | // List<ApiAllSocialVo> vos = voPage.getRecords(); |
| | | // if (CollUtil.isNotEmpty(vos)) { |
| | | // Set<Long> socialIds = vos.stream() |
| | | // .map(ApiAllSocialVo::getId) |
| | | // .filter(Objects::nonNull) |
| | | // .collect(Collectors.toSet()); |
| | | // |
| | | // if (CollUtil.isNotEmpty(socialIds)) { |
| | | // List<ClothesSocialFollow> clothesSocialFollows = clothesSocialFollowMapper.selectList( |
| | | // Wrappers.lambdaQuery(ClothesSocialFollow.class) |
| | | // .select(ClothesSocialFollow::getId, ClothesSocialFollow::getSourceId) |
| | | // .in(ClothesSocialFollow::getSourceId, socialIds) |
| | | // .eq(ClothesSocialFollow::getSourceType, SocialSourceTypeEnum.SOCIAL.getValue()) |
| | | // ); |
| | | // |
| | | // Map<Long, Long> likeCountBySocialIdMap = new HashMap<>(); |
| | | // if (CollUtil.isNotEmpty(clothesSocialFollows)) { |
| | | // likeCountBySocialIdMap = clothesSocialFollows.stream() |
| | | // .collect(Collectors.groupingBy(ClothesSocialFollow::getSourceId, Collectors.counting())); |
| | | // } |
| | | // |
| | | // for (ApiAllSocialVo item : vos){ |
| | | // item.setLikeCnt(likeCountBySocialIdMap.getOrDefault(item.getId(), 0L).intValue()); |
| | | // } |
| | | // } |
| | | // } |
| | | |
| | | return new FebsResponse().success().data(voPage); |
| | | } |
| | |
| | | apiSocialInfoVo.setContent(clothesSocial.getContent()); |
| | | apiSocialInfoVo.setCreatedTime(clothesSocial.getCreatedTime()); |
| | | apiSocialInfoVo.setCommentState(clothesSocial.getCommentState()); |
| | | apiSocialInfoVo.setLikeCnt(clothesSocial.getLikeCnt()); |
| | | apiSocialInfoVo.setCollectCnt(clothesSocial.getCollectCnt()); |
| | | |
| | | List<ClothesSocialFile> clothesSocialFiles = clothesSocialFileMapper.selectList( |
| | | Wrappers.lambdaQuery(ClothesSocialFile.class) |
| | |
| | | apiSocialMuseVo.setTypeImg(clothesType.getImage()); |
| | | } |
| | | ClothesSize clothesSize = clothesSizeMapper.selectById(clothesSocialMuse.getSizeId()); |
| | | if(ObjectUtil.isNotNull(clothesSize)){ |
| | | if(ObjectUtil.isNotNull(clothesSize) && clothesType.getSizeState() == 1){ |
| | | apiSocialMuseVo.setSizeName(clothesSize.getName()); |
| | | totalAmount = totalAmount.add(clothesSize.getPrice()); |
| | | } |
| | | ClothesCloth clothesCloth = clothesClothMapper.selectById(clothesSocialMuse.getClothId()); |
| | | if(ObjectUtil.isNotNull(clothesCloth)){ |
| | | if(ObjectUtil.isNotNull(clothesCloth) && clothesType.getClothState() == 1){ |
| | | apiSocialMuseVo.setClothName(clothesCloth.getName()); |
| | | totalAmount = totalAmount.add(clothesCloth.getPrice()); |
| | | } |
| | | ClothesArt clothesArt = clothesArtMapper.selectById(clothesSocialMuse.getArtId()); |
| | | if(ObjectUtil.isNotNull(clothesArt)){ |
| | | if(ObjectUtil.isNotNull(clothesArt) && clothesType.getArtState() == 1){ |
| | | apiSocialMuseVo.setArtName(clothesArt.getName()); |
| | | totalAmount = totalAmount.add(clothesArt.getPrice()); |
| | | } |
| | |
| | | .eq(ClothesPatternRemark::getSourceId, clothesSocialMuse.getId()) |
| | | .eq(ClothesPatternRemark::getType, SocialPatternLocationTypeEnum.MUSE.getValue()) |
| | | ); |
| | | if(CollUtil.isNotEmpty(patternRemarks)){ |
| | | if(CollUtil.isNotEmpty(patternRemarks) && clothesType.getPatternState() == 1){ |
| | | for (ClothesPatternRemark entity : patternRemarks){ |
| | | ApiClothesPatternRemarkVo vo = new ApiClothesPatternRemarkVo(); |
| | | ClothesPattern pattern = clothesPatternMapper.selectById(entity.getPatternId()); |
| | |
| | | .eq(ClothesLocationRemark::getSourceId, clothesSocialMuse.getId()) |
| | | .eq(ClothesLocationRemark::getType, SocialPatternLocationTypeEnum.MUSE.getValue()) |
| | | ); |
| | | if(CollUtil.isNotEmpty(locationRemarks)){ |
| | | if(CollUtil.isNotEmpty(locationRemarks) && clothesType.getLocationState() == 1){ |
| | | for (ClothesLocationRemark entity : locationRemarks){ |
| | | ApiClothesLocationRemarkVo vo = new ApiClothesLocationRemarkVo(); |
| | | ClothesLocation clothesLocation = clothesLocationMapper.selectById(entity.getLocationId()); |
| | |
| | | apiSocialMuseVo.setLocationRemarkList(locationRemarkList); |
| | | } |
| | | apiSocialMuseVo.setTotalAmount(totalAmount.setScale(2, RoundingMode.DOWN)); |
| | | |
| | | // if( |
| | | // ObjectUtil.isNotNull(clothesArt) |
| | | // && ObjectUtil.isNotNull(clothesSize) |
| | | // && ObjectUtil.isNotNull(clothesCloth) |
| | | // ){ |
| | | // apiSocialInfoVo.setMuse(apiSocialMuseVo); |
| | | // } |
| | | apiSocialInfoVo.setMuse(apiSocialMuseVo); |
| | | |
| | | List<ClothesSocialFollow> clothesSocialFollows = clothesSocialFollowMapper.selectList( |
| | | Wrappers.lambdaQuery(ClothesSocialFollow.class) |
| | | .select(ClothesSocialFollow::getType) |
| | | .eq(ClothesSocialFollow::getSourceId, socialId) |
| | | .eq(ClothesSocialFollow::getSourceType, SocialSourceTypeEnum.SOCIAL.getValue()) |
| | | ); |
| | | if (CollUtil.isNotEmpty(clothesSocialFollows)){ |
| | | |
| | | Map<Integer, Long> collect = clothesSocialFollows.stream() |
| | | .collect(Collectors.groupingBy(ClothesSocialFollow::getType, Collectors.counting())); |
| | | apiSocialInfoVo.setLikeCnt(collect.getOrDefault(SocialTypeEnum.LIKE.getValue(), 0L).intValue()); |
| | | apiSocialInfoVo.setCollectCnt(collect.getOrDefault(SocialTypeEnum.COLLECT.getValue(), 0L).intValue()); |
| | | } |
| | | // Integer likeCnt = clothesSocial.getLikeCnt(); |
| | | // Integer collectCnt = clothesSocial.getCollectCnt(); |
| | | // |
| | | // List<ClothesSocialFollow> clothesSocialFollows = clothesSocialFollowMapper.selectList( |
| | | // Wrappers.lambdaQuery(ClothesSocialFollow.class) |
| | | // .select(ClothesSocialFollow::getType) |
| | | // .eq(ClothesSocialFollow::getSourceId, socialId) |
| | | // .eq(ClothesSocialFollow::getSourceType, SocialSourceTypeEnum.SOCIAL.getValue()) |
| | | // ); |
| | | // if (CollUtil.isNotEmpty(clothesSocialFollows)){ |
| | | // |
| | | // Map<Integer, Long> collect = clothesSocialFollows.stream() |
| | | // .collect(Collectors.groupingBy(ClothesSocialFollow::getType, Collectors.counting())); |
| | | // likeCnt = likeCnt + collect.getOrDefault(SocialTypeEnum.LIKE.getValue(), 0L).intValue(); |
| | | // collectCnt = collectCnt + collect.getOrDefault(SocialTypeEnum.COLLECT.getValue(), 0L).intValue(); |
| | | // } |
| | | // apiSocialInfoVo.setLikeCnt(likeCnt); |
| | | // apiSocialInfoVo.setCollectCnt(collectCnt); |
| | | |
| | | List<ClothesSocialComment> clothesSocialComments = clothesSocialCommentMapper.selectList( |
| | | Wrappers.lambdaQuery(ClothesSocialComment.class) |
| | |
| | | clothesSocialFollow.setSourceId(socialId); |
| | | clothesSocialFollow.setType(SocialTypeEnum.LIKE.getValue()); |
| | | clothesSocialFollowMapper.insert(clothesSocialFollow); |
| | | |
| | | agentProducer.sendAddLike(socialId); |
| | | } |
| | | return new FebsResponse().success().message("操作成功"); |
| | | } |
| | |
| | | Long socialId = dto.getSocialId(); |
| | | ClothesSocial clothesSocial = clothesSocialMapper.selectById(socialId); |
| | | if(ObjectUtil.isNotNull(clothesSocial)){ |
| | | List<ClothesSocialFollow> clothesSocialFollows = clothesSocialFollowMapper.selectList( |
| | | Wrappers.lambdaQuery(ClothesSocialFollow.class) |
| | | .eq(ClothesSocialFollow::getMemberId, memberId) |
| | | .eq(ClothesSocialFollow::getSourceType, SocialSourceTypeEnum.SOCIAL.getValue()) |
| | | .eq(ClothesSocialFollow::getSourceId, socialId) |
| | | .eq(ClothesSocialFollow::getType, SocialTypeEnum.COLLECT.getValue()) |
| | | ); |
| | | if (CollUtil.isNotEmpty(clothesSocialFollows)){ |
| | | return new FebsResponse().success().message("已收藏"); |
| | | } |
| | | ClothesSocialFollow clothesSocialFollow = new ClothesSocialFollow(); |
| | | clothesSocialFollow.setMemberId(memberId); |
| | | clothesSocialFollow.setSourceType(SocialSourceTypeEnum.SOCIAL.getValue()); |
| | | clothesSocialFollow.setSourceId(socialId); |
| | | clothesSocialFollow.setType(SocialTypeEnum.COLLECT.getValue()); |
| | | clothesSocialFollowMapper.insert(clothesSocialFollow); |
| | | |
| | | agentProducer.sendAddCollect(socialId); |
| | | } |
| | | return new FebsResponse().success().message("操作成功"); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse myCollect(ApiSocialMyCollectAddDto dto) { |
| | | |
| | | Long memberId = LoginUserUtil.getLoginUser().getId(); |
| | | dto.setMemberId(memberId); |
| | | |
| | | // 创建分页对象,传入当前页和每页大小 |
| | | Page<ApiSocialMyCollectVo> page = new Page<>(dto.getPageNow(), dto.getPageSize()); |
| | | // 调用Mapper方法获取活动分页数据 |
| | | Page<ApiSocialMyCollectVo> voPage = clothesSocialFollowMapper.selectPageInMyComment(page, dto); |
| | | return new FebsResponse().success().data(voPage); |
| | | } |
| | | |
| | | @Override |
| | |
| | | vo.setPatternPrice(pattern.getPrice()); |
| | | vo.setPatternId(pattern.getId()); |
| | | vo.setPatternRemark(patternRemark.getRemark()); |
| | | vo.setBoxHeight(pattern.getBoxHeight()); |
| | | vo.setBoxWidth(pattern.getBoxWidth()); |
| | | vo.setLeftPercent(pattern.getLeftPercent()); |
| | | vo.setTopPercent(pattern.getTopPercent()); |
| | | patternRemarkList.add( vo); |
| | | |
| | | totalPatternAmount = totalPatternAmount.add(pattern.getPrice()); |
| | |
| | | vo.setLocationImage(clothesLocation.getImage()); |
| | | vo.setLocationPrice(clothesLocation.getPrice()); |
| | | vo.setLocationId(clothesLocation.getId()); |
| | | vo.setBoxHeight(clothesLocation.getBoxHeight()); |
| | | vo.setBoxWidth(clothesLocation.getBoxWidth()); |
| | | vo.setLeftPercent(clothesLocation.getLeftPercent()); |
| | | vo.setTopPercent(clothesLocation.getTopPercent()); |
| | | locationRemarkList.add(vo); |
| | | |
| | | totalLocationAmount = totalLocationAmount.add(clothesLocation.getPrice()); |
| | |
| | | return new FebsResponse().success().data(voPage); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse delCollection(ApiColletDelDto dto) { |
| | | Long memberId = LoginUserUtil.getLoginUser().getId(); |
| | | List<Long> ids = dto.getIds(); |
| | | if (CollUtil.isEmpty(ids)) { |
| | | return new FebsResponse().success().message("操作成功"); |
| | | } |
| | | |
| | | LambdaQueryWrapper<ClothesSocialFollow> delQuery = new LambdaQueryWrapper<>(); |
| | | delQuery.eq(ClothesSocialFollow::getMemberId, memberId); |
| | | delQuery.eq(ClothesSocialFollow::getSourceType, SocialSourceTypeEnum.SOCIAL.getValue()); |
| | | delQuery.in(ClothesSocialFollow::getSourceId, ids); |
| | | delQuery.eq(ClothesSocialFollow::getType, SocialTypeEnum.COLLECT.getValue()); |
| | | clothesSocialFollowMapper.delete(delQuery); |
| | | return new FebsResponse().success().message("操作成功"); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse followState(ApiSocialCollectFollowStateDto dto) { |
| | | Long memberId = LoginUserUtil.getLoginUser().getId(); |
| | | HashMap<String, Object> stringObjectHashMap = new HashMap<>(); |
| | | |
| | | Integer collectState = clothesSocialFollowMapper.selectCount( |
| | | Wrappers.lambdaQuery(ClothesSocialFollow.class) |
| | | .eq(ClothesSocialFollow::getMemberId, memberId) |
| | | .eq(ClothesSocialFollow::getSourceType, SocialSourceTypeEnum.SOCIAL.getValue()) |
| | | .eq(ClothesSocialFollow::getSourceId, dto.getSocialId()) |
| | | .eq(ClothesSocialFollow::getType, SocialTypeEnum.COLLECT.getValue()) |
| | | ); |
| | | stringObjectHashMap.put("collectState", collectState); |
| | | |
| | | Integer likeState = clothesSocialFollowMapper.selectCount( |
| | | Wrappers.lambdaQuery(ClothesSocialFollow.class) |
| | | .eq(ClothesSocialFollow::getMemberId, memberId) |
| | | .eq(ClothesSocialFollow::getSourceType, SocialSourceTypeEnum.SOCIAL.getValue()) |
| | | .eq(ClothesSocialFollow::getSourceId, dto.getSocialId()) |
| | | .eq(ClothesSocialFollow::getType, SocialTypeEnum.LIKE.getValue()) |
| | | ); |
| | | stringObjectHashMap.put("likeState", likeState); |
| | | |
| | | return new FebsResponse().success().data(stringObjectHashMap); |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.putByPath("text", "123"); |