From 468445a8148a9036b116979beaa7d6e40eb91d8f Mon Sep 17 00:00:00 2001 From: liujiang <569804566@qq.com> Date: Sat, 12 Apr 2025 10:38:44 +0800 Subject: [PATCH] =?UTF-8?q?master=EF=BC=9A=E7=94=A8=E6=88=B7=E5=85=B3?= =?UTF-8?q?=E6=B3=A8=E6=A1=A3=E5=8F=A3=E5=8A=9F=E8=83=BD=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xkt/UserSubscriptionsController.java | 94 ++++++-------- .../userSubscriptions/UserSubscDeleteVO.java | 25 ++++ .../vo/userSubscriptions/UserSubscPageVO.java | 24 ++++ .../xkt/vo/userSubscriptions/UserSubscVO.java | 25 ++++ .../userFavorite/UserFavoritePageResDTO.java | 3 +- .../dto/userSubscriptions/UserSubscDTO.java | 24 ++++ .../userSubscriptions/UserSubscDeleteDTO.java | 23 ++++ .../userSubscriptions/UserSubscPageDTO.java | 24 ++++ .../UserSubscPageResDTO.java | 37 ++++++ .../ruoyi/xkt/mapper/UserFavoritesMapper.java | 48 ------- .../xkt/mapper/UserSubscriptionsMapper.java | 49 +------ .../service/IUserSubscriptionsService.java | 57 +++----- .../impl/UserSubscriptionsServiceImpl.java | 122 ++++++++++-------- .../resources/mapper/UserFavoritesMapper.xml | 75 +---------- .../mapper/UserSubscriptionsMapper.xml | 104 ++++----------- 15 files changed, 345 insertions(+), 389 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/userSubscriptions/UserSubscDeleteVO.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/userSubscriptions/UserSubscPageVO.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/userSubscriptions/UserSubscVO.java create mode 100644 xkt/src/main/java/com/ruoyi/xkt/dto/userSubscriptions/UserSubscDTO.java create mode 100644 xkt/src/main/java/com/ruoyi/xkt/dto/userSubscriptions/UserSubscDeleteDTO.java create mode 100644 xkt/src/main/java/com/ruoyi/xkt/dto/userSubscriptions/UserSubscPageDTO.java create mode 100644 xkt/src/main/java/com/ruoyi/xkt/dto/userSubscriptions/UserSubscPageResDTO.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/UserSubscriptionsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/UserSubscriptionsController.java index 5fd899f8d..a155af914 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/UserSubscriptionsController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/UserSubscriptionsController.java @@ -1,91 +1,71 @@ package com.ruoyi.web.controller.xkt; +import cn.hutool.core.bean.BeanUtil; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.XktBaseController; import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.page.Page; import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.xkt.domain.UserSubscriptions; +import com.ruoyi.web.controller.xkt.vo.userSubscriptions.UserSubscDeleteVO; +import com.ruoyi.web.controller.xkt.vo.userSubscriptions.UserSubscPageVO; +import com.ruoyi.web.controller.xkt.vo.userSubscriptions.UserSubscVO; +import com.ruoyi.xkt.dto.userSubscriptions.UserSubscDTO; +import com.ruoyi.xkt.dto.userSubscriptions.UserSubscDeleteDTO; +import com.ruoyi.xkt.dto.userSubscriptions.UserSubscPageDTO; +import com.ruoyi.xkt.dto.userSubscriptions.UserSubscPageResDTO; import com.ruoyi.xkt.service.IUserSubscriptionsService; -import org.springframework.beans.factory.annotation.Autowired; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletResponse; -import java.util.List; - /** - * 用户关注u档口Controller + * 用户关注档口Controller * * @author ruoyi * @date 2025-03-26 */ +@Api(tags = "用户关注档口(只有电商卖家可操作)") +@RequiredArgsConstructor @RestController @RequestMapping("/rest/v1/user-subs") public class UserSubscriptionsController extends XktBaseController { - @Autowired - private IUserSubscriptionsService userSubscriptionsService; + + final IUserSubscriptionsService userSubscService; /** - * 查询用户关注u档口列表 - */ - @PreAuthorize("@ss.hasPermi('system:subscriptions:list')") - @GetMapping("/list") - public TableDataInfo list(UserSubscriptions userSubscriptions) { - startPage(); - List list = userSubscriptionsService.selectUserSubscriptionsList(userSubscriptions); - return getDataTable(list); - } - - /** - * 导出用户关注u档口列表 - */ - @PreAuthorize("@ss.hasPermi('system:subscriptions:export')") - @Log(title = "用户关注u档口", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, UserSubscriptions userSubscriptions) { - List list = userSubscriptionsService.selectUserSubscriptionsList(userSubscriptions); - ExcelUtil util = new ExcelUtil(UserSubscriptions.class); - util.exportExcel(response, list, "用户关注u档口数据"); - } - - /** - * 获取用户关注u档口详细信息 - */ - @PreAuthorize("@ss.hasPermi('system:subscriptions:query')") - @GetMapping(value = "/{userSubsId}") - public R getInfo(@PathVariable("userSubsId") Long userSubsId) { - return success(userSubscriptionsService.selectUserSubscriptionsByUserSubsId(userSubsId)); - } - - /** - * 新增用户关注u档口 + * 新增用户关注档口 */ @PreAuthorize("@ss.hasPermi('system:subscriptions:add')") - @Log(title = "用户关注u档口", businessType = BusinessType.INSERT) + @ApiOperation(value = "新增用户关注档口", httpMethod = "POST", response = R.class) + @Log(title = "新增用户关注档口", businessType = BusinessType.INSERT) @PostMapping - public R add(@RequestBody UserSubscriptions userSubscriptions) { - return success(userSubscriptionsService.insertUserSubscriptions(userSubscriptions)); + public R create(@Validated @RequestBody UserSubscVO subscVO) { + return R.ok(userSubscService.create(BeanUtil.toBean(subscVO, UserSubscDTO.class))); } /** - * 修改用户关注u档口 + * 用户关注档口列表 */ - @PreAuthorize("@ss.hasPermi('system:subscriptions:edit')") - @Log(title = "用户关注u档口", businessType = BusinessType.UPDATE) - @PutMapping - public R edit(@RequestBody UserSubscriptions userSubscriptions) { - return success(userSubscriptionsService.updateUserSubscriptions(userSubscriptions)); + @PreAuthorize("@ss.hasPermi('system:favorites:list')") + @ApiOperation(value = "用户关注档口列表", httpMethod = "POST", response = R.class) + @PostMapping("/page") + public R> page(@Validated @RequestBody UserSubscPageVO pageVO) { + return R.ok(userSubscService.page(BeanUtil.toBean(pageVO, UserSubscPageDTO.class))); } + /** - * 删除用户关注u档口 + * 用户取消关注档口 */ @PreAuthorize("@ss.hasPermi('system:subscriptions:remove')") - @Log(title = "用户关注u档口", businessType = BusinessType.DELETE) - @DeleteMapping("/{userSubsIds}") - public R remove(@PathVariable Long[] userSubsIds) { - return success(userSubscriptionsService.deleteUserSubscriptionsByUserSubsIds(userSubsIds)); + @ApiOperation(value = "用户取消关注档口", httpMethod = "DELETE", response = R.class) + @Log(title = "用户取消关注档口", businessType = BusinessType.DELETE) + @DeleteMapping("/batch") + public R remove(@Validated @RequestBody UserSubscDeleteVO deleteVO) { + return R.ok(userSubscService.delete(BeanUtil.toBean(deleteVO, UserSubscDeleteDTO.class))); } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/userSubscriptions/UserSubscDeleteVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/userSubscriptions/UserSubscDeleteVO.java new file mode 100644 index 000000000..899ecfedc --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/userSubscriptions/UserSubscDeleteVO.java @@ -0,0 +1,25 @@ +package com.ruoyi.web.controller.xkt.vo.userSubscriptions; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("电商卖家新增店铺关注") +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class UserSubscDeleteVO { + + @NotNull(message = "用户关注ID列表不能为空!") + @ApiModelProperty(value = "用户关注ID") + private List userSubscIdList; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/userSubscriptions/UserSubscPageVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/userSubscriptions/UserSubscPageVO.java new file mode 100644 index 000000000..28c7754e5 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/userSubscriptions/UserSubscPageVO.java @@ -0,0 +1,24 @@ +package com.ruoyi.web.controller.xkt.vo.userSubscriptions; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.ruoyi.web.controller.xkt.vo.BasePageVO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@EqualsAndHashCode(callSuper = true) +@ApiModel("用户关注档口列表查询入参") +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class UserSubscPageVO extends BasePageVO { + + @ApiModelProperty(value = "档口名称") + private String storeName; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/userSubscriptions/UserSubscVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/userSubscriptions/UserSubscVO.java new file mode 100644 index 000000000..f93df5afb --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/userSubscriptions/UserSubscVO.java @@ -0,0 +1,25 @@ +package com.ruoyi.web.controller.xkt.vo.userSubscriptions; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("电商卖家取消店铺关注") +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class UserSubscVO { + + @NotNull(message = "档口ID不能为空!") + @ApiModelProperty(value = "档口ID") + private Long storeId; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/userFavorite/UserFavoritePageResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/userFavorite/UserFavoritePageResDTO.java index 276879e03..45608c98f 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/userFavorite/UserFavoritePageResDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/userFavorite/UserFavoritePageResDTO.java @@ -2,7 +2,6 @@ package com.ruoyi.xkt.dto.userFavorite; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonInclude; -import com.ruoyi.common.annotation.Excel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -40,6 +39,8 @@ public class UserFavoritePageResDTO { private String prodTitle; @ApiModelProperty(value = "商品标准尺码列表") private String standardSize; + @ApiModelProperty(name = "商品状态") + private Integer prodStatus; @ApiModelProperty(value = "收藏时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createTime; diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/userSubscriptions/UserSubscDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/userSubscriptions/UserSubscDTO.java new file mode 100644 index 000000000..f33af02c3 --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/userSubscriptions/UserSubscDTO.java @@ -0,0 +1,24 @@ +package com.ruoyi.xkt.dto.userSubscriptions; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("电商卖家新增店铺关注") +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class UserSubscDTO { + + @NotNull(message = "档口ID不能为空!") + @ApiModelProperty(value = "档口ID") + private Long storeId; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/userSubscriptions/UserSubscDeleteDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/userSubscriptions/UserSubscDeleteDTO.java new file mode 100644 index 000000000..fac8d722b --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/userSubscriptions/UserSubscDeleteDTO.java @@ -0,0 +1,23 @@ +package com.ruoyi.xkt.dto.userSubscriptions; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("电商卖家新增店铺关注") +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class UserSubscDeleteDTO { + + @ApiModelProperty(value = "用户关注ID") + private List userSubscIdList; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/userSubscriptions/UserSubscPageDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/userSubscriptions/UserSubscPageDTO.java new file mode 100644 index 000000000..84ebf02e6 --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/userSubscriptions/UserSubscPageDTO.java @@ -0,0 +1,24 @@ +package com.ruoyi.xkt.dto.userSubscriptions; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.ruoyi.xkt.dto.BasePageDTO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@EqualsAndHashCode(callSuper = true) +@ApiModel("用户关注档口列表查询入参") +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class UserSubscPageDTO extends BasePageDTO { + + @ApiModelProperty(value = "档口名称") + private String storeName; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/userSubscriptions/UserSubscPageResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/userSubscriptions/UserSubscPageResDTO.java new file mode 100644 index 000000000..fa9503d5a --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/userSubscriptions/UserSubscPageResDTO.java @@ -0,0 +1,37 @@ +package com.ruoyi.xkt.dto.userSubscriptions; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("电商卖家关注档口列表返回数据") +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +@Accessors(chain = true) +public class UserSubscPageResDTO { + + @ApiModelProperty(value = "用户关注档口ID") + private Long userSubscId; + @ApiModelProperty(value = "档口ID") + private Long storeId; + @ApiModelProperty(name = "档口名称") + private String storeName; + @ApiModelProperty(name = "联系电话") + private String contactPhone; + @ApiModelProperty(name = "备选联系电话") + private String contactBackPhone; + @ApiModelProperty(name = "微信账号") + private String wechatAccount; + @ApiModelProperty(name = "QQ账号") + private String qqAccount; + @ApiModelProperty(name = "档口地址") + private String storeAddress; + +} \ No newline at end of file diff --git a/xkt/src/main/java/com/ruoyi/xkt/mapper/UserFavoritesMapper.java b/xkt/src/main/java/com/ruoyi/xkt/mapper/UserFavoritesMapper.java index 8cbc0ea3d..57a6b9640 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/mapper/UserFavoritesMapper.java +++ b/xkt/src/main/java/com/ruoyi/xkt/mapper/UserFavoritesMapper.java @@ -14,54 +14,6 @@ import java.util.List; * @date 2025-03-26 */ public interface UserFavoritesMapper extends BaseMapper { - /** - * 查询用户收藏商品 - * - * @param id 用户收藏商品主键 - * @return 用户收藏商品 - */ - public UserFavorites selectUserFavoritesByUserFavoId(Long id); - - /** - * 查询用户收藏商品列表 - * - * @param userFavorites 用户收藏商品 - * @return 用户收藏商品集合 - */ - public List selectUserFavoritesList(UserFavorites userFavorites); - - /** - * 新增用户收藏商品 - * - * @param userFavorites 用户收藏商品 - * @return 结果 - */ - public int insertUserFavorites(UserFavorites userFavorites); - - /** - * 修改用户收藏商品 - * - * @param userFavorites 用户收藏商品 - * @return 结果 - */ - public int updateUserFavorites(UserFavorites userFavorites); - - /** - * 删除用户收藏商品 - * - * @param id 用户收藏商品主键 - * @return 结果 - */ - public int deleteUserFavoritesByUserFavoId(Long id); - - /** - * 批量删除用户收藏商品 - * - * @param userFavoIds 需要删除的数据主键集合 - * @return 结果 - */ - public int deleteUserFavoritesByUserFavoIds(Long[] userFavoIds); - /** * 查询用户收藏列表 * @param pageDTO 收藏列表入参 diff --git a/xkt/src/main/java/com/ruoyi/xkt/mapper/UserSubscriptionsMapper.java b/xkt/src/main/java/com/ruoyi/xkt/mapper/UserSubscriptionsMapper.java index fe939fd39..63345d94f 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/mapper/UserSubscriptionsMapper.java +++ b/xkt/src/main/java/com/ruoyi/xkt/mapper/UserSubscriptionsMapper.java @@ -2,6 +2,8 @@ package com.ruoyi.xkt.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.xkt.domain.UserSubscriptions; +import com.ruoyi.xkt.dto.userSubscriptions.UserSubscPageResDTO; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -12,51 +14,14 @@ import java.util.List; * @date 2025-03-26 */ public interface UserSubscriptionsMapper extends BaseMapper { - /** - * 查询用户关注u档口 - * - * @param id 用户关注u档口主键 - * @return 用户关注u档口 - */ - public UserSubscriptions selectUserSubscriptionsByUserSubsId(Long id); /** - * 查询用户关注u档口列表 + * 获取用户关注列表 * - * @param userSubscriptions 用户关注u档口 - * @return 用户关注u档口集合 + * @param userId 用户ID + * @param storeName 档口名称 + * @return */ - public List selectUserSubscriptionsList(UserSubscriptions userSubscriptions); + List selectUserSubscPage(@Param("userId") Long userId, @Param("storeName") String storeName); - /** - * 新增用户关注u档口 - * - * @param userSubscriptions 用户关注u档口 - * @return 结果 - */ - public int insertUserSubscriptions(UserSubscriptions userSubscriptions); - - /** - * 修改用户关注u档口 - * - * @param userSubscriptions 用户关注u档口 - * @return 结果 - */ - public int updateUserSubscriptions(UserSubscriptions userSubscriptions); - - /** - * 删除用户关注u档口 - * - * @param id 用户关注u档口主键 - * @return 结果 - */ - public int deleteUserSubscriptionsByUserSubsId(Long id); - - /** - * 批量删除用户关注u档口 - * - * @param userSubsIds 需要删除的数据主键集合 - * @return 结果 - */ - public int deleteUserSubscriptionsByUserSubsIds(Long[] userSubsIds); } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/IUserSubscriptionsService.java b/xkt/src/main/java/com/ruoyi/xkt/service/IUserSubscriptionsService.java index 6d9058f49..e71ddfa3c 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/IUserSubscriptionsService.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/IUserSubscriptionsService.java @@ -1,61 +1,42 @@ package com.ruoyi.xkt.service; +import com.ruoyi.common.core.page.Page; import com.ruoyi.xkt.domain.UserSubscriptions; +import com.ruoyi.xkt.dto.userFavorite.UserFavoritePageDTO; +import com.ruoyi.xkt.dto.userSubscriptions.UserSubscDTO; +import com.ruoyi.xkt.dto.userSubscriptions.UserSubscDeleteDTO; +import com.ruoyi.xkt.dto.userSubscriptions.UserSubscPageDTO; +import com.ruoyi.xkt.dto.userSubscriptions.UserSubscPageResDTO; import java.util.List; /** - * 用户关注u档口Service接口 + * 用户关注档口Service接口 * * @author ruoyi * @date 2025-03-26 */ public interface IUserSubscriptionsService { - /** - * 查询用户关注u档口 - * - * @param userSubsId 用户关注u档口主键 - * @return 用户关注u档口 - */ - public UserSubscriptions selectUserSubscriptionsByUserSubsId(Long userSubsId); /** - * 查询用户关注u档口列表 - * - * @param userSubscriptions 用户关注u档口 - * @return 用户关注u档口集合 + * 新增用户关注档口 + * @param subscDTO 新增用户关注档口入参 + * @return Integer */ - public List selectUserSubscriptionsList(UserSubscriptions userSubscriptions); + Integer create(UserSubscDTO subscDTO); /** - * 新增用户关注u档口 - * - * @param userSubscriptions 用户关注u档口 - * @return 结果 + * 用户批量取消关注档口 + * @param deleteDTO 取消关注档口入参 + * @return Integer */ - public int insertUserSubscriptions(UserSubscriptions userSubscriptions); + Integer delete(UserSubscDeleteDTO deleteDTO); /** - * 修改用户关注u档口 - * - * @param userSubscriptions 用户关注u档口 - * @return 结果 + * 用户关注档口列表 + * @param pageDTO 查询入参 + * @return Page */ - public int updateUserSubscriptions(UserSubscriptions userSubscriptions); + Page page(UserSubscPageDTO pageDTO); - /** - * 批量删除用户关注u档口 - * - * @param userSubsIds 需要删除的用户关注u档口主键集合 - * @return 结果 - */ - public int deleteUserSubscriptionsByUserSubsIds(Long[] userSubsIds); - - /** - * 删除用户关注u档口信息 - * - * @param userSubsId 用户关注u档口主键 - * @return 结果 - */ - public int deleteUserSubscriptionsByUserSubsId(Long userSubsId); } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/UserSubscriptionsServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/UserSubscriptionsServiceImpl.java index 12d6dd712..8051de549 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/UserSubscriptionsServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/UserSubscriptionsServiceImpl.java @@ -1,93 +1,107 @@ package com.ruoyi.xkt.service.impl; -import com.ruoyi.common.utils.DateUtils; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.HttpStatus; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.core.page.Page; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.xkt.domain.UserSubscriptions; +import com.ruoyi.xkt.dto.userSubscriptions.UserSubscDTO; +import com.ruoyi.xkt.dto.userSubscriptions.UserSubscDeleteDTO; +import com.ruoyi.xkt.dto.userSubscriptions.UserSubscPageDTO; +import com.ruoyi.xkt.dto.userSubscriptions.UserSubscPageResDTO; import com.ruoyi.xkt.mapper.UserSubscriptionsMapper; import com.ruoyi.xkt.service.IUserSubscriptionsService; -import org.springframework.beans.factory.annotation.Autowired; +import lombok.RequiredArgsConstructor; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.Optional; /** - * 用户关注u档口Service业务层处理 + * 用户关注档口Service业务层处理 * * @author ruoyi * @date 2025-03-26 */ +@RequiredArgsConstructor @Service public class UserSubscriptionsServiceImpl implements IUserSubscriptionsService { - @Autowired - private UserSubscriptionsMapper userSubscriptionsMapper; + + final UserSubscriptionsMapper userSubscMapper; + /** - * 查询用户关注u档口 + * 新增用户关注档口 * - * @param userSubsId 用户关注u档口主键 - * @return 用户关注u档口 - */ - @Override - public UserSubscriptions selectUserSubscriptionsByUserSubsId(Long userSubsId) { - return userSubscriptionsMapper.selectUserSubscriptionsByUserSubsId(userSubsId); - } - - /** - * 查询用户关注u档口列表 - * - * @param userSubscriptions 用户关注u档口 - * @return 用户关注u档口 - */ - @Override - public List selectUserSubscriptionsList(UserSubscriptions userSubscriptions) { - return userSubscriptionsMapper.selectUserSubscriptionsList(userSubscriptions); - } - - /** - * 新增用户关注u档口 - * - * @param userSubscriptions 用户关注u档口 - * @return 结果 + * @param subscDTO 新增用户关注档口入参 + * @return Integer */ @Override @Transactional - public int insertUserSubscriptions(UserSubscriptions userSubscriptions) { - userSubscriptions.setCreateTime(DateUtils.getNowDate()); - return userSubscriptionsMapper.insertUserSubscriptions(userSubscriptions); + public Integer create(UserSubscDTO subscDTO) { + // 获取当前登录用户 + LoginUser loginUser = SecurityUtils.getLoginUser(); + // 判断是否已关注过 + UserSubscriptions exist = this.userSubscMapper.selectOne(new LambdaQueryWrapper() + .eq(UserSubscriptions::getUserId, loginUser.getUserId()).eq(UserSubscriptions::getStoreId, subscDTO.getStoreId()) + .eq(UserSubscriptions::getDelFlag, Constants.UNDELETED)); + if (ObjectUtils.isNotEmpty(exist)) { + throw new ServiceException("已关注过当前档口!", HttpStatus.ERROR); + } + UserSubscriptions userSubscriptions = new UserSubscriptions(); + userSubscriptions.setUserId(loginUser.getUserId()); + userSubscriptions.setStoreId(subscDTO.getStoreId()); + return this.userSubscMapper.insert(userSubscriptions); } /** - * 修改用户关注u档口 + * 用户批量取消关注档口 * - * @param userSubscriptions 用户关注u档口 - * @return 结果 + * @param deleteDTO 取消关注档口入参 + * @return Integer */ @Override @Transactional - public int updateUserSubscriptions(UserSubscriptions userSubscriptions) { - userSubscriptions.setUpdateTime(DateUtils.getNowDate()); - return userSubscriptionsMapper.updateUserSubscriptions(userSubscriptions); + public Integer delete(UserSubscDeleteDTO deleteDTO) { + // 获取当前登录用户 + LoginUser loginUser = SecurityUtils.getLoginUser(); + List list = Optional.ofNullable(this.userSubscMapper.selectList(new LambdaQueryWrapper() + .eq(UserSubscriptions::getUserId, loginUser.getUserId()).in(UserSubscriptions::getId, deleteDTO.getUserSubscIdList()) + .eq(UserSubscriptions::getDelFlag, Constants.UNDELETED))) + .orElseThrow(() -> new ServiceException("用户关注档口不存在!", HttpStatus.ERROR)); + list.forEach(x -> x.setDelFlag(Constants.DELETED)); + return this.userSubscMapper.updateById(list).size(); } /** - * 批量删除用户关注u档口 + * 用户关注档口列表 * - * @param userSubsIds 需要删除的用户关注u档口主键 - * @return 结果 + * @param pageDTO 查询入参 + * @return Page */ @Override - public int deleteUserSubscriptionsByUserSubsIds(Long[] userSubsIds) { - return userSubscriptionsMapper.deleteUserSubscriptionsByUserSubsIds(userSubsIds); + @Transactional(readOnly = true) + public Page page(UserSubscPageDTO pageDTO) { + // 获取当前登录用户 + LoginUser loginUser = SecurityUtils.getLoginUser(); + PageHelper.startPage(pageDTO.getPageNum(), pageDTO.getPageSize()); + List list = this.userSubscMapper.selectUserSubscPage(loginUser.getUserId(), pageDTO.getStoreName()); + if (CollectionUtils.isEmpty(list)) { + return Page.empty(pageDTO.getPageNum(), pageDTO.getPageSize()); + } + + // TODO 获取档口最近30天销量和近7日上新数量 + // TODO 获取档口最近30天销量和近7日上新数量 + + return Page.convert(new PageInfo<>(list)); } - /** - * 删除用户关注u档口信息 - * - * @param userSubsId 用户关注u档口主键 - * @return 结果 - */ - @Override - public int deleteUserSubscriptionsByUserSubsId(Long userSubsId) { - return userSubscriptionsMapper.deleteUserSubscriptionsByUserSubsId(userSubsId); - } } diff --git a/xkt/src/main/resources/mapper/UserFavoritesMapper.xml b/xkt/src/main/resources/mapper/UserFavoritesMapper.xml index 76cd00222..8571f89af 100644 --- a/xkt/src/main/resources/mapper/UserFavoritesMapper.xml +++ b/xkt/src/main/resources/mapper/UserFavoritesMapper.xml @@ -17,78 +17,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - select id, user_id, store_id, store_prod_id, version, del_flag, create_by, create_time, update_by, update_time from user_favorites - - - - - - - - insert into user_favorites - - user_id, - store_id, - store_prod_id, - version, - del_flag, - create_by, - create_time, - update_by, - update_time, - - - #{userId}, - #{storeId}, - #{storeProdId}, - #{version}, - #{delFlag}, - #{createBy}, - #{createTime}, - #{updateBy}, - #{updateTime}, - - - - - update user_favorites - - user_id = #{userId}, - store_id = #{storeId}, - store_prod_id = #{storeProdId}, - version = #{version}, - del_flag = #{delFlag}, - create_by = #{createBy}, - create_time = #{createTime}, - update_by = #{updateBy}, - update_time = #{updateTime}, - - where id = #{id} - - - - delete from user_favorites where id = #{id} - - - - delete from user_favorites where id in - - #{id} - - - - - - and user_id = #{userId} - and store_id = #{storeId} - and version = #{version} - - - - + SELECT + us.id AS userSubscId, + us.store_id, + s.store_name, + s.contact_phone, + s.contact_back_phone, + s.wechat_account, + s.qq_account, + s.store_address + FROM + user_subscriptions us + LEFT JOIN store s ON us.store_id = s.id + WHERE + us.del_flag = 0 AND us.user_id = #{userId} + and s.store_name = #{storeName} - - insert into user_subscriptions - - user_id, - store_id, - version, - del_flag, - create_by, - create_time, - update_by, - update_time, - - - #{userId}, - #{storeId}, - #{version}, - #{delFlag}, - #{createBy}, - #{createTime}, - #{updateBy}, - #{updateTime}, - - - - update user_subscriptions - - user_id = #{userId}, - store_id = #{storeId}, - version = #{version}, - del_flag = #{delFlag}, - create_by = #{createBy}, - create_time = #{createTime}, - update_by = #{updateBy}, - update_time = #{updateTime}, - - where id = #{id} - - - - delete from user_subscriptions where id = #{id} - - - - delete from user_subscriptions where id in - - #{id} - - \ No newline at end of file