PayOrderController.java 5.4 KB
package com.sunyo.energy.location.controller;

import com.github.pagehelper.PageInfo;
import com.google.gson.internal.$Gson$Preconditions;
import com.sunyo.energy.location.controller.response.ResultJson;
import com.sunyo.energy.location.dao.LocationMapper;
import com.sunyo.energy.location.dao.PayRecordsMapper;
import com.sunyo.energy.location.model.Location;
import com.sunyo.energy.location.model.PayRecords;
import com.sunyo.energy.location.service.ElectricityMeterService;
import com.sunyo.energy.location.service.PayOrderService;
import com.sunyo.energy.location.service.WaterMeterService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;

/**
 * Created by XYH on 2019/12/16.
 * 订单查询,新增,更新,删除
 */
@Api(description = "订单管理")
@RestController
@RequestMapping("/order")
public class PayOrderController {

    @Autowired
    PayOrderService payOrderService;

    @Autowired
    PayRecordsMapper payRecordsMapper;

    @Autowired
    ElectricityMeterService electricityMeterService;

    @Autowired
    private WaterMeterService waterMeterService;

    @Autowired
    private LocationMapper locationMapper;

    @ApiOperation(value = "查询缴费订单")
    @RequestMapping("/list")
    public PageInfo<PayRecords> getOrder(@RequestParam(value = "pageSize", required = false, defaultValue = "1") int pageSize,
                                         @RequestParam(value = "pageNum", required = false, defaultValue = "5") int pageNum,
                                         @RequestParam(value = "orderNumber", required = false) String orderNumber,
                                         @RequestParam(value = "payTime", required = false) String payTime,
                                         @RequestParam(value = "username", required = false) String username,
                                         @RequestParam(value = "payType", required = false) String payType,
                                         @RequestParam(value = "paystatus", required = false) String paystatus) {
        PageInfo<PayRecords> order = payOrderService.getOrder(pageSize, pageNum, orderNumber, payTime, username, payType, paystatus);
        return order;
    }


    @ApiOperation(value = "新增缴费订单")
    @PostMapping("/add")
    public ResultJson addOrder(@RequestBody PayRecords records) {
        int mgs = 0;
        int result = payOrderService.addOrder(records);
        if (result > 0) {
            mgs = 1;
        }
        return mgs == 1 ? new ResultJson("200", "新增订单成功") : new ResultJson("500", "新增订单失败");
    }


    @ApiOperation(value = "更新缴费订单")
    @PutMapping("/edi")
    public ResultJson ediOrder(@RequestBody PayRecords records) {
        int mgs = 0;
        int result = payOrderService.ediOrder(records);
        if (result > 0) {
            mgs = 1;
        }
        return mgs == 1 ? new ResultJson("200", "订单信息更新成功") : new ResultJson("500", "订单信息更新失败");
    }


    @ApiOperation(value = "删除缴费订单")
    @DeleteMapping("/del")
    public ResultJson delOrder(@RequestBody PayRecords payRecords) {
        int mgs = 0;
        int result = payOrderService.delOrder(payRecords);
        if (result > 0) {
            mgs = 1;
        }
        return mgs == 1 ? new ResultJson("200", "订单信息移出成功") : new ResultJson("500", "订单信息删除失败");
    }

    @ApiOperation(value = "处理失败订单充值信息")
    @PostMapping("/defeatedOrder")
    public ResultJson defeatedOrder(@RequestBody PayRecords payRecords){

        /**
         * 查询水电表编号
         */
        Location location = locationMapper.waterId_eleId(payRecords.getPaylocationname());
        /**
         * 支付状态  充值状态满足条件进入否则不操作
         */
        if (payRecords.getPaystatus() == true && "0".equals(payRecords.getReamke3())){
            /**
             * true 为电 false 为水
             */
            if (payRecords.getPaytype()){
                int i = electricityMeterService.rechargeDevices(location.getEeid(), String.valueOf(payRecords.getPayfees()),
                        "0", payRecords.getOrdernumber());
                if (i == 1){
                    payRecords.setReamke3("1");
                    int i1 = payRecordsMapper.updateByPrimaryKey(payRecords);
                    return i1 == 1? new ResultJson("200", "电费充值成功"): new ResultJson("201", "电费充值失败");
                }else {
                    return new ResultJson("201", "电费充值失败");
                }
            }else {
                ResultJson resultJson = waterMeterService.payWater(String.valueOf(payRecords.getPayfees()), location.getWmid());

                if ("200".equals(resultJson.getCode())){
                    payRecords.setReamke3("1");
                    int i1 = payRecordsMapper.updateByPrimaryKey(payRecords);
                    return i1 == 1? new ResultJson("200", "水费充值成功"): new ResultJson("201", "水费充值失败");
                }else {
                    resultJson.setCode("201");
                    return resultJson;
                }
            }
        }else {

            return new ResultJson("201", "充值失败");
        }
    }

}