wzy
2021-11-30 0e5aaeba97021c289485a652ec6af0bb37f92af7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
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<Map<String, Object>> queryRoyaltyManage(@RequestBody SettlementModel model) {
        Map<String, Object> map = weightItemPriceService.queryRoyaltyManage(model);
        return JsonResult.success(map);
    }
 
    @PostMapping("/admin/front/weightItemPrice/queryRuleManageDetail.json")
    @ApiOperation(value = "提成明细列表", notes = "test: 仅0有正确返回")
    public JsonResult<List<WeightItemPrice>> queryRuleManageDetail(@RequestBody QueryRuleManageDetailDTO queryRuleManageDetailDTO) {
        List<WeightItemPrice> list = weightItemPriceService.queryRuleManageDetail(queryRuleManageDetailDTO);
        return JsonResult.success(list);
    }
 
    @PostMapping( "/admin/front/weightItemPrice/updateRoyaltyRule.json")
    @ApiOperation(value = "提成明细审核", notes = "test: 仅0有正确返回")
    public JsonResult<String> 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<PageInfo<OrderSettle>> settlePage(@RequestBody SettlePageDTO settlePageDTO, HttpServletRequest request) {
        PageHelper.startPage(settlePageDTO.getPageNo(),settlePageDTO.getPageSize());
        List<OrderSettle> 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<List<String>> rows = new ArrayList<>();
        Map<String, Object> object = (Map<String, Object>) fileExportDTO.getObject();
        //标题
        List<String> header = CollUtil.newArrayList("结算状态","未结算提成(元)", "入库重量(kg)", "回收价格(元)", "入库价格(元)", "分类类型", "入库单号", "姓名","手机号","角色","入库完成时间");
        rows.add(header);
 
        //组装数据
        QueryRuleManageDetailDTO dto = BeanUtil.mapToBean(object, QueryRuleManageDetailDTO.class, true);
        List<WeightItemPrice> 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<String> 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);
 
    }
}