package com.lunhan.water.host.controller.api;
|
|
import com.lunhan.water.common.ExecutedResult;
|
import com.lunhan.water.common.PagerResult;
|
import com.lunhan.water.common.jwt.LoginUserDTO;
|
import com.lunhan.water.common.util.ParameterUtil;
|
import com.lunhan.water.common.validator.ParameterValidateResult;
|
import com.lunhan.water.common.validator.ParameterValidator;
|
import com.lunhan.water.entity.enums.EPayType;
|
import com.lunhan.water.entity.request.paymentrecords.ReqBuyWater;
|
import com.lunhan.water.entity.request.rechargerecords.Recharge;
|
import com.lunhan.water.entity.request.userlogin.ReqModifyUserLogin;
|
import com.lunhan.water.entity.search.SearchPaymentRecords;
|
import com.lunhan.water.entity.search.SearchRechargeRecords;
|
import com.lunhan.water.entity.search.SearchWaterFacility;
|
import com.lunhan.water.host.BasicController;
|
import com.lunhan.water.repository.po.UserLoginPO;
|
import com.lunhan.water.repository.vo.PaymentRecordsVO;
|
import com.lunhan.water.repository.vo.RechargeRecordsVO;
|
import com.lunhan.water.repository.vo.UserLoginVO;
|
import com.lunhan.water.repository.vo.WaterFacilityVO;
|
import com.lunhan.water.service.PaymentRecordsService;
|
import com.lunhan.water.service.RechargeRecordsService;
|
import com.lunhan.water.service.UserLoginService;
|
import com.lunhan.water.service.WaterFacilityService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.math.BigDecimal;
|
import java.util.Objects;
|
|
@RestController
|
@RequestMapping(value = "api/user")
|
public class UserController extends BasicController {
|
@Autowired
|
private PaymentRecordsService paymentRecordsService;
|
@Autowired
|
private RechargeRecordsService rechargeRecordsService;
|
@Autowired
|
private UserLoginService userLoginService;
|
@Autowired
|
private WaterFacilityService waterFacilityService;
|
/**
|
* 查询用户信息
|
* @author lin.liu
|
*/
|
@GetMapping(value = "getUser")
|
public ExecutedResult<UserLoginVO> getUser() {
|
return userLoginService.getUser(this.getTokenUser());
|
}
|
/**
|
* 编辑用户头像信息
|
* @author lin.liu
|
*/
|
@PostMapping(value = "editUser")
|
public ExecutedResult<String> editUser(@RequestBody ReqModifyUserLogin request ) {
|
return userLoginService.modify(request);
|
}
|
/**
|
* 用户取水
|
* @author lin.liu
|
*/
|
@PostMapping(value = "userWaterInTaking")
|
public ExecutedResult<String> userWaterInTaking(@RequestBody ReqBuyWater request) {
|
return paymentRecordsService.userWaterInTaking(this.getTokenUser(),request);
|
}
|
/**
|
* 查询取水设备列表
|
* @author lin.liu
|
*/
|
@PostMapping(value = "searchFacility")
|
public ExecutedResult<PagerResult<WaterFacilityVO>> searchFacility(@RequestBody SearchWaterFacility request) {
|
//#region 参数验证
|
ParameterValidator validator = new ParameterValidator()
|
// 必须大于0
|
.addGreater(ParameterUtil.named("纬度"), request.getLatitude(), 0L)
|
.addGreater(ParameterUtil.named("经度"), request.getLongitude(), 0L)
|
;
|
ParameterValidateResult result = validator.validate();
|
if (result.getIsFiled()) {
|
return failed(result.getErrorMsg());
|
}
|
return waterFacilityService.search(request);
|
}
|
|
/**
|
* 查询[消费记录]
|
* @author lin.liu
|
*/
|
@PostMapping(value = "searchPaymentRecords")
|
public ExecutedResult<PagerResult<PaymentRecordsVO>> searchPaymentRecords(@RequestBody SearchPaymentRecords request) {
|
//#region 参数验证
|
LoginUserDTO tokenUser = this.getTokenUser();
|
UserLoginPO user = userLoginService.get4Openid(tokenUser.getUserId());
|
if(Objects.isNull(user)){
|
return ExecutedResult.failed("用户信息不存在!");
|
}
|
request.setUserId(user.getId());
|
return paymentRecordsService.search(request);
|
}
|
/**
|
* 查询[充值记录]
|
* @author lin.liu
|
*/
|
@PostMapping(value = "searchRechargeRecords")
|
public ExecutedResult<PagerResult<RechargeRecordsVO>> searchRechargeRecords(@RequestBody SearchRechargeRecords request) {
|
LoginUserDTO tokenUser = this.getTokenUser();
|
UserLoginPO user = userLoginService.get4Openid(tokenUser.getUserId());
|
if(Objects.isNull(user)){
|
return ExecutedResult.failed("用户信息不存在!");
|
}
|
request.setUserId(user.getId());
|
return rechargeRecordsService.search(request);
|
}
|
/**
|
* 用户充值
|
*
|
* @author li。ling。yu
|
* @date 2023/08/04
|
*/
|
@PostMapping(value = "fees")
|
public ExecutedResult<String> pay(@RequestBody Recharge request) {
|
//#region 参数验证
|
ParameterValidator validator = new ParameterValidator()
|
// 必须大于0
|
.addGreater(ParameterUtil.named("充值金额"), request.getRechargeAmount(), BigDecimal.ZERO)
|
;
|
LoginUserDTO loginUser = super.getTokenUser();
|
ParameterValidateResult result = validator.validate();
|
if (result.getIsFiled()) {
|
return failed(result.getErrorMsg());
|
}
|
//#endregion
|
return this.rechargeRecordsService.recharge(request,loginUser);
|
}
|
}
|