核销
This commit is contained in:
		| @ -113,7 +113,9 @@ public interface ErrorCodeConstants { | |||||||
|  |  | ||||||
|     ErrorCode STORE_ORDER_NOT_EXISTS = new ErrorCode(1_007_904_005, "商品订单不存在"); |     ErrorCode STORE_ORDER_NOT_EXISTS = new ErrorCode(1_007_904_005, "商品订单不存在"); | ||||||
|  |  | ||||||
|     ErrorCode AMOUNT_NOT_ENOUGH = new ErrorCode(1_007_904_005, "金额不足"); |     ErrorCode AMOUNT_NOT_ENOUGH = new ErrorCode(1_007_904_008, "金额不足"); | ||||||
|  |     ErrorCode STATUS_ERROR = new ErrorCode(1_007_904_007, "订单已完成或已退款"); | ||||||
|  |  | ||||||
|  |  | ||||||
|     ErrorCode STORE_ORDER_DETAIL_NOT_EXISTS = new ErrorCode(1_007_904_006,"商品订单详情不存在"); |     ErrorCode STORE_ORDER_DETAIL_NOT_EXISTS = new ErrorCode(1_007_904_006,"商品订单详情不存在"); | ||||||
|     //========== 用户余额明细 1-004-014-000 ============= |     //========== 用户余额明细 1-004-014-000 ============= | ||||||
|  | |||||||
| @ -1,39 +1,30 @@ | |||||||
| package cn.iocoder.yudao.module.member.controller.app.storeorder; | package cn.iocoder.yudao.module.member.controller.app.storeorder; | ||||||
|  |  | ||||||
| import cn.iocoder.yudao.framework.common.pojo.CommonResult; | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||||||
| import cn.iocoder.yudao.framework.common.pojo.PageParam; |  | ||||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
| import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | ||||||
| import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; |  | ||||||
| import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; |  | ||||||
| import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderPageReqVO; | import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderPageReqVO; | ||||||
| import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderRespVO; | import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderRespVO; | ||||||
| import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderSaveReqVO; |  | ||||||
| import cn.iocoder.yudao.module.member.controller.admin.storeorderdetail.vo.StoreOrderDetailRespVO; |  | ||||||
| import cn.iocoder.yudao.module.member.controller.app.store.dto.StoreOrderDto; |  | ||||||
| import cn.iocoder.yudao.module.member.controller.app.storeorder.vo.AppStoreOrderDetailVo; | import cn.iocoder.yudao.module.member.controller.app.storeorder.vo.AppStoreOrderDetailVo; | ||||||
| import cn.iocoder.yudao.module.member.controller.app.storeorder.vo.CardDto; | import cn.iocoder.yudao.module.member.controller.app.storeorder.vo.CardDto; | ||||||
| import cn.iocoder.yudao.module.member.dal.dataobject.storeorder.StoreOrderDO; | import cn.iocoder.yudao.module.member.dal.dataobject.storeorder.StoreOrderDO; | ||||||
| import cn.iocoder.yudao.module.member.dal.dataobject.storeorderdetail.StoreOrderDetailDO; |  | ||||||
| import cn.iocoder.yudao.module.member.service.storeorder.StoreOrderService; | import cn.iocoder.yudao.module.member.service.storeorder.StoreOrderService; | ||||||
| import cn.iocoder.yudao.module.member.service.storeorderdetail.StoreOrderDetailService; | import cn.iocoder.yudao.module.member.service.storeorderdetail.StoreOrderDetailService; | ||||||
| import cn.iocoder.yudao.module.system.api.carteen.CarteenApi; | import cn.iocoder.yudao.module.system.api.carteen.CarteenApi; | ||||||
| import cn.iocoder.yudao.module.system.api.cashregisterinfo.CashregisterinfoApi; |  | ||||||
| import io.swagger.v3.oas.annotations.Operation; | import io.swagger.v3.oas.annotations.Operation; | ||||||
| import io.swagger.v3.oas.annotations.Parameter; |  | ||||||
| import io.swagger.v3.oas.annotations.tags.Tag; | import io.swagger.v3.oas.annotations.tags.Tag; | ||||||
| import org.springframework.security.access.prepost.PreAuthorize; |  | ||||||
| import org.springframework.validation.annotation.Validated; | import org.springframework.validation.annotation.Validated; | ||||||
| import org.springframework.web.bind.annotation.*; | import org.springframework.web.bind.annotation.GetMapping; | ||||||
|  | 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 javax.annotation.Resource; | ||||||
| import javax.servlet.http.HttpServletResponse; |  | ||||||
| import javax.validation.Valid; | import javax.validation.Valid; | ||||||
| import java.io.IOException; |  | ||||||
| import java.util.List; | import java.util.List; | ||||||
|  |  | ||||||
| import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||||||
| import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; |  | ||||||
|  |  | ||||||
| @Tag(name = "管理后台 - 商品订单") | @Tag(name = "管理后台 - 商品订单") | ||||||
| @RestController | @RestController | ||||||
| @ -68,4 +59,16 @@ public class AppStoreOrderController { | |||||||
|         return success(storeOrderService.appCreate(dto)); |         return success(storeOrderService.appCreate(dto)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @GetMapping("/code") | ||||||
|  |     @Operation(summary = "二维码") | ||||||
|  |     public CommonResult<String> code(Integer orderId) { | ||||||
|  |         return success(storeOrderService.code(orderId)); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @GetMapping("/complete") | ||||||
|  |     @Operation(summary = "核销") | ||||||
|  |     public CommonResult<Boolean> complete(Integer orderId) { | ||||||
|  |         return success(storeOrderService.complete(orderId)); | ||||||
|  |     } | ||||||
|  |  | ||||||
| } | } | ||||||
| @ -12,6 +12,7 @@ import cn.iocoder.yudao.module.member.dal.mysql.storegoodsinventory.StoreGoodsIn | |||||||
| import cn.iocoder.yudao.module.member.enums.InventoryTypeEnum; | import cn.iocoder.yudao.module.member.enums.InventoryTypeEnum; | ||||||
| import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||||
|  | import org.springframework.transaction.annotation.Transactional; | ||||||
| import org.springframework.validation.annotation.Validated; | import org.springframework.validation.annotation.Validated; | ||||||
|  |  | ||||||
| import javax.annotation.Resource; | import javax.annotation.Resource; | ||||||
| @ -35,7 +36,7 @@ public class StoreGoodsInventoryServiceImpl implements StoreGoodsInventoryServic | |||||||
|     private StoreGoodsInventoryMapper storeGoodsInventoryMapper; |     private StoreGoodsInventoryMapper storeGoodsInventoryMapper; | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|  |     @Transactional(rollbackFor = Exception.class) | ||||||
|     public synchronized Integer createStoreGoodsInventory(@Valid AddReqVO createReqVO) { |     public synchronized Integer createStoreGoodsInventory(@Valid AddReqVO createReqVO) { | ||||||
|         Integer id = null; |         Integer id = null; | ||||||
|         List<GoodsInfoReqVO> list = createReqVO.getList(); |         List<GoodsInfoReqVO> list = createReqVO.getList(); | ||||||
|  | |||||||
| @ -79,4 +79,8 @@ public interface StoreOrderService { | |||||||
|     Boolean appCreate(CardDto dto); |     Boolean appCreate(CardDto dto); | ||||||
|  |  | ||||||
|     String customize(StoreOrderDto dto); |     String customize(StoreOrderDto dto); | ||||||
|  |  | ||||||
|  |     String code(Integer orderId); | ||||||
|  |  | ||||||
|  |     Boolean complete(Integer orderId); | ||||||
| } | } | ||||||
| @ -34,6 +34,7 @@ import cn.iocoder.yudao.module.member.service.storebusiness.StoreBusinessService | |||||||
| import cn.iocoder.yudao.module.member.service.storegoodsinventory.StoreGoodsInventoryService; | import cn.iocoder.yudao.module.member.service.storegoodsinventory.StoreGoodsInventoryService; | ||||||
| import cn.iocoder.yudao.module.member.service.storeorderdetail.StoreOrderDetailService; | import cn.iocoder.yudao.module.member.service.storeorderdetail.StoreOrderDetailService; | ||||||
| import cn.iocoder.yudao.module.member.service.user.MemberUserService; | import cn.iocoder.yudao.module.member.service.user.MemberUserService; | ||||||
|  | import cn.iocoder.yudao.module.member.util.QRCodeWithJWTUtil; | ||||||
| import cn.iocoder.yudao.module.system.api.cashregisterinfo.CashregisterinfoApi; | import cn.iocoder.yudao.module.system.api.cashregisterinfo.CashregisterinfoApi; | ||||||
| import com.baomidou.mybatisplus.core.metadata.IPage; | import com.baomidou.mybatisplus.core.metadata.IPage; | ||||||
| import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||||||
| @ -51,8 +52,7 @@ import java.util.ArrayList; | |||||||
| import java.util.List; | import java.util.List; | ||||||
|  |  | ||||||
| import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; | ||||||
| import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.AMOUNT_NOT_ENOUGH; | import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.*; | ||||||
| import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.STORE_ORDER_NOT_EXISTS; |  | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * 商品订单 Service 实现类 |  * 商品订单 Service 实现类 | ||||||
| @ -389,6 +389,34 @@ public class StoreOrderServiceImpl implements StoreOrderService { | |||||||
|         return null; |         return null; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public String code(Integer orderId) { | ||||||
|  |         return QRCodeWithJWTUtil.generateQRCode(orderId.toString(), 350, 350, null);// 生 | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public Boolean complete(Integer orderId) { | ||||||
|  |         StoreOrderDO storeOrderDO = storeOrderMapper.selectById(orderId); | ||||||
|  |         if(ObjectUtil.isEmpty(storeOrderDO)){ | ||||||
|  |             throw exception(STORE_ORDER_NOT_EXISTS); | ||||||
|  |         } | ||||||
|  |         if(storeOrderDO.getStatus().equals(StoreOrderStatusEnum.COMPLETE.getCode()) | ||||||
|  |           || storeOrderDO.getStatus().equals(StoreOrderStatusEnum.REFUND.getCode())){ | ||||||
|  |             throw exception(STATUS_ERROR); | ||||||
|  |         } | ||||||
|  |         storeOrderDO.setStatus(StoreOrderStatusEnum.COMPLETE.getCode()); | ||||||
|  |         storeOrderMapper.updateById(storeOrderDO); | ||||||
|  |         //营业数据 | ||||||
|  |         StatisticsVo statisticsVo = new StatisticsVo(); | ||||||
|  |         statisticsVo.setCarteenId(storeOrderDO.getCarteenId()); | ||||||
|  |         statisticsVo.setTotalMoney(BigDecimal.valueOf(storeOrderDO.getTotalPrice())); | ||||||
|  |         statisticsVo.setOrderSum(1); | ||||||
|  |         statisticsVo.setTime(storeOrderDO.getCreateTime()); | ||||||
|  |         statisticsVo.setOrderId(storeOrderDO.getOrderId().longValue()); | ||||||
|  |         storeBusinessService.updateStatistics(statisticsVo); | ||||||
|  |         return true; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public void test() { |     public void test() { | ||||||
|         //计算金额 |         //计算金额 | ||||||
|         //if (total.compareTo(wxAmount) <= 0) { |         //if (total.compareTo(wxAmount) <= 0) { | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 zengtao01
					zengtao01