Commit 477ac0f4 authored by shiyu's avatar shiyu

Merge remote-tracking branch 'origin/quanku_0930' into quanku_0930

parents 42bced7c 38fef5fc
package com.wwdz.ch.core.consts;
public enum ViewPermissionEnum {
ALL(0, "所有人"),
ONLY_ONESELF(1, "仅自己"),
;
private int code;
private String des;
ViewPermissionEnum(int code, String des) {
this.code = code;
this.des = des;
}
public static String getNameByCode(int code) {
for (ViewPermissionEnum viewPermissionEnum : ViewPermissionEnum.values()) {
if (code == viewPermissionEnum.getCode()) {
return viewPermissionEnum.getDes();
}
}
return null;
}
public int getCode() {
return code;
}
public String getDes() {
return des;
}
}
......@@ -77,7 +77,7 @@ public interface FavoritesItemsRelationDao {
* @param size
* @return
*/
PageInfo<FavoritesItemsRelation> pageByFavoritesId(Long favoritesId, int page, int size);
PageInfo<FavoritesItemsRelation> pageByFavoritesId(Long favoritesId, List<Long> onlyOneselfItemIds, int page, int size);
/**
* 通过用户id分页查询
......@@ -88,7 +88,7 @@ public interface FavoritesItemsRelationDao {
* @param type
* @return
*/
PageInfo<FavoritesItemsRelation> pageByUserId(Long userId, Integer type, int page, int size);
PageInfo<FavoritesItemsRelation> pageByUserId(Long userId, List<Long> itemIds, Integer type, int page, int size);
/**
* 通过藏品id统计记录数
......@@ -98,6 +98,14 @@ public interface FavoritesItemsRelationDao {
*/
long countByItemId(Long itemId);
/**
* 通过藏品id列表统计记录数
*
* @param itemIds
* @return
*/
long countByItemIds(List<Long> itemIds);
/**
* 判断是否已经存在用户id和藏品id对应的记录
*
......@@ -136,7 +144,7 @@ public interface FavoritesItemsRelationDao {
* @param favoritesId
* @return
*/
List<FavoritesItemsDto> queryItemImages(Long favoritesId);
List<FavoritesItemsDto> queryItemImages(Long favoritesId, List<Long> onlyOneselfItemIds);
/**
* 更新收藏册id
......
......@@ -32,6 +32,14 @@ public interface FootPrintDao {
*/
long countByUserId(Long userId);
/**
* 通过藏品id列表统计记录数
*
* @param itemIds
* @return
*/
long countByItemIds(List<Long> itemIds);
/**
* 批量删除记录
*
......
......@@ -124,11 +124,5 @@ public interface ItemDao {
*/
List<Item> findListWithImages(CoinRequestDto coinRequestDto);
/**
* 商品名称联想,返回16条
*
* @param coinRequestDto
* @return
*/
List<String> findNames(CoinRequestDto coinRequestDto);
List<Long> findOnlyOneselfItems(Long userId);
}
package com.wwdz.ch.db.dao;
import com.wwdz.ch.db.domain.ItemsOfficialUsersRelation;
public interface ItemsOfficialUsersRelationDao {
ItemsOfficialUsersRelation findUser(Long itemId);
ItemsOfficialUsersRelation findItems(Long user);
}
package com.wwdz.ch.db.domain;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import lombok.Data;
/**
* @author shiyu
* @date 2023/09/15
*/
@Data
public class ItemsOfficialUsersRelation implements Serializable {
private Long beginItemId;
private Long endItemId;
private Long userId;
private static final long serialVersionUID = 1L;
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", beginItemId=").append(beginItemId);
sb.append(", endItemId=").append(endItemId);
sb.append(", userId=").append(userId);
sb.append(", serialVersionUID=").append(serialVersionUID);
sb.append("]");
return sb.toString();
}
@Override
public boolean equals(Object that) {
if (this == that) {
return true;
}
if (that == null) {
return false;
}
if (getClass() != that.getClass()) {
return false;
}
ItemsOfficialUsersRelation other = (ItemsOfficialUsersRelation) that;
return (this.getBeginItemId() == null ? other.getBeginItemId() == null : this.getBeginItemId().equals(other.getBeginItemId()))
&& (this.getEndItemId() == null ? other.getEndItemId() == null : this.getEndItemId().equals(other.getEndItemId()))
&& (this.getUserId() == null ? other.getUserId() == null : this.getUserId().equals(other.getUserId()));
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((getBeginItemId() == null) ? 0 : getBeginItemId().hashCode());
result = prime * result + ((getEndItemId() == null) ? 0 : getEndItemId().hashCode());
result = prime * result + ((getUserId() == null) ? 0 : getUserId().hashCode());
return result;
}
/**
* This enum was generated by MyBatis Generator.
* This enum corresponds to the database table items_official_users_relation
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public enum Column {
beginItemId("begin_item_id", "beginItemId", "BIGINT", false),
endItemId("end_item_id", "endItemId", "BIGINT", false),
userId("user_id", "userId", "BIGINT", false);
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database table items_official_users_relation
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
private static final String BEGINNING_DELIMITER = "`";
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database table items_official_users_relation
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
private static final String ENDING_DELIMITER = "`";
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database table items_official_users_relation
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
private final String column;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database table items_official_users_relation
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
private final boolean isColumnNameDelimited;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database table items_official_users_relation
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
private final String javaProperty;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database table items_official_users_relation
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
private final String jdbcType;
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table items_official_users_relation
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public String value() {
return this.column;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table items_official_users_relation
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public String getValue() {
return this.column;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table items_official_users_relation
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public String getJavaProperty() {
return this.javaProperty;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table items_official_users_relation
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public String getJdbcType() {
return this.jdbcType;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table items_official_users_relation
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
Column(String column, String javaProperty, String jdbcType, boolean isColumnNameDelimited) {
this.column = column;
this.javaProperty = javaProperty;
this.jdbcType = jdbcType;
this.isColumnNameDelimited = isColumnNameDelimited;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table items_official_users_relation
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public String desc() {
return this.getEscapedColumnName() + " DESC";
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table items_official_users_relation
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public String asc() {
return this.getEscapedColumnName() + " ASC";
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table items_official_users_relation
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public static Column[] excludes(Column ... excludes) {
ArrayList<Column> columns = new ArrayList<>(Arrays.asList(Column.values()));
if (excludes != null && excludes.length > 0) {
columns.removeAll(new ArrayList<>(Arrays.asList(excludes)));
}
return columns.toArray(new Column[]{});
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table items_official_users_relation
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
public String getEscapedColumnName() {
if (this.isColumnNameDelimited) {
return new StringBuilder().append(BEGINNING_DELIMITER).append(this.column).append(ENDING_DELIMITER).toString();
} else {
return this.column;
}
}
}
}
\ No newline at end of file
......@@ -108,4 +108,8 @@ public class CoinRequestDto extends BaseRequestDto implements Entity {
*/
private Integer state;
// 是否是客态
private Boolean isGuest;
// 查看权限(0所有人,1仅自己可见)
private Integer viewPermission;
}
......@@ -30,4 +30,6 @@ public class FavoritesRequestDto implements Entity {
// 收藏册id列表
private List<Long> ids;
// 藏品id列表
private List<Long> itemIds;
}
......@@ -75,10 +75,13 @@ public class FavoritesItemsRelationDaoImpl implements FavoritesItemsRelationDao
}
@Override
public PageInfo<FavoritesItemsRelation> pageByFavoritesId(Long favoritesId, int page, int size) {
public PageInfo<FavoritesItemsRelation> pageByFavoritesId(Long favoritesId, List<Long> onlyOneselfItemIds, int page, int size) {
FavoritesItemsRelationExample example = new FavoritesItemsRelationExample();
FavoritesItemsRelationExample.Criteria criteria = example.createCriteria();
criteria.andFavoritesIdEqualTo(favoritesId);
if (!CollectionUtils.isEmpty(onlyOneselfItemIds)) {
criteria.andItemIdNotIn(onlyOneselfItemIds);
}
example.orderBy("update_time desc");
PageHelper.startPage(page, size);
List<FavoritesItemsRelation> list = favoritesItemsRelationMapper.selectByExample(example);
......@@ -86,13 +89,16 @@ public class FavoritesItemsRelationDaoImpl implements FavoritesItemsRelationDao
}
@Override
public PageInfo<FavoritesItemsRelation> pageByUserId(Long userId, Integer type, int page, int size) {
public PageInfo<FavoritesItemsRelation> pageByUserId(Long userId, List<Long> itemIds, Integer type, int page, int size) {
FavoritesItemsRelationExample example = new FavoritesItemsRelationExample();
FavoritesItemsRelationExample.Criteria criteria = example.createCriteria();
criteria.andUserIdEqualTo(userId);
if (type == 1) {
criteria.andFavoritesIdEqualTo(0L);
}
if (!CollectionUtils.isEmpty(itemIds)) {
criteria.andItemIdNotIn(itemIds);
}
example.orderBy("update_time desc");
PageHelper.startPage(page, size);
List<FavoritesItemsRelation> list = favoritesItemsRelationMapper.selectByExample(example);
......@@ -107,6 +113,14 @@ public class FavoritesItemsRelationDaoImpl implements FavoritesItemsRelationDao
return favoritesItemsRelationMapper.countByExample(example);
}
@Override
public long countByItemIds(List<Long> itemIds) {
FavoritesItemsRelationExample example = new FavoritesItemsRelationExample();
FavoritesItemsRelationExample.Criteria criteria = example.createCriteria();
criteria.andItemIdIn(itemIds);
return favoritesItemsRelationMapper.countByExample(example);
}
@Override
public boolean isCollected(Long userId, Long itemId, List<Long> itemIds) {
FavoritesItemsRelationExample example = new FavoritesItemsRelationExample();
......@@ -142,9 +156,10 @@ public class FavoritesItemsRelationDaoImpl implements FavoritesItemsRelationDao
}
@Override
public List<FavoritesItemsDto> queryItemImages(Long favoritesId) {
public List<FavoritesItemsDto> queryItemImages(Long favoritesId, List<Long> onlyOneselfItemIds) {
FavoritesRequestDto favoritesRequestDto = new FavoritesRequestDto();
favoritesRequestDto.setId(favoritesId);
favoritesRequestDto.setItemIds(onlyOneselfItemIds);
return favoritesItemsRelationMapper.selectItemImages(favoritesRequestDto);
}
......
......@@ -56,6 +56,16 @@ public class FootPrintDaoImpl implements FootPrintDao {
return footprintMapper.countByExample(example);
}
@Override
public long countByItemIds(List<Long> itemIds) {
FootprintExample example = new FootprintExample();
FootprintExample.Criteria criteria = example.createCriteria();
criteria.andItemIdIn(itemIds);
criteria.andDeletedEqualTo(false);
return footprintMapper.countByExample(example);
}
@Override
public int delete(List<Long> ids) {
FootprintExample example = new FootprintExample();
......
......@@ -17,6 +17,7 @@ import org.springframework.util.StringUtils;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.stream.IntStream;
@Repository
......@@ -67,6 +68,13 @@ public class ItemDaoImpl implements ItemDao {
ItemExample.Criteria criteria = example.createCriteria();
JdbcHelper.ifPresent(coinRequestDto.getIds(), criteria::andIdIn);
criteria.andIsDeletedEqualTo(false);
if (Objects.nonNull(coinRequestDto.getViewPermission())) {
criteria.andViewPermissionEqualTo(coinRequestDto.getViewPermission());
}
// 如果是客态则筛选所有人可见
if (Objects.nonNull(coinRequestDto.getIsGuest()) && coinRequestDto.getIsGuest()) {
criteria.andViewPermissionEqualTo(0);
}
example.orderBy("update_time desc");
PageHelper.startPage(coinRequestDto.getPage(), coinRequestDto.getLimit());
List<Item> list = itemMapper.selectByExampleWithBLOBs(example);
......@@ -368,19 +376,7 @@ public class ItemDaoImpl implements ItemDao {
}
@Override
public List<String> findNames(CoinRequestDto coinRequestDto) {
ItemExample example = new ItemExample();
ItemExample.Criteria criteria = example.createCriteria();
criteria.andIsDeletedEqualTo(false);
//暂时去除华夏古泉和天眷堂的钱币, 对应编码2和7
if (!ObjectUtils.isEmpty(coinRequestDto.getIsExcluded()) && coinRequestDto.getIsExcluded() == 1) {
criteria.andSourceNotEqualTo(2);
criteria.andSourceNotEqualTo(7);
}
criteria.andSourceIn(CHINESE_SOURCE_LIST);
if (StringUtils.hasLength(coinRequestDto.getName())) {
criteria.andNameLike("%" + coinRequestDto.getName() + "%");
}
return itemMapper.selectNameByExample(example);
public List<Long> findOnlyOneselfItems(Long userId) {
return itemMapper.selectOnlyOneselfItems(userId);
}
}
package com.wwdz.ch.db.impl;
import com.wwdz.ch.db.dao.ItemsOfficialUsersRelationDao;
import com.wwdz.ch.db.domain.ItemsOfficialUsersRelation;
import com.wwdz.ch.db.domain.ItemsOfficialUsersRelationExample;
import com.wwdz.ch.db.mapper.ItemsOfficialUsersRelationMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@Repository
public class ItemsOfficialUsersRelationDaoImpl implements ItemsOfficialUsersRelationDao {
@Autowired
private ItemsOfficialUsersRelationMapper itemsOfficialUsersRelationMapper;
@Override
public ItemsOfficialUsersRelation findUser(Long itemId) {
ItemsOfficialUsersRelationExample example = new ItemsOfficialUsersRelationExample();
ItemsOfficialUsersRelationExample.Criteria criteria = example.createCriteria();
criteria.andBeginItemIdLessThanOrEqualTo(itemId);
criteria.andEndItemIdGreaterThanOrEqualTo(itemId);
return itemsOfficialUsersRelationMapper.selectOneByExample(example);
}
@Override
public ItemsOfficialUsersRelation findItems(Long userId) {
ItemsOfficialUsersRelationExample example = new ItemsOfficialUsersRelationExample();
ItemsOfficialUsersRelationExample.Criteria criteria = example.createCriteria();
criteria.andUserIdEqualTo(userId);
return itemsOfficialUsersRelationMapper.selectOneByExample(example);
}
}
......@@ -2,11 +2,11 @@ package com.wwdz.ch.db.mapper;
import com.wwdz.ch.db.domain.Item;
import com.wwdz.ch.db.domain.ItemExample;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface ItemMapper {
long countByExample(ItemExample example);
......@@ -82,5 +82,5 @@ public interface ItemMapper {
int updateByPrimaryKey(Item record);
List<String> selectNameByExample(ItemExample example);
List<Long> selectOnlyOneselfItems(@Param("userId") Long userId);
}
\ No newline at end of file
package com.wwdz.ch.db.mapper;
import com.wwdz.ch.db.domain.ItemsOfficialUsersRelation;
import com.wwdz.ch.db.domain.ItemsOfficialUsersRelationExample;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface ItemsOfficialUsersRelationMapper {
long countByExample(ItemsOfficialUsersRelationExample example);
int deleteByExample(ItemsOfficialUsersRelationExample example);
int insert(ItemsOfficialUsersRelation record);
int insertSelective(ItemsOfficialUsersRelation record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table items_official_users_relation
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
ItemsOfficialUsersRelation selectOneByExample(ItemsOfficialUsersRelationExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table items_official_users_relation
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
ItemsOfficialUsersRelation selectOneByExampleSelective(@Param("example") ItemsOfficialUsersRelationExample example, @Param("selective") ItemsOfficialUsersRelation.Column ... selective);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table items_official_users_relation
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
List<ItemsOfficialUsersRelation> selectByExampleSelective(@Param("example") ItemsOfficialUsersRelationExample example, @Param("selective") ItemsOfficialUsersRelation.Column ... selective);
List<ItemsOfficialUsersRelation> selectByExample(ItemsOfficialUsersRelationExample example);
int updateByExampleSelective(@Param("record") ItemsOfficialUsersRelation record, @Param("example") ItemsOfficialUsersRelationExample example);
int updateByExample(@Param("record") ItemsOfficialUsersRelation record, @Param("example") ItemsOfficialUsersRelationExample example);
}
\ No newline at end of file
......@@ -268,6 +268,12 @@
<select id="selectItemImages" parameterType="com.wwdz.ch.db.dto.request.FavoritesRequestDto" resultMap="ItemResultMap">
select a.item_id,a.add_time,b.images,b.top_image
from favorites_items_relation a left join item b on a.item_id = b.id
where a.favorites_id = ${id} order by a.add_time desc
where a.favorites_id = ${id}
and a.item_id not in
<foreach item="item" index="index" collection="itemIds"
open="(" separator="," close=")">
#{item}
</foreach>
order by a.add_time desc
</select>
</mapper>
\ No newline at end of file
......@@ -30,8 +30,6 @@
<result column="detail" jdbcType="LONGVARCHAR" property="detail" />
<result column="original_extra" jdbcType="LONGVARCHAR" property="originalExtra" />
</resultMap>
<resultMap id="StringResultMap" type="java.lang.String">
</resultMap>
<sql id="Example_Where_Clause">
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
......@@ -720,19 +718,7 @@
</if>
limit 1
</select>
<select id="selectNameByExample" parameterType="com.wwdz.ch.db.domain.ItemExample" resultMap="StringResultMap">
select
distinct
name
from item
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
limit 16
<select id="selectOnlyOneselfItems" parameterType="java.lang.Long" resultType="java.lang.Long">
select a.id from item a join user_items_relation b on a.id = b.item_id where a.source_type = 2 and a.view_permission = 1 and b.user_id != ${userId}
</select>
</mapper>
\ No newline at end of file
<?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">
<mapper namespace="com.wwdz.ch.db.mapper.ItemsOfficialUsersRelationMapper">
<resultMap id="BaseResultMap" type="com.wwdz.ch.db.domain.ItemsOfficialUsersRelation">
<result column="begin_item_id" jdbcType="BIGINT" property="beginItemId" />
<result column="end_item_id" jdbcType="BIGINT" property="endItemId" />
<result column="user_id" jdbcType="BIGINT" property="userId" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Update_By_Example_Where_Clause">
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Base_Column_List">
begin_item_id, end_item_id, user_id
</sql>
<select id="selectByExample" parameterType="com.wwdz.ch.db.domain.ItemsOfficialUsersRelationExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
'true' as QUERYID,
<include refid="Base_Column_List" />
from items_official_users_relation
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<select id="selectByExampleSelective" parameterType="map" resultMap="BaseResultMap">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
@project https://github.com/itfsw/mybatis-generator-plugin
-->
select
'true' as QUERYID,
<if test="example.distinct">
distinct
</if>
<choose>
<when test="selective != null and selective.length > 0">
<foreach collection="selective" item="column" separator=",">
${column.escapedColumnName}
</foreach>
</when>
<otherwise>
begin_item_id, end_item_id, user_id
</otherwise>
</choose>
from items_official_users_relation
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
<if test="example.orderByClause != null">
order by ${example.orderByClause}
</if>
</select>
<delete id="deleteByExample" parameterType="com.wwdz.ch.db.domain.ItemsOfficialUsersRelationExample">
delete from items_official_users_relation
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="com.wwdz.ch.db.domain.ItemsOfficialUsersRelation">
insert into items_official_users_relation (begin_item_id, end_item_id, user_id
)
values (#{beginItemId,jdbcType=BIGINT}, #{endItemId,jdbcType=BIGINT}, #{userId,jdbcType=BIGINT}
)
</insert>
<insert id="insertSelective" parameterType="com.wwdz.ch.db.domain.ItemsOfficialUsersRelation">
insert into items_official_users_relation
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="beginItemId != null">
begin_item_id,
</if>
<if test="endItemId != null">
end_item_id,
</if>
<if test="userId != null">
user_id,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="beginItemId != null">
#{beginItemId,jdbcType=BIGINT},
</if>
<if test="endItemId != null">
#{endItemId,jdbcType=BIGINT},
</if>
<if test="userId != null">
#{userId,jdbcType=BIGINT},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.wwdz.ch.db.domain.ItemsOfficialUsersRelationExample" resultType="java.lang.Long">
select count(*) from items_official_users_relation
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update items_official_users_relation
<set>
<if test="record.beginItemId != null">
begin_item_id = #{record.beginItemId,jdbcType=BIGINT},
</if>
<if test="record.endItemId != null">
end_item_id = #{record.endItemId,jdbcType=BIGINT},
</if>
<if test="record.userId != null">
user_id = #{record.userId,jdbcType=BIGINT},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map">
update items_official_users_relation
set begin_item_id = #{record.beginItemId,jdbcType=BIGINT},
end_item_id = #{record.endItemId,jdbcType=BIGINT},
user_id = #{record.userId,jdbcType=BIGINT}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<select id="selectOneByExample" parameterType="com.wwdz.ch.db.domain.ItemsOfficialUsersRelationExample" resultMap="BaseResultMap">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
@project https://github.com/itfsw/mybatis-generator-plugin
-->
select
'true' as QUERYID,
<include refid="Base_Column_List" />
from items_official_users_relation
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
limit 1
</select>
<select id="selectOneByExampleSelective" parameterType="map" resultMap="BaseResultMap">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
@project https://github.com/itfsw/mybatis-generator-plugin
-->
select
'true' as QUERYID,
<choose>
<when test="selective != null and selective.length > 0">
<foreach collection="selective" item="column" separator=",">
${column.escapedColumnName}
</foreach>
</when>
<otherwise>
begin_item_id, end_item_id, user_id
</otherwise>
</choose>
from items_official_users_relation
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
<if test="example.orderByClause != null">
order by ${example.orderByClause}
</if>
limit 1
</select>
</mapper>
\ No newline at end of file
......@@ -28,6 +28,15 @@ public class UserInfo implements Serializable {
private String registerDate;//注册日期
// 微信号
private String wechatId;
private String followersNumber;
private String fansNumber;
private long collectionsNumber;
private long viewsNumber;
private String collectionsViewsNumber;
private Boolean isFollowed;
private Integer followedId;
private String profile;
private String background;
public String getCountry() {
return country;
......@@ -141,4 +150,76 @@ public class UserInfo implements Serializable {
this.status = status;
}
public String getFollowersNumber() {
return followersNumber;
}
public void setFollowersNumber(String followersNumber) {
this.followersNumber = followersNumber;
}
public String getCollectionsViewsNumber() {
return collectionsViewsNumber;
}
public void setCollectionsViewsNumber(String collectionsViewsNumber) {
this.collectionsViewsNumber = collectionsViewsNumber;
}
public String getFansNumber() {
return fansNumber;
}
public void setFansNumber(String fansNumber) {
this.fansNumber = fansNumber;
}
public long getCollectionsNumber() {
return collectionsNumber;
}
public void setCollectionsNumber(long collectionsNumber) {
this.collectionsNumber = collectionsNumber;
}
public long getViewsNumber() {
return viewsNumber;
}
public void setViewsNumber(long viewsNumber) {
this.viewsNumber = viewsNumber;
}
public Boolean getIsFollowed() {
return isFollowed;
}
public void setIsFollowed(Boolean isFollowed) {
this.isFollowed = isFollowed;
}
public Integer getFollowedId() {
return followedId;
}
public void setFollowedId(Integer followedId) {
this.followedId = followedId;
}
public String getProfile() {
return profile;
}
public void setProfile(String profile) {
this.profile = profile;
}
public String getBackground() {
return background;
}
public void setBackground(String background) {
this.background = background;
}
}
......@@ -43,4 +43,6 @@ public class ItemRequestDto implements Entity {
private String pageUrl;
// 环境类型(1、微信,2、支付宝,3、抖音)
private Integer loginType;
// 查看权限(0所有人,1仅自己可见)
private Integer viewPermission;
}
......@@ -25,8 +25,13 @@ public class ItemResponseVo implements Entity {
private String videos;
private Map<String, Object> homePageImage;
private Boolean isDeleted;
private String itemAvatar;
private String itemNickname;
private String profile;
private Integer timeType;
private List<Map<String, Object>> imagesList;
private List<Map<String, Object>> videosList;
private Integer viewPermission;
private Boolean isFollowed;
private Integer followedId;
}
......@@ -7,10 +7,7 @@ import com.wwdz.ch.db.dao.FavoritesDao;
import com.wwdz.ch.db.dao.FavoritesItemsRelationDao;
import com.wwdz.ch.db.dao.ItemDao;
import com.wwdz.ch.db.dao.UserItemsRelationDao;
import com.wwdz.ch.db.domain.Favorites;
import com.wwdz.ch.db.domain.FavoritesItemsRelation;
import com.wwdz.ch.db.domain.Item;
import com.wwdz.ch.db.domain.UserItemsRelation;
import com.wwdz.ch.db.domain.*;
import com.wwdz.ch.db.dto.FavoritesItemsDto;
import com.wwdz.ch.db.dto.request.CoinRequestDto;
import com.wwdz.ch.db.dto.request.FavoritesRequestDto;
......@@ -19,6 +16,7 @@ import com.wwdz.ch.wx.entity.vo.AgentTranceResponseVo;
import com.wwdz.ch.wx.entity.vo.FavoritesResponseVo;
import com.wwdz.ch.wx.entity.vo.ItemResponseVo;
import com.wwdz.ch.wx.service.FavoritesService;
import com.wwdz.ch.wx.service.ItemCommonService;
import com.wwdz.ch.wx.util.StringUtil;
import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
......@@ -28,6 +26,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
import java.util.stream.Collectors;
......@@ -43,9 +42,11 @@ public class FavoritesServiceImpl implements FavoritesService {
private UserItemsRelationDao userItemsRelationDao;
@Autowired
private ItemDao itemDao;
@Autowired
private ItemCommonService itemCommonService;
@Override
public Result page(FavoritesRequestDto dto) {
public Result page(FavoritesRequestDto dto, HttpServletRequest request) {
try {
PageInfo<AgentTranceResponseVo> page = new PageInfo<>();
page.setPageNum(dto.getPage());
......@@ -70,7 +71,7 @@ public class FavoritesServiceImpl implements FavoritesService {
vo.setDeleted(favorites.getDeleted());
vo.setAddTime(favorites.getAddTime());
// 设置封面图
vo.setImages(getFavoritesImage(favorites.getId()));
vo.setImages(getFavoritesImage(favorites.getId(), request.getHeader("Authorization")));
vo.setUpdateTime(favorites.getUpdateTime());
// 设置收藏数
vo.setCount(favoritesItemsRelationDao.countByFavoritesId(favorites.getId()));
......@@ -88,7 +89,7 @@ public class FavoritesServiceImpl implements FavoritesService {
}
@Override
public Result list(FavoritesRequestDto dto) {
public Result list(FavoritesRequestDto dto, HttpServletRequest request) {
try {
List<Favorites> list = favoritesDao.listByUserId(dto.getUserId());
List<FavoritesResponseVo> result = new ArrayList<>();
......@@ -101,7 +102,7 @@ public class FavoritesServiceImpl implements FavoritesService {
vo.setDeleted(favorites.getDeleted());
vo.setAddTime(favorites.getAddTime());
// 设置封面图
vo.setImages(getFavoritesImage(favorites.getId()));
vo.setImages(getFavoritesImage(favorites.getId(), request.getHeader("Authorization")));
vo.setUpdateTime(favorites.getUpdateTime());
// 设置收藏数
vo.setCount(favoritesItemsRelationDao.countByFavoritesId(favorites.getId()));
......@@ -170,7 +171,7 @@ public class FavoritesServiceImpl implements FavoritesService {
}
@Override
public Result info(FavoritesRequestDto dto) {
public Result info(FavoritesRequestDto dto, HttpServletRequest request) {
try {
Favorites favorites = favoritesDao.info(dto.getId());
if (Objects.isNull(favorites)) {
......@@ -187,7 +188,7 @@ public class FavoritesServiceImpl implements FavoritesService {
// 设置收藏数
vo.setCount(favoritesItemsRelationDao.countByFavoritesId(favorites.getId()));
// 设置封面图
vo.setImages(getFavoritesImage(favorites.getId()));
vo.setImages(getFavoritesImage(favorites.getId(), request.getHeader("Authorization")));
logger.info("【请求结束】查看收藏册详情成功");
return Result.success(vo);
} catch (Exception e) {
......@@ -213,14 +214,18 @@ public class FavoritesServiceImpl implements FavoritesService {
}
@Override
public Result itemList(FavoritesRequestDto dto) {
public Result itemList(FavoritesRequestDto dto, HttpServletRequest request) {
try {
PageInfo<AgentTranceResponseVo> page = new PageInfo<>();
page.setPageNum(dto.getPage());
page.setPageSize(dto.getSize());
page.setTotal(0L);
page.setList(new ArrayList<>());
PageInfo<FavoritesItemsRelation> relationPage = favoritesItemsRelationDao.pageByFavoritesId(dto.getId(), dto.getPage(), dto.getSize());
// 获取仅自己可见的藏品列表
List<Long> onlyOneselfItemIds = itemCommonService.getOnlyOneselfItemIds(request.getHeader("Authorization"));
// 分页查询
PageInfo<FavoritesItemsRelation> relationPage = favoritesItemsRelationDao.pageByFavoritesId(dto.getId(), onlyOneselfItemIds, dto.getPage(), dto.getSize());
page.setHasNextPage(relationPage.isHasNextPage());
if (relationPage.getList().isEmpty()) {
return Result.success(page);
......@@ -252,6 +257,9 @@ public class FavoritesServiceImpl implements FavoritesService {
// 设置收藏数
long count = favoritesItemsRelationDao.countByItemId(item.getId());
vo.setCollectCount(StringUtil.formatCount(count));
// 设置藏品发布用户的昵称和头像
itemCommonService.getNicknameAvatar(item.getId(), vo);
vo.setViewPermission(item.getViewPermission());
// 设置图片或视频
vo.setHomePageImage(MediaUtil.getHomePageImage(item.getImages(), item.getVideos()));
......@@ -418,9 +426,12 @@ public class FavoritesServiceImpl implements FavoritesService {
* @param id
* @return
*/
private List<String> getFavoritesImage(Long id) {
private List<String> getFavoritesImage(Long id, String token) {
List<String> images = new ArrayList<>();
List<FavoritesItemsDto> favoritesItemsDtos = favoritesItemsRelationDao.queryItemImages(id);
// 获取不属于登录用户的仅自己可见的藏品列表
List<Long> onlyOneselfItemIds = itemCommonService.getOnlyOneselfItemIds(token);
List<FavoritesItemsDto> favoritesItemsDtos = favoritesItemsRelationDao.queryItemImages(id, onlyOneselfItemIds);
if (CollectionUtils.isNotEmpty(favoritesItemsDtos)) {
if (favoritesItemsDtos.size() <= 4) {
for (FavoritesItemsDto favoritesItemsDto : favoritesItemsDtos) {
......
......@@ -14,6 +14,7 @@ import com.wwdz.ch.wx.entity.request.FootPrintRequestDto;
import com.wwdz.ch.wx.entity.vo.AgentTranceResponseVo;
import com.wwdz.ch.wx.entity.vo.ItemResponseVo;
import com.wwdz.ch.wx.service.FootPrintService;
import com.wwdz.ch.wx.service.ItemCommonService;
import com.wwdz.ch.wx.util.StringUtil;
import com.xxdxxs.utils.DateUtils;
import org.apache.commons.collections.CollectionUtils;
......@@ -38,6 +39,8 @@ public class FootPrintServiceImpl implements FootPrintService {
private FavoritesItemsRelationDao favoritesItemsRelationDao;
@Autowired
private UserItemsRelationDao userItemsRelationDao;
@Autowired
private ItemCommonService itemCommonService;
@Override
public Result page(FootPrintRequestDto dto) {
......@@ -107,6 +110,9 @@ public class FootPrintServiceImpl implements FootPrintService {
itemResponseVo.setCollectCount(StringUtil.formatCount(count));
// 设置图片或视频
itemResponseVo.setHomePageImage(MediaUtil.getHomePageImage(item.getImages(), item.getVideos()));
// 设置藏品的发布用户昵称和头像
itemCommonService.getNicknameAvatar(item.getId(), itemResponseVo);
itemResponseVo.setViewPermission(item.getViewPermission());
// 设置日期类型
if (footprint.getUpdateTime().compareTo(today) >= 0) {
......
package com.wwdz.ch.wx.impl;
import com.wwdz.ch.db.dao.*;
import com.wwdz.ch.db.domain.ItemsOfficialUsersRelation;
import com.wwdz.ch.db.domain.User;
import com.wwdz.ch.db.domain.UserItemsRelation;
import com.wwdz.ch.wx.dao.UserInfo;
import com.wwdz.ch.wx.entity.vo.ItemResponseVo;
import com.wwdz.ch.wx.manager.UserTokenManager;
import com.wwdz.ch.wx.service.ItemCommonService;
import com.wwdz.ch.wx.util.StringUtil;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Service
public class ItemCommonServiceImpl implements ItemCommonService {
@Autowired
private UserItemsRelationDao userItemsRelationDao;
@Autowired
private FavoritesItemsRelationDao favoritesItemsRelationDao;
@Autowired
private FootPrintDao footPrintDao;
@Autowired
private ItemsOfficialUsersRelationDao itemsOfficialUsersRelationDao;
@Autowired
private UserDao userDao;
@Autowired
private ItemDao itemDao;
@Autowired
private UserTokenManager userTokenManager;
@Override
public void getNicknameAvatar(Long itemId, ItemResponseVo vo) {
User user = null;
UserItemsRelation userItemsRelation = userItemsRelationDao.find(itemId);
if (Objects.nonNull(userItemsRelation)) {
user = userDao.queryById(userItemsRelation.getUserId());
} else {
ItemsOfficialUsersRelation itemsOfficialUsersRelation = itemsOfficialUsersRelationDao.findUser(itemId);
if (Objects.nonNull(itemsOfficialUsersRelation)) {
user = userDao.queryById(itemsOfficialUsersRelation.getUserId());
}
}
vo.setItemNickname(Objects.nonNull(user) ? user.getNickname() : "");
vo.setItemAvatar(Objects.nonNull(user) ? user.getAvatar() : "");
vo.setProfile(Objects.nonNull(user) ? user.getProfile() : "");
}
@Override
public List<Long> getOnlyOneselfItemIds(String token) {
Long userId = userTokenManager.getUserId(token);
return itemDao.findOnlyOneselfItems(userId);
}
@Override
public void getPageViews(UserInfo userInfo) {
long followersNumber = 0;
long fansNumber = 0;
long collectionsNumber = 0;
long viewsNumber = 0;
//TODO 关注和粉丝数量
List<UserItemsRelation> userItemsRelations = userItemsRelationDao.listByUserIds(userInfo.getUserId(), null);
if (CollectionUtils.isNotEmpty(userItemsRelations)) {
List<Long> itemIds = userItemsRelations.stream()
.map(UserItemsRelation::getItemId).collect(Collectors.toList());
collectionsNumber = favoritesItemsRelationDao.countByItemIds(itemIds);
viewsNumber = footPrintDao.countByItemIds(itemIds);
}
userInfo.setCollectionsNumber(collectionsNumber);
userInfo.setViewsNumber(viewsNumber);
userInfo.setFollowersNumber(StringUtil.formatCount(followersNumber));
userInfo.setFansNumber(StringUtil.formatCount(fansNumber));
userInfo.setCollectionsViewsNumber(StringUtil.formatCount(collectionsNumber + viewsNumber));
}
}
......@@ -14,6 +14,7 @@ import com.wwdz.ch.core.util.bcrypt.BCryptPasswordEncoder;
import com.wwdz.ch.db.dao.UserDao;
import com.wwdz.ch.db.domain.Switch;
import com.wwdz.ch.db.domain.User;
import com.wwdz.ch.db.dto.request.FollowFansRecordRequestDto;
import com.wwdz.ch.wx.constant.CacheCodeConstants;
import com.wwdz.ch.wx.constant.LoginTypeEnum;
import com.wwdz.ch.wx.dao.UserInfo;
......@@ -23,9 +24,7 @@ import com.wwdz.ch.wx.manager.AlipayLoginManager;
import com.wwdz.ch.wx.manager.TikTokLoginManager;
import com.wwdz.ch.wx.manager.UserTokenManager;
import com.wwdz.ch.wx.manager.WxLoginManager;
import com.wwdz.ch.wx.service.InviteRecordService;
import com.wwdz.ch.wx.service.SwitchService;
import com.wwdz.ch.wx.service.UserService;
import com.wwdz.ch.wx.service.*;
import com.wwdz.ch.wx.util.IpUtil;
import com.wwdz.ch.wx.util.RedisUtil;
import com.wwdz.ch.wx.util.StringUtil;
......@@ -77,6 +76,10 @@ public class UserServiceImpl implements UserService {
private InviteRecordService inviteRecordService;
@Autowired
private SwitchService switchService;
@Autowired
private ItemCommonService itemCommonService;
@Autowired
private FollowFansRecordService followFansRecordService;
@Override
......@@ -207,45 +210,6 @@ public class UserServiceImpl implements UserService {
}
}
@Transactional
@Override
public Result loginByWx(UserRequestDto dto, HttpServletRequest request) {
try {
String mobile = "";
try {
mobile = wxLoginManager.getPhone(dto);
if (StringUtils.equals("false", mobile)) {
return Result.failed("获取access_token失败");
}
if (StringUtils.equals("sessionFalse", mobile)) {
return Result.failed("获取sessionKey失败");
}
if (StringUtils.equals("phoneFalse", mobile)) {
return Result.failed("获取手机号失败");
}
if (StringUtils.equals("decryptFalse", mobile)) {
return Result.failed(ResultCode.FAILED.getCode(), "用户信息解密失败");
}
} catch (Exception e) {
logger.error("获取微信用户手机号失败", e);
return Result.failed("获取微信用户手机号失败");
}
if (StringUtils.isBlank(mobile)) {
logger.error("获取微信用户手机号失败");
return Result.failed("获取微信用户手机号失败");
}
// 获取登录结果
Map<String, Object> result = getLoginResult(mobile, request);
logger.info("【请求结束】手机号登录,响应结果:{}", JSONObject.toJSONString(result));
return Result.success(result);
} catch (Exception e) {
logger.error("微信快捷登录失败", e);
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return Result.failed("微信快捷登录失败");
}
}
@Transactional(rollbackFor = Exception.class)
@Override
public Result updateProfile(UserRequestDto dto) {
......@@ -411,6 +375,62 @@ public class UserServiceImpl implements UserService {
}
}
@Override
public Result guestUserInfo(UserRequestDto dto, HttpServletRequest request) {
try {
String token = request.getHeader("Authorization");
if (StringUtils.isBlank(token)) {
logger.info("获取登录用户的token失败");
return Result.failed("查询不到当前登录用户信息");
}
Long userId = userTokenManager.getUserId(token);
if (Objects.isNull(userId)) {
logger.info("获取登录用户的userId失败");
return Result.failed("查询不到当前登录用户信息");
}
User user = userDao.queryById(dto.getUserId());
UserInfo userInfo = new UserInfo();
userInfo.setUserId(dto.getUserId());
userInfo.setNickName(user.getNickname());
userInfo.setAvatarUrl(user.getAvatar());
userInfo.setProfile(user.getProfile());
userInfo.setBackground(user.getBackground());
userInfo.setIsFollowed(false);
userInfo.setFollowedId(null);
FollowFansRecordRequestDto followFansRecordRequestDto = new FollowFansRecordRequestDto();
followFansRecordRequestDto.setFollowerId(dto.getUserId());
followFansRecordRequestDto.setFansId(userId);
Result result = followFansRecordService.findFollowRelation(followFansRecordRequestDto);
if (result.getSuccess()) {
HashMap<String, Object> map = (HashMap<String, Object>) result.getData();
userInfo.setIsFollowed((Boolean) map.get("isFollowed"));
if (Objects.nonNull(map.get("id"))) {
userInfo.setFollowedId((Integer) map.get("id"));
}
}
logger.info("【请求结束】查询用户信息(客态)成功");
return Result.success(userInfo);
} catch (Exception e) {
logger.error("查询用户信息(客态)失败", e);
return Result.failed("查询用户信息(客态)失败");
}
}
@Override
public Result pageViews(UserRequestDto dto) {
try {
UserInfo userInfo = new UserInfo();
userInfo.setUserId(dto.getUserId());
itemCommonService.getPageViews(userInfo);
logger.info("【请求结束】查询关注粉丝浏览量");
return Result.success(userInfo);
} catch (Exception e) {
logger.error("查询关注粉丝浏览量失败", e);
return Result.failed("查询关注粉丝浏览量失败");
}
}
/**
* 获取登录结果
*
......@@ -472,6 +492,8 @@ public class UserServiceImpl implements UserService {
userInfo.setUserId(user.getId());
userInfo.setPhone(user.getMobile());
userInfo.setAvatarUrl(user.getAvatar());
userInfo.setProfile(user.getProfile());
userInfo.setBackground(user.getBackground());
userInfo.setGender(user.getGender());
userInfo.setNickName(user.getNickname());
userInfo.setWechatId(user.getWechatId());
......
......@@ -4,6 +4,8 @@ import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.wx.entity.request.ItemRequestDto;
import com.wwdz.ch.db.dto.request.FavoritesRequestDto;
import javax.servlet.http.HttpServletRequest;
public interface FavoritesService {
/**
* 收藏册分页
......@@ -11,7 +13,7 @@ public interface FavoritesService {
* @param dto
* @return
*/
Result page(FavoritesRequestDto dto);
Result page(FavoritesRequestDto dto, HttpServletRequest request);
/**
* 收藏册列表
......@@ -19,7 +21,7 @@ public interface FavoritesService {
* @param dto
* @return
*/
Result list(FavoritesRequestDto dto);
Result list(FavoritesRequestDto dto, HttpServletRequest request);
/**
* 新增收藏册
......@@ -43,7 +45,7 @@ public interface FavoritesService {
* @param dto
* @return
*/
Result info(FavoritesRequestDto dto);
Result info(FavoritesRequestDto dto, HttpServletRequest request);
/**
* 收藏品和收藏册数量
......@@ -59,7 +61,7 @@ public interface FavoritesService {
* @param dto
* @return
*/
Result itemList(FavoritesRequestDto dto);
Result itemList(FavoritesRequestDto dto, HttpServletRequest request);
/**
* 单个删除收藏册
......
package com.wwdz.ch.wx.service;
import com.wwdz.ch.wx.dao.UserInfo;
import com.wwdz.ch.wx.entity.vo.ItemResponseVo;
import java.util.List;
public interface ItemCommonService {
void getNicknameAvatar(Long itemId, ItemResponseVo vo);
List<Long> getOnlyOneselfItemIds(String token);
void getPageViews(UserInfo userInfo);
}
......@@ -4,6 +4,7 @@ import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.wx.entity.request.ItemRequestDto;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public interface ItemService {
......@@ -29,7 +30,7 @@ public interface ItemService {
* @param dto
* @return
*/
Result myPage(ItemRequestDto dto);
Result myPage(ItemRequestDto dto, HttpServletRequest request);
/**
* 全部藏品
......@@ -37,7 +38,7 @@ public interface ItemService {
* @param dto
* @return
*/
Result collectPage(ItemRequestDto dto);
Result collectPage(ItemRequestDto dto, HttpServletRequest request);
/**
* 新增藏品
......@@ -64,7 +65,7 @@ public interface ItemService {
Result del(ItemRequestDto dto);
/**
* 收藏(仅首页使用)
* 收藏(列表使用)
*
* @param dto
* @return
......@@ -72,7 +73,7 @@ public interface ItemService {
Result collect(ItemRequestDto dto);
/**
* 取消收藏(仅首页使用)
* 取消收藏(列表使用)
*
* @param dto
* @return
......@@ -87,16 +88,6 @@ public interface ItemService {
*/
Result update(ItemRequestDto dto);
/**
* 获取微信小程序小程序码
*
* @param page
* @param scene
* @param response
* @return
*/
Result getWxacode(String page, String scene, HttpServletResponse response);
/**
* 获取小程序码
*
......@@ -105,15 +96,7 @@ public interface ItemService {
* @param response
* @return
*/
Result getAcode(String page, String scene, Integer loginType, HttpServletResponse response);
/**
* 获取微信小程序短链接
*
* @param pageUrl
* @return
*/
Result getWxLink(String pageUrl);
Result getAcode(String page, String scene, Integer loginType, HttpServletRequest request, HttpServletResponse response);
/**
* 获取小程序链接
......@@ -121,7 +104,7 @@ public interface ItemService {
* @param pageUrl
* @return
*/
Result getLink(String pageUrl, Integer loginType);
Result getLink(String pageUrl, Integer loginType, HttpServletRequest request);
/**
* 上传图片
......@@ -137,5 +120,5 @@ public interface ItemService {
* @param file
* @return
*/
Result uploadVedio(MultipartFile file);
Result uploadVideo(MultipartFile file);
}
......@@ -32,15 +32,6 @@ public interface UserService {
*/
Result login(UserRequestDto dto, HttpServletRequest request);
/**
* 微信登录
*
* @param dto
* @param request
* @return
*/
Result loginByWx(UserRequestDto dto, HttpServletRequest request);
/**
* 修改个性签名
*
......@@ -84,7 +75,26 @@ public interface UserService {
/**
* 查询用户信息
*
* @param dto
* @param request
* @return
*/
Result userInfo(HttpServletRequest request);
/**
* 查询用户信息
*
* @param dto
* @param request
* @return
*/
Result guestUserInfo(UserRequestDto dto, HttpServletRequest request);
/**
* 关注粉丝浏览量
*
* @param dto
* @return
*/
Result pageViews(UserRequestDto dto);
}
......@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.Objects;
@RestController
......@@ -28,7 +29,7 @@ public class WxFavoritesController {
@ApiOperation(value = "分页查询")
@PostMapping("/page")
public Result page(@RequestBody FavoritesRequestDto dto) {
public Result page(@RequestBody FavoritesRequestDto dto, HttpServletRequest request) {
logger.info("【请求开始】收藏册分页查询,请求参数:{}", JSON.toJSONString(dto));
if (Objects.isNull(dto.getUserId()) || dto.getUserId().equals(0L)) {
return Result.failed("用户id不能为空");
......@@ -39,17 +40,17 @@ public class WxFavoritesController {
if (Objects.isNull(dto.getSize())) {
return Result.failed("页面大小不能为空");
}
return favoritesService.page(dto);
return favoritesService.page(dto, request);
}
@ApiOperation(value = "列表查询")
@PostMapping("/list")
public Result list(@RequestBody FavoritesRequestDto dto) {
public Result list(@RequestBody FavoritesRequestDto dto, HttpServletRequest request) {
logger.info("【请求开始】收藏册分页查询,请求参数:{}", JSON.toJSONString(dto));
if (Objects.isNull(dto.getUserId()) || dto.getUserId().equals(0L)) {
return Result.failed("用户id不能为空");
}
return favoritesService.list(dto);
return favoritesService.list(dto, request);
}
@ApiOperation(value = "新增")
......@@ -95,12 +96,12 @@ public class WxFavoritesController {
@ApiOperation(value = "详情")
@PostMapping("/info")
public Result info(@RequestBody FavoritesRequestDto dto) {
public Result info(@RequestBody FavoritesRequestDto dto, HttpServletRequest request) {
logger.info("【请求开始】收藏册详情查询,请求参数:{}", JSON.toJSONString(dto));
if (Objects.isNull(dto.getId())) {
return Result.failed("请选择收藏册");
}
return favoritesService.info(dto);
return favoritesService.info(dto, request);
}
@ApiOperation(value = "收藏品和收藏册数量")
......@@ -115,7 +116,7 @@ public class WxFavoritesController {
@ApiOperation(value = "收藏册下藏品列表")
@PostMapping("/itemList")
public Result itemList(@RequestBody FavoritesRequestDto dto) {
public Result itemList(@RequestBody FavoritesRequestDto dto, HttpServletRequest request) {
logger.info("【请求开始】收藏册下藏品列表分页查询,请求参数:{}", JSON.toJSONString(dto));
if (Objects.isNull(dto.getId())) {
return Result.failed("请选择收藏册");
......@@ -126,7 +127,7 @@ public class WxFavoritesController {
if (Objects.isNull(dto.getSize())) {
return Result.failed("页面大小不能为空");
}
return favoritesService.itemList(dto);
return favoritesService.itemList(dto, request);
}
@ApiOperation(value = "单个删除")
......
......@@ -12,6 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Objects;
......@@ -49,7 +50,7 @@ public class WxItemController {
@ApiOperation(value = "我发布的")
@PostMapping("/myPage")
public Result myPage(@RequestBody ItemRequestDto dto) {
public Result myPage(@RequestBody ItemRequestDto dto, HttpServletRequest request) {
logger.info("【请求开始】我发布的,请求参数:{}", JSON.toJSONString(dto));
if (Objects.isNull(dto.getUserId()) || dto.getUserId().equals(0L)) {
return Result.failed("用户id不能为空");
......@@ -60,12 +61,12 @@ public class WxItemController {
if (Objects.isNull(dto.getSize())) {
return Result.failed("页面大小不能为空");
}
return itemService.myPage(dto);
return itemService.myPage(dto, request);
}
@ApiOperation(value = "全部收藏")
@PostMapping("/collectPage")
public Result collectPage(@RequestBody ItemRequestDto dto) {
public Result collectPage(@RequestBody ItemRequestDto dto, HttpServletRequest request) {
logger.info("【请求开始】全部收藏,请求参数:{}", JSON.toJSONString(dto));
if (Objects.isNull(dto.getUserId()) || dto.getUserId().equals(0L)) {
return Result.failed("用户id不能为空");
......@@ -79,7 +80,7 @@ public class WxItemController {
if (Objects.isNull(dto.getType())) {
return Result.failed("类型不能为空");
}
return itemService.collectPage(dto);
return itemService.collectPage(dto, request);
}
@ApiOperation(value = "新增")
......@@ -173,16 +174,9 @@ public class WxItemController {
return itemService.cancel(dto);
}
@ApiOperation(value = "小程序码")
@GetMapping("/getWxacode")
public Result getWxacode(String page, String scene, HttpServletResponse response) {
logger.info("【请求开始】获取微信小程序码,请求参数:{}", "page=" + page +",scene=" + scene);
return itemService.getWxacode(page, scene, response);
}
@ApiOperation(value = "小程序码")
@GetMapping("/getAcode")
public Result getAcode(String page, String scene, Integer loginType, HttpServletResponse response) {
public Result getAcode(String page, String scene, Integer loginType, HttpServletRequest request, HttpServletResponse response) {
logger.info("【请求开始】获小程序码,请求参数:{}", "page=" + page + ",scene=" + scene + ",loginType=" + loginType);
if (StringUtils.isBlank(page)) {
return Result.failed("页面路径不能为空");
......@@ -193,19 +187,12 @@ public class WxItemController {
if (Objects.isNull(loginType)) {
return Result.failed("请提供请求的环境类型");
}
return itemService.getAcode(page, scene, loginType, response);
}
@ApiOperation(value = "小程序链接")
@PostMapping("/getWxLink")
public Result getWxLink(@RequestBody ItemRequestDto dto) {
logger.info("【请求开始】获取小程序链接,请求参数:{}", JSON.toJSONString(dto));
return itemService.getWxLink(dto.getPageUrl());
return itemService.getAcode(page, scene, loginType, request, response);
}
@ApiOperation(value = "小程序链接")
@PostMapping("/getLink")
public Result getLink(@RequestBody ItemRequestDto dto) {
public Result getLink(@RequestBody ItemRequestDto dto, HttpServletRequest request) {
logger.info("【请求开始】获取小程序链接,请求参数:{}", JSON.toJSONString(dto));
if (StringUtils.isBlank(dto.getPageUrl())) {
return Result.failed("页面路径不能为空");
......@@ -213,7 +200,7 @@ public class WxItemController {
if (Objects.isNull(dto.getLoginType())) {
return Result.failed("请提供请求的环境类型");
}
return itemService.getLink(dto.getPageUrl(), dto.getLoginType());
return itemService.getLink(dto.getPageUrl(), dto.getLoginType(), request);
}
@ApiOperation("图片上传")
......@@ -227,10 +214,10 @@ public class WxItemController {
@ApiOperation("视频上传")
@PostMapping(value ="/uploadVedio")
public Result uploadVedio(@RequestParam("vedio") MultipartFile file) {
public Result uploadVideo(@RequestParam("vedio") MultipartFile file) {
if (Objects.isNull(file) || file.isEmpty()) {
return Result.failed("请上传视频");
}
return itemService.uploadVedio(file);
return itemService.uploadVideo(file);
}
}
......@@ -70,24 +70,6 @@ public class WxUserController {
return userService.login(dto, request);
}
@ApiOperation(value = "微信登录")
@PostMapping("/loginByWx")
public Result loginByWx(@RequestBody UserRequestDto dto, HttpServletRequest request) {
logger.info("【请求开始】微信登录,请求参数:{}", JSON.toJSONString(dto));
if (StringUtils.isBlank(dto.getCode())) {
return Result.failed("授权码不能为空");
}
if (Objects.isNull(dto.getType())) {
return Result.failed("版本类型不能为空");
}
if (dto.getType() == 2) {
if (StringUtils.isBlank(dto.getEncryptedData()) || StringUtils.isBlank(dto.getIv())) {
return Result.failed("encryptedData或iv不能为空");
}
}
return userService.loginByWx(dto, request);
}
@ApiOperation(value = "登录手机验证码")
@PostMapping("/loginRegCaptcha")
public Object registerCaptcha(@RequestBody UserRequestDto dto) {
......@@ -137,6 +119,10 @@ public class WxUserController {
}
if (StringUtils.isBlank(dto.getProfile())) {
dto.setProfile("");
} else {
if (dto.getProfile().length() > 30) {
return Result.failed("个人简介的字数应在30字以内");
}
}
return userService.updateProfile(dto);
}
......@@ -216,4 +202,18 @@ public class WxUserController {
logger.info("【请求开始】查询用户信息");
return userService.userInfo(request);
}
@ApiOperation(value = "用户信息(客态)")
@PostMapping("/guest/userInfo")
public Result guestUserInfo(@RequestBody UserRequestDto dto, HttpServletRequest request) {
logger.info("【请求开始】查询用户信息(客态),请求参数:{}", JSON.toJSONString(dto));
return userService.guestUserInfo(dto, request);
}
@ApiOperation(value = "关注粉丝浏览量")
@PostMapping("/pageViews")
public Result pageViews(@RequestBody UserRequestDto dto) {
logger.info("【请求开始】查询关注粉丝浏览量,请求参数:{}", JSON.toJSONString(dto));
return userService.pageViews(dto);
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment