WebFrontVxController.java 4.54 KB
package com.lhcredit.project.webbusiness.controller;

import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.lhcredit.common.utils.StringUtils;
import com.lhcredit.common.utils.oss.OssService;
import com.lhcredit.common.utils.security.ShiroUtils;
import com.lhcredit.framework.aspectj.lang.enums.OperatorType;
import com.lhcredit.framework.web.service.FastDFSClient;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.lhcredit.framework.aspectj.lang.annotation.Log;
import com.lhcredit.framework.aspectj.lang.enums.BusinessType;
import com.lhcredit.project.business.frontVx.domain.FrontVx;
import com.lhcredit.project.business.frontVx.service.IFrontVxService;
import com.lhcredit.framework.web.controller.BaseController;
import com.lhcredit.framework.web.domain.AjaxResult;
import org.springframework.web.multipart.MultipartFile;


/**
 * 微信用户注册信息对外接口
 *
 * @author lhcredit
 * @date 2025-09-28
 */
@RestController
@RequestMapping("/web/frontVx")
public class WebFrontVxController extends BaseController {
    @Autowired
    private IFrontVxService frontVxService;

    @Autowired
    private FastDFSClient fastDFSClient;

    /**
     * 查询微信用户注册列表接口
     */
    @ApiOperation("查询微信用户注册列表")
    @Log(title = "微信用户注册", businessType = BusinessType.LIST, operatorType = OperatorType.WEB)
    @GetMapping
    public AjaxResult list(FrontVx frontVx) {
        startPage();
        List<FrontVx> list = frontVxService.changeModel(frontVxService.selectFrontVxList(frontVx));
        return toAjax(list);
    }

    /**
     * 查询微信用户注册详情接口
     */
    @ApiOperation("查询微信用户注册详情")
    @ApiImplicitParam(name = "id", value = "主键", required = true, dataType = "int", paramType = "path")
    @Log(title = "微信用户注册", businessType = BusinessType.DETAIL, operatorType = OperatorType.WEB)
    @GetMapping("/{id}")
    public AjaxResult detail(@PathVariable Integer id) {
        FrontVx frontVx =frontVxService.changeModel(frontVxService.selectFrontVxById(id));
        if (StringUtils.isNull(frontVx)) {
            return AjaxResult.error("该信息不存在");
        }
        return toAjax(frontVx);
    }

    /**
     * 新增保存微信用户注册接口
     */
    @ApiOperation("新增微信用户注册")
    @ApiImplicitParam(name = "frontVx", value = "微信用户注册", dataType = "FrontVx")
    @Log(title = "微信用户注册", businessType = BusinessType.INSERT, operatorType = OperatorType.WEB)
    @PostMapping
    public AjaxResult addSave(@RequestBody FrontVx frontVx) {
        return toAjax(frontVxService.insertFrontVx(frontVx));
    }

    @ApiOperation("上传文件")
    @PostMapping("/uploadFile")
    public AjaxResult uploadFile (MultipartFile file) throws Exception
    {
        String filename = file.getOriginalFilename();
        String ex = OssService.getExtensionName(filename);
        String s = fastDFSClient.uploadFile(file);
        Map map=new HashMap<>();
        map.put("url",s);
        map.put("fileName",filename);
        map.put("originalFilename",file.getOriginalFilename());
        map.put("ex",ex);
        return AjaxResult.success(map);
    }


    /**
     * 修改保存微信用户注册接口
     */
    @ApiOperation("修改微信用户注册")
    @ApiImplicitParam(name = "frontVx", value = "微信用户注册", dataType = "FrontVx")
    @Log(title = "微信用户注册", businessType = BusinessType.UPDATE, operatorType = OperatorType.WEB)
    @PutMapping
    public AjaxResult update(FrontVx frontVx) {
        if (StringUtils.isNull(frontVx) || StringUtils.isNull(frontVx.getId())){
            return AjaxResult.error("主键id不能为空");
        }
        frontVx.setUpdateBy(ShiroUtils.getLoginName());
        frontVx.setUpdateTime(new Date());
        return toAjax(frontVxService.updateFrontVx(frontVx));
    }

    /**
     * 删除微信用户注册接口
     */
    @ApiOperation("删除微信用户注册")
    @ApiImplicitParam(name = "ids", value = "主键id,多条以英文逗号分隔", required = true, dataType = "String", paramType = "path")
    @Log(title = "微信用户注册", businessType = BusinessType.DELETE, operatorType = OperatorType.WEB)
    @DeleteMapping("/{ids}")
    public AjaxResult delete(@PathVariable String ids) {
        return toAjax(frontVxService.deleteFrontVxByIds(ids));
    }

}