diff --git a/framework/src/main/java/cn/lili/modules/page/serviceimpl/PageDataServiceImpl.java b/framework/src/main/java/cn/lili/modules/page/serviceimpl/PageDataServiceImpl.java index 905c1789..503bdbba 100644 --- a/framework/src/main/java/cn/lili/modules/page/serviceimpl/PageDataServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/page/serviceimpl/PageDataServiceImpl.java @@ -1,10 +1,14 @@ package cn.lili.modules.page.serviceimpl; +import cn.hutool.core.text.CharSequenceUtil; +import cn.hutool.core.util.StrUtil; import cn.lili.common.enums.ClientTypeEnum; import cn.lili.common.enums.ResultCode; import cn.lili.common.enums.SwitchEnum; import cn.lili.common.exception.ServiceException; import cn.lili.common.properties.SystemSettingProperties; +import cn.lili.common.security.context.UserContext; +import cn.lili.common.security.enums.UserEnums; import cn.lili.common.vo.PageVO; import cn.lili.modules.page.entity.dos.PageData; import cn.lili.modules.page.entity.dto.PageDataDTO; @@ -14,6 +18,7 @@ import cn.lili.modules.page.entity.vos.PageDataVO; import cn.lili.modules.page.mapper.PageDataMapper; import cn.lili.modules.page.service.PageDataService; import cn.lili.mybatis.util.PageUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -22,6 +27,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import sun.jvm.hotspot.debugger.Page; /** * 楼层装修管理业务层实现 @@ -60,9 +66,9 @@ public class PageDataServiceImpl extends ServiceImpl i @Transactional(rollbackFor = Exception.class) public PageData addPageData(PageData pageData) { //如果页面为发布,则关闭其他页面,开启此页面 - //演示站点不可以开启楼层 - if (!Boolean.TRUE.equals(systemSettingProperties.getIsDemoSite()) && pageData.getPageShow().equals(SwitchEnum.OPEN.name())) { + if (pageData.getPageShow().equals(SwitchEnum.OPEN.name())) { LambdaUpdateWrapper lambdaUpdateWrapper = Wrappers.lambdaUpdate(); + lambdaUpdateWrapper.eq(CharSequenceUtil.equals(UserContext.getCurrentUser().getRole().name(), UserEnums.STORE.name()),PageData::getNum,UserContext.getCurrentUser().getStoreId()); lambdaUpdateWrapper.eq(PageData::getPageType, pageData.getPageType()); lambdaUpdateWrapper.eq(PageData::getPageClientType, pageData.getPageClientType()); lambdaUpdateWrapper.set(PageData::getPageShow, SwitchEnum.CLOSE.name()); @@ -77,19 +83,24 @@ public class PageDataServiceImpl extends ServiceImpl i @Override @Transactional(rollbackFor = Exception.class) public PageData updatePageData(PageData pageData) { + //如果页面为发布,则关闭其他页面,开启此页面 if (pageData.getPageShow() != null && pageData.getPageShow().equals(SwitchEnum.OPEN.name())) { LambdaUpdateWrapper lambdaUpdateWrapper = Wrappers.lambdaUpdate(); lambdaUpdateWrapper.eq(PageData::getPageType, pageData.getPageType()); lambdaUpdateWrapper.eq(PageData::getPageClientType, pageData.getPageClientType()); lambdaUpdateWrapper.set(PageData::getPageShow, SwitchEnum.CLOSE.name()); + lambdaUpdateWrapper.set(StrUtil.isNotEmpty(pageData.getNum()), PageData::getNum, SwitchEnum.CLOSE.name()); this.update(lambdaUpdateWrapper); } else { pageData.setPageShow(SwitchEnum.CLOSE.name()); } + LambdaUpdateWrapper lambdaUpdateWrapper = Wrappers.lambdaUpdate(); lambdaUpdateWrapper.set(PageData::getPageData, pageData.getPageData()); lambdaUpdateWrapper.eq(PageData::getId, pageData.getId()); + lambdaUpdateWrapper.eq(CharSequenceUtil.equals(UserContext.getCurrentUser().getRole().name(), UserEnums.STORE.name()),PageData::getPageType,PageEnum.STORE.name()); + lambdaUpdateWrapper.eq(CharSequenceUtil.equals(UserContext.getCurrentUser().getRole().name(), UserEnums.STORE.name()),PageData::getNum,UserContext.getCurrentUser().getStoreId()); this.updateById(pageData); return pageData; } @@ -97,8 +108,13 @@ public class PageDataServiceImpl extends ServiceImpl i @Override @Transactional(rollbackFor = Exception.class) public PageData releasePageData(String id) { - PageData pageData = this.getById(id); - + PageData pageData = this.getOne(new LambdaQueryWrapper() + .eq(CharSequenceUtil.equals(UserContext.getCurrentUser().getRole().name(), UserEnums.STORE.name()),PageData::getPageType,PageEnum.STORE.name()) + .eq(CharSequenceUtil.equals(UserContext.getCurrentUser().getRole().name(), UserEnums.STORE.name()),PageData::getNum,UserContext.getCurrentUser().getStoreId()) + .eq(PageData::getId,id)); + if(pageData==null){ + throw new ServiceException(ResultCode.PAGE_NOT_EXIST); + } //如果已经发布,不能重复发布 if (pageData.getPageShow().equals(SwitchEnum.OPEN.name())) { @@ -127,7 +143,14 @@ public class PageDataServiceImpl extends ServiceImpl i @Override @Transactional(rollbackFor = Exception.class) public boolean removePageData(String id) { - PageData pageData = this.getById(id); + PageData pageData = this.getOne(new LambdaQueryWrapper() + .eq(CharSequenceUtil.equals(UserContext.getCurrentUser().getRole().name(), UserEnums.STORE.name()),PageData::getPageType,PageEnum.STORE.name()) + .eq(CharSequenceUtil.equals(UserContext.getCurrentUser().getRole().name(), UserEnums.STORE.name()),PageData::getNum,UserContext.getCurrentUser().getStoreId()) + .eq(PageData::getId,id)); + if(pageData==null){ + throw new ServiceException(ResultCode.PAGE_NOT_EXIST); + } + //专题则直接进行删除 if (pageData.getPageType().equals(PageEnum.SPECIAL.name())) { return this.removeById(id); diff --git a/framework/src/main/java/cn/lili/modules/store/entity/dos/Store.java b/framework/src/main/java/cn/lili/modules/store/entity/dos/Store.java index 980bac72..3577a43e 100644 --- a/framework/src/main/java/cn/lili/modules/store/entity/dos/Store.java +++ b/framework/src/main/java/cn/lili/modules/store/entity/dos/Store.java @@ -97,10 +97,12 @@ public class Store extends BaseEntity { @ApiModelProperty(value = "腾讯云智服小程序唯一标识") private String yzfMpSign; - @ApiModelProperty(value = "udesk IM标识") private String merchantEuid; + @ApiModelProperty(value = "默认页面是否开启") + private Boolean pageShow; + public Store(Member member) { this.memberId = member.getId(); diff --git a/framework/src/main/java/cn/lili/modules/store/entity/dto/StoreSettingDTO.java b/framework/src/main/java/cn/lili/modules/store/entity/dto/StoreSettingDTO.java index a1dcd7e1..18fb43ae 100644 --- a/framework/src/main/java/cn/lili/modules/store/entity/dto/StoreSettingDTO.java +++ b/framework/src/main/java/cn/lili/modules/store/entity/dto/StoreSettingDTO.java @@ -33,4 +33,7 @@ public class StoreSettingDTO { @ApiModelProperty(value = "经纬度") private String storeCenter; + @ApiModelProperty(value = "默认页面是否开启") + private Boolean pageShow; + } diff --git a/seller-api/src/main/java/cn/lili/controller/other/PageDataStoreController.java b/seller-api/src/main/java/cn/lili/controller/other/PageDataStoreController.java new file mode 100644 index 00000000..a0ec3ef8 --- /dev/null +++ b/seller-api/src/main/java/cn/lili/controller/other/PageDataStoreController.java @@ -0,0 +1,98 @@ +package cn.lili.controller.other; + +import cn.lili.common.aop.annotation.DemoSite; +import cn.lili.common.enums.ResultUtil; +import cn.lili.common.security.context.UserContext; +import cn.lili.common.vo.PageVO; +import cn.lili.common.vo.ResultMessage; +import cn.lili.modules.page.entity.dos.PageData; +import cn.lili.modules.page.entity.dto.PageDataDTO; +import cn.lili.modules.page.entity.enums.PageEnum; +import cn.lili.modules.page.entity.vos.PageDataListVO; +import cn.lili.modules.page.service.PageDataService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import javax.validation.constraints.NotNull; + +/** + * 店铺端,页面设置管理接口 + * + * @author paulGao + * @since 2020-05-06 15:18:56 + */ +@RestController +@Api(tags = "店铺端,页面设置管理接口") +@RequestMapping("/store/other/pageData") +public class PageDataStoreController { + + @Autowired + private PageDataService pageDataService; + + @ApiOperation(value = "获取页面信息") + @ApiImplicitParam(name = "id", value = "页面ID", required = true, dataType = "String", paramType = "path") + @GetMapping(value = "/{id}") + public ResultMessage getPageData(@PathVariable String id) { + //查询当前店铺下的页面数据 + PageData pageData = pageDataService.getOne( + new LambdaQueryWrapper() + .eq(PageData::getPageType, PageEnum.STORE.name()) + .eq(PageData::getNum, UserContext.getCurrentUser().getStoreId()) + .eq(PageData::getId, id)); + return ResultUtil.data(pageData); + } + + @ApiOperation(value = "添加页面") + @PostMapping("/add") + public ResultMessage addPageData(@Valid PageData pageData) { + //添加店铺类型,填写店铺ID + pageData.setPageType(PageEnum.STORE.name()); + pageData.setNum(UserContext.getCurrentUser().getStoreId()); + return ResultUtil.data(pageDataService.addPageData(pageData)); + } + + @ApiOperation(value = "修改页面") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "页面ID", required = true, dataType = "String", paramType = "path") + }) + @DemoSite + @PutMapping("/update/{id}") + public ResultMessage updatePageData(@Valid PageData pageData, @NotNull @PathVariable String id) { + pageData.setId(id); + //添加店铺类型,填写店铺ID + pageData.setPageType(PageEnum.STORE.name()); + pageData.setNum(UserContext.getCurrentUser().getStoreId()); + return ResultUtil.data(pageDataService.updatePageData(pageData)); + } + + @ApiOperation(value = "页面列表") + @GetMapping("/pageDataList") + public ResultMessage> pageDataList(PageVO pageVO, PageDataDTO pageDataDTO) { + pageDataDTO.setPageType(PageEnum.STORE.name()); + pageDataDTO.setNum(UserContext.getCurrentUser().getStoreId()); + return ResultUtil.data(pageDataService.getPageDataList(pageVO, pageDataDTO)); + } + + @ApiOperation(value = "发布页面") + @ApiImplicitParam(name = "id", value = "页面ID", required = true, dataType = "String", paramType = "path") + @PutMapping("/release/{id}") + @DemoSite + public ResultMessage release(@PathVariable String id) { + return ResultUtil.data(pageDataService.releasePageData(id)); + } + + @ApiOperation(value = "删除页面") + @DemoSite + @ApiImplicitParam(name = "id", value = "页面ID", required = true, dataType = "String", paramType = "path") + @DeleteMapping("/remove/{id}") + public ResultMessage remove(@PathVariable String id) { + return ResultUtil.data(pageDataService.removePageData(id)); + } +}