package com.xzx.gc.order.controller; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.xzx.gc.common.constant.BusinessEnum; import com.xzx.gc.common.constant.CommonEnum; import com.xzx.gc.common.constant.Constants; import com.xzx.gc.common.constant.OrderEnum; import com.xzx.gc.common.dto.log.OperationAppLog; import com.xzx.gc.common.request.BaseController; import com.xzx.gc.common.utils.DateUtils; import com.xzx.gc.entity.OrderSettle; import com.xzx.gc.entity.WeightItemPrice; import com.xzx.gc.model.FileExportDTO; import com.xzx.gc.model.JsonResult; import com.xzx.gc.model.admin.OrderModel; import com.xzx.gc.model.admin.SettlementModel; import com.xzx.gc.model.order.QueryRuleManageDetailDTO; import com.xzx.gc.model.order.SettlePageDTO; import com.xzx.gc.model.order.UpdateRoyaltyRuleDTO; import com.xzx.gc.order.service.WeightItemPriceService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; import java.util.Map; @RestController @Api(tags = {"提成管理"}) @Validated @Slf4j public class WeightItemPriceController extends BaseController { @Autowired private WeightItemPriceService weightItemPriceService; @PostMapping("/admin/front/weightItemPrice/queryRuleManage.json") @ApiOperation(value = "提成管理", notes = "test: 仅0有正确返回") public JsonResult> queryRoyaltyManage(@RequestBody SettlementModel model) { Map map = weightItemPriceService.queryRoyaltyManage(model); return JsonResult.success(map); } @PostMapping("/admin/front/weightItemPrice/queryRuleManageDetail.json") @ApiOperation(value = "提成明细列表", notes = "test: 仅0有正确返回") public JsonResult> queryRuleManageDetail(@RequestBody QueryRuleManageDetailDTO queryRuleManageDetailDTO) { List list = weightItemPriceService.queryRuleManageDetail(queryRuleManageDetailDTO); return JsonResult.success(list); } @PostMapping( "/admin/front/weightItemPrice/updateRoyaltyRule.json") @ApiOperation(value = "提成明细审核", notes = "test: 仅0有正确返回") public JsonResult updateRoyaltyRule(@RequestBody UpdateRoyaltyRuleDTO updateRoyaltyRuleDTO, HttpServletRequest request) { weightItemPriceService.updateRoyaltyRule(updateRoyaltyRuleDTO); OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) .methodName(Constants.ORDER_MODUL_NAME).operateAction("提成明细批量审核-" + updateRoyaltyRuleDTO.getReceiver()).build(); mqUtil.sendApp(build); return JsonResult.success("结算成功!"); } @PostMapping( "/admin/front/weightItemPrice/settlePage.json") @ApiOperation(value = "结算明细分页查询", notes = "test: 仅0有正确返回") public JsonResult> settlePage(@RequestBody SettlePageDTO settlePageDTO, HttpServletRequest request) { PageHelper.startPage(settlePageDTO.getPageNo(),settlePageDTO.getPageSize()); List list=weightItemPriceService.settlePage(settlePageDTO); return JsonResult.success(new PageInfo<>(list)); } @ApiOperation(value = "提成明细导出", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE) @PostMapping(value = "/admin/front/weightItemPrice/export") public void fileExport(@RequestBody FileExportDTO fileExportDTO, HttpServletRequest request, HttpServletResponse response) { List> rows = new ArrayList<>(); Map object = (Map) fileExportDTO.getObject(); //标题 List header = CollUtil.newArrayList("结算状态","未结算提成(元)", "入库重量(kg)", "回收价格(元)", "入库价格(元)", "分类类型", "入库单号", "姓名","手机号","角色","入库完成时间"); rows.add(header); //组装数据 QueryRuleManageDetailDTO dto = BeanUtil.mapToBean(object, QueryRuleManageDetailDTO.class, true); List list = weightItemPriceService.queryRuleManageDetail(dto); if (CollUtil.isNotEmpty(list)) { for (WeightItemPrice model : list) { String statusName; if(OrderEnum.未结算.getValue().equals(model.getStatus())){ statusName=OrderEnum.未结算.name(); }else if(OrderEnum.已结算并支付.getValue().equals(model.getStatus())){ statusName=OrderEnum.已结算并支付.name(); }else if(OrderEnum.异常.getValue().equals(model.getStatus())){ statusName=OrderEnum.异常.name(); }else{ statusName=OrderEnum.仅结算.name(); } List row = CollUtil.newArrayList(statusName,model.getSettleMoney(),model.getWeight(),model.getGoodsPrice(),model.getPackagePrice(),model.getProductName(),model.getStorageId(),model.getName(),model.getMobilePhone(),model.getRoleName(),model.getStorageTime()); rows.add(row); } } //导出 export(rows, response); OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) .methodName(Constants.ORDER_MODUL_NAME).operateAction("提成明细导出").build(); mqUtil.sendApp(build); } }