package com.jilongda.manage.controller;
|
|
|
import com.jilongda.common.basic.ApiResult;
|
import com.jilongda.common.basic.PageInfo;
|
import com.jilongda.manage.model.*;
|
import com.jilongda.manage.query.TLineUpQuery;
|
import com.jilongda.manage.query.TOrderAccountingQuery;
|
import com.jilongda.manage.service.*;
|
import com.jilongda.manage.vo.TOrderAccountVO;
|
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.StringUtils;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.math.BigDecimal;
|
import java.util.List;
|
|
/**
|
* <p>
|
* 订单核算表 前端控制器
|
* </p>
|
*
|
* @author 无关风月
|
* @since 2024-12-09
|
*/
|
@RestController
|
@Api(tags = "订单核算")
|
@RequestMapping("/t-order-accounting")
|
public class TOrderAccountingController {
|
@Autowired
|
private TStoreService storeService;
|
@Autowired
|
private TOrderService orderService;
|
@Autowired
|
private TOrderAccountingService orderAccountingService;
|
@Autowired
|
private TAppUserService appUserService;
|
@Autowired
|
private TOptometryDetailService optometryDetailService;
|
@Autowired
|
private TOrderGoodsService orderGoodsService;
|
@Autowired
|
private SecFeeItemsService feeItemsService;
|
@ApiOperation(value = "核算订单分页列表")
|
@PostMapping(value = "/pageList")
|
public ApiResult<PageInfo<TOrderVO>> pageList(@RequestBody TOrderAccountingQuery query) {
|
if (StringUtils.hasLength(query.getStartTime())){
|
query.setStartTime(query.getStartTime()+" 00:00:00");
|
query.setEndTime(query.getEndTime()+" 23:59:59");
|
}
|
PageInfo<TOrderVO> res = orderAccountingService.pageList(query);
|
return ApiResult.success(res);
|
}
|
@ApiOperation(value = "核算详情页面")
|
@GetMapping(value = "/detail")
|
public ApiResult<TOrderAccountVO> detail(Integer id) {
|
TOrderAccountVO res = new TOrderAccountVO();
|
TOrder byId = orderService.getById(id);
|
if (byId.getUserId()!=null){
|
TAppUser byId1 = appUserService.getById(byId.getUserId());
|
if(byId1!=null){
|
res.setName(byId1.getName());
|
res.setPhone(byId1.getPhone());
|
}
|
}
|
res.setAge(byId.getAge());
|
res.setRealName(byId.getRealName());
|
res.setGender(byId.getGender());
|
List<TOptometryDetail> list = optometryDetailService.lambdaQuery().eq(TOptometryDetail::getOrderId, id)
|
.eq(TOptometryDetail::getType, 1).list();
|
res.setOptometryDetails(list);
|
List<TOrderGoods> orderGoods = orderGoodsService.lambdaQuery()
|
.eq(TOrderGoods::getOrderId, id).list();
|
BigDecimal goodsMoney = new BigDecimal("0");
|
BigDecimal costMoney = new BigDecimal("0");
|
BigDecimal constConfirm = new BigDecimal("0");
|
for (TOrderGoods orderGood : orderGoods) {
|
goodsMoney =goodsMoney.add(orderGood.getGoodsMoney());
|
costMoney=costMoney.add(orderGood.getCost()==null?new BigDecimal("0"):orderGood.getCost());
|
constConfirm=constConfirm.add(orderGood.getConstConfirm()==null?new BigDecimal("0"):orderGood.getConstConfirm());
|
}
|
res.setOrderGoods(orderGoods);
|
TStore byId1 = storeService.getById(byId.getStoreId());
|
res.setStoreName(byId1.getName());
|
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())
|
.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));
|
}
|
return ApiResult.success(res);
|
}
|
@ApiOperation(value = "确认核算操作")
|
@GetMapping(value = "/confirm")
|
public ApiResult confirm() {
|
return ApiResult.success();
|
}
|
}
|