package cn.stylefeng.rest.modular.home.controller; import cn.hutool.core.bean.BeanUtil; import cn.stylefeng.guns.modular.business.dto.request.StoreAppointmentRequest; import cn.stylefeng.guns.modular.business.entity.Banner; import cn.stylefeng.guns.modular.business.entity.StoreAppointment; import cn.stylefeng.guns.modular.business.service.IBannerService; import cn.stylefeng.guns.modular.business.service.IStoreAppointmentService; import cn.stylefeng.roses.kernel.auth.api.context.LoginContext; import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser; import cn.stylefeng.roses.kernel.rule.enums.DeleteEnum; import cn.stylefeng.roses.kernel.rule.enums.StatusEnum; import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData; import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData; import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource; import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource; import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.List; /** * 主页接口 * * @author goupan * @date 2024/01/02 */ @RestController @Api(tags = "主页接口") @ApiResource(name = "主页接口") @RequestMapping("/home/index") public class HomeIndexController { @Resource private IBannerService bannerService; @Resource private IStoreAppointmentService storeAppointmentService; @ApiOperation("banner列表 ") @ApiImplicitParam(value = "类型:1首页、2课程、3咨询",name = "type",dataTypeClass = Integer.class) @GetResource(name = "banner列表", path = "/banner") public ResponseData banner(Integer type) { LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery() .eq(Banner::getStatusFlag, StatusEnum.ENABLE.getCode()) .eq(Banner::getIsDelete, DeleteEnum.NOT_DELETE.getCode()) .orderByDesc(Banner::getSort); if (type != null){ lambdaQueryWrapper.eq(Banner::getType,type); } // banner列表 List list = bannerService.list(lambdaQueryWrapper); return new SuccessResponseData(list); } @ApiOperation("线下门店预约") @PostMapping(value = "/storeAppointment") @PostResource(name = "线下门店预约", path = "/storeAppointment") public ResponseData storeAppointment(@RequestBody StoreAppointmentRequest req) { // 封装实体 StoreAppointment o = BeanUtil.toBean(req, StoreAppointment.class); if (o.getUserId() == null || o.getUserId() == 0) { // 获取当前登录用户信息 LoginUser loginUser = LoginContext.me().getLoginUser(); Long userId = loginUser.getUserId(); o.setUserId(userId); } // 保存实体 storeAppointmentService.save(o); return new SuccessResponseData(o.getId()); } }