TTradeProjectServiceImpl.java 5.21 KB
Newer Older
耿迪迪's avatar
耿迪迪 committed
1 2
package com.zehong.system.service.impl;

耿迪迪's avatar
耿迪迪 committed
3
import com.zehong.common.core.domain.entity.SysRole;
耿迪迪's avatar
耿迪迪 committed
4 5 6 7 8 9
import com.zehong.common.core.domain.entity.SysUser;
import com.zehong.common.utils.DateUtils;
import com.zehong.common.utils.SecurityUtils;
import com.zehong.system.domain.TTradeProject;
import com.zehong.system.mapper.TTradeProjectMapper;
import com.zehong.system.service.ITTradeProjectService;
耿迪迪's avatar
耿迪迪 committed
10
import com.zehong.system.service.impl.tradeRoles.TradeRoles;
耿迪迪's avatar
耿迪迪 committed
11 12 13 14
import com.zehong.system.service.impl.tradeRoles.roles.DeptLeader;
import com.zehong.system.service.impl.tradeRoles.roles.DoubleRoles;
import com.zehong.system.service.impl.tradeRoles.roles.OtherRoles;
import com.zehong.system.service.impl.tradeRoles.roles.Transactor;
耿迪迪's avatar
耿迪迪 committed
15
import com.zehong.system.service.impl.tradeSettlement.SettlementTrade;
耿迪迪's avatar
耿迪迪 committed
16 17
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
耿迪迪's avatar
耿迪迪 committed
18
import org.springframework.transaction.annotation.Transactional;
耿迪迪's avatar
耿迪迪 committed
19

耿迪迪's avatar
耿迪迪 committed
20
import javax.annotation.Resource;
耿迪迪's avatar
耿迪迪 committed
21
import java.util.List;
耿迪迪's avatar
耿迪迪 committed
22
import java.util.stream.Collectors;
耿迪迪's avatar
耿迪迪 committed
23 24 25 26 27 28 29 30 31 32 33 34 35

/**
 * 交易项目Service业务层处理
 * 
 * @author zehong
 * @date 2023-06-08
 */
@Service
public class TTradeProjectServiceImpl implements ITTradeProjectService 
{
    @Autowired
    private TTradeProjectMapper tTradeProjectMapper;

耿迪迪's avatar
耿迪迪 committed
36 37 38
    @Resource
    private SettlementTrade settlementTrade;

耿迪迪's avatar
耿迪迪 committed
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
    /**
     * 查询交易项目
     * 
     * @param tradeId 交易项目ID
     * @return 交易项目
     */
    @Override
    public TTradeProject selectTTradeProjectById(Long tradeId)
    {
        return tTradeProjectMapper.selectTTradeProjectById(tradeId);
    }

    /**
     * 查询交易项目列表
     * 
     * @param tTradeProject 交易项目
     * @return 交易项目
     */
    @Override
    public List<TTradeProject> selectTTradeProjectList(TTradeProject tTradeProject)
    {
        return tTradeProjectMapper.selectTTradeProjectList(tTradeProject);
    }

耿迪迪's avatar
耿迪迪 committed
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
    /**
     * 根据角色查询数据
     * @param tTradeProject 交易实体
     * @return
     */
    @Override
    public List<TTradeProject> selectTTradeProjectListByRoles(TTradeProject tTradeProject){
        judgeRole(tTradeProject).setQueryParams();
        List<TTradeProject> tradeProjectList = tTradeProjectMapper.selectTTradeProjectList(tTradeProject);
        for(TTradeProject project :tradeProjectList){
            judgeRole(project).setOperators();
        }
        return tradeProjectList;
    }

    /**
     * 判断角色
     * @param tTradeProject
     * @return TradeRoles
     */
    private TradeRoles judgeRole(TTradeProject tTradeProject) {
        List<SysRole> roles = SecurityUtils.getLoginUser().getUser().getRoles();
        List<String> roleKeys = roles.stream().map(item -> item.getRoleKey()).collect(Collectors.toList());
        //双权限
        if(roleKeys.contains("transactor") && roleKeys.contains("deptLeader")){
            return new DoubleRoles(tTradeProject);
        }
        //经办人
        if(roleKeys.contains("transactor")){
            return new Transactor(tTradeProject);
        }
        //部长
        if(roleKeys.contains("deptLeader")){
            return new DeptLeader(tTradeProject);
        }
        return new OtherRoles(tTradeProject);
    }

耿迪迪's avatar
耿迪迪 committed
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
    /**
     * 新增交易项目
     * 
     * @param tTradeProject 交易项目
     * @return 结果
     */
    @Override
    public int insertTTradeProject(TTradeProject tTradeProject)
    {
        tTradeProject.setReceiptNum("ZEHONG" + DateUtils.dateTimeNow());
        SysUser user = SecurityUtils.getLoginUser().getUser();
        tTradeProject.setApplyId(user.getUserId());
        tTradeProject.setApplyDeptId(user.getDeptId());
        tTradeProject.setCreateTime(DateUtils.getNowDate());
        return tTradeProjectMapper.insertTTradeProject(tTradeProject);
    }


    /**
     * 修改交易项目
     * 
     * @param tTradeProject 交易项目
     * @return 结果
     */
    @Override
    public int updateTTradeProject(TTradeProject tTradeProject)
    {
        tTradeProject.setUpdateTime(DateUtils.getNowDate());
        return tTradeProjectMapper.updateTTradeProject(tTradeProject);
    }
    /**
     * 批量删除交易项目
     * 
     * @param tradeIds 需要删除的交易项目ID
     * @return 结果
     */
    @Override
    public int deleteTTradeProjectByIds(Long[] tradeIds)
    {
        return tTradeProjectMapper.deleteTTradeProjectByIds(tradeIds);
    }

    /**
     * 删除交易项目信息
     * 
     * @param tradeId 交易项目ID
     * @return 结果
     */
    @Override
    public int deleteTTradeProjectById(Long tradeId)
    {
        return tTradeProjectMapper.deleteTTradeProjectById(tradeId);
    }
耿迪迪's avatar
耿迪迪 committed
154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170

    /**
     * 交易结算
     * @param tTradeProject
     * @return
     */
    @Transactional(rollbackFor = Exception.class)
    public int settlementTrade(TTradeProject tTradeProject){
        TTradeProject tradeInfo = tTradeProjectMapper.selectTTradeProjectById(tTradeProject.getTradeId());
        //交易结算
        settlementTrade.settleAbleAmount(tradeInfo);
        tradeInfo.setTradeStatus(tTradeProject.getTradeStatus());
        tradeInfo.setApplyDeptManagerId(tTradeProject.getApplyDeptManagerId());
        return tTradeProjectMapper.updateTTradeProject(tradeInfo);
    }


耿迪迪's avatar
耿迪迪 committed
171
}