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.cache.api.CacheOperatorApi; import cn.stylefeng.roses.kernel.rule.annotation.BusinessLog; import cn.stylefeng.roses.kernel.rule.constants.RuleConstants; 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); } o.setStatusFlag(0); // 保存实体 storeAppointmentService.save(o); return new SuccessResponseData(o.getId()); } @Resource private CacheOperatorApi cacheOperatorApi; @ApiOperation("ios是否内购") @PostResource(name = "ios是否内购", path = "/ios") @BusinessLog public ResponseData ios() { Integer o = (Integer) cacheOperatorApi.get("ios:need:pay"); return new SuccessResponseData<>(o==null ? 1 :o); } @ApiOperation("是否一键登录") @PostResource(name = "是否一键登录", path = RuleConstants.NOT_LOGIN+"/iflogin", requiredPermission = false, requiredLogin = false) @BusinessLog public ResponseData iflogin() { Integer o = (Integer) cacheOperatorApi.get("phone:login"); return new SuccessResponseData<>(o==null ? 1 :o); } }