/* * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: Chill 庄骞 (smallchill@163.com) */ package org.springblade.modules.useroption.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.bstek.ureport.expression.model.Op; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.AllArgsConstructor; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springblade.modules.option.entity.Option; import org.springblade.modules.option.service.IOptionService; import org.springblade.modules.useroption.entity.Useroption; import org.springblade.modules.useroption.service.IUseroptionService; import org.springblade.modules.useroption.vo.UseroptionVO; import org.springblade.modules.vote.entity.Vote; import org.springblade.modules.vote.service.IVoteService; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.HashMap; import java.util.Map; /** * 控制器 * 用户投票表 * * @author BladeX * @since 2022-01-24 */ @RestController @AllArgsConstructor @RequestMapping("useroption/useroption") @Api(value = "", tags = "接口") public class UseroptionController extends BladeController { private final IUseroptionService useroptionService; private final IVoteService voteService; private final IOptionService optionService; /** * 详情 */ @GetMapping("/detail") @ApiOperationSupport(order = 1) @ApiOperation(value = "详情", notes = "传入useroption") public R detail(Useroption useroption) { Useroption detail = useroptionService.getOne(Condition.getQueryWrapper(useroption)); return R.data(detail); } /** * 分页 */ @GetMapping("/list") @ApiOperationSupport(order = 2) @ApiOperation(value = "分页", notes = "传入useroption") public R> list(Useroption useroption, Query query) { IPage pages = useroptionService.page(Condition.getPage(query), Condition.getQueryWrapper(useroption)); return R.data(pages); } /** * 自定义分页 */ @GetMapping("/page") @ApiOperationSupport(order = 3) @ApiOperation(value = "分页", notes = "传入useroption") public R> page(UseroptionVO useroption, Query query) { IPage pages = useroptionService.selectUseroptionPage(Condition.getPage(query), useroption); return R.data(pages); } /** * 新增 */ @PostMapping("/save") @ApiOperationSupport(order = 4) @ApiOperation(value = "新增", notes = "传入useroption") public R save(@Valid @RequestBody Useroption useroption) { return R.status(useroptionService.save(useroption)); } /** * 修改 */ @PostMapping("/update") @ApiOperationSupport(order = 5) @ApiOperation(value = "修改", notes = "传入useroption") public R update(@Valid @RequestBody Useroption useroption) { return R.status(useroptionService.updateById(useroption)); } /** * 新增或修改 */ @PostMapping("/submit") @ApiOperationSupport(order = 6) @ApiOperation(value = "新增或修改", notes = "传入useroption") public R submit(@Valid @RequestBody Useroption useroption) { return R.status(useroptionService.saveOrUpdate(useroption)); } /** * 删除 */ @PostMapping("/remove") @ApiOperationSupport(order = 8) @ApiOperation(value = "删除", notes = "传入ids") public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { return R.status(useroptionService.removeByIds(Func.toLongList(ids))); } /** * 用户投票新增 * * @param useroption * @return */ @PostMapping("/sav") public R sav(@Valid @RequestBody Useroption useroption) { Integer voteid = useroption.getVoteid(); Vote vote = new Vote(); vote.setId(voteid); Vote one = voteService.getOne(Condition.getQueryWrapper(vote)); Integer npeople = one.getNpeople() + 1; one.setNpeople(npeople); voteService.updateById(one); //投票选择表调整选择次数 Integer num = useroptionService.selectInfo(voteid, useroption.getUseroption()); int i = num + 1; optionService.update(i, voteid, useroption.getUseroption()); return R.status(useroptionService.save(useroption)); } }