package com.stylefeng.guns.modular.api;
|
import java.text.SimpleDateFormat;
|
import java.util.Date;
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.baomidou.mybatisplus.mapper.Wrapper;
|
import com.baomidou.mybatisplus.plugins.pagination.PageHelper;
|
import com.stylefeng.guns.core.base.controller.BaseController;
|
import com.stylefeng.guns.core.common.constant.factory.PageFactory;
|
import com.stylefeng.guns.modular.dto.BackReasonDto;
|
import com.stylefeng.guns.modular.system.dao.ComplaintMapper;
|
import com.stylefeng.guns.modular.system.dao.TUseMoneyMapper;
|
import com.stylefeng.guns.modular.system.model.*;
|
import com.stylefeng.guns.modular.system.service.*;
|
import com.stylefeng.guns.modular.system.util.*;
|
import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
|
import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
|
import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.ui.Model;
|
import org.springframework.web.bind.annotation.*;
|
import org.terracotta.offheapstore.paging.Page;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
import java.math.BigDecimal;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 总览信息
|
*
|
* @author fengshuonan
|
* @Date 2017年3月4日23:05:54
|
*/
|
@Controller
|
@RequestMapping("/api/zion")
|
@Api(tags = "子昂新增")
|
public class ZiOnController extends BaseController {
|
|
@Autowired
|
private INoticeService noticeService;
|
|
@Autowired
|
private IDriverService driverService;
|
@Autowired
|
private ICompanyService companyService;
|
|
@Autowired
|
private IOrderTaxiService orderTaxiService;
|
@Autowired
|
private ITransactionDetailsService iTransactionDetailsService;
|
@Autowired
|
private IWithdrawalService withdrawalService;
|
@Autowired
|
private ITRechargeMoneyService rechargeMoneyService;
|
@Autowired
|
private PayMoneyUtil payMoneyUtil;
|
@Autowired
|
private TUseMoneyMapper useMoneyMapper;
|
@ResponseBody
|
@PostMapping ("/money/get")
|
@ApiOperation(value = "拿到后台配置的充值金额")
|
public ResultUtil money(){
|
try {
|
TRechargeMoney tRechargeMoney = rechargeMoneyService.selectOne(null);
|
return ResultUtil.success(tRechargeMoney);
|
}catch (Exception e){
|
e.printStackTrace();
|
return ResultUtil.runErr();
|
}
|
}
|
|
@ResponseBody
|
@PostMapping ("/recharge")
|
@ApiOperation(value = "微信充值操作")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
|
@ApiImplicitParam(value = "充值金额", name = "money", required = true, dataType = "double"),
|
})
|
public ResultUtil recharge(BigDecimal money,HttpServletRequest request) throws Exception {
|
Integer uid = driverService.getUserIdFormRedis(request);
|
if (null == uid) {
|
return ResultUtil.tokenErr();
|
}
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
|
String s = sdf.format(new Date()) + UUIDUtil.getRandomCode(3);
|
ResultUtil weixinpay = payMoneyUtil.weixinpay("充值",
|
"",
|
s,
|
money.toString(),
|
"/base/wxRecharge",
|
"APP");
|
if (weixinpay.getCode()==200){
|
// 新增扣除使用费记录
|
TransactionDetails transactionDetails = new TransactionDetails();
|
transactionDetails.setCode(s);
|
transactionDetails.setUserId(uid);
|
transactionDetails.setInsertTime(new Date());
|
transactionDetails.setRemark("充值");
|
// 将money转化为double类型
|
transactionDetails.setMoney(money.doubleValue());
|
transactionDetails.setState(1);
|
transactionDetails.setType(1);
|
transactionDetails.setUserType(2);
|
transactionDetails.setOrderType(5);
|
iTransactionDetailsService.insert(transactionDetails);
|
}
|
return weixinpay;
|
}
|
|
|
|
@ResponseBody
|
@PostMapping ("/out")
|
@ApiOperation(value = "微信提现操作")
|
public ResultUtil out(BigDecimal money,HttpServletRequest request) throws Exception {
|
Integer uid = driverService.getUserIdFormRedis(request);
|
if (null == uid) {
|
return ResultUtil.tokenErr();
|
}
|
|
Driver driver = driverService.selectById(uid);
|
Double balance = driver.getBalance();
|
driver.setBalance(balance-money.doubleValue());
|
driverService.updateById(driver);
|
|
Withdrawal withdrawal = new Withdrawal();
|
withdrawal.setUserId(uid);
|
withdrawal.setHandleTime(new Date());
|
withdrawal.setBalance(balance);
|
withdrawal.setMoney(money.doubleValue());
|
withdrawal.setState(1);
|
withdrawal.setRemark("");
|
withdrawal.setCode("");
|
withdrawal.setName(driver.getName());
|
withdrawal.setUserType(2);
|
withdrawal.setType(2);
|
withdrawal.setInsertTime(new Date());
|
withdrawal.setFlag(1);
|
withdrawal.setWithdrawalType(1);
|
withdrawal.setSerialNo("");
|
withdrawalService.insert(withdrawal);
|
TransactionDetails transactionDetails = new TransactionDetails();
|
transactionDetails.setUserId(uid);
|
transactionDetails.setInsertTime(new Date());
|
transactionDetails.setRemark("");
|
transactionDetails.setMoney(money.doubleValue());
|
transactionDetails.setState(2);
|
transactionDetails.setType(1);
|
transactionDetails.setUserType(2);
|
transactionDetails.setOrderType(2);
|
transactionDetails.setOrderId(0);
|
iTransactionDetailsService.insert(transactionDetails);
|
return ResultUtil.success();
|
}
|
|
|
@ResponseBody
|
@PostMapping("/bind")
|
@ApiOperation(value = "绑定openId")
|
public ResultUtil queryByType(String openId,HttpServletRequest request) {
|
try {
|
Integer uid = driverService.getUserIdFormRedis(request);
|
if (null == uid) {
|
return ResultUtil.tokenErr();
|
}
|
Driver driver = driverService.selectById(uid);
|
driver.setAppletsOpenId(openId);
|
driverService.updateById(driver);
|
}catch (Exception e){
|
e.printStackTrace();
|
}
|
return ResultUtil.success();
|
|
}
|
|
|
@Resource
|
private ComplaintMapper complaintMapper;
|
@Resource
|
private IUserService userService;
|
|
@ResponseBody
|
@PostMapping("/order/edit")
|
@ApiOperation(value = "订单反馈", notes = "backReason和backPic")
|
public ResultUtil queryByType(String backReason,String backPic,Integer id){
|
try {
|
OrderTaxi orderTaxi = orderTaxiService.selectById(id);
|
orderTaxi.setBackPic(backPic);
|
orderTaxi.setBackReason(backReason);
|
orderTaxi.setIsBack(1);
|
orderTaxiService.updateById(orderTaxi);
|
// List<User> phone = userService.selectList(
|
// new EntityWrapper<User>()
|
// .eq("phone", orderTaxi.getPassengersPhone()));
|
// if (phone.isEmpty()){
|
// return ResultUtil.success();
|
// }
|
Complaint complaint = new Complaint();
|
if (orderTaxi.getUserId()!=null) {
|
complaint.setUserId(orderTaxi.getUserId());
|
}
|
complaint.setReason(backReason);
|
complaint.setDriverId(orderTaxi.getDriverId());
|
complaint.setIsHandle(0);
|
complaint.setInsertTime(new Date());
|
complaint.setType(2);
|
complaint.setImg(backPic);
|
complaintMapper.insert(complaint);
|
return ResultUtil.success();
|
}catch (Exception e){
|
e.printStackTrace();
|
return ResultUtil.runErr();
|
}
|
}
|
|
@ResponseBody
|
@PostMapping("/order/backreson")
|
@ApiOperation(value = "订单反馈内容", notes = "backReason和backPic")
|
public ResultUtil queryByType(Integer id){
|
OrderTaxi orderTaxi = orderTaxiService.selectById(id);
|
BackReasonDto backReasonDto = new BackReasonDto();
|
backReasonDto.setBackReason(orderTaxi.getBackReason());
|
backReasonDto.setPic(orderTaxi.getBackPic());
|
return ResultUtil.success(backReasonDto);
|
}
|
|
@ResponseBody
|
@PostMapping("/order/hisory")
|
@ApiOperation(value = "历史记录", notes = "")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
|
})
|
public ResultUtil queryByType( Integer pageNum,Integer size,HttpServletRequest request,Integer state){
|
try {
|
// int pageNum = 1; // 页码,从1开始
|
// int pageSize = 10; // 每页记录数
|
|
// 计算起始索引
|
int startIndex = (pageNum - 1) * size;
|
|
// 获取总记录数
|
|
|
Integer driverId = driverService.getUserIdFormRedis(request);
|
if(null == driverId){
|
return ResultUtil.tokenErr();
|
}
|
Wrapper<TransactionDetails> eq = new EntityWrapper<TransactionDetails>().eq("userType", 2).eq("userId", driverId);
|
if (state!=null&&state==1){
|
eq.eq("state",1);
|
|
}
|
if (state!=null&&state==2){
|
eq.eq("state",2);
|
}
|
eq.orderBy("insertTime",false);
|
List<TransactionDetails> transactionDetails = iTransactionDetailsService.selectList(eq);
|
List<OrderTaxi> orderTaxis = orderTaxiService.selectList(null);
|
if ((state!=null&&state==1)||(state!=null&&state==2)){
|
List<HistoryVo> historyVos = new ArrayList<>();
|
for (TransactionDetails transactionDetail : transactionDetails) {
|
HistoryVo historyVo = new HistoryVo();
|
if (transactionDetail.getState()==1){
|
switch (transactionDetail.getOrderType()){
|
case 2:
|
historyVo.setState("订单收入");
|
break;
|
default:
|
historyVo.setState("充值");
|
break;
|
}
|
historyVo.setAddordown(1);
|
}else {
|
OrderTaxi orderTaxi = orderTaxis.stream().filter(e -> e.getId().equals(transactionDetail.getOrderId())).findFirst().orElse(null);
|
if (orderTaxi!=null){
|
if (orderTaxi.getPayType()!=null && (orderTaxi.getPayType()!=1||orderTaxi.getPayType()!=2)){
|
continue;
|
}
|
}
|
historyVo.setState("扣除");
|
historyVo.setAddordown(0);
|
}
|
historyVo.setMoney(transactionDetail.getMoney());
|
historyVo.setCreateTime(transactionDetail.getInsertTime());
|
historyVos.add(historyVo);
|
}
|
int totalRecords = historyVos.size();
|
int endIndex = Math.min(startIndex + size, totalRecords);
|
List<HistoryVo> historyVos1 = historyVos.subList(startIndex, endIndex);
|
|
return ResultUtil.success(historyVos1);
|
}
|
|
|
Wrapper<Withdrawal> eq1 = new EntityWrapper<Withdrawal>().eq("userType", 2).eq("userId", driverId);
|
List<Withdrawal> withdrawals = withdrawalService.selectList(eq1);
|
List<HistoryVo> historyVos = new ArrayList<>();
|
List<HistoryVo> historyVos1 = new ArrayList<>();
|
for (TransactionDetails transactionDetail : transactionDetails) {
|
HistoryVo historyVo = new HistoryVo();
|
if (transactionDetail.getState()==1){
|
switch (transactionDetail.getOrderType()){
|
case 2:
|
historyVo.setState("订单收入");
|
break;
|
default:
|
historyVo.setState("充值");
|
break;
|
}
|
historyVo.setAddordown(1);
|
}else {
|
OrderTaxi orderTaxi = orderTaxis.stream().filter(e -> e.getId().equals(transactionDetail.getOrderId())).findFirst().orElse(null);
|
if (orderTaxi!=null){
|
if (orderTaxi.getPayType()!=null && (orderTaxi.getPayType()!=1||orderTaxi.getPayType()!=2)){
|
continue;
|
}
|
}
|
historyVo.setState("扣除");
|
historyVo.setAddordown(0);
|
}
|
historyVo.setMoney(transactionDetail.getMoney());
|
historyVo.setCreateTime(transactionDetail.getInsertTime());
|
historyVos.add(historyVo);
|
|
}
|
|
for (Withdrawal transactionDetail : withdrawals) {
|
HistoryVo historyVo = new HistoryVo();
|
if (transactionDetail.getState()==1){
|
historyVo.setState("待处理");
|
historyVo.setAddordown(0);
|
}else if(transactionDetail.getState()==2) {
|
historyVo.setState("成功");
|
historyVo.setAddordown(0);
|
}else {
|
historyVo.setState("失败");
|
historyVo.setAddordown(1);
|
}
|
historyVo.setMoney(transactionDetail.getMoney());
|
historyVo.setCreateTime(transactionDetail.getInsertTime());
|
historyVos.add(historyVo);
|
historyVos1.add(historyVo);
|
}
|
if (state!=null&&state==3){
|
|
int totalRecords = historyVos1.size();
|
int endIndex = Math.min(startIndex + size, totalRecords);
|
List<HistoryVo> historyVos2 = historyVos1.subList(startIndex, endIndex);
|
|
return ResultUtil.success(historyVos2);
|
}
|
|
int totalRecords = historyVos.size();
|
int endIndex = Math.min(startIndex + size, totalRecords);
|
List<HistoryVo> historyVos3 = historyVos.subList(startIndex, endIndex);
|
|
return ResultUtil.success(historyVos3);
|
|
|
}catch (Exception e){
|
e.printStackTrace();
|
return ResultUtil.runErr();
|
}
|
}
|
|
@Autowired
|
private PushUtil pushUtil;
|
@ResponseBody
|
@PostMapping("/confirm/money")
|
@ApiOperation(value = "确认费用是否够下次上班",notes = "")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
|
})
|
public ResultUtil work( HttpServletRequest request){
|
try {
|
Integer uid = driverService.getUserIdFormRedis(request);
|
if (null == uid) {
|
return ResultUtil.tokenErr();
|
}
|
Driver driver = driverService.selectById(uid);
|
// List<TUseMoney> tUseMoney = useMoneyMapper.selectList(null);
|
Company company = companyService.selectById(driver.getCompanyId());
|
if (company.getDriverRestriction() > driver.getBalance()) {
|
pushUtil.expireWork(uid,2);
|
return new ResultUtil(-1, "您的余额不足,请及时充值!");
|
}
|
}catch (Exception e){
|
e.printStackTrace();
|
}
|
return ResultUtil.success();
|
|
}
|
|
|
|
|
}
|