package com.jilongda.manage.controller; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.jilongda.common.basic.ApiResult; import com.jilongda.common.basic.PageInfo; import com.jilongda.manage.authority.model.SecUser; import com.jilongda.manage.authority.service.SecUserService; import com.jilongda.manage.dto.TOrderDTO; import com.jilongda.manage.model.*; import com.jilongda.manage.query.TOptometryQuery; import com.jilongda.manage.service.*; import com.jilongda.manage.utils.LoginInfoUtil; import com.jilongda.manage.vo.TOptometryVO; import com.jilongda.manage.vo.TOrderVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.*; import java.util.stream.Collectors; /** *

* 销售订单表 前端控制器 *

* * @author 无关风月 * @since 2024-12-09 */ @Api(tags = "销售订单") @RestController @RequestMapping("/t-order") public class TOrderController { @Autowired private TAppUserService tAppUserService; @Autowired private SecUserService secUserService; @Autowired private TCouponReceiveService couponReceiveService; @Autowired private TCouponService couponService; @Autowired private TOrderService orderService; @Autowired private TOptometryDetailService optometryDetailService; @Autowired private TOrderGoodsService orderGoodsService; @Autowired private TFrameGoodsService frameGoodsService; @Autowired private TLensGoodsService lensGoodsService; @ApiOperation(value = "查询用户信息") @GetMapping(value = "/getUserById") public ApiResult getUserById(@RequestParam Integer userId) { return ApiResult.success(tAppUserService.getById(userId)); } @ApiOperation(value = "查询员工信息") @GetMapping(value = "/getStaffList") public ApiResult getStaffList() { List list = secUserService.list(Wrappers.lambdaQuery(SecUser.class) .eq(SecUser::getUserType, 3) .eq(SecUser::getIsDelete, 0)); return ApiResult.success(list); } @ApiOperation(value = "查询优惠券") @GetMapping(value = "/getCouponListByUserId") public ApiResult> getCouponListByUserId(@RequestParam Integer userId, @RequestParam Integer storeId) { List list = couponReceiveService.list(Wrappers.lambdaQuery(TCouponReceive.class) .eq(TCouponReceive::getUserId, userId) .eq(TCouponReceive::getStatus, 1)); List tCouponReceives = new ArrayList<>(); for (TCouponReceive tCouponReceive : list) { TCoupon byId = couponService.getById(tCouponReceive.getCouponId()); tCouponReceive.setCouponName(byId.getName()); if (StringUtils.hasLength(tCouponReceive.getStoreId())){ if (Arrays.asList(tCouponReceive.getStoreId().split(",")).contains(storeId+"")){ tCouponReceives.add(tCouponReceive); } }else{ // 通用 tCouponReceives.add(tCouponReceive); } } return ApiResult.success(tCouponReceives); } @ApiOperation(value = "添加订单") @PostMapping(value = "/addOrder") public ApiResult addOrder(@RequestBody TOrderDTO dto) { // 查询店员 SecUser user = secUserService.getById(dto.getSysId()); if(Objects.nonNull(user)){ dto.setStoreId(user.getStoreId()); } orderService.save(dto); List optometryDetails = dto.getOptometryDetails(); if (!CollectionUtils.isEmpty(optometryDetails)){ for (TOptometryDetail optometryDetail : optometryDetails) { optometryDetail.setOrderId(dto.getId()); } optometryDetailService.saveBatch(optometryDetails); } List orderGoods = dto.getOrderGoods(); for (TOrderGoods orderGood : orderGoods) { orderGood.setOrderId(dto.getId()); } // TODO 周哥 补库存 return ApiResult.success(); } @ApiOperation(value = "销售订单详情") @GetMapping(value = "/getOrderDetailById") public ApiResult getOrderDetailById(@RequestParam Integer orderId) { TOrderVO orderVO = orderService.getOrderDetailById(orderId); // TODO 周哥 商品信息集合 // TODO 周哥 验光处方 判断是关联或者手动 return ApiResult.success(orderVO); } }