package com.yami.trading.admin.controller.finance; import com.yami.trading.admin.model.LoginModel; import com.yami.trading.bean.finance.Finance; import com.yami.trading.bean.vo.FinanceVo; import com.yami.trading.common.domain.Result; import com.yami.trading.common.exception.YamiShopBindException; import com.yami.trading.common.util.ConvertUtil; import com.yami.trading.common.util.GoogleAuthenticator; import com.yami.trading.security.common.bo.UserInfoInTokenBO; import com.yami.trading.security.common.enums.SysTypeEnum; import com.yami.trading.security.common.vo.TokenInfoVO; import com.yami.trading.service.finance.FinanceService; import com.yami.trading.sys.model.SysUser; import com.yami.trading.util.ConverterUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.Optional; /** * @program: trading-order-master * @description: 理财 * @create: 2025-01-22 17:13 **/ @RestController @RequestMapping("finance") @Api(tags = "理财") @Slf4j public class FinanceController { @Autowired FinanceService service; @PostMapping("/add") @ApiOperation(value = "理财-添加") public Result login(@Valid @RequestBody FinanceVo vo) { Finance finance = ConverterUtil.convert(vo, Finance.class); service.save(finance); return Result.ok("添加成功"); } /** * 修改理财 */ @PutMapping("/update/{id}") @ApiOperation(value = "理财-修改") public Result updateFinance(@PathVariable Long id, @Valid @RequestBody FinanceVo vo) { // 查询该理财产品是否被用户持有 // boolean isHeldByUsers = userFinanceService.isFinanceHeldByUsers(id); // if (isHeldByUsers) { // return Result.failed("该理财产品已被用户持有,无法修改"); // } // 如果没有用户持有,继续进行修改操作 return Optional.ofNullable(service.getById(id)) .map(finance -> { finance.setName(vo.getName()); finance.setName_en(vo.getName_en()); finance.setName_cn(vo.getName_cn()); finance.setName_kn(vo.getName_kn()); finance.setName_jn(vo.getName_jn()); finance.setImg(vo.getImg()); finance.setCycle(vo.getCycle()); finance.setDaily_rate(vo.getDaily_rate()); finance.setDaily_rate_max(vo.getDaily_rate_max()); finance.setToday_rate(vo.getToday_rate()); finance.setDefault_ratio(vo.getDefault_ratio()); finance.setInvestment_min(vo.getInvestment_min()); finance.setInvestment_max(vo.getInvestment_max()); finance.setState(vo.getState()); finance.setBuyCurrency(vo.getBuyCurrency()); finance.setOutputCurrency(vo.getOutputCurrency()); service.save(finance); return Result.ok("修改成功"); }) .orElseGet(() -> Result.failed("理财信息不存在")); } /** * 删除理财 */ @DeleteMapping("/delete/{id}") @ApiOperation(value = "理财-删除") public Result deleteFinance(@PathVariable Long id) { boolean removed = service.removeById(id); if (removed) { // 查询该理财产品是否被用户持有 // boolean isHeldByUsers = userFinanceService.isFinanceHeldByUsers(id); // if (isHeldByUsers) { // return Result.failed("该理财产品已被用户持有,无法删除"); // } return Result.ok("删除成功"); } else { return Result.failed("理财信息不存在"); } } /** * 查询单个理财 */ @GetMapping("/find/{id}") @ApiOperation(value = "理财-查询") public Result getFinance(@PathVariable Long id) { return Optional.ofNullable(service.getById(id)) .map(Result::ok) .orElseGet(() -> Result.failed("理财信息不存在")); } /** * 查询所有理财 */ @GetMapping("/list") @ApiOperation(value = "理财-查询所有") public Result getAllFinances() { List finances = service.list(); return Result.ok(finances.isEmpty() ? Collections.emptyList() : finances); } }