package com.fdkankan.ucenter.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.fdkankan.common.exception.BusinessException;
import com.fdkankan.ucenter.common.Result;
import com.fdkankan.ucenter.constant.LoginConstant;
import com.fdkankan.ucenter.entity.HotShop;
import com.fdkankan.ucenter.service.IHotShopService;
import com.fdkankan.ucenter.vo.RequestHotShop;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
import java.util.List;
/**
*
* 热点与商品关联表 前端控制器
*
*
* @author
* @since 2022-11-02
*/
@RestController
@RequestMapping("/ucenter/hot/shop")
public class HotShopController {
@Autowired
IHotShopService hotShopService;
/**
* 热点id找小程序商品id
*/
@RequestMapping(value = "/findGoodIdByHotId")
public Result> findGoodIdByHotId(@RequestBody RequestHotShop param) throws Exception {
if(StringUtils.isEmpty(param.getHotId()) || StringUtils.isEmpty(param.getOrigin())){
throw new BusinessException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
}
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(HotShop::getHotId,param.getHotId());
wrapper.eq(HotShop::getOrigin,param.getOrigin());
if(StringUtils.isNotBlank(param.getPageSid())){
wrapper.eq(HotShop::getPageSid,param.getPageSid());
}
return Result.success(hotShopService.list(wrapper));
}
/**
* 热点id找小程序商品id
*/
@RequestMapping(value = "/findGoodIdByHotIdList")
public Result> findGoodIdByHotIdList(@RequestBody RequestHotShop param) throws Exception {
if(StringUtils.isEmpty(param.getHotId()) || StringUtils.isEmpty(param.getOrigin())){
throw new BusinessException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
}
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(HotShop::getHotId,param.getHotId());
wrapper.eq(HotShop::getOrigin,param.getOrigin());
return Result.success(hotShopService.list(wrapper));
}
/**
* 保存热点与商品关联
*/
@RequestMapping(value = "/saveHotShop")
public Result saveHotShop(@RequestBody RequestHotShop param) throws Exception {
if(StringUtils.isEmpty(param.getHotId()) && StringUtils.isEmpty(param.getOrigin())){
throw new BusinessException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
}
String[] pageSids = null;
if(StringUtils.isNotEmpty(param.getPageSid())){
pageSids = param.getPageSid().split(",");
}
HotShop hotShopEntity = null;
//查看是否有已经关联的商品,有则删除
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(HotShop::getHotId,param.getHotId());
wrapper.eq(HotShop::getOrigin,param.getOrigin());
hotShopService.remove(wrapper);
if(StringUtils.isNotEmpty(param.getGoodsIds())){
String[] ids = param.getGoodsIds().split(",");
for(int i = 0, len = ids.length; i < len; i ++){
hotShopEntity = new HotShop();
hotShopEntity.setHotId(param.getHotId());
hotShopEntity.setSceneNum(param.getSceneNum());
hotShopEntity.setPageSid("0");
if(pageSids != null){
hotShopEntity.setPageSid(pageSids[i]);
}
hotShopEntity.setGoodId(Long.valueOf(ids[i]));
hotShopEntity.setOrigin(param.getOrigin());
hotShopService.save(hotShopEntity);
}
}
return Result.success();
}
/**
* 删除热点商品关联
*/
@RequestMapping(value = "/deleteGoodsHot")
public Result deleteGoodsHot(@RequestBody RequestHotShop param) throws Exception {
if(StringUtils.isEmpty(param.getHotId()) && StringUtils.isEmpty(param.getOrigin())){
throw new BusinessException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
}
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(HotShop::getHotId,param.getHotId());
wrapper.eq(HotShop::getOrigin,param.getOrigin());
if(StringUtils.isNotBlank(param.getPageSid())){
wrapper.eq(HotShop::getPageSid,param.getPageSid());
}
List list = hotShopService.list(wrapper);
if(list != null && list.size() == 1){
hotShopService.removeById(list.get(0).getId());
}
return Result.success();
}
}