mitao
2024-06-07 44a30f6d80d3f8d11d7e62d7b03d613b87989d56
提交【管理后台】-营销管理模块相关接口
2个文件已添加
9个文件已修改
252 ■■■■■ 已修改文件
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/MemberClient.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/inner/MemberController.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/IMemberService.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberServiceImpl.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/LogisticsMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtPromotionWishListController.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionVideoDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionWishListDTO.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/MgtPromotionWishListVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/IPromotionWishListService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/impl/PromotionWishListServiceImpl.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/MemberClient.java
@@ -7,14 +7,12 @@
import com.ruoyi.system.api.domain.Member;
import com.ruoyi.system.api.domain.MemberAddress;
import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO;
import com.ruoyi.system.api.domain.dto.AppMiniRegisterDTO;
import com.ruoyi.system.api.domain.dto.MemberDTO;
import com.ruoyi.system.api.domain.dto.MemberPointsDTO;
import com.ruoyi.system.api.domain.dto.updMembeOneDTO;
import com.ruoyi.system.api.factory.MemberFallbackFactory;
import java.util.Collection;
import java.util.List;
import java.util.Set;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -33,7 +31,7 @@
            @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
    @PostMapping("/member/list-by-ids")
    R<List<Member>> getMemberListByIds(@RequestParam("memberIdList") Set<Long> memberIdList,
    R<List<Member>> getMemberListByIds(@RequestParam("memberIdList") Collection<Long> memberIdList,
            @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
    @PostMapping("/forepart/member/miniLogin")
@@ -45,4 +43,7 @@
    @PostMapping("/member/updMembeOne")
    R<?> updMembeOne(@RequestBody updMembeOneDTO dMembeOneDTO);
    @PostMapping("/member/list-by-condition")
    R<List<Member>> getMemberListByCondition(@RequestBody MemberDTO memberDTO,
            @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/inner/MemberController.java
@@ -4,13 +4,16 @@
import com.ruoyi.common.security.annotation.InnerAuth;
import com.ruoyi.member.service.IMemberService;
import com.ruoyi.system.api.domain.Member;
import java.util.List;
import java.util.Set;
import com.ruoyi.system.api.domain.dto.MemberDTO;
import com.ruoyi.system.api.domain.dto.updMembeOneDTO;
import io.swagger.annotations.ApiOperation;
import java.util.Collection;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
 * @author mitao
@@ -25,7 +28,8 @@
    
    @InnerAuth
    @PostMapping("/list-by-ids")
    R<List<Member>> getMemberListByIds(@RequestParam("memberIdList") Set<Long> memberIdList) {
    R<List<Member>> getMemberListByIds(
            @RequestParam("memberIdList") Collection<Long> memberIdList) {
        return R.ok(memberService.getMemberListByIds(memberIdList));
    }
@@ -43,4 +47,9 @@
        return R.ok();
    }
    @InnerAuth
    @PostMapping("/member/list-by-condition")
    R<List<Member>> getMemberListByCondition(@RequestBody MemberDTO memberDTO) {
        return R.ok(memberService.getMemberListByCondition(memberDTO));
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/IMemberService.java
@@ -11,11 +11,9 @@
import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO;
import com.ruoyi.system.api.domain.dto.MemberDTO;
import com.ruoyi.system.api.domain.dto.MobileDTO;
import com.ruoyi.system.api.domain.dto.*;
import com.ruoyi.system.api.domain.dto.updMembeOneDTO;
import java.util.Collection;
import java.util.List;
import java.util.Set;
import org.springframework.web.bind.annotation.RequestBody;
/**
@@ -36,7 +34,7 @@
    void authentificationMembe(MemberDTO memberDTO);
    List<Member> getMemberListByIds(Set<Long> memberIdList);
    List<Member> getMemberListByIds(Collection<Long> memberIdList);
    void mobile(@RequestBody MobileDTO mobileDTO);
@@ -66,4 +64,6 @@
    PageDTO<MgtMemberPointsVO> getMemberPoints(MgtMemberPointsQuery query);
    void updMembeOne(@RequestBody updMembeOneDTO dMembeOneDTO);
    List<Member> getMemberListByCondition(MemberDTO memberDTO);
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberServiceImpl.java
@@ -32,8 +32,8 @@
import com.ruoyi.member.controller.management.vo.MgtMemberVO;
import com.ruoyi.member.domain.MemberLevel;
import com.ruoyi.member.mapper.MemberMapper;
import com.ruoyi.member.service.IMemberPointsService;
import com.ruoyi.member.service.IMemberLevelService;
import com.ruoyi.member.service.IMemberPointsService;
import com.ruoyi.member.service.IMemberService;
import com.ruoyi.member.util.HttpUtils;
import com.ruoyi.system.api.RemoteUserService;
@@ -42,22 +42,20 @@
import com.ruoyi.system.api.domain.Member;
import com.ruoyi.system.api.domain.MemberPoints;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.domain.dto.*;
import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO;
import com.ruoyi.system.api.domain.dto.MemberDTO;
import com.ruoyi.system.api.domain.dto.MobileDTO;
import com.ruoyi.system.api.domain.dto.updMembeOneDTO;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import javax.annotation.Resource;
import org.apache.commons.io.IOUtils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
@@ -374,7 +372,7 @@
    }
    @Override
    public List<Member> getMemberListByIds(Set<Long> memberIdList) {
    public List<Member> getMemberListByIds(Collection<Long> memberIdList) {
        return this.listByIds(memberIdList);
    }
@@ -588,6 +586,15 @@
        }
        return PageDTO.of(page, MgtMemberPointsVO.class);
    }
    @Override
    public List<Member> getMemberListByCondition(MemberDTO memberDTO) {
        return this.lambdaQuery()
                .like(StringUtils.isNotBlank(memberDTO.getNickname()), Member::getNickname,
                        memberDTO.getNickname())
                .like(StringUtils.isNotBlank(memberDTO.getPhone()), Member::getPhone,
                        memberDTO.getPhone()).list();
    }
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/LogisticsMapper.java
New file
@@ -0,0 +1,16 @@
package com.ruoyi.order.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.system.api.domain.Logistics;
/**
 * <p>
 * 物流公司 Mapper 接口
 * </p>
 *
 * @author mitao
 * @since 2024-06-07
 */
public interface LogisticsMapper extends BaseMapper<Logistics> {
}
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtPromotionWishListController.java
@@ -3,14 +3,19 @@
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.promotion.controller.management.dto.MgtPromotionWishListDTO;
import com.ruoyi.promotion.controller.management.dto.MgtPromotionWishListQuery;
import com.ruoyi.promotion.controller.management.vo.MgtPromotionWishListVO;
import com.ruoyi.promotion.service.IPromotionWishListService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -43,4 +48,29 @@
            @Validated @RequestBody MgtPromotionWishListQuery query) {
        return R.ok(promotionWishListService.getPromotionWishListPage(query));
    }
    /**
     * 查看详情
     *
     * @param id 心愿求购id
     * @return MgtPromotionWishListVO
     */
    @ApiOperation("查看详情")
    @GetMapping("/detail/{id}")
    public R<MgtPromotionWishListVO> getPromotionWishDetail(
            @ApiParam(value = "心愿求购id", required = true) @PathVariable("id") Long id) {
        return R.ok(promotionWishListService.getPromotionWishDetail(id));
    }
    /**
     * 回复
     *
     * @param dto 心愿求购数据传输对象
     */
    @ApiOperation("回复")
    @PutMapping("/reply")
    public R<?> reply(@Validated @RequestBody MgtPromotionWishListDTO dto) {
        promotionWishListService.reply(dto);
        return R.ok();
    }
}
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionVideoDTO.java
@@ -11,7 +11,7 @@
 * @date 2024/6/3
 */
@Data
@ApiModel(value = "大屏视频视图对象", description = "大屏视频视图对象")
@ApiModel(value = "大屏视频数据传输对象", description = "大屏视频数据传输对象")
public class MgtPromotionVideoDTO implements Serializable {
    private static final long serialVersionUID = -1717120548273715375L;
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionWishListDTO.java
New file
@@ -0,0 +1,27 @@
package com.ruoyi.promotion.controller.management.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import lombok.Data;
/**
 * @author mitao
 * @date 2024/6/7
 */
@Data
@ApiModel(value = "心愿求购数据传输对象", description = "心愿求购数据传输对象")
public class MgtPromotionWishListDTO implements Serializable {
    private static final long serialVersionUID = -3674827217986734987L;
    @ApiModelProperty(value = "心愿求购id")
    @NotNull(message = "心愿求购id不能为空")
    private Long id;
    @ApiModelProperty(value = "平台回复")
    @NotBlank(message = "平台回复不能为空")
    private String replies;
}
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/MgtPromotionWishListVO.java
@@ -1,5 +1,6 @@
package com.ruoyi.promotion.controller.management.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.enums.ReplyStatusEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -46,6 +47,7 @@
    private ReplyStatusEnum replyStatus;
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime;
    @ApiModelProperty(value = "会员id")
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/IPromotionWishListService.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.promotion.controller.management.dto.MgtPromotionWishListDTO;
import com.ruoyi.promotion.controller.management.dto.MgtPromotionWishListQuery;
import com.ruoyi.promotion.controller.management.vo.MgtPromotionWishListVO;
import com.ruoyi.promotion.domain.PromotionWishList;
@@ -30,4 +31,19 @@
     * @return PageDTO<MgtPromotionWishListVO>
     */
    PageDTO<MgtPromotionWishListVO> getPromotionWishListPage(MgtPromotionWishListQuery query);
    /**
     * 查看详情
     *
     * @param id 心愿求购id
     * @return MgtPromotionWishListVO
     */
    MgtPromotionWishListVO getPromotionWishDetail(Long id);
    /**
     * 回复
     *
     * @param dto 心愿求购数据传输对象
     */
    void reply(MgtPromotionWishListDTO dto);
}
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/impl/PromotionWishListServiceImpl.java
@@ -4,13 +4,27 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Lists;
import com.ruoyi.common.core.constant.SecurityConstants;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.page.BeanUtils;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.promotion.controller.management.dto.MgtPromotionWishListDTO;
import com.ruoyi.promotion.controller.management.dto.MgtPromotionWishListQuery;
import com.ruoyi.promotion.controller.management.vo.MgtPromotionWishListVO;
import com.ruoyi.promotion.domain.PromotionWishList;
import com.ruoyi.promotion.mapper.PromotionWishListMapper;
import com.ruoyi.promotion.service.IPromotionWishListService;
import com.ruoyi.system.api.domain.Member;
import com.ruoyi.system.api.domain.dto.MemberDTO;
import com.ruoyi.system.api.domain.dto.PromotionWishListDTO;
import com.ruoyi.system.api.feignClient.MemberClient;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
@@ -22,8 +36,10 @@
 * @since 2024-05-16
 */
@Service
@RequiredArgsConstructor
public class PromotionWishListServiceImpl extends ServiceImpl<PromotionWishListMapper, PromotionWishList> implements IPromotionWishListService {
    private final MemberClient memberClient;
    @Override
    public PageDTO<PromotionWishList> getPromotionWishList(PromotionWishListDTO promotionWishListDTO) {
@@ -68,6 +84,86 @@
    @Override
    public PageDTO<MgtPromotionWishListVO> getPromotionWishListPage(
            MgtPromotionWishListQuery query) {
        return null;
        // 封装会员条件查询对象
        MemberDTO memberDTO = new MemberDTO();
        if (StringUtils.isNotBlank(query.getNickname())) {
            memberDTO.setNickname(query.getNickname());
        }
        if (StringUtils.isNotBlank(query.getPhone())) {
            memberDTO.setPhone(query.getPhone());
        }
        // 远程调用会员服务进行条件查询
        List<Member> memberList = memberClient.getMemberListByCondition(memberDTO,
                SecurityConstants.INNER).getData();
        Set<Long> memberIdSet = memberList.stream().map(Member::getId).collect(Collectors.toSet());
        // 分页查询心愿求购列表
        Page<PromotionWishList> page = this.lambdaQuery()
                .eq(StringUtils.isNotNull(query.getReplyStatus()),
                        PromotionWishList::getReplyStatus, query.getReplyStatus())
                .in(StringUtils.isNotEmpty(memberIdSet), PromotionWishList::getMemberId,
                        memberIdSet).page(new Page<>(query.getPageCurr(), query
                        .getPageSize()));
        if (StringUtils.isEmpty(page.getRecords())) {
            return PageDTO.empty(page);
        }
        // 封装VO
        PageDTO<MgtPromotionWishListVO> pageVO = PageDTO.of(page,
                MgtPromotionWishListVO.class);
        List<MgtPromotionWishListVO> MgtPromotionWishListVOList = pageVO.getList();
        Set<Long> memberIdSets = MgtPromotionWishListVOList.stream()
                .map(MgtPromotionWishListVO::getMemberId)
                .collect(Collectors.toSet());
        if (StringUtils.isNotEmpty(memberIdSets)) {
            List<Member> data = memberClient.getMemberListByIds(memberIdSets,
                    SecurityConstants.INNER).getData();
            if (StringUtils.isNotEmpty(data)) {
                Map<Long, Member> memberMap = data.stream()
                        .collect(Collectors.toMap(Member::getId, member -> member));
                for (MgtPromotionWishListVO mgtPromotionWishListVO : MgtPromotionWishListVOList) {
                    Member member = memberMap.get(mgtPromotionWishListVO.getMemberId());
                    if (StringUtils.isNotNull(member)) {
                        mgtPromotionWishListVO.setNickname(member.getNickname());
                        mgtPromotionWishListVO.setPhone(member.getPhone());
                    }
                }
            }
        }
        return pageVO;
    }
    /**
     * 查看详情
     *
     * @param id 心愿求购id
     * @return MgtPromotionWishListVO
     */
    @Override
    public MgtPromotionWishListVO getPromotionWishDetail(Long id) {
        PromotionWishList promotionWishList = this.getById(id);
        if (StringUtils.isNull(promotionWishList)) {
            throw new ServiceException("该心愿求购不存在");
        }
        MgtPromotionWishListVO mgtPromotionWishListVO = BeanUtils.copyBean(promotionWishList,
                MgtPromotionWishListVO.class);
        List<Member> data = memberClient.getMemberListByIds(
                Lists.newArrayList(promotionWishList.getMemberId()),
                SecurityConstants.INNER).getData();
        if (StringUtils.isNotEmpty(data)) {
            mgtPromotionWishListVO.setPhone(data.get(0).getPhone());
            mgtPromotionWishListVO.setNickname(data.get(0).getNickname());
        }
        return mgtPromotionWishListVO;
    }
    /**
     * 回复
     *
     * @param dto 心愿求购数据传输对象
     */
    @Override
    public void reply(MgtPromotionWishListDTO dto) {
        PromotionWishList promotionWishList = this.getById(dto.getId());
        promotionWishList.setReplies(dto.getReplies());
        this.updateById(promotionWishList);
    }
}