diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/MemberController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/MemberController.java index 23315a11f..ee1aee6fe 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/MemberController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/MemberController.java @@ -16,10 +16,7 @@ import com.jsowell.common.util.StringUtils; import com.jsowell.pile.domain.MemberPlateNumberRelation; import com.jsowell.pile.domain.UserFrequentedStationInfo; import com.jsowell.pile.dto.*; -import com.jsowell.pile.service.MemberBasicInfoService; -import com.jsowell.pile.service.MemberPlateNumberRelationService; -import com.jsowell.pile.service.OrderBasicInfoService; -import com.jsowell.pile.service.PileMerchantInfoService; +import com.jsowell.pile.service.*; import com.jsowell.pile.vo.base.MemberWalletVO; import com.jsowell.pile.vo.uniapp.customer.InvoiceTitleVO; import com.jsowell.pile.vo.uniapp.customer.MemberVO; @@ -47,6 +44,9 @@ public class MemberController extends BaseController { @Autowired private MemberBasicInfoService memberBasicInfoService; + @Autowired + private MemberStationRelationService memberStationRelationService; + @Autowired private PileMerchantInfoService pileMerchantInfoService; @@ -629,4 +629,47 @@ public class MemberController extends BaseController { logger.info("查询用户常去站点(最近半年) result:{}", response); return response; } + + /** + * 查询用户收藏的站点信息 + * @param request + * @return + */ + @PostMapping("/getCollectedStationIdList") + public RestApiResponse getCollectedStationIdList(HttpServletRequest request, @RequestBody QueryStationDTO dto) { + RestApiResponse response; + try { + String memberId = getMemberIdByAuthorization(request); + dto.setMemberId(memberId); + PageResponse pageResponse = memberStationRelationService.getCollectedStationIdList(dto); + response = new RestApiResponse<>(pageResponse); + }catch (Exception e) { + logger.error("查询用户收藏的站点信息 error", e); + response = new RestApiResponse<>(e); + } + logger.info("查询用户收藏的站点信息 result:{}", response); + return response; + } + + /** + * 用户修改收藏的站点 + * @param request + * @return + */ + @PostMapping("/updateCollectedStation") + public RestApiResponse updateCollectedStation(HttpServletRequest request, @RequestBody CollectedStationDTO dto) { + RestApiResponse response = null; + try { + String memberId = getMemberIdByAuthorization(request); + dto.setMemberId(memberId); + int i = memberStationRelationService.updateCollectedStation(dto); + response = new RestApiResponse<>(i); + }catch (Exception e) { + logger.error("用户修改收藏的站点 error", e); + response = new RestApiResponse<>(e); + } + logger.info("用户修改收藏的站点 result:{}", response); + return response; + } + } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/domain/MemberStationRelation.java b/jsowell-pile/src/main/java/com/jsowell/pile/domain/MemberStationRelation.java index 2db07a3be..5efb02490 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/domain/MemberStationRelation.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/domain/MemberStationRelation.java @@ -23,7 +23,7 @@ public class MemberStationRelation extends BaseEntity { * 会员id */ @Excel(name = "会员id") - private Long memberId; + private String memberId; /** * 站点id @@ -39,11 +39,11 @@ public class MemberStationRelation extends BaseEntity { return id; } - public void setMemberId(Long memberId) { + public void setMemberId(String memberId) { this.memberId = memberId; } - public Long getMemberId() { + public String getMemberId() { return memberId; } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/CollectedStationDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/CollectedStationDTO.java new file mode 100644 index 000000000..aef6eeac6 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/CollectedStationDTO.java @@ -0,0 +1,29 @@ +package com.jsowell.pile.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 个人收藏站点DTO + * + * @author Lemon + * @Date 2025/3/20 13:38:38 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class CollectedStationDTO { + private String memberId; + + private String stationId; + + /** + * 操作类型 + * true - 收藏 + * false - 取消收藏 + */ + private boolean operatorType; +} diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryStationDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryStationDTO.java index eb31032a5..57291eb84 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryStationDTO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryStationDTO.java @@ -125,6 +125,8 @@ public class QueryStationDTO extends BaseEntity { private List stationIds; + private String memberId; + @Data public static class OtherOptions { /** diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberStationRelationMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberStationRelationMapper.java index 2736903be..6db983a58 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberStationRelationMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberStationRelationMapper.java @@ -67,4 +67,11 @@ public interface MemberStationRelationMapper { * @return */ List getStationIdListByMemberId(String memberId); + + /** + * 用户取消收藏站点 + * @param memberStationRelation + * @return + */ + int deleteMemberStationRelation(MemberStationRelation memberStationRelation); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/MemberStationRelationService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/MemberStationRelationService.java index 6b7fd751f..4982e5284 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/MemberStationRelationService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/MemberStationRelationService.java @@ -2,7 +2,10 @@ package com.jsowell.pile.service; import java.util.List; +import com.jsowell.common.core.page.PageResponse; import com.jsowell.pile.domain.MemberStationRelation; +import com.jsowell.pile.dto.CollectedStationDTO; +import com.jsowell.pile.dto.QueryStationDTO; /** * 会员与收藏的站点关系Service接口 @@ -61,8 +64,15 @@ public interface MemberStationRelationService { /** * 通过memberId查询站点idList - * @param memberId + * @param dto * @return */ - public List getStationIdListByMemberId(String memberId); + public PageResponse getCollectedStationIdList(QueryStationDTO dto); + + /** + * 修改收藏站点状态 + * @param dto + * @return + */ + int updateCollectedStation(CollectedStationDTO dto); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberStationRelationServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberStationRelationServiceImpl.java index e0a5b708d..322d52031 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberStationRelationServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberStationRelationServiceImpl.java @@ -2,8 +2,13 @@ package com.jsowell.pile.service.impl; import java.util.List; +import com.jsowell.common.core.page.PageResponse; import com.jsowell.common.util.DateUtils; +import com.jsowell.pile.dto.CollectedStationDTO; +import com.jsowell.pile.dto.QueryStationDTO; import com.jsowell.pile.service.MemberStationRelationService; +import com.jsowell.pile.service.PileStationInfoService; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.jsowell.pile.mapper.MemberStationRelationMapper; @@ -20,6 +25,9 @@ public class MemberStationRelationServiceImpl implements MemberStationRelationSe @Autowired private MemberStationRelationMapper memberStationRelationMapper; + @Autowired + private PileStationInfoService pileStationInfoService; + /** * 查询会员与收藏的站点关系 * @@ -88,8 +96,49 @@ public class MemberStationRelationServiceImpl implements MemberStationRelationSe return memberStationRelationMapper.deleteMemberStationRelationById(id); } + /** + * 查询用户收藏的站点信息 + * @param dto + * @return + */ @Override - public List getStationIdListByMemberId(String memberId) { - return memberStationRelationMapper.getStationIdListByMemberId(memberId); + public PageResponse getCollectedStationIdList(QueryStationDTO dto) { + // 先查出来站点idList + List stationIdList = memberStationRelationMapper.getStationIdListByMemberId(dto.getMemberId()); + if (CollectionUtils.isEmpty(stationIdList)) { + return new PageResponse(); + } + // 根据站点idList批量查站点信息 + dto.setStationIds(stationIdList); + PageResponse pageResponse = pileStationInfoService.uniAppQueryStationInfoList(dto); + + return pageResponse; + } + + /** + * 某用户取消收藏站点 + * @param memberStationRelation + * @return + */ + public int deleteMemberStationRelation(MemberStationRelation memberStationRelation) { + return memberStationRelationMapper.deleteMemberStationRelation(memberStationRelation); + } + + @Override + public int updateCollectedStation(CollectedStationDTO dto) { + int result = 0; + // 判断操作类型 + boolean operatorType = dto.isOperatorType(); + MemberStationRelation relation = new MemberStationRelation(); + relation.setStationId(Long.parseLong(dto.getStationId())); + relation.setMemberId(dto.getMemberId()); + if (operatorType) { + // 添加收藏 + result = insertMemberStationRelation(relation); + }else { + // 取消收藏 + result = deleteMemberStationRelation(relation); + } + return result; } } diff --git a/jsowell-pile/src/main/resources/mapper/pile/MemberStationRelationMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/MemberStationRelationMapper.xml index 3fee5b72f..ef6eb0e74 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/MemberStationRelationMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/MemberStationRelationMapper.xml @@ -82,8 +82,14 @@ + + + delete from member_station_relation + where member_id = #{memberId,jdbcType=VARCHAR} + and station_id = #{stationId,jdbcType=BIGINT} + \ No newline at end of file diff --git a/jsowell-pile/src/main/resources/mapper/pile/PileStationInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/PileStationInfoMapper.xml index e519ba024..8589a724f 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/PileStationInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/PileStationInfoMapper.xml @@ -386,6 +386,12 @@ #{stationDeptId} + + and t1.id in + + #{stationId} + + GROUP BY t1.id, t1.station_name,