package com.stylefeng.guns.modular.api;
|
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
|
import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService;
|
import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
|
import com.stylefeng.guns.modular.system.model.UserRedPacketRecord;
|
import com.stylefeng.guns.modular.system.service.IUserInfoService;
|
import com.stylefeng.guns.modular.system.service.IUserRedPacketRecordService;
|
import com.stylefeng.guns.modular.system.util.DateUtil;
|
import com.stylefeng.guns.modular.system.util.ResultUtil;
|
import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
|
import com.stylefeng.guns.modular.system.warpper.MyRedEnvelope;
|
import com.stylefeng.guns.modular.system.warpper.TravelRecordListWarpper;
|
import com.stylefeng.guns.modular.system.warpper.TravelRecordWarpper;
|
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.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import javax.servlet.http.HttpServletRequest;
|
import java.math.BigDecimal;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.Queue;
|
import java.util.stream.Collectors;
|
|
/**
|
* 红包控制器
|
*/
|
@Api
|
@RestController
|
@RequestMapping("/api/redEnvelope")
|
public class RedEnvelopeController {
|
|
@Autowired
|
private IUserRedPacketRecordService userRedPacketRecordService;
|
|
@Autowired
|
private IUserInfoService userInfoService;
|
|
@Autowired
|
private IOrderTaxiService orderTaxiService;
|
|
@Autowired
|
private IOrderPrivateCarService orderPrivateCarService;
|
|
@Autowired
|
private IOrderCrossCityService orderCrossCityService;
|
|
@Autowired
|
private IOrderLogisticsService orderLogisticsService;
|
|
|
/**
|
* 获取红包列表
|
* @param pageNum
|
* @param size
|
* @param request
|
* @return
|
*/
|
@ResponseBody
|
@PostMapping("/queryMyRedEnvelope")
|
@ApiOperation(value = "获取红包列表【2.0】", tags = {"用户端-个人中心"}, notes = "")
|
@ApiImplicitParams({
|
@ApiImplicitParam(value = "页码(首页1)", name = "pageNum", required = true, dataType = "int"),
|
@ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
|
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
|
})
|
public ResultUtil<List<MyRedEnvelope>> queryMyRedEnvelope(Integer pageNum, Integer size, Integer language, HttpServletRequest request){
|
try {
|
Integer uid = userInfoService.getUserIdFormRedis(request);
|
if(null == uid){
|
return ResultUtil.tokenErr();
|
}
|
List<UserRedPacketRecord> userRedPacketRecords = userRedPacketRecordService.selectList(new EntityWrapper<UserRedPacketRecord>()
|
.eq("userId", uid).ne("state", 0));
|
List<Double> collect = userRedPacketRecords.stream().map(UserRedPacketRecord::getMoney).collect(Collectors.toList());
|
double sum = collect.stream().mapToDouble(Double::doubleValue).sum();
|
|
double sum1 = userRedPacketRecords.stream().filter(v -> v.getRemainingAmount().compareTo(0D) > 0)
|
.map(UserRedPacketRecord::getRemainingAmount).mapToDouble(Double::doubleValue).sum();
|
|
List<Map<String, Object>> list = userRedPacketRecordService.queryMyRedEnvelope(pageNum, size, uid);
|
List<MyRedEnvelope> baseWarppers = new ArrayList<>();
|
for(Map<String, Object> map : list){
|
MyRedEnvelope baseWarpper = new MyRedEnvelope();
|
baseWarpper.setId(null != map.get("id") ? Integer.valueOf(String.valueOf(map.get("id"))) : 0);
|
baseWarpper.setAmount(null != map.get("money") ? Double.valueOf(String.valueOf(map.get("money"))) : 0);
|
baseWarpper.setName(null != map.get("name") ? String.valueOf(map.get("name")) : (language == 1 ? "指定发放" : language == 2 ? "Designated distribution" : "Distribution désignée"));
|
baseWarpper.setContent(null != map.get("insertTime") ? DateUtil.conversionFormat(language, String.valueOf(map.get("insertTime"))) : "");
|
baseWarpper.setTotalAmount(sum);
|
baseWarpper.setRemainingAmount(sum1);
|
baseWarppers.add(baseWarpper);
|
}
|
return ResultUtil.success(baseWarppers);
|
}catch (Exception e){
|
e.printStackTrace();
|
return ResultUtil.runErr();
|
}
|
}
|
|
|
/**
|
* 获取红包使用记录
|
* @param pageNum
|
* @param size
|
* @param request
|
* @return
|
*/
|
@ResponseBody
|
@PostMapping("/queryRedEnvelope")
|
@ApiOperation(value = "获取红包使用记录【2.0】", tags = {"用户端-个人中心"}, notes = "")
|
@ApiImplicitParams({
|
@ApiImplicitParam(value = "页码(首页1)", name = "pageNum", required = true, dataType = "int"),
|
@ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
|
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
|
})
|
public ResultUtil<List<TravelRecordListWarpper>> queryRedEnvelope(Integer language, Integer pageNum, Integer size, HttpServletRequest request){
|
try {
|
Integer uid = userInfoService.getUserIdFormRedis(request);
|
if(null == uid){
|
return ResultUtil.tokenErr();
|
}
|
pageNum = (pageNum - 1) * size;
|
List<Map<String, Object>> list = orderPrivateCarService.queryRedEnvelope(language, uid);//专车
|
List<Map<String, Object>> list1 = orderLogisticsService.queryRedEnvelope(language, uid);
|
list.addAll(list1);
|
|
List<TravelRecordListWarpper> orderWarpper = TravelRecordListWarpper.getTravelRecordWarpper(list);
|
double sum = orderWarpper.stream().mapToDouble(TravelRecordListWarpper::getMoney).sum();
|
for (TravelRecordListWarpper travelRecordListWarpper : orderWarpper) {
|
travelRecordListWarpper.setTotal(sum);
|
}
|
|
//分页
|
if(orderWarpper.size() >= (pageNum + 1) * size){
|
orderWarpper = orderWarpper.subList(pageNum, pageNum + size);
|
}else if(pageNum < orderWarpper.size() && orderWarpper.size() < (pageNum + 1) * size){
|
orderWarpper = orderWarpper.subList(pageNum, orderWarpper.size());
|
}else{
|
orderWarpper = new ArrayList<>();
|
}
|
return ResultUtil.success(orderWarpper);
|
}catch (Exception e){
|
e.printStackTrace();
|
return ResultUtil.runErr();
|
}
|
}
|
|
}
|