package cn.stylefeng.guns.modular.business.controller; import cn.hutool.core.collection.ListUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpUtil; import cn.stylefeng.guns.config.RefundConfig; import cn.stylefeng.guns.modular.business.dto.CourseOrderResponseDTO; import cn.stylefeng.guns.modular.business.dto.request.CourseOrderRequest; import cn.stylefeng.guns.modular.business.dto.request.CoursePlaceOrderRequest; import cn.stylefeng.guns.modular.business.entity.CourseOrder; import cn.stylefeng.guns.modular.business.service.ICourseOrderService; import cn.stylefeng.roses.kernel.db.api.factory.PageFactory; import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory; import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; import cn.stylefeng.roses.kernel.rule.annotation.BusinessLog; import cn.stylefeng.roses.kernel.rule.enums.ResBizTypeEnum; import cn.stylefeng.roses.kernel.rule.pojo.response.ErrorResponseData; 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.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 课程订单信息管理类 * @author guo */ @Slf4j @RestController @Api(tags = "课程订单信息管理类") @ApiResource(name = "课程订单信息管理类", resBizType = ResBizTypeEnum.BUSINESS) @RequestMapping("/business") public class CourseOrderController { @Resource private ICourseOrderService courseOrderService; @Resource private RefundConfig refundConfig; /** * 添加课程订单信息 */ @ApiOperation("添加课程订单信息") @PostResource(name = "添加课程订单信息", path = "/courseOrder/add") @BusinessLog public ResponseData add(@RequestBody CoursePlaceOrderRequest coursePlaceOrderRequest) { this.courseOrderService.createCourseOrder(coursePlaceOrderRequest); return new SuccessResponseData<>(); } /** * 删除课程订单信息 */ @ApiOperation("删除课程订单信息") @PostResource(name = "删除课程订单信息", path = "/courseOrder/delete") @BusinessLog public ResponseData delete(@RequestParam String ids) { if (StrUtil.isBlank(ids)){ return new ErrorResponseData<>("500","id不能为空"); } LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper().set(CourseOrder::getIsDelete,true); lambdaUpdateWrapper.in(CourseOrder::getId, ListUtil.toList(ids.split(","))); this.courseOrderService.update(lambdaUpdateWrapper); return new SuccessResponseData<>(); } /** * 修改课程订单信息 */ @ApiOperation("修改课程订单信息") @PostResource(name = "修改课程订单信息", path = "/courseOrder/edit") @BusinessLog public ResponseData edit(@RequestBody CourseOrder courseOrder) { this.courseOrderService.updateById(courseOrder); return new SuccessResponseData<>(); } /** * 修改课程订单信息状态 */ @ApiOperation("修改课程订单信息状态") @ApiImplicitParams({@ApiImplicitParam(name = "status",value = "状态:0待支付,1已支付,2已过期,9取消,10退款")}) @PostResource(name = "修改课程订单信息状态", path = "/courseOrder/updateStatus") @BusinessLog public ResponseData updateStatus(Long id, Integer status) { CourseOrder courseOrder = this.courseOrderService.getById(id); if (status.intValue() == 10 && StrUtil.isNotBlank(courseOrder.getTransactionNo())){ LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper().set(CourseOrder::getStatusFlag,status); lambdaUpdateWrapper.eq(CourseOrder::getId, id); lambdaUpdateWrapper.set(CourseOrder::getRefundAmount,courseOrder.getPayAmount()); lambdaUpdateWrapper.set(CourseOrder::getRefundTime,new Date()); this.courseOrderService.update(lambdaUpdateWrapper); // if (courseOrder.getPayType().equals("1")){ // Map map = new HashMap<>(); // map.put("transactionId",courseOrder.getTransactionNo()); // map.put("outTradeNo",courseOrder.getOrderNo()); // HttpRequest httpRequest = HttpUtil.createGet(refundConfig.getWxpayUrl()).form(map); // String result = httpRequest.execute().body(); // log.info("课程订单退款信息:"+result); // }else if (courseOrder.getPayType().equals("2")){ // Map map = new HashMap<>(); // map.put("outTradeNo",courseOrder.getOrderNo()); // map.put("tradeNo",courseOrder.getTransactionNo()); // HttpRequest httpRequest = HttpUtil.createGet(refundConfig.getAlipayUrl()).form(map); // String result = httpRequest.execute().body(); // log.info("课程订单退款信息:"+result); // } }else{ LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper().set(CourseOrder::getStatusFlag,status); lambdaUpdateWrapper.eq(CourseOrder::getId, id); this.courseOrderService.update(lambdaUpdateWrapper); } return new SuccessResponseData<>(); } /** * 获取课程订单信息详情 */ @ApiOperation("获取课程订单信息详情") @GetResource(name = "获取课程订单信息详情", path = "/courseOrder/detail/{id}", requiredPermission = false) public ResponseData detail(@PathVariable("id") Long id) { CourseOrderResponseDTO courseOrderResponseDTO = this.courseOrderService.getCourseChapterInfoByOrderId(id); return new SuccessResponseData<>(courseOrderResponseDTO); } /** * 获取课程订单信息列表 * */ @ApiOperation("获取课程订单信息列表") @GetResource(name = "获取课程订单信息列表", path = "/courseOrder/list", requiredPermission = false) public ResponseData> list(CourseOrder courseOrder) { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper().eq(CourseOrder::getIsDelete,false) .orderByDesc(CourseOrder::getId); return new SuccessResponseData<>(courseOrderService.list(lambdaQueryWrapper)); } /** * 获取课程订单信息列表(分页) */ @ApiOperation("获取课程订单信息列表(分页)") @GetResource(name = "获取课程订单信息列表(分页)", path = "/courseOrder/page", requiredPermission = false) public ResponseData> page(CourseOrderRequest courseOrderRequest) { if (courseOrderRequest.getShowState() != null){ //0待支付,1已完成,3已支付,9取消,10退款 if (courseOrderRequest.getShowState().intValue() == 1) { //状态app端使用:0待支付,1已支付,2已过期,9取消,10退款 courseOrderRequest.setStatusFlag(2); } else if (courseOrderRequest.getShowState().intValue() == 3) { //状态app端使用:0待支付,1已支付,2已过期,9取消,10退款 courseOrderRequest.setStatusFlag(1); }else{ courseOrderRequest.setStatusFlag(courseOrderRequest.getShowState()); } } Page page = this.courseOrderService.findCounseOrderPage(PageFactory.defaultPage(), courseOrderRequest); return new SuccessResponseData<>(PageResultFactory.createPageResult(page)); } }