package com.gear.admin.controller.swx; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletResponse; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.gear.admin.vo.swx.IdentificationVo; import com.gear.admin.vo.swx.RechargeRecordVo; import com.gear.common.builder.WhereBuilder; import com.gear.common.constant.SwxConstons; import com.gear.common.vo.Result; import com.gear.swx.domain.*; import com.gear.swx.service.*; import io.jsonwebtoken.lang.Collections; import org.apache.logging.log4j.util.Strings; import org.springframework.beans.BeanUtils; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import com.gear.common.annotation.Log; import com.gear.common.core.controller.BaseController; import com.gear.common.enums.BusinessType; import com.gear.common.utils.poi.ExcelUtil; /** * 充值管理Controller * * @author czx * @date 2023-11-18 */ @RestController @RequestMapping("/swx/rechargeRecord") public class SwxRechargeRecordController extends BaseController { @Autowired private ISwxRechargeRecordService swxRechargeRecordService; @Autowired private ISwxUserService swxUserService; @Autowired private ISwxMoneyLogService swxMoneyLogService; @Autowired private ISwxUserLevelService swxUserLevelService; @Autowired private ISwxSettingsService swxSettingsService; @GetMapping("/getParamByKey/{key}") public Result getParamByKey(@PathVariable String key){ return Result.ok(swxSettingsService.getOne(new QueryWrapper().lambda().eq(SwxSettings::getParamKey,key))); } /** * 查询充值管理列表 */ @PreAuthorize("@ss.hasPermi('swx:rechargeRecord:list')") @GetMapping("/list") public Result> list(RechargeRecordVo swxRechargeRecord, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize){ QueryWrapper queryWrapper = new QueryWrapper<>(); if(!Strings.isEmpty(swxRechargeRecord.getPhone()) || !Strings.isEmpty(swxRechargeRecord.getUserName()) || !Strings.isEmpty(swxRechargeRecord.getLevel())){ QueryWrapper userQueryWrapper = new QueryWrapper<>(); if(!Strings.isEmpty(swxRechargeRecord.getUserName())){ userQueryWrapper.lambda().like(SwxUser::getUserName,swxRechargeRecord.getUserName()); } if(!Strings.isEmpty(swxRechargeRecord.getPhone())){ userQueryWrapper.lambda().like(SwxUser::getPhone,swxRechargeRecord.getPhone()); } if (!Strings.isEmpty(swxRechargeRecord.getLevel())){ userQueryWrapper.lambda().eq(SwxUser::getLevel,swxRechargeRecord.getLevel()); } List list = swxUserService.list(userQueryWrapper); List ids = new ArrayList<>(); if(!Collections.isEmpty(list)){ for (SwxUser item : list){ ids.add(item.getId()); } }else{ ids.add(""); } queryWrapper.lambda().in(SwxRechargeRecord::getUserId,ids); } if(swxRechargeRecord.getStatus() != null){ queryWrapper.lambda().eq(SwxRechargeRecord::getStatus,swxRechargeRecord.getStatus()); } queryWrapper.lambda().orderByDesc(SwxRechargeRecord::getCreateTime); Page page = new Page(pageNo, pageSize); IPage pageList = swxRechargeRecordService.page(page, queryWrapper); IPage result = new Page<>(); List records = new ArrayList<>(); for(SwxRechargeRecord item : pageList.getRecords()){ RechargeRecordVo vo = new RechargeRecordVo(); BeanUtils.copyProperties(item,vo); SwxUser swxUser = swxUserService.getById(item.getUserId()); if(swxUser != null){ vo.setUserName(swxUser.getUserName()); vo.setPhone(swxUser.getPhone()); } records.add(vo); } result.setRecords(records); result.setCurrent(pageList.getCurrent()); result.setPages(pageList.getPages()); result.setSize(pageList.getSize()); result.setTotal(pageList.getTotal()); return Result.OK(result); } /** * 导出充值管理列表 */ @PreAuthorize("@ss.hasPermi('swx:rechargeRecord:export')") @Log(title = "充值管理", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, SwxRechargeRecord swxRechargeRecord){ QueryWrapper queryWrapper = WhereBuilder.build(swxRechargeRecord); List list = swxRechargeRecordService.list(queryWrapper); ExcelUtil util = new ExcelUtil(SwxRechargeRecord.class); util.exportExcel(response, list, "充值管理数据"); } /** * 获取充值管理详细信息 */ @PreAuthorize("@ss.hasPermi('swx:rechargeRecord:query')") @GetMapping(value = "/{id}") public Result getInfo(@PathVariable("id") String id){ SwxRechargeRecord swxRechargeRecord = swxRechargeRecordService.getById(id); if(swxRechargeRecord==null) { return Result.error("未找到对应数据"); } return Result.OK(swxRechargeRecord); } /** * 修改充值管理 */ @PreAuthorize("@ss.hasPermi('swx:rechargeRecord:edit')") @Log(title = "充值管理", businessType = BusinessType.UPDATE) @PutMapping @Transactional public Result edit(@RequestBody SwxRechargeRecord swxRechargeRecord){ //判断修改状态 if(swxRechargeRecord == null || swxRechargeRecord.getStatus() <= 0){ return Result.error("编辑失败!"); } //充值成功 if (swxRechargeRecord.getStatus() == SwxConstons.NOMARL_STATUS_YES){ SwxRechargeRecord old = swxRechargeRecordService.getById(swxRechargeRecord.getId()); SwxUser swxUser = swxUserService.getById(old.getUserId()); if(swxUser != null){ SwxMoneyLog moneyLog = new SwxMoneyLog(); moneyLog.setInfo("通过"+old.getType()+"充值"); moneyLog.setStatus(SwxConstons.NOMARL_STATUS_YES); moneyLog.setType(SwxConstons.SWX_MONEY_LOG_TYPE_RECHARGE); moneyLog.setSymbol(SwxConstons.SWX_MONEY_TYPE_INCOME); moneyLog.setTitle("资金充值"); moneyLog.setOldAmount(swxUser.getAmount()); swxUser.setAmount(swxUser.getAmount().add(old.getAmount())); swxUser.setAllRecharge(swxUser.getAllRecharge().add(old.getAmount())); moneyLog.setNowAmount(swxUser.getAmount()); moneyLog.setUserId(swxUser.getId()); moneyLog.setBusiId(old.getId()); moneyLog.setMoney(old.getAmount()); swxMoneyLogService.save(moneyLog); //设置用户等级 //查询用户等级 QueryWrapper userLevelQueryWrapper = new QueryWrapper<>(); userLevelQueryWrapper.lambda().le(SwxUserLevel::getConditions1,swxUser.getAllRecharge()); userLevelQueryWrapper.lambda().orderByDesc(SwxUserLevel::getConditions1); List levels = swxUserLevelService.list(userLevelQueryWrapper); if (!CollectionUtils.isEmpty(levels)){ SwxUserLevel level = levels.get(0); swxUser.setLevel(level.getId()); } swxUserService.updateById(swxUser); } } swxRechargeRecordService.updateById(swxRechargeRecord); return Result.ok("编辑成功!"); } }