package com.ruoyi.other.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.account.api.dto.EnterpriseQuery;
import com.ruoyi.account.api.feignClient.AppUserClient;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.domain.BasePojo;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.log.enums.OperatorType;
import com.ruoyi.common.security.annotation.Logical;
import com.ruoyi.common.security.annotation.RequiresPermissions;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.other.api.domain.TEnterpriseUserApplication;
import com.ruoyi.other.query.PassDto;
import com.ruoyi.other.service.TEnterpriseUserApplicationService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
*
* 前端控制器
*
*
* @author 无关风月
* @since 2024-08-06
*/
@RestController
@RequestMapping("/t-enterprise-user-application")
public class TEnterpriseUserApplicationController {
private final TEnterpriseUserApplicationService enterpriseUserApplicationService;
private final TokenService tokenService;
@Resource
private AppUserClient appUserClient;
@Autowired
public TEnterpriseUserApplicationController(TEnterpriseUserApplicationService enterpriseUserApplicationService, TokenService tokenService) {
this.enterpriseUserApplicationService = enterpriseUserApplicationService;
this.tokenService = tokenService;
}
/**
* 添加计费策略管理
*/
@Log(title = "【我的】添加集团用户申请", businessType = BusinessType.INSERT,operatorType = OperatorType.MOBILE)
@ApiOperation(tags = {"小程序-集团用户"},value = "添加集团用户申请")
@PostMapping(value = "/add")
public AjaxResult add(@Validated @RequestBody TEnterpriseUserApplication dto) {
// 用户id
dto.setAppUserId(tokenService.getLoginUserApplet().getUserId());
return AjaxResult.ok(enterpriseUserApplicationService.save(dto));
}
@RequiresPermissions(value = {"/groupUserApplication/add"}, logical = Logical.OR)
@Log(title = "【集团用户申请】添加集团用户申请", businessType = BusinessType.INSERT)
@ApiOperation(tags = {"后台-申请表单-集团用户"},value = "后台添加集团用户申请")
@PostMapping(value = "/back/add")
public AjaxResult backAdd(@Validated @RequestBody TEnterpriseUserApplication dto) {
// 用户id
return AjaxResult.ok(enterpriseUserApplicationService.save(dto));
}
@RequiresPermissions(value = {"/groupUserApplication"}, logical = Logical.OR)
@ApiOperation(tags = {"后台-申请表单-集团用户"},value = "集团用户列表")
@PostMapping(value = "/page")
public R> page(@RequestBody EnterpriseQuery enterpriseQuery) {
// 用户id
// if (enterpriseQuery.getPhone()!=null) {
// List userIds = appUserClient.getUserIdsByPhone(enterpriseQuery.getPhone()).getData();
// if (userIds.isEmpty()){
// return R.ok();
// }
// Page page = enterpriseUserApplicationService.lambdaQuery().in(TEnterpriseUserApplication::getAppUserId, userIds).page(Page.of(enterpriseQuery.getPageCurr(), enterpriseQuery.getPageSize()));
// return R.ok(page);
// }else {
Page page = enterpriseUserApplicationService.lambdaQuery().eq(enterpriseQuery.getPhone()!=null&&enterpriseQuery.getPhone()!="",TEnterpriseUserApplication::getPhone,enterpriseQuery.getPhone()).orderByDesc(BasePojo::getCreateTime).page(Page.of(enterpriseQuery.getPageCurr(), enterpriseQuery.getPageSize()));
return R.ok(page);
// }
}
@RequiresPermissions(value = {"/groupUserApplication/export"}, logical = Logical.OR)
@ApiOperation(tags = {"后台-申请表单-集团用户"},value = "导出")
@PutMapping(value = "/export")
@Log(title = "【申请建桩】导出建桩申请列表", businessType = BusinessType.EXPORT)
public R> export() {
List list = enterpriseUserApplicationService.lambdaQuery().list();
return R.ok(list);
// Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TEnterpriseExport.class, orderInvoiceExports);
// HttpServletResponse response = WebUtils.response();
// response.setCharacterEncoding("utf-8");
// ServletOutputStream outputStream = null;
// try {
// String fileName = URLEncoder.encode("公司导出.xls", "utf-8");
// response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
// response.setContentType("application/vnd.ms-excel;charset=UTF-8");
// response.setHeader("Pragma", "no-cache");
// response.setHeader("Cache-Control", "no-cache");
// outputStream = response.getOutputStream();
// workbook.write(outputStream);
// } catch (IOException e) {
// e.printStackTrace();
// } finally {
// try {
// workbook.close();
// outputStream.close();
// } catch (IOException e) {
// e.printStackTrace();
// }
// }
}
@RequiresPermissions(value = {"/groupUserApplication/remark"}, logical = Logical.OR)
@Log(title = "【集团用户申请】填写备注", businessType = BusinessType.INSERT)
@ApiOperation(tags = {"后台-申请表单-集团用户"},value = "备注")
@PostMapping(value = "/remark")
public AjaxResult pass(@RequestBody PassDto passDto) {
// 用户id
TEnterpriseUserApplication byId = enterpriseUserApplicationService.getById(passDto.getId());
byId.setRemark(passDto.getRemark());
enterpriseUserApplicationService.updateById(byId);
return AjaxResult.success();
}
@RequiresPermissions(value = {"/groupUserApplication/del"}, logical = Logical.OR)
@Log(title = "【集团用户申请】删除申请数据", businessType = BusinessType.DELETE)
@ApiOperation(tags = {"后台-申请表单-集团用户"},value = "删除")
@DeleteMapping(value = "/delete")
public AjaxResult delete(String ids) {
String[] split = ids.split(",");
for (String s : split) {
enterpriseUserApplicationService.removeById(s);
}
return AjaxResult.success();
}
}