package com.dsh.activity.controller;
|
|
import cn.hutool.core.collection.CollUtil;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.dsh.activity.entity.THuiminAgreement;
|
import com.dsh.activity.entity.THuiminAgreementSetting;
|
import com.dsh.activity.model.HuiminAgreementQuery;
|
import com.dsh.activity.service.HuiminAgreementService;
|
import com.dsh.activity.service.HuiminAgreementSettingService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import java.util.List;
|
import java.util.Objects;
|
|
/**
|
* @author zhibing.pu
|
* @date 2023/6/24 11:27
|
*/
|
@RestController
|
@RequestMapping("")
|
public class HuiminAgreementController {
|
|
@Autowired
|
private HuiminAgreementService huiminAgreementService;
|
|
@Autowired
|
private HuiminAgreementSettingService huiminAgreementSettingService;
|
|
/**
|
* 根据当前用户类型查询惠民卡协议
|
* @param objectType
|
* @param operatorId
|
* @return
|
*/
|
@ResponseBody
|
@PostMapping("/base/tHuiminAgreement/selectByObjectType")
|
public THuiminAgreement selectByObjectType(@RequestBody HuiminAgreementQuery query) {
|
THuiminAgreement huiminAgreement = null;
|
if (query.getObjectType().equals(1)) {
|
//平台
|
huiminAgreement = huiminAgreementService.getOne(new LambdaQueryWrapper<THuiminAgreement>()
|
.isNull(THuiminAgreement::getOperatorId));
|
|
}else if (query.getObjectType().equals(2)) {
|
//运营商
|
huiminAgreement = huiminAgreementService.getOne(new LambdaQueryWrapper<THuiminAgreement>()
|
.eq(THuiminAgreement::getOperatorId,query.getOperatorId()));
|
}
|
if (Objects.nonNull(huiminAgreement)) {
|
//查询协议配置
|
List<THuiminAgreementSetting> tHuiminAgreementSettingList = huiminAgreementSettingService.list(new LambdaQueryWrapper<THuiminAgreementSetting>()
|
.eq(THuiminAgreementSetting::getAgreementId, huiminAgreement.getId()));
|
huiminAgreement.setTHuiminAgreementSettingList(tHuiminAgreementSettingList);
|
}
|
return huiminAgreement;
|
}
|
/**
|
* 保存惠民卡协议
|
* @param tHuiminAgreement
|
*/
|
@PostMapping("/base/tHuiminAgreement/save")
|
@Transactional(rollbackFor = Exception.class)
|
public void insert(@RequestBody THuiminAgreement tHuiminAgreement){
|
Integer operatorId = tHuiminAgreement.getOperatorId();
|
if (tHuiminAgreement.getObjectType().equals(1)) {
|
tHuiminAgreement.setOperatorId(null);
|
}
|
huiminAgreementService.saveOrUpdate(tHuiminAgreement);
|
List<THuiminAgreementSetting> tHuiminAgreementSettingList = tHuiminAgreement.getTHuiminAgreementSettingList();
|
if (CollUtil.isNotEmpty(tHuiminAgreementSettingList)) {
|
if (tHuiminAgreement.getObjectType().equals(2) || tHuiminAgreement.getObjectType().equals(1) && Objects.isNull(operatorId)) {
|
//删除之前的协议配置
|
huiminAgreementSettingService.remove(new LambdaQueryWrapper<THuiminAgreementSetting>().eq(THuiminAgreementSetting::getAgreementId, tHuiminAgreement.getId()));
|
//保存协议配置
|
tHuiminAgreementSettingList.forEach(t -> {
|
t.setAgreementId(tHuiminAgreement.getId());
|
});
|
huiminAgreementSettingService.saveBatch(tHuiminAgreementSettingList);
|
} else {
|
THuiminAgreement agreement = huiminAgreementService.lambdaQuery()
|
.eq(THuiminAgreement::getOperatorId, operatorId)
|
.last("LIMIT 1").one();
|
if (Objects.isNull(agreement)) {
|
agreement = new THuiminAgreement();
|
agreement.setOperatorId(operatorId);
|
huiminAgreementService.save(agreement);
|
}
|
//删除之前的协议配置
|
huiminAgreementSettingService.remove(new LambdaQueryWrapper<THuiminAgreementSetting>()
|
.eq(THuiminAgreementSetting::getAgreementId, agreement.getId()));
|
//保存协议配置
|
THuiminAgreement finalAgreement = agreement;
|
tHuiminAgreementSettingList.forEach(t -> {
|
t.setAgreementId(finalAgreement.getId());
|
});
|
huiminAgreementSettingService.saveBatch(tHuiminAgreementSettingList);
|
}
|
|
}
|
}
|
}
|