huliguo
2025-07-03 e3a2245265516fef78b4737d6fffc939e7c5e0af
pt-admin/src/main/java/com/ruoyi/web/controller/errand/AgreementController.java
@@ -4,27 +4,36 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.errand.domain.Agreement;
import com.ruoyi.errand.mapper.AgreementMapper;
import com.ruoyi.errand.object.dto.app.AgreementDTO;
import com.ruoyi.errand.object.dto.sys.AgreementContentDTO;
import com.ruoyi.errand.service.AgreementService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cglib.core.Local;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@RestController
@RequestMapping(value = "/app/agreement")
@Api(value = "协议", tags = "协议操作控制器")
@Slf4j
public class AgreementController {
    @Autowired
    private AgreementService agreementService;
    @Autowired
    private AgreementMapper agreementMapper;
    /**
     * 协议 类型(1=用户协议,2=隐私协议,3=下单须知,4=注销协议,5=首页介绍,6=快递代拿下单说明,7=商品代买下单说明)
     * 协议 类型(1=用户协议,2=隐私协议,3=下单须知,4=注销协议,5=首页介绍,6=快递代拿下单说明,7=商品代买下单说明,8=会员协议)
     */
    @GetMapping("/getAgreementByType")
    @ApiOperation(value = "根据类型获取不同协议",tags = "app用户端-协议")
@@ -36,16 +45,83 @@
    @PreAuthorize("@ss.hasPermi('system:agreement:list')")
    @ApiOperation(value = "协议管理-添加", tags = {"管理后台-系统管理"})
    public R<Void> addAgreement(@RequestBody AgreementDTO agreementDTO){
        //先删除启动页的数据
        Agreement one = agreementService.getOne(new LambdaQueryWrapper<Agreement>().eq(Agreement::getType, agreementDTO.getType()));
        if (one!=null){
            agreementService.removeById(one);
        }
        Agreement agreement = new Agreement();
        BeanUtils.copyProperties(agreementDTO,agreement);
        agreementService.save(agreement);
        one.setContent(agreementDTO.getContent());
        agreementService.updateById(one);
        return R.ok();
    }
    @PostMapping("/addAgreement/content")
    @PreAuthorize("@ss.hasPermi('system:agreement:list')")
    @ApiOperation(value = "协议管理-内容管理", tags = {"管理后台-系统管理"})
    public R<Void> addAgreementContent(@RequestBody AgreementContentDTO dto){
        //修改
        List<Agreement> agreementList = agreementMapper.selectList(new LambdaQueryWrapper<Agreement>().in(Agreement::getType, Arrays.asList(5, 6, 7)));
        ArrayList<Integer> types = new ArrayList<>();
        types.add(5);
        types.add(6);
        types.add(7);
        if (agreementList!=null&& !agreementList.isEmpty()){
            agreementList.forEach(agreement -> {
                if (agreement.getType()==5){
                    agreement.setContent(dto.getContent());
                    types.remove(agreement.getType());
                    this.agreementMapper.updateById(agreement);
                }
                if (agreement.getType()==6){
                    agreement.setContent(dto.getTakeContent());
                    types.remove(agreement.getType());
                    this.agreementMapper.updateById(agreement);
                }
                if (agreement.getType()==7){
                    agreement.setContent(dto.getBuyContent());
                    types.remove(agreement.getType());
                    this.agreementMapper.updateById(agreement);
                }
            });
        }
       if (!types.isEmpty()){
           types.forEach(type -> {
               if (type==5){
                   Agreement agreement = new Agreement();
                   agreement.setContent(dto.getContent());
                   agreement.setType(type);
                   agreement.setCreateTime(LocalDateTime.now());
                   this.agreementMapper.insert(agreement);
               }
               if (type==6){
                   Agreement agreement = new Agreement();
                   agreement.setContent(dto.getTakeContent());
                   agreement.setType(type);
                   agreement.setCreateTime(LocalDateTime.now());
                   this.agreementMapper.insert(agreement);
               }
               if (type==7){
                   Agreement agreement = new Agreement();
                   agreement.setContent(dto.getBuyContent());
                   agreement.setType(type);
                   agreement.setCreateTime(LocalDateTime.now());
                   this.agreementMapper.insert(agreement);
               }
           });
       }
       return R.ok();
    }
    @GetMapping("/getAgreement/content")
    @PreAuthorize("@ss.hasPermi('system:agreement:list')")
    @ApiOperation(value = "协议管理-内容管理-查看详情", tags = {"管理后台-系统管理"})
    public R<AgreementContentDTO> getAgreementContent(){
        AgreementContentDTO vo = new AgreementContentDTO();
        List<Agreement> agreementList = agreementMapper.selectList(new LambdaQueryWrapper<Agreement>().in(Agreement::getType, Arrays.asList(5, 6, 7)));
        if (agreementList!=null&& !agreementList.isEmpty()){
            agreementList.forEach(agreement -> {
                if (agreement.getType()==5) vo.setContent(agreement.getContent());
                if (agreement.getType()==6) vo.setTakeContent(agreement.getContent());
                if (agreement.getType()==7) vo.setBuyContent(agreement.getContent());
            });
        }
        return R.ok(vo);
    }
}