master:用户关注档口功能;
parent
f76a01100c
commit
468445a814
|
|
@ -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<UserSubscriptions> 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<UserSubscriptions> list = userSubscriptionsService.selectUserSubscriptionsList(userSubscriptions);
|
||||
ExcelUtil<UserSubscriptions> util = new ExcelUtil<UserSubscriptions>(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<Integer> 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<UserSubscPageResDTO>> 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<Integer> remove(@Validated @RequestBody UserSubscDeleteVO deleteVO) {
|
||||
return R.ok(userSubscService.delete(BeanUtil.toBean(deleteVO, UserSubscDeleteDTO.class)));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<Long> userSubscIdList;
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
|
@ -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<Long> userSubscIdList;
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
|
@ -14,54 +14,6 @@ import java.util.List;
|
|||
* @date 2025-03-26
|
||||
*/
|
||||
public interface UserFavoritesMapper extends BaseMapper<UserFavorites> {
|
||||
/**
|
||||
* 查询用户收藏商品
|
||||
*
|
||||
* @param id 用户收藏商品主键
|
||||
* @return 用户收藏商品
|
||||
*/
|
||||
public UserFavorites selectUserFavoritesByUserFavoId(Long id);
|
||||
|
||||
/**
|
||||
* 查询用户收藏商品列表
|
||||
*
|
||||
* @param userFavorites 用户收藏商品
|
||||
* @return 用户收藏商品集合
|
||||
*/
|
||||
public List<UserFavorites> 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 收藏列表入参
|
||||
|
|
|
|||
|
|
@ -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<UserSubscriptions> {
|
||||
/**
|
||||
* 查询用户关注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<UserSubscriptions> selectUserSubscriptionsList(UserSubscriptions userSubscriptions);
|
||||
List<UserSubscPageResDTO> 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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<UserSubscriptions> 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<UserSubscPageResDTO>
|
||||
*/
|
||||
public int updateUserSubscriptions(UserSubscriptions userSubscriptions);
|
||||
Page<UserSubscPageResDTO> page(UserSubscPageDTO pageDTO);
|
||||
|
||||
/**
|
||||
* 批量删除用户关注u档口
|
||||
*
|
||||
* @param userSubsIds 需要删除的用户关注u档口主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteUserSubscriptionsByUserSubsIds(Long[] userSubsIds);
|
||||
|
||||
/**
|
||||
* 删除用户关注u档口信息
|
||||
*
|
||||
* @param userSubsId 用户关注u档口主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteUserSubscriptionsByUserSubsId(Long userSubsId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<UserSubscriptions> 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<UserSubscriptions>()
|
||||
.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<UserSubscriptions> list = Optional.ofNullable(this.userSubscMapper.selectList(new LambdaQueryWrapper<UserSubscriptions>()
|
||||
.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<UserSubscPageResDTO>
|
||||
*/
|
||||
@Override
|
||||
public int deleteUserSubscriptionsByUserSubsIds(Long[] userSubsIds) {
|
||||
return userSubscriptionsMapper.deleteUserSubscriptionsByUserSubsIds(userSubsIds);
|
||||
@Transactional(readOnly = true)
|
||||
public Page<UserSubscPageResDTO> page(UserSubscPageDTO pageDTO) {
|
||||
// 获取当前登录用户
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
PageHelper.startPage(pageDTO.getPageNum(), pageDTO.getPageSize());
|
||||
List<UserSubscPageResDTO> 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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,78 +17,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<result property="updateTime" column="update_time" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectUserFavoritesVo">
|
||||
select id, user_id, store_id, store_prod_id, version, del_flag, create_by, create_time, update_by, update_time from user_favorites
|
||||
</sql>
|
||||
|
||||
<select id="selectUserFavoritesList" parameterType="UserFavorites" resultMap="UserFavoritesResult">
|
||||
<include refid="selectUserFavoritesVo"/>
|
||||
<where>
|
||||
<if test="userId != null "> and user_id = #{userId}</if>
|
||||
<if test="storeId != null "> and store_id = #{storeId}</if>
|
||||
<if test="storeProdId != null "> and store_prod_id = #{storeProdId}</if>
|
||||
<if test="version != null "> and version = #{version}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectUserFavoritesByUserFavoId" parameterType="Long" resultMap="UserFavoritesResult">
|
||||
<include refid="selectUserFavoritesVo"/>
|
||||
where id = #{id}
|
||||
</select>
|
||||
|
||||
<insert id="insertUserFavorites" parameterType="UserFavorites" useGeneratedKeys="true" keyProperty="userFavoId">
|
||||
insert into user_favorites
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="userId != null">user_id,</if>
|
||||
<if test="storeId != null">store_id,</if>
|
||||
<if test="storeProdId != null">store_prod_id,</if>
|
||||
<if test="version != null">version,</if>
|
||||
<if test="delFlag != null">del_flag,</if>
|
||||
<if test="createBy != null">create_by,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
<if test="updateBy != null">update_by,</if>
|
||||
<if test="updateTime != null">update_time,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="userId != null">#{userId},</if>
|
||||
<if test="storeId != null">#{storeId},</if>
|
||||
<if test="storeProdId != null">#{storeProdId},</if>
|
||||
<if test="version != null">#{version},</if>
|
||||
<if test="delFlag != null">#{delFlag},</if>
|
||||
<if test="createBy != null">#{createBy},</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
<if test="updateBy != null">#{updateBy},</if>
|
||||
<if test="updateTime != null">#{updateTime},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<update id="updateUserFavorites" parameterType="UserFavorites">
|
||||
update user_favorites
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="userId != null">user_id = #{userId},</if>
|
||||
<if test="storeId != null">store_id = #{storeId},</if>
|
||||
<if test="storeProdId != null">store_prod_id = #{storeProdId},</if>
|
||||
<if test="version != null">version = #{version},</if>
|
||||
<if test="delFlag != null">del_flag = #{delFlag},</if>
|
||||
<if test="createBy != null">create_by = #{createBy},</if>
|
||||
<if test="createTime != null">create_time = #{createTime},</if>
|
||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<delete id="deleteUserFavoritesByUserFavoId" parameterType="Long">
|
||||
delete from user_favorites where id = #{id}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteUserFavoritesByUserFavoIds" parameterType="String">
|
||||
delete from user_favorites where id in
|
||||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<select id="selectUserFavPage" resultType="com.ruoyi.xkt.dto.userFavorite.UserFavoritePageResDTO">
|
||||
SELECT
|
||||
uf.id AS user_favorite_id,
|
||||
|
|
@ -97,7 +25,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
s.store_name,
|
||||
sp.prod_title,
|
||||
uf.create_time,
|
||||
sp.prod_art_num
|
||||
sp.prod_art_num,
|
||||
sp.prod_status
|
||||
FROM
|
||||
user_favorites uf
|
||||
LEFT JOIN store_product sp ON uf.store_prod_id = sp.id
|
||||
|
|
|
|||
|
|
@ -1,86 +1,38 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ruoyi.xkt.mapper.UserSubscriptionsMapper">
|
||||
|
||||
|
||||
<resultMap type="UserSubscriptions" id="UserSubscriptionsResult">
|
||||
<result property="id" column="id" />
|
||||
<result property="userId" column="user_id" />
|
||||
<result property="storeId" column="store_id" />
|
||||
<result property="version" column="version" />
|
||||
<result property="delFlag" column="del_flag" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="id" column="id"/>
|
||||
<result property="userId" column="user_id"/>
|
||||
<result property="storeId" column="store_id"/>
|
||||
<result property="version" column="version"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectUserSubscriptionsVo">
|
||||
select id, user_id, store_id, version, del_flag, create_by, create_time, update_by, update_time from user_subscriptions
|
||||
</sql>
|
||||
|
||||
<select id="selectUserSubscriptionsList" parameterType="UserSubscriptions" resultMap="UserSubscriptionsResult">
|
||||
<include refid="selectUserSubscriptionsVo"/>
|
||||
<where>
|
||||
<if test="userId != null "> and user_id = #{userId}</if>
|
||||
<if test="storeId != null "> and store_id = #{storeId}</if>
|
||||
<if test="version != null "> and version = #{version}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectUserSubscriptionsByUserSubsId" parameterType="Long" resultMap="UserSubscriptionsResult">
|
||||
<include refid="selectUserSubscriptionsVo"/>
|
||||
where id = #{id}
|
||||
<select id="selectUserSubscPage" resultType="com.ruoyi.xkt.dto.userSubscriptions.UserSubscPageResDTO">
|
||||
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}
|
||||
<if test="storeName != null and storeName != ''">and s.store_name = #{storeName}</if>
|
||||
</select>
|
||||
|
||||
<insert id="insertUserSubscriptions" parameterType="UserSubscriptions" useGeneratedKeys="true" keyProperty="userSubsId">
|
||||
insert into user_subscriptions
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="userId != null">user_id,</if>
|
||||
<if test="storeId != null">store_id,</if>
|
||||
<if test="version != null">version,</if>
|
||||
<if test="delFlag != null">del_flag,</if>
|
||||
<if test="createBy != null">create_by,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
<if test="updateBy != null">update_by,</if>
|
||||
<if test="updateTime != null">update_time,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="userId != null">#{userId},</if>
|
||||
<if test="storeId != null">#{storeId},</if>
|
||||
<if test="version != null">#{version},</if>
|
||||
<if test="delFlag != null">#{delFlag},</if>
|
||||
<if test="createBy != null">#{createBy},</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
<if test="updateBy != null">#{updateBy},</if>
|
||||
<if test="updateTime != null">#{updateTime},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<update id="updateUserSubscriptions" parameterType="UserSubscriptions">
|
||||
update user_subscriptions
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="userId != null">user_id = #{userId},</if>
|
||||
<if test="storeId != null">store_id = #{storeId},</if>
|
||||
<if test="version != null">version = #{version},</if>
|
||||
<if test="delFlag != null">del_flag = #{delFlag},</if>
|
||||
<if test="createBy != null">create_by = #{createBy},</if>
|
||||
<if test="createTime != null">create_time = #{createTime},</if>
|
||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<delete id="deleteUserSubscriptionsByUserSubsId" parameterType="Long">
|
||||
delete from user_subscriptions where id = #{id}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteUserSubscriptionsByUserSubsIds" parameterType="String">
|
||||
delete from user_subscriptions where id in
|
||||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue