| | |
| | | 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 com.yami.trading.common.exception.BusinessException; |
| | | import com.yami.trading.common.util.StringUtils; |
| | | import com.yami.trading.common.web.ResultObject; |
| | | import com.yami.trading.service.finance.service.FinanceService; |
| | | import org.apache.logging.log4j.LogManager; |
| | | import org.apache.logging.log4j.Logger; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.util.ObjectUtils; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.bind.annotation.CrossOrigin; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import javax.validation.Valid; |
| | | import java.util.Collections; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.text.ParseException; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.Optional; |
| | | import java.util.Map; |
| | | |
| | | |
| | | /** |
| | | * @program: trading-order-master |
| | | * @description: 理财 |
| | | * @create: 2025-01-22 17:13 |
| | | **/ |
| | | * 理财产品 |
| | | * |
| | | */ |
| | | @RestController |
| | | @RequestMapping("finance") |
| | | @Api(tags = "理财") |
| | | @Slf4j |
| | | @CrossOrigin |
| | | public class FinanceController { |
| | | |
| | | private Logger logger = LogManager.getLogger(FinanceController.class); |
| | | |
| | | @Autowired |
| | | FinanceService service; |
| | | protected FinanceService financeService; |
| | | |
| | | @PostMapping("/add") |
| | | @ApiOperation(value = "理财-添加") |
| | | public Result<?> login(@Valid @RequestBody FinanceVo vo) { |
| | | Finance finance = ConverterUtil.convert(vo, Finance.class); |
| | | service.save(finance); |
| | | return Result.ok("添加成功"); |
| | | private final String action = "/api/finance!"; |
| | | |
| | | /** |
| | | * 理财产品列表 |
| | | */ |
| | | @RequestMapping(action + "list.action") |
| | | public Object list() { |
| | | |
| | | ResultObject resultObject = new ResultObject(); |
| | | |
| | | try { |
| | | |
| | | List<Finance> data = this.financeService.findAllState_1(); |
| | | resultObject.setData(bulidData(data)); |
| | | resultObject.setCode("0"); |
| | | |
| | | } catch (BusinessException e) { |
| | | resultObject.setCode("1"); |
| | | resultObject.setMsg(e.getMessage()); |
| | | } catch (Throwable t) { |
| | | resultObject.setCode("1"); |
| | | resultObject.setMsg("程序错误"); |
| | | logger.error("error:", t); |
| | | } |
| | | |
| | | return resultObject; |
| | | } |
| | | |
| | | /** |
| | | * 修改理财 |
| | | * 理财产品详情 |
| | | */ |
| | | @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("该理财产品已被用户持有,无法修改"); |
| | | // } |
| | | @RequestMapping(action + "get.action") |
| | | public Object get(HttpServletRequest request) { |
| | | String id = request.getParameter("id"); |
| | | |
| | | // 如果没有用户持有,继续进行修改操作 |
| | | 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()); |
| | | ResultObject resultObject = new ResultObject(); |
| | | |
| | | service.save(finance); |
| | | return Result.ok("修改成功"); |
| | | }) |
| | | .orElseGet(() -> Result.failed("理财信息不存在")); |
| | | try { |
| | | |
| | | Finance data = this.financeService.findById(id); |
| | | if (!StringUtils.isNullOrEmpty(data.getImg())) { |
| | | String path = data.getImg(); |
| | | data.setImg(path); |
| | | } |
| | | |
| | | resultObject.setData(data); |
| | | resultObject.setCode("0"); |
| | | |
| | | /** |
| | | * 删除理财 |
| | | */ |
| | | @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("理财信息不存在"); |
| | | } |
| | | } catch (BusinessException e) { |
| | | resultObject.setCode("1"); |
| | | resultObject.setMsg(e.getMessage()); |
| | | } catch (Throwable t) { |
| | | resultObject.setCode("1"); |
| | | resultObject.setMsg("程序错误"); |
| | | logger.error("error:", t); |
| | | } |
| | | |
| | | /** |
| | | * 查询单个理财 |
| | | */ |
| | | @GetMapping("/find/{id}") |
| | | @ApiOperation(value = "理财-查询") |
| | | public Result<?> getFinance(@PathVariable Long id) { |
| | | return Optional.ofNullable(service.getById(id)) |
| | | .map(Result::ok) |
| | | .orElseGet(() -> Result.failed("理财信息不存在")); |
| | | return resultObject; |
| | | } |
| | | |
| | | /** |
| | | * 查询所有理财 |
| | | */ |
| | | @GetMapping("/list") |
| | | @ApiOperation(value = "理财-查询所有") |
| | | public Result<?> getAllFinances() { |
| | | List<Finance> finances = service.list(); |
| | | return Result.ok(finances.isEmpty() ? Collections.emptyList() : finances); |
| | | protected List<Map<String, Object>> bulidData(List<Finance> finances) throws ParseException { |
| | | |
| | | List<Map<String, Object>> result_finances = new ArrayList<Map<String, Object>>(); |
| | | |
| | | for (int i = 0; i < finances.size(); i++) { |
| | | |
| | | Map<String, Object> map = new HashMap<String, Object>(); |
| | | |
| | | Finance finance = finances.get(i); |
| | | |
| | | System.out.println(finance); |
| | | |
| | | String path = finance.getImg(); |
| | | map.put("img", path); |
| | | map.put("id", finance.getUuid()); |
| | | |
| | | map.put("name", finance.getName()); |
| | | map.put("name_en", finance.getNameEn()); |
| | | map.put("name_cn", finance.getNameCn()); |
| | | map.put("name_kn", finance.getNameKn()); |
| | | map.put("name_jn", finance.getNameJn()); |
| | | map.put("cycle", finance.getCycle()); |
| | | map.put("daily_rate", finance.getDailyRate() + " ~ " + finance.getDailyRateMax()); |
| | | map.put("daily_rate_max", finance.getDailyRateMax()); |
| | | map.put("today_rate", finance.getTodayRate()); |
| | | map.put("default_ratio", finance.getDefaultRatio()); |
| | | map.put("investment_min", finance.getInvestmentMin()); |
| | | map.put("investment_max", finance.getInvestmentMax()); |
| | | map.put("state", finance.getState()); |
| | | map.put("buyCurrency", finance.getBuyCurrency()); |
| | | map.put("outputCurrency", finance.getOutputCurrency()); |
| | | |
| | | result_finances.add(map); |
| | | } |
| | | |
| | | return result_finances; |
| | | } |
| | | |
| | | private Map<String, Object> bulidData(Finance finance) throws ParseException { |
| | | |
| | | Map<String, Object> map = new HashMap<String, Object>(); |
| | | |
| | | String path = finance.getImg(); |
| | | map.put("img", path); |
| | | map.put("id", finance.getUuid()); |
| | | |
| | | map.put("name", finance.getName()); |
| | | map.put("name_en", finance.getNameEn()); |
| | | map.put("name_cn", finance.getNameCn()); |
| | | map.put("name_kn", finance.getNameKn()); |
| | | map.put("name_jn", finance.getNameJn()); |
| | | map.put("cycle", finance.getCycle()); |
| | | map.put("daily_rate", finance.getDailyRate()); |
| | | map.put("daily_rate_max", finance.getDailyRateMax()); |
| | | map.put("today_rate", finance.getTodayRate()); |
| | | map.put("default_ratio", finance.getDefaultRatio()); |
| | | map.put("investment_min", finance.getInvestmentMin()); |
| | | map.put("investment_max", finance.getInvestmentMax()); |
| | | map.put("state", finance.getState()); |
| | | map.put("buyCurrency", finance.getBuyCurrency()); |
| | | map.put("outputCurrency", finance.getOutputCurrency()); |
| | | |
| | | return map; |
| | | } |
| | | |
| | | } |