package com.template.api;

import com.template.model.result.CommonResult;
import com.template.model.tongji.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import java.io.UnsupportedEncodingException;
import java.text.ParseException;

@RequestMapping("/api/wechat")
@Api(tags = {"WechatScanLoginController"}, value = "扫码登录")
public interface WechatScanLoginControllerAPI {

    @RequestMapping(value = "/login")
    @ApiOperation(value = "二维码登录")
    public String login(Model model) throws UnsupportedEncodingException;

    @RequestMapping(value = "/callback")
    @ApiOperation(value = "登录回调")
    public String callback(String code, String state) throws UnsupportedEncodingException;

    @RequestMapping(value = "/bind")
    @ApiOperation(value = "绑定微信", httpMethod = "GET")
    public String bindUserMac(String phone,String messageCode) throws UnsupportedEncodingException;

    @RequestMapping(value = "/bindcallback")
    @ApiOperation(value = "绑定微信回调url", httpMethod = "GET")
    public String bindcallback(String code, String state, String phone,String messageCode) throws UnsupportedEncodingException;

    @RequestMapping(value = "/insertMonthMeter")
    @ResponseBody
    public String insertMonthMeter(String month);

    @RequestMapping(value = "/insertDayMeter")
    @ResponseBody
    public String insertDayMeter(String day);

    @RequestMapping(value = "/getUserIdTj")
    @ResponseBody
    public CommonResult getUserIdTj();

    @RequestMapping(value = "/getUserIdTjt")
    @ResponseBody
    public CommonResult getUserIdTjt();

    @RequestMapping(value = "/getWaterTj")
    @ResponseBody
    public CommonResult getWaterTj();

    @RequestMapping(value = "/getElcTj")
    @ResponseBody
    public CommonResult getElcTj();

    @RequestMapping(value = "/getMonWater")
    @ResponseBody
    public CommonResult getMonWater() throws ParseException;

    @RequestMapping(value = "/getMonElc")
    @ResponseBody
    public CommonResult getMonElc() throws ParseException;

    @RequestMapping(value = "/getMeterMonthPage")
    @ResponseBody
    public CommonResult getMeterMonthPage(MeterMonthData meterMonthData,int currentPage, int pageCount);

    @RequestMapping(value = "/getMeterDayPage")
    @ResponseBody
    public CommonResult getMeterDayPage(MeterMonthData meterMonthData,int currentPage, int pageCount);

    @RequestMapping(value = "/getPosition")
    @ResponseBody
    public CommonResult getPosition();

    @RequestMapping(value = "/vertify")
    @ResponseBody
    public CommonResult vertify(String code);

    @RequestMapping(value = "/sendMessage")
    @ResponseBody
    public CommonResult sendMessage(@RequestParam String phone);

    @RequestMapping(value = "/vertifyMessage")
    @ResponseBody
    public CommonResult vertifyMessage(String phone,String code, String wxcode);
}
