Commit bffe3d38 authored by shiyu's avatar shiyu

新增商品关注

parent e21bade3
......@@ -324,4 +324,9 @@ public class SupplierItemVo implements Entity {
*/
private Boolean isFollowed;
/**
* 商品被关注的记录id
*/
private Long followRecordId;
}
......@@ -9,9 +9,11 @@ public interface SpecialPerformanceItemFollowDao {
List<SpecialPerformanceItemFollow> findList(SpecialPerformanceItemFollowRequestDto dto);
List<SpecialPerformanceItemFollow> findAllList(int specialPerformanceId);
List<SpecialPerformanceItemFollow> findAllList(SpecialPerformanceItemFollowRequestDto dto);
boolean insert(SpecialPerformanceItemFollow specialPerformanceItemFollow);
boolean update(SpecialPerformanceItemFollow specialPerformanceItemFollow);
boolean updateByPrimaryKey(SpecialPerformanceItemFollow specialPerformanceItemFollow);
}
......@@ -5,6 +5,7 @@ import com.wwdz.ch.db.domain.distribution.SpecialPerformanceItemFollow;
import com.wwdz.ch.db.domain.distribution.SpecialPerformanceItemFollowExample;
import com.wwdz.ch.db.dto.request.distribution.SpecialPerformanceItemFollowRequestDto;
import com.wwdz.ch.db.mapper.distribution.SpecialPerformanceItemFollowMapper;
import com.xxdxxs.db.component.JdbcHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import java.util.List;
......@@ -21,10 +22,12 @@ public class SpecialPerformanceItemFollowDaoImpl implements SpecialPerformanceIt
}
@Override
public List<SpecialPerformanceItemFollow> findAllList(int specialPerformanceId) {
public List<SpecialPerformanceItemFollow> findAllList(SpecialPerformanceItemFollowRequestDto dto) {
SpecialPerformanceItemFollowExample example = new SpecialPerformanceItemFollowExample();
SpecialPerformanceItemFollowExample.Criteria criteria = example.createCriteria();
criteria.andSpecialPerformanceIdEqualTo(specialPerformanceId);
criteria.andSpecialPerformanceIdEqualTo(dto.getSpecialPerformanceId());
JdbcHelper.ifPresent(dto.getUserId(), criteria::andUserIdEqualTo);
JdbcHelper.ifPresent(dto.getItemId(), criteria::andItemIdEqualTo);
criteria.andStateEqualTo(1);
return specialPerformanceItemFollowMapper.selectByExample(example);
}
......@@ -36,6 +39,16 @@ public class SpecialPerformanceItemFollowDaoImpl implements SpecialPerformanceIt
@Override
public boolean update(SpecialPerformanceItemFollow specialPerformanceItemFollow) {
return false;
SpecialPerformanceItemFollowExample example = new SpecialPerformanceItemFollowExample();
SpecialPerformanceItemFollowExample.Criteria criteria = example.createCriteria();
criteria.andSpecialPerformanceIdEqualTo(specialPerformanceItemFollow.getSpecialPerformanceId());
criteria.andItemIdEqualTo(specialPerformanceItemFollow.getItemId());
criteria.andUserIdEqualTo(specialPerformanceItemFollow.getUserId());
return specialPerformanceItemFollowMapper.updateByExampleSelective(specialPerformanceItemFollow, example) > 0;
}
@Override
public boolean updateByPrimaryKey(SpecialPerformanceItemFollow specialPerformanceItemFollow) {
return specialPerformanceItemFollowMapper.updateByPrimaryKeySelective(specialPerformanceItemFollow) > 0;
}
}
......@@ -42,11 +42,25 @@ public class SpecialPerformanceItemFollowServiceImpl implements SpecialPerforman
specialPerformanceItemFollow.setCreateTime(new Date());
specialPerformanceItemFollow.setUpdateTime(new Date());
specialPerformanceItemFollow.setState(DisposableSubscribeRecordEnum.ItemFollowStateEnum.FOLLOWED.getCode());
specialPerformanceItemFollowDao.update(specialPerformanceItemFollow);
specialPerformanceItemFollowDao.insert(specialPerformanceItemFollow);
} catch (Exception e) {
logger.error("新增专场商品关注记录失败 error : {}", e);
}
return Result.failed();
}
@Override
public Result cancelItemFollow(SpecialPerformanceItemFollowRequestDto dto) {
try {
SpecialPerformanceItemFollow specialPerformanceItemFollow = new SpecialPerformanceItemFollow();
specialPerformanceItemFollow.setId(dto.getId());
specialPerformanceItemFollow.setUpdateTime(new Date());
specialPerformanceItemFollow.setState(DisposableSubscribeRecordEnum.ItemFollowStateEnum.NOT_FOLLOWED.getCode());
specialPerformanceItemFollowDao.update(specialPerformanceItemFollow);
} catch (Exception e) {
logger.error("取消专场商品关注失败 error : {}", e);
}
return Result.failed();
}
}
......@@ -75,6 +75,9 @@ public class SpecialPerformanceServiceImpl implements SpecialPerformanceService
@Autowired
DisposableSubscribeRecordDao disposableSubscribeRecordDao;
@Autowired
SpecialPerformanceItemFollowDao specialPerformanceItemFollowDao;
private final static String SPECIAL_PERFORMANCE_URL = "/pages/saleSpecialList/index";
private final static String SPECIAL_PERFORMANCE_PROGRESS_SEND_MSG_KEY = "SPECIAL_PERFORMANCE_PROGRESS_SEND_MSG_KEY:";
......@@ -339,12 +342,25 @@ public class SpecialPerformanceServiceImpl implements SpecialPerformanceService
Date previewStartTime = Date.from(startInstant);
Map<Long, SupplierItem> supplierItemMap = supplierItemList.stream().collect(Collectors.toMap(SupplierItem::getId, Function.identity()));
//查询该专场下所有商品的关注记录
SpecialPerformanceItemFollowRequestDto specialPerformanceItemFollowRequestDto = new SpecialPerformanceItemFollowRequestDto();
specialPerformanceItemFollowRequestDto.setSpecialPerformanceId(dto.getSpecialPerformanceId());
specialPerformanceItemFollowRequestDto.setUserId(dto.getUserId());
List<SpecialPerformanceItemFollow> specialPerformanceItemFollowList = specialPerformanceItemFollowDao.findAllList(specialPerformanceItemFollowRequestDto);
Map<Long, SpecialPerformanceItemFollow> followMap = specialPerformanceItemFollowList.stream()
.collect(Collectors.toMap(SpecialPerformanceItemFollow::getItemId, Function.identity(), (k1,k2)->k2));
for (SpecialPerformanceConfig specialPerformanceConfig : list) {
long itemId = specialPerformanceConfig.getItemId();
SupplierItem supplierItem = supplierItemMap.get(itemId);
SupplierItemVo supplierItemVo = new SupplierItemVo();
EntityMapper.copyAttribute(supplierItem, supplierItemVo);
if (followMap.containsKey(itemId)) {
supplierItemVo.setIsFollowed(true);
supplierItemVo.setFollowRecordId(followMap.get(itemId).getId());
} else {
supplierItemVo.setIsFollowed(false);
}
supplierItemVo.setLot(specialPerformanceConfig.getLot());
supplierItemVo.setCurrentPrice(PriceUtil.convertPriceFenToYuan(specialPerformanceConfig.getCurrentPrice()));
supplierItemVo.setItemId(supplierItem.getId());
......
......@@ -11,4 +11,12 @@ public interface SpecialPerformanceItemFollowService {
* @return
*/
Result addItemFollow(SpecialPerformanceItemFollowRequestDto dto);
/**
* 取消专场商品关注
* @param dto
* @return
*/
Result cancelItemFollow(SpecialPerformanceItemFollowRequestDto dto);
}
......@@ -25,8 +25,8 @@ public class SpecialPerformanceItemFollowController {
SpecialPerformanceItemFollowService specialPerformanceItemFollowService;
@ApiOperation(value = "新增专场商品关注记录")
@PostMapping("/findInfo")
public Result findInfo(@RequestBody SpecialPerformanceItemFollowRequestDto dto) {
@PostMapping("/addItemFollow")
public Result addItemFollow(@RequestBody SpecialPerformanceItemFollowRequestDto dto) {
logger.info("新增专场商品关注记录,请求参数:{}", JSON.toJSONString(dto));
Validator validator = new Validator(FormHandler.ofEntity(dto));
validator.set("specialPerformanceId", "专场id").must().number()
......@@ -39,4 +39,18 @@ public class SpecialPerformanceItemFollowController {
return specialPerformanceItemFollowService.addItemFollow(dto);
}
@ApiOperation(value = "取消专场商品关注")
@PostMapping("/cancelItemFollow")
public Result cancelItemFollow(@RequestBody SpecialPerformanceItemFollowRequestDto dto) {
logger.info("取消专场商品关注,请求参数:{}", JSON.toJSONString(dto));
Validator validator = new Validator(FormHandler.ofEntity(dto));
validator.set("id", "关注记录的id").must().number()
.end();
if (!validator.isValid()) {
return Result.failed(validator.getErrorInfo());
}
return specialPerformanceItemFollowService.cancelItemFollow(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