Commit 9ce4cd60 authored by shiyu's avatar shiyu

个人藏馆

parent d6d0987c
...@@ -196,5 +196,41 @@ public class DistributionEnum { ...@@ -196,5 +196,41 @@ public class DistributionEnum {
} }
/**
* 藏品分享类型
*/
public enum CollectionShareTypeStateEnum {
ITEM(1, "藏品"),
PAGE(2, "个人藏馆"),
;
private int code;
private String des;
CollectionShareTypeStateEnum(int code, String des) {
this.code = code;
this.des = des;
}
public static String getNameByCode(int code) {
for (CollectionShareTypeStateEnum collectionShareTypeStateEnum : CollectionShareTypeStateEnum.values()) {
if (code == collectionShareTypeStateEnum.getCode()) {
return collectionShareTypeStateEnum.getDes();
}
}
return null;
}
public int getCode() {
return code;
}
public String getDes() {
return des;
}
}
} }
...@@ -5,6 +5,7 @@ import com.xxdxxs.entity.Entity; ...@@ -5,6 +5,7 @@ import com.xxdxxs.entity.Entity;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.Map; import java.util.Map;
@Data @Data
...@@ -193,5 +194,25 @@ public class SupplierItemVo implements Entity { ...@@ -193,5 +194,25 @@ public class SupplierItemVo implements Entity {
*/ */
private String rebateAmount; private String rebateAmount;
/**
* 是否客态
*/
private Boolean isMine;
/**
* 商品上传人id
*/
private Long creatorId;
private String creatorName;
/**
* 收藏数
*/
private Integer collectedNum;
/**
* 收藏人头像
*/
private List<String> collectorsAvatar;
} }
package com.wwdz.ch.db.dao.distribution;
import com.wwdz.ch.db.domain.distribution.CollectionShareRecord;
import com.wwdz.ch.db.domain.distribution.DistributorShareRecord;
import com.wwdz.ch.db.dto.request.distribution.CollectionShareRecordRequestDto;
import java.util.List;
public interface CollectionShareRecordDao {
/**
* 插入新记录
*
* @param collectionItemsRelation
* @return
*/
int insert(CollectionShareRecord collectionItemsRelation);
/**
* 查询记录
* @param dto
* @return
*/
List<CollectionShareRecord> find(CollectionShareRecordRequestDto dto);
/**
* 根据分享id查询记录
* @param shareId
* @return
*/
CollectionShareRecord findById(String shareId);
}
package com.wwdz.ch.db.dao.distribution;
import com.wwdz.ch.db.domain.distribution.ItemCollectedRecord;
import com.wwdz.ch.db.dto.request.distribution.ItemCollectedRecordRequestDto;
import java.util.List;
public interface ItemCollectedRecordDao {
/**
* 插入新记录
*
* @param itemCollectedRecord
* @return
*/
int insert(ItemCollectedRecord itemCollectedRecord);
/**
* 查询记录
* @param dto
* @return
*/
List<ItemCollectedRecord> find(ItemCollectedRecordRequestDto dto);
/**
* 取消收藏
* @param itemId
* @param collectorsId
* @return
*/
int cancel(long itemId, long collectorsId);
/**
* 统计商品被收藏数
*
* @param itemId
* @return
*/
long countByItemId(long itemId);
}
package com.wwdz.ch.db.dto.request.distribution;
import com.wwdz.ch.db.dto.request.BaseRequestDto;
import com.xxdxxs.entity.Entity;
import lombok.Data;
import java.util.Date;
@Data
public class CollectionShareRecordRequestDto extends BaseRequestDto implements Entity {
private Integer id;
/**
* 藏品所属用户id
*/
private Long itemUserId;
/**
* 分享记录id
*/
private String shareRecordId;
/**
* 分享的藏品或藏馆id
*/
private Long shareTargetId;
/**
* 分享人
*/
private Long sharerId;
/**
* 创建时间
*/
private Date createTime;
/**
* 更细时间
*/
private Date updateTime;
/**
* 分享的类型1藏品2藏馆
*/
private Integer type;
/**
* 是否删除
*/
private Boolean isDeleted;
}
package com.wwdz.ch.db.dto.request.distribution;
import com.wwdz.ch.db.dto.request.BaseRequestDto;
import com.xxdxxs.entity.Entity;
import lombok.Data;
import java.util.Date;
@Data
public class ItemCollectedRecordRequestDto extends BaseRequestDto implements Entity {
private Integer id;
/**
* 藏品所属用户id
*/
private Long itemUserId;
/**
* 藏品id
*/
private Long itemId;
/**
* 收藏人id
*/
private Long collectorsId;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 是否删除
*/
private Boolean isDeleted;
}
...@@ -157,4 +157,6 @@ public class SupplierItemRequestDto extends BaseRequestDto implements Entity { ...@@ -157,4 +157,6 @@ public class SupplierItemRequestDto extends BaseRequestDto implements Entity {
*/ */
private Long creatorId; private Long creatorId;
} }
package com.wwdz.ch.db.impl.distribution;
import com.wwdz.ch.db.dao.distribution.CollectionShareRecordDao;
import com.wwdz.ch.db.domain.distribution.CollectionShareRecord;
import com.wwdz.ch.db.domain.distribution.CollectionShareRecordExample;
import com.wwdz.ch.db.dto.request.distribution.CollectionShareRecordRequestDto;
import com.wwdz.ch.db.mapper.distribution.CollectionShareRecordMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public class CollectionShareRecordDaoImpl implements CollectionShareRecordDao {
@Autowired
CollectionShareRecordMapper collectionShareRecordMapper;
@Override
public int insert(CollectionShareRecord collectionItemsRelation) {
return collectionShareRecordMapper.insert(collectionItemsRelation);
}
@Override
public List<CollectionShareRecord> find(CollectionShareRecordRequestDto dto) {
return null;
}
@Override
public CollectionShareRecord findById(String shareId) {
CollectionShareRecordExample example = new CollectionShareRecordExample();
CollectionShareRecordExample.Criteria criteria = example.createCriteria();
criteria.andShareRecordIdEqualTo(shareId);
return collectionShareRecordMapper.selectOneByExample(example);
}
}
package com.wwdz.ch.db.impl.distribution;
import com.wwdz.ch.db.dao.distribution.ItemCollectedRecordDao;
import com.wwdz.ch.db.domain.distribution.ItemCollectedRecord;
import com.wwdz.ch.db.domain.distribution.ItemCollectedRecordExample;
import com.wwdz.ch.db.dto.request.distribution.ItemCollectedRecordRequestDto;
import com.wwdz.ch.db.mapper.distribution.ItemCollectedRecordMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import java.util.Date;
import java.util.List;
@Repository
public class ItemCollectedRecordDaoImpl implements ItemCollectedRecordDao {
@Autowired
ItemCollectedRecordMapper itemCollectedRecordMapper;
@Override
public int insert(ItemCollectedRecord itemCollectedRecord) {
return itemCollectedRecordMapper.insert(itemCollectedRecord);
}
@Override
public List<ItemCollectedRecord> find(ItemCollectedRecordRequestDto dto) {
return null;
}
@Override
public int cancel(long itemId, long collectorsId) {
ItemCollectedRecordExample example = new ItemCollectedRecordExample();
ItemCollectedRecordExample.Criteria criteria = example.createCriteria();
criteria.andItemIdEqualTo(itemId);
criteria.andCollectorsIdEqualTo(collectorsId);
ItemCollectedRecord itemCollectedRecord = new ItemCollectedRecord();
itemCollectedRecord.setIsDeleted(true);
itemCollectedRecord.setUpdateTime(new Date());
return itemCollectedRecordMapper.updateByExampleSelective(itemCollectedRecord, example);
}
@Override
public long countByItemId(long itemId) {
ItemCollectedRecordExample example = new ItemCollectedRecordExample();
ItemCollectedRecordExample.Criteria criteria = example.createCriteria();
criteria.andItemIdEqualTo(itemId);
criteria.andIsDeletedEqualTo(false);
return itemCollectedRecordMapper.countByExample(example);
}
}
package com.wwdz.ch.db.mapper.distribution;
import com.wwdz.ch.db.domain.distribution.CollectionShareRecord;
import com.wwdz.ch.db.domain.distribution.CollectionShareRecordExample;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface CollectionShareRecordMapper {
long countByExample(CollectionShareRecordExample example);
int deleteByExample(CollectionShareRecordExample example);
int deleteByPrimaryKey(Integer id);
int insert(CollectionShareRecord record);
int insertSelective(CollectionShareRecord record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table collection_share_record
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
CollectionShareRecord selectOneByExample(CollectionShareRecordExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table collection_share_record
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
CollectionShareRecord selectOneByExampleSelective(@Param("example") CollectionShareRecordExample example, @Param("selective") CollectionShareRecord.Column ... selective);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table collection_share_record
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
List<CollectionShareRecord> selectByExampleSelective(@Param("example") CollectionShareRecordExample example, @Param("selective") CollectionShareRecord.Column ... selective);
List<CollectionShareRecord> selectByExample(CollectionShareRecordExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table collection_share_record
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
CollectionShareRecord selectByPrimaryKeySelective(@Param("id") Integer id, @Param("selective") CollectionShareRecord.Column ... selective);
CollectionShareRecord selectByPrimaryKey(Integer id);
int updateByExampleSelective(@Param("record") CollectionShareRecord record, @Param("example") CollectionShareRecordExample example);
int updateByExample(@Param("record") CollectionShareRecord record, @Param("example") CollectionShareRecordExample example);
int updateByPrimaryKeySelective(CollectionShareRecord record);
int updateByPrimaryKey(CollectionShareRecord record);
}
\ No newline at end of file
package com.wwdz.ch.db.mapper.distribution;
import com.wwdz.ch.db.domain.distribution.ItemCollectedRecord;
import com.wwdz.ch.db.domain.distribution.ItemCollectedRecordExample;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface ItemCollectedRecordMapper {
long countByExample(ItemCollectedRecordExample example);
int deleteByExample(ItemCollectedRecordExample example);
int deleteByPrimaryKey(Integer id);
int insert(ItemCollectedRecord record);
int insertSelective(ItemCollectedRecord record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table item_collected_record
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
ItemCollectedRecord selectOneByExample(ItemCollectedRecordExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table item_collected_record
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
ItemCollectedRecord selectOneByExampleSelective(@Param("example") ItemCollectedRecordExample example, @Param("selective") ItemCollectedRecord.Column ... selective);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table item_collected_record
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
List<ItemCollectedRecord> selectByExampleSelective(@Param("example") ItemCollectedRecordExample example, @Param("selective") ItemCollectedRecord.Column ... selective);
List<ItemCollectedRecord> selectByExample(ItemCollectedRecordExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table item_collected_record
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
ItemCollectedRecord selectByPrimaryKeySelective(@Param("id") Integer id, @Param("selective") ItemCollectedRecord.Column ... selective);
ItemCollectedRecord selectByPrimaryKey(Integer id);
int updateByExampleSelective(@Param("record") ItemCollectedRecord record, @Param("example") ItemCollectedRecordExample example);
int updateByExample(@Param("record") ItemCollectedRecord record, @Param("example") ItemCollectedRecordExample example);
int updateByPrimaryKeySelective(ItemCollectedRecord record);
int updateByPrimaryKey(ItemCollectedRecord record);
}
\ No newline at end of file
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
<javaClientGenerator type="XMLMAPPER" targetPackage="com.wwdz.ch.db.mapper.distribution" <javaClientGenerator type="XMLMAPPER" targetPackage="com.wwdz.ch.db.mapper.distribution"
targetProject="ch-dao/src/main/java"/> targetProject="ch-dao/src/main/java"/>
<table tableName="supplier_item" enableCountByExample="true" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="true"> <table tableName="collection_share_record" enableCountByExample="true" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="true">
<generatedKey column="id" sqlStatement="Mysql" identity="true" /> <generatedKey column="id" sqlStatement="Mysql" identity="true" />
</table> </table>
......
...@@ -98,7 +98,7 @@ public class CollectionItemsRelationServiceImpl implements CollectionItemsRelati ...@@ -98,7 +98,7 @@ public class CollectionItemsRelationServiceImpl implements CollectionItemsRelati
}); });
collectionBookVo.setPageSearchResult(PageSearchResult.of(pageInfo, list)); collectionBookVo.setPageSearchResult(PageSearchResult.of(pageInfo, list));
return Result.success(collectionBookVo); return Result.success(collectionBookVo);
}catch (Exception e) { } catch (Exception e) {
logger.error("查询个人藏馆信息失败 error: {}", e); logger.error("查询个人藏馆信息失败 error: {}", e);
} }
return Result.failed(); return Result.failed();
......
package com.wwdz.ch.wx.impl.distribution;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.core.util.UUID;
import com.wwdz.ch.db.dao.distribution.CollectionShareRecordDao;
import com.wwdz.ch.db.dao.distribution.SupplierItemDao;
import com.wwdz.ch.db.domain.distribution.CollectionShareRecord;
import com.wwdz.ch.db.dto.request.distribution.CollectionShareRecordRequestDto;
import com.wwdz.ch.wx.service.distribution.CollectionShareRecordService;
import com.xxdxxs.utils.EntityMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.HashMap;
@Service
public class CollectionShareRecordServiceImpl implements CollectionShareRecordService {
private static final Logger logger = LoggerFactory.getLogger(CollectionShareRecordServiceImpl.class);
@Autowired
CollectionShareRecordDao collectionShareRecordDao;
@Autowired
SupplierItemDao supplierItemDao;
@Override
public Result createShareRecord(CollectionShareRecordRequestDto dto) {
try {
String shareRecordId = UUID.fastUUID().toString(true);
CollectionShareRecord collectionShareRecord = new CollectionShareRecord();
EntityMapper.copyAttribute(dto, collectionShareRecord);
collectionShareRecord.setShareRecordId(shareRecordId);
collectionShareRecord.setCreateTime(new Date());
collectionShareRecord.setUpdateTime(new Date());
collectionShareRecord.setIsDeleted(false);
collectionShareRecordDao.insert(collectionShareRecord);
return Result.success(new HashMap<String, String>(){{put("shareId", shareRecordId);}});
} catch (Exception e) {
logger.error("创建藏品分享链接失败 error: {}", e);
}
return Result.failed();
}
}
package com.wwdz.ch.wx.impl.distribution;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.core.util.UUID;
import com.wwdz.ch.db.dao.distribution.ItemCollectedRecordDao;
import com.wwdz.ch.db.domain.distribution.ItemCollectedRecord;
import com.wwdz.ch.db.dto.request.distribution.ItemCollectedRecordRequestDto;
import com.wwdz.ch.wx.service.distribution.ItemCollectedRecordService;
import com.xxdxxs.utils.EntityMapper;
import jdk.nashorn.internal.ir.EmptyNode;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
/**
* 收藏藏品记录
*/
@Service
public class ItemCollectedRecordServiceImpl implements ItemCollectedRecordService {
private static final Logger logger = LoggerFactory.getLogger(ItemCollectedRecordServiceImpl.class);
@Autowired
ItemCollectedRecordDao itemCollectedRecordDao;
@Override
public Result createItemCollectedRecord(ItemCollectedRecordRequestDto dto) {
try {
ItemCollectedRecord itemCollectedRecord = new ItemCollectedRecord();
itemCollectedRecord.setIsDeleted(false);
itemCollectedRecord.setCreateTime(new Date());
itemCollectedRecord.setUpdateTime(new Date());
itemCollectedRecordDao.insert(itemCollectedRecord);
return Result.success();
} catch (Exception e) {
logger.error("创建收藏记录 error: {}", e);
}
return Result.failed();
}
@Override
public Result cancel(ItemCollectedRecordRequestDto dto) {
try {
itemCollectedRecordDao.cancel(dto.getItemId(), dto.getCollectorsId());
return Result.success();
} catch (Exception e) {
logger.error("取消收藏 error: {}", e);
}
return Result.failed();
}
}
...@@ -5,6 +5,7 @@ import com.wwdz.ch.core.consts.DistributionEnum; ...@@ -5,6 +5,7 @@ import com.wwdz.ch.core.consts.DistributionEnum;
import com.wwdz.ch.core.consts.ResultCode; import com.wwdz.ch.core.consts.ResultCode;
import com.wwdz.ch.core.type.PageSearchResult; import com.wwdz.ch.core.type.PageSearchResult;
import com.wwdz.ch.core.type.Result; import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.core.util.CacheUtil;
import com.wwdz.ch.core.util.MediaUtil; import com.wwdz.ch.core.util.MediaUtil;
import com.wwdz.ch.core.util.PriceUtil; import com.wwdz.ch.core.util.PriceUtil;
import com.wwdz.ch.db.dao.SwitchDao; import com.wwdz.ch.db.dao.SwitchDao;
...@@ -85,6 +86,12 @@ public class SupplierItemServiceImpl implements SupplierItemService { ...@@ -85,6 +86,12 @@ public class SupplierItemServiceImpl implements SupplierItemService {
@Autowired @Autowired
CollectionItemsRelationService collectionItemsRelationService; CollectionItemsRelationService collectionItemsRelationService;
@Autowired
CacheUtil cacheUtil;
@Autowired
ItemCollectedRecordDao itemCollectedRecordDao;
@Override @Override
public Result findList(SupplierItemRequestDto dto) { public Result findList(SupplierItemRequestDto dto) {
try { try {
...@@ -544,4 +551,35 @@ public class SupplierItemServiceImpl implements SupplierItemService { ...@@ -544,4 +551,35 @@ public class SupplierItemServiceImpl implements SupplierItemService {
} }
@Override
public Result findCollectionItemDetail(SupplierItemRequestDto dto) {
try {
SupplierItemVo supplierItemVo = new SupplierItemVo();
long userId = dto.getUserId();
SupplierItem supplierItem = supplierItemDao.findById(dto.getId());
if (supplierItem.getCreatorId().longValue() != userId) {
supplierItemVo.setIsMine(false);
} else {
supplierItemVo.setIsMine(true);
}
EntityMapper.copyAttribute(supplierItem, supplierItemVo);
supplierItemVo.setItemId(supplierItem.getId());
supplierItemVo.setDistributionPrice(PriceUtil.convertPriceFenToYuan(supplierItem.getDistributionPrice()));
supplierItemVo.setHomePageImage(MediaUtil.getHomePageImage(supplierItem.getImages(), supplierItem.getVideos()));
supplierItemVo.setCreatorName(cacheUtil.getAppletUserNameById(dto.getCreatorId()));
//查询藏品被收藏的次数
long countNum = itemCollectedRecordDao.countByItemId(dto.getId());
supplierItemVo.setCollectedNum((int) countNum);
return Result.success(supplierItemVo);
} catch (Exception e) {
logger.error("查询藏品详情 error : {}", e);
}
return Result.failed();
}
} }
package com.wwdz.ch.wx.service.distribution;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.dto.request.distribution.CollectionShareRecordRequestDto;
public interface CollectionShareRecordService {
/**
* 创建藏品分享记录
* @param dto
* @return
*/
Result createShareRecord(CollectionShareRecordRequestDto dto);
}
package com.wwdz.ch.wx.service.distribution;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.dto.request.distribution.ItemCollectedRecordRequestDto;
public interface ItemCollectedRecordService {
/**
* 创建商品被收藏记录
* @param dto
* @return
*/
Result createItemCollectedRecord(ItemCollectedRecordRequestDto dto);
/**
* 取消收藏
* @param dto
* @return
*/
Result cancel(ItemCollectedRecordRequestDto dto);
}
...@@ -68,4 +68,11 @@ public interface SupplierItemService { ...@@ -68,4 +68,11 @@ public interface SupplierItemService {
Result findAuctionDetail(SupplierItemRequestDto dto); Result findAuctionDetail(SupplierItemRequestDto dto);
/**
* 查询用户上传的商品详情
* @param dto
* @return
*/
Result findCollectionItemDetail(SupplierItemRequestDto 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