| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- package com.qdport.service.impl;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.qdport.entity.PolicyFile;
- import com.qdport.enums.QDPortEnum;
- import com.qdport.query.QueryWrapperBuilder;
- import com.qdport.service.PolicyFileService;
- import com.qdport.service.PolicyFlowNoService;
- import com.qdport.util.StringUtil;
- import com.qdport.vo.PolicyFileVO;
- import com.qdport.vo.PolicyShareVO;
- import lombok.AllArgsConstructor;
- import com.qdport.entity.PolicyStrive;
- import com.qdport.query.PolicyStriveQuery;
- import com.qdport.vo.PolicyStriveVO;
- import com.qdport.mapper.PolicyStriveMapper;
- import com.qdport.service.PolicyStriveService;
- import com.qdport.wrapper.PolicyStriveWrapper;
- import com.qdport.core.tool.utils.Func;
- import com.qdport.core.tool.utils.BeanUtil;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import javax.annotation.Resource;
- import java.math.BigDecimal;
- import java.util.Date;
- import java.util.List;
- /**
- * 政策争取
- *
- * @author yuheng
- * @since 1.0.0 2024-10-14
- */
- @Service
- public class PolicyStriveServiceImpl extends ServiceImpl<PolicyStriveMapper, PolicyStrive> implements PolicyStriveService {
- @Resource
- private PolicyFlowNoService policyFlowNoService;
- @Resource
- private PolicyFileService policyFileService;
- private final static BigDecimal decimal_50w = new BigDecimal(500000);
- private final static BigDecimal decimal_200w = new BigDecimal(2000000);
- private final static BigDecimal decimal_500w = new BigDecimal(5000000);
- private final static BigDecimal decimal_1000w = new BigDecimal(10000000);
- private final static BigDecimal decimal_500 = new BigDecimal(500);
- private final static BigDecimal decimal_1000 = new BigDecimal(1000);
- private final static BigDecimal decimal_1500 = new BigDecimal(1500);
- private final static BigDecimal decimal_2000 = new BigDecimal(2000);
- private final static BigDecimal decimal_3000 = new BigDecimal(3000);
- private final static BigDecimal decimal_4000 = new BigDecimal(4000);
- private final static BigDecimal decimal_5000 = new BigDecimal(5000);
- private final static BigDecimal decimal_6000 = new BigDecimal(6000);
- private final static BigDecimal decimal_8000 = new BigDecimal(8000);
- private final static BigDecimal decimal_10000 = new BigDecimal(10000);
- private final static BigDecimal decimal_12000 = new BigDecimal(12000);
- private final static BigDecimal decimal_15000 = new BigDecimal(15000);
- @Override
- public IPage<PolicyStriveVO> page(PolicyStriveQuery query) {
- IPage<PolicyStrive> page = new Page<>(query.getPage(), query.getSize());
- page = baseMapper.selectPage(page, getWrapper(query));
- return PolicyStriveWrapper.build().pageVO(page);
- }
- private QueryWrapper<PolicyStrive> getWrapper(PolicyStriveQuery query) {
- QueryWrapper<PolicyStrive> wrapper = QueryWrapperBuilder.buildQueryWrapper(query, PolicyStrive.class);
- wrapper.orderByDesc("CREATE_TIME");
- return wrapper;
- }
- @Override
- public void save(PolicyStriveVO vo) {
- String flowNo = policyFlowNoService.getFlowNo(QDPortEnum.FLOWNO_TYPE_STRIVE.getValue());
- vo.setCreateTime(new Date());
- vo.setUpdateTime(new Date());
- vo.setBusinessNo(flowNo);
- PolicyStrive entity = BeanUtil.copy(vo, PolicyStrive.class);
- baseMapper.insert(entity);
- vo.setId(entity.getId());
- QueryWrapper<PolicyFile> fileWrapper = new QueryWrapper<>();
- fileWrapper.eq("REF_ID", entity.getId());
- fileWrapper.eq("REF_TYPE", QDPortEnum.POLICY_FILE_REFTYPE_POLICY_STRIVE.getValue());
- policyFileService.remove(fileWrapper);
- List<PolicyFileVO> fileList = vo.getFileList();
- for (PolicyFileVO model : fileList) {
- model.setCreateTime(new Date());
- model.setRefId(entity.getId());
- model.setRefType(QDPortEnum.POLICY_FILE_REFTYPE_POLICY_STRIVE.getValue());
- policyFileService.save(model);
- }
- }
- @Override
- public void update(PolicyStriveVO vo) {
- vo.setUpdateTime(new Date());
- PolicyStrive entity = BeanUtil.copy(vo, PolicyStrive.class);
- updateById(entity);
- QueryWrapper<PolicyFile> fileWrapper = new QueryWrapper<>();
- fileWrapper.eq("REF_ID", entity.getId());
- fileWrapper.eq("REF_TYPE", QDPortEnum.POLICY_FILE_REFTYPE_POLICY_STRIVE.getValue());
- policyFileService.remove(fileWrapper);
- List<PolicyFileVO> fileList = vo.getFileList();
- for (PolicyFileVO model : fileList) {
- model.setCreateTime(new Date());
- model.setRefId(entity.getId());
- model.setRefType(QDPortEnum.POLICY_FILE_REFTYPE_POLICY_STRIVE.getValue());
- policyFileService.save(model);
- }
- }
- @Override
- public void updateById(PolicyStriveVO vo) {
- vo.setUpdateTime(new Date());
- updateRewardData(vo);
- PolicyStrive entity = BeanUtil.copy(vo, PolicyStrive.class);
- updateById(entity);
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void delete(List<String> idList) {
- removeByIds(idList);
- }
- private void updateRewardData(PolicyStriveVO vo) {
- Integer rewardType = vo.getRewardType();
- Integer isLand = vo.getIsLand();
- BigDecimal landAmount = vo.getLandAmount();
- if (StringUtil.isEmpty(rewardType) || isLand == 0
- || StringUtil.isEmpty(landAmount)) {
- return;
- }
- if (rewardType == 1) {
- if (landAmount.compareTo(decimal_50w) <= 0) {
- vo.setRewardRadix(decimal_500);
- } else if (landAmount.compareTo(decimal_200w) <= 0) {
- vo.setRewardRadix(decimal_1000);
- } else if (landAmount.compareTo(decimal_500w) <= 0) {
- vo.setRewardRadix(decimal_2000);
- } else if (landAmount.compareTo(decimal_1000w) <= 0) {
- vo.setRewardRadix(decimal_4000);
- } else {
- vo.setRewardRadix(decimal_5000);
- }
- } else if (rewardType == 2) {
- if (landAmount.compareTo(decimal_50w) <= 0) {
- vo.setRewardRadix(decimal_1000);
- } else if (landAmount.compareTo(decimal_200w) <= 0) {
- vo.setRewardRadix(decimal_2000);
- } else if (landAmount.compareTo(decimal_500w) <= 0) {
- vo.setRewardRadix(decimal_4000);
- } else if (landAmount.compareTo(decimal_1000w) <= 0) {
- vo.setRewardRadix(decimal_8000);
- } else {
- vo.setRewardRadix(decimal_10000);
- }
- } else if (rewardType == 3 || rewardType == 4) {
- if (landAmount.compareTo(decimal_50w) <= 0) {
- vo.setRewardRadix(decimal_1500);
- } else if (landAmount.compareTo(decimal_200w) <= 0) {
- vo.setRewardRadix(decimal_3000);
- } else if (landAmount.compareTo(decimal_500w) <= 0) {
- vo.setRewardRadix(decimal_6000);
- } else if (landAmount.compareTo(decimal_1000w) <= 0) {
- vo.setRewardRadix(decimal_12000);
- } else {
- vo.setRewardRadix(decimal_15000);
- }
- }
- }
- }
|