| | |
| | | package com.jilongda.manage.controller; |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | 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 org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.time.temporal.ChronoUnit; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | private SecFeeItemsService feeItemsService; |
| | | @Autowired |
| | | private LoginInfoUtil loginInfoUtil; |
| | | @Autowired |
| | | private TOptometryService optometryService; |
| | | |
| | | @ApiOperation(value = "核算订单分页列表") |
| | | @PostMapping(value = "/pageList") |
| | | public ApiResult<PageInfo<TOrderVO>> pageList(@RequestBody TOrderAccountingQuery query) { |
| | |
| | | if(byId1!=null){ |
| | | res.setName(byId1.getName()); |
| | | res.setPhone(byId1.getPhone()); |
| | | res.setRealName(byId1.getRealName()); |
| | | res.setGender(byId1.getGender()); |
| | | } |
| | | }else { |
| | | res.setPhone(byId.getPhone()); |
| | | res.setAge(byId.getAge()); |
| | | res.setRealName(byId.getRealName()); |
| | | res.setGender(byId.getGender()); |
| | | } |
| | | res.setAge(byId.getAge()); |
| | | res.setRealName(byId.getRealName()); |
| | | res.setGender(byId.getGender()); |
| | | List<TOrderItems> list1 = orderItemsService.lambdaQuery().eq(TOrderItems::getOrderId, id).list(); |
| | | for (TOrderItems orderItems : list1) { |
| | | SecFeeItems secFeeItems = feeItemsService.getById(orderItems.getItemsId()); |
| | | orderItems.setItemsName(secFeeItems.getName()); |
| | | } |
| | | res.setItemsId(byId.getItemsId()); |
| | | res.setUserId(byId.getUserId()); |
| | | res.setOptometryId(byId.getOptometryId()); |
| | | List<TOptometryDetail> list = optometryDetailService.lambdaQuery().eq(TOptometryDetail::getOrderId, id) |
| | | .eq(TOptometryDetail::getType, 1).list(); |
| | | .eq(TOptometryDetail::getType, 1).list(); |
| | | res.setOptometryDetails(list); |
| | | List<TOrderGoods> orderGoods = orderGoodsService.lambdaQuery() |
| | | .eq(TOrderGoods::getOrderId, id).list(); |
| | |
| | | res.setOrderMoney(goodsMoney); |
| | | res.setCouponMoney(byId.getCouponMoney()); |
| | | res.setPayMoney(byId.getPayMoney()); |
| | | res.setPayType(byId.getPayTypeName()); |
| | | res.setRealPayMoney(byId.getPayMoney()); |
| | | SecFeeItems one1 = feeItemsService.lambdaQuery().eq(SecFeeItems::getName, byId.getPayTypeName()) |
| | | SecFeeItems one1 = feeItemsService.lambdaQuery().eq(SecFeeItems::getId, byId.getItemsId()) |
| | | .one(); |
| | | BigDecimal percent = one1.getPercent(); |
| | | BigDecimal bigDecimal1 = byId.getPayMoney().multiply(percent).setScale(2, BigDecimal.ROUND_DOWN); |
| | | res.setCommission(bigDecimal1); |
| | | if (byId.getIsAccounting()==1){ |
| | | res.setProfitMoney(byId.getPayMoney().subtract(bigDecimal1).subtract(constConfirm)); |
| | | res.setProfitRating(res.getProfitMoney().divide(byId.getPayMoney(),2, BigDecimal.ROUND_DOWN)); |
| | | } |
| | | res.setPayType(one1.getName()); |
| | | res.setProfitMoney(byId.getProfitMoney()); |
| | | res.setProfitRating(byId.getProfitRating()); |
| | | List<TOrderItems> orderItems = orderItemsService.list(Wrappers.lambdaQuery(TOrderItems.class) |
| | | .eq(TOrderItems::getOrderId, id)); |
| | | res.setOrderItems(orderItems); |
| | | return ApiResult.success(res); |
| | | } |
| | | @Autowired |
| | | private TOrderItemsService orderItemsService; |
| | | @ApiOperation(value = "确认核算操作") |
| | | @GetMapping(value = "/confirm") |
| | | @PostMapping(value = "/confirm") |
| | | public ApiResult confirm(@RequestBody AccountDetailDTO dto) { |
| | | List<TOrderGoods> list = dto.getList(); |
| | | orderGoodsService.updateBatchById(list); |
| | | TOrder byId = orderService.getById(dto.getId()); |
| | | byId.setPayTypeName(dto.getPayTypeName()); |
| | | byId.setPayTypeName(dto.getPayTypeName()); |
| | | byId.setPayMoney(dto.getPayMoney()); |
| | | byId.setCommissionMoney(dto.getCommission()); |
| | |
| | | SecUser byId1 = secUserService.getById(userId); |
| | | byId.setAccountingName(byId1.getNickName()); |
| | | byId.setAccountingTime(LocalDateTime.now()); |
| | | byId.setProfitRating(dto.getProfitRating()); |
| | | byId.setProfitMoney(dto.getProfitMoney()); |
| | | orderService.updateById(byId); |
| | | boolean remove = orderItemsService |
| | | .remove(new LambdaQueryWrapper<TOrderItems>() |
| | | .eq(TOrderItems::getOrderId, dto.getId())); |
| | | orderItemsService.saveBatch(dto.getListItems()); |
| | | return ApiResult.success(); |
| | | } |
| | | } |