package com.cyl.h5.controller; import com.cyl.h5.pojo.dto.OrderCreateDTO; import com.cyl.h5.pojo.vo.OrderCalcVO; import com.cyl.h5.pojo.vo.form.OrderSubmitForm; import com.cyl.h5.pojo.vo.query.OrderH5Query; import com.cyl.h5.service.H5OrderService; import com.cyl.manager.oms.pojo.vo.OrderVO; import com.cyl.manager.oms.service.OrderService; import com.cyl.manager.ums.domain.Member; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.redis.RedisService; import com.ruoyi.framework.config.LocalDataUtil; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.http.ResponseEntity; 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; @RestController @RequestMapping("/h5/order") @Slf4j public class H5OrderController { @Autowired private RedisService redisService; @Autowired private H5OrderService service; @PostMapping("/add") public ResponseEntity submit(@RequestBody OrderSubmitForm form) { Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); Long memberId = member.getId(); String redisKey = "h5_order_add" + memberId; String redisValue = memberId + "_" + System.currentTimeMillis(); try{ redisService.lock(redisKey, redisValue, 60); return ResponseEntity.ok(service.submit(form)); }catch (Exception e){ log.info("创建订单方法异常", e); throw new RuntimeException("服务繁忙,稍后再试"); }finally { try { redisService.unLock(redisKey, redisValue); } catch (Exception e) { e.printStackTrace(); } } } // @PostMapping("orders") // public ResponseEntity> queryOrderPage(@RequestBody OrderH5Query query, Pageable pageReq) { // return ResponseEntity.ok(service.queryOrderPage(query, pageReq)); // } @ApiOperation("下单前校验") @PostMapping("/addOrderCheck") public ResponseEntity addOrderCheck(@RequestBody OrderCreateDTO orderCreateDTO){ return ResponseEntity.ok(service.addOrderCheck(orderCreateDTO)); } }