|
|
- package com.ruoyi.applet.contoller;
-
-
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.cyl.h5.pojo.request.CancelOrderRequest;
- import com.cyl.h5.pojo.request.OrderPayRequest;
- import com.cyl.h5.pojo.response.OrderPayResponse;
- import com.cyl.h5.pojo.vo.H5OrderVO;
- import com.cyl.manager.oms.domain.Order;
- import com.cyl.manager.oms.mapper.OrderMapper;
- import com.cyl.manager.oms.service.OrderOperateHistoryService;
- import com.cyl.manager.ums.domain.Member;
- import com.cyl.manager.ums.mapper.MemberMapper;
- import com.cyl.manager.ums.service.MemberService;
- import com.cyl.manager.ums.service.MemberWechatService;
- import com.ruoyi.applet.mallpojo.TeacherListRequest;
- import com.ruoyi.applet.service.IApiMallOrderService;
- import com.ruoyi.applet.utils.WechatRefundUtil;
- import com.ruoyi.common.constant.Constants;
- import com.ruoyi.common.core.controller.BaseController;
- import com.ruoyi.common.core.domain.AjaxResult;
- import com.ruoyi.common.core.page.TableDataInfo;
- import com.ruoyi.common.core.redis.RedisService;
- import com.ruoyi.framework.config.LocalDataUtil;
- import com.ruoyi.model.domain.AppUsers;
- import com.ruoyi.model.domain.AppletAddress;
- import com.ruoyi.model.domain.AppletUsersTeacher;
- import com.ruoyi.model.domain.OmsOrderEvaluation;
- import com.ruoyi.model.service.*;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.tomcat.websocket.WsSession;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.data.domain.PageImpl;
- import org.springframework.data.domain.Pageable;
- import org.springframework.http.ResponseEntity;
- import org.springframework.web.bind.annotation.*;
-
- import java.time.LocalTime;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.stream.Collectors;
-
-
- @Slf4j
- @Api(description = "下单小程序端 - 订单信息列表")
- @RestController
- @RequestMapping("/applet/mall/order")
- public class ApiMallOrderController extends BaseController {
-
- @Autowired
- private IApiMallOrderService service;
-
- @Autowired
- private IAppUsersService appUsersService;
- @Autowired
- private IAppletUsersTeacherService appletUsersTeacherService;
- @Autowired
- private IAppletConfigService appletConfigService;
- @Autowired
- private IAppletAddressService appletAddressService;
-
- @Autowired
- private RedisService redisService;
-
- @Autowired
- private OrderOperateHistoryService orderOperateHistoryService;
-
- @Autowired
- private OrderMapper orderMapper;
-
- @Autowired
- private WechatRefundUtil wechatRefundUtil;
-
- @Autowired
- private IOmsOrderEvaluationService orderEvaluationService;
-
- @Autowired
- private MemberMapper memberMapper;
-
- @Autowired
- private MemberWechatService memberWechatService;
-
-
- @ApiOperation("mall-订单列表信息接口")
- @GetMapping("/listByOpenid")
- public ResponseEntity<PageImpl<H5OrderVO>> orderPageByOpenid(Integer status, String openId, Pageable pageable){
- List<Integer> statusList = new ArrayList<>();
- if (status == -1) {
- statusList.add(0);
- statusList.add(1);
- statusList.add(2);
- statusList.add(3);
- statusList.add(11);
- } else {
- statusList.add(status);
- }
- PageImpl<H5OrderVO> h5OrderVOS = service.orderPageByOpenid(statusList, openId, pageable);
-
- Member member = memberWechatService.isRegister(openId);
-
- for (H5OrderVO h5OrderVO : h5OrderVOS) {
- List<OmsOrderEvaluation> list = orderEvaluationService.lambdaQuery()
- .eq(OmsOrderEvaluation::getOrderId, h5OrderVO.getOrderId())
- .eq(OmsOrderEvaluation::getMemberId, member.getId())
- .list();
-
- h5OrderVO.setEvaluation(list.size() > 0);
- }
-
-
- return ResponseEntity.ok(h5OrderVOS);
- }
-
- //根据订单标识查询订单详情
- @ApiOperation("mall-根据订单标识查询订单详情接口")
- @GetMapping("/orderDetail")
- public ResponseEntity<H5OrderVO> orderDetail(@RequestParam(required = false) Long orderId, String openId){
- if (orderId == null){
- throw new RuntimeException("系统繁忙");
- }
- // if (openId == null){
- // throw new RuntimeException("openId不能为空");
- // }
-
- H5OrderVO h5Order = service.orderDetail(orderId);
-
-
- if (h5Order == null){
- throw new RuntimeException("订单不存在");
- }
-
- Member member = memberWechatService.isRegister(openId);
-
-
- List<OmsOrderEvaluation> list = orderEvaluationService.lambdaQuery()
- .eq(OmsOrderEvaluation::getOrderId, h5Order.getOrderId())
- .eq(OmsOrderEvaluation::getMemberId, member.getId())
- .list();
-
- h5Order.setEvaluation(list.size() > 0);
-
- return ResponseEntity.ok(h5Order);
- }
-
-
- //修改基础订单数据
- @ApiOperation("mall-修改基础订单数据")
- @PostMapping("/updateBaseOrder")
- public AjaxResult updateBaseOrder(
- @RequestParam Long id,
- @RequestParam String contactName,
- @RequestParam String contactPhone,
- @RequestParam(required = false) String paymentMethod
- ){
-
- Order order = orderMapper.selectById(id);
-
-
- if (order == null){
- return AjaxResult.error("订单不存在");
- }
-
- order.setReceiverName(contactName);
- order.setReceiverPhone(contactPhone);
-
- orderMapper.updateById(order);
-
- return AjaxResult.success();
- }
-
-
- //根据订单标识取消订单
- @ApiOperation("mall-根据订单标识取消订单接口")
- @PostMapping("/orderCancel")
- public AjaxResult orderCancel(@RequestBody CancelOrderRequest request){
-
- Order order = orderMapper.selectById(request.getId());
-
- if (order == null){
- return AjaxResult.error("订单不存在");
- }
-
- Integer oldOrderStatus = order.getStatus();
-
- if (oldOrderStatus == 5){
- return AjaxResult.error("无效订单");
- }
- if (oldOrderStatus > 1){
- return AjaxResult.error("订单已被接单无法取消/修改");
- }
-
- try {
- // 先取消订单
- String cancelResult = service.orderBatchCancel(request, null);
-
- return AjaxResult.success(cancelResult);
- } catch (Exception e) {
- log.error("订单取消或退款申请失败", e);
- return AjaxResult.error("订单取消失败:" + e.getMessage());
- }
- }
-
-
-
-
- //根据订单标识去评价
- @ApiOperation("mall-根据订单标识去评价接口")
- @GetMapping("/orderEvaluate")
- public AjaxResult orderEvaluate(OmsOrderEvaluation evaluation, String openId){
- if (evaluation == null){
- throw new RuntimeException("系统繁忙");
- }
- Member member = memberWechatService.isRegister(openId);
-
- evaluation.setMemberId(member.getId());
- evaluation.setCreateTime(LocalTime.now());
- service.orderEvaluate(evaluation);
-
- return AjaxResult.success();
- }
-
-
- //查询服务过自己的伴宠师
- @ApiOperation("mall-查询服务过自己的伴宠师")
- @GetMapping("/getTecByUser")
- public AjaxResult getTecByUser(String openId){
-
- if (openId == null){
- AjaxResult.error("openId不能为空");
- }
-
- Member member = memberWechatService.isRegister(openId);
-
-
- List<Order> orders = orderMapper.selectList(Wrappers.<Order>lambdaQuery()
- .select(Order::getTeacherId)
- .eq(Order::getMemberId, member.getId()));
-
- ArrayList<Long> ids = new ArrayList<>();
-
- for (Order order : orders) {
- if (order != null){
- ids.add(order.getTeacherId());
- }
- }
-
- List<AppUsers> appUsersList = appUsersService
- .lambdaQuery()
- .in(ids.size() > 0, AppUsers::getUserId, ids)
- .list();
-
- for (AppUsers appUsers : appUsersList) {
- appUsers.setAppletAddresseList(appletAddressService
- .lambdaQuery()
- .eq(AppletAddress::getUserId, appUsers.getUserId())
- .list());
-
- AppletUsersTeacher appletUsersTeacher = appletUsersTeacherService.selectAppletUsersTeacherByUserId(appUsers.getUserId());
- appUsers.setAppletUsersTeacher(appletUsersTeacher);
-
- }
-
- return AjaxResult.success(appUsersList);
- }
-
-
- //查询-再来一单的历史伴宠师
- @ApiOperation("mall-查询-再来一单的历史伴宠师接口")
- @GetMapping("")
- public TableDataInfo getTeacherList(TeacherListRequest request) {
- startPage();
- AppUsers appUsers = new AppUsers();
- appUsers.setUserBcs(1);
- //如果伴宠师等级传入
- if (request.getTeacherLevels() != null) {
- appUsers.setUserBcsRole(request.getTeacherLevels());
- }
- List<AppUsers> appUsersList = appUsersService.selectAppUsersList(appUsers);
- for (AppUsers appUsers1 : appUsersList){
- AppletUsersTeacher appletUsersTeacher = appletUsersTeacherService.selectAppletUsersTeacherByUserId(appUsers1.getUserId());
- appUsers1.setAppletUsersTeacher(appletUsersTeacher);
-
- AppletAddress appletAddress = new AppletAddress();
- appletAddress.setUserId(appUsers.getUserId());
- List<AppletAddress> appletAddresses = appletAddressService.selectAppletAddressList(appletAddress);
- appUsers.setAppletAddresseList(appletAddresses);
- }
- return getDataTable(appUsersList);
- }
-
-
- @ApiOperation("mall-查询-再次支付")
- @PostMapping("/orderPay")
- public ResponseEntity<OrderPayResponse> orderPay(@RequestBody OrderPayRequest req){
- log.info("订单支付","提交的数据:"+ JSONObject.toJSONString(req));
- String redisKey = "h5_oms_order_pay_"+req.getPayId();
- String redisValue = req.getPayId()+"_"+System.currentTimeMillis();
- try {
- redisService.lock(redisKey, redisValue, 60);
-
- Member member = memberWechatService.isRegister(req.getOpenId());
-
- Long memberId = member.getId();
-
- req.setMemberId(memberId);
- req.setWechatType(2);
- return ResponseEntity.ok(service.orderPay(req));
- }catch (Exception e){
- log.error("支付方法异常", e);
- throw new RuntimeException(e.getMessage());
- }finally {
- try{
- redisService.unLock(redisKey,redisValue);
- }catch (Exception e){
- log.error("",e);
- }
- }
- }
-
-
- }
|