package com.ydtech.modules.fnc.service.impl; import com.github.pagehelper.PageHelper; import com.ydtech.constants.SysConstants; import com.ydtech.core.page.HttpResult; import com.ydtech.core.page.PageResult; import com.ydtech.modules.fnc.dao.FncSubjectMapper; import com.ydtech.modules.fnc.model.FncSubject; import com.ydtech.modules.fnc.service.SubjectService; import com.ydtech.modules.fnc.vo.FncSubjectReq; import com.ydtech.security.utils.PubUserInfo; import com.ydtech.utils.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; import java.util.Date; import java.util.List; /** * @Author: zy * @create: 2021/12/22 * description: */ @Service public class SubjectServiceImpl implements SubjectService { @Autowired private FncSubjectMapper fncSubjectMapper; /** * 新增科目表信息 * * @param subject * @param request * @return */ @Override public HttpResult save(FncSubject subject, HttpServletRequest request) { String msg = "新增成功!!!"; if (StringUtils.isNullOrEmpty(subject)) { return HttpResult.error("请求参数为空!"); } if (StringUtils.isNullOrEmpty(subject.getFncYear())) { return HttpResult.error("会计年度不能为空!"); } if (StringUtils.isNullOrEmpty(subject.getSbjtName())) { return HttpResult.error("科目名称不能为空!"); } if (StringUtils.isNullOrEmpty(subject.getSbjtNo())) { return HttpResult.error("科目代码不能为空!"); } if (null != fncSubjectMapper.selectBySbjtNo(subject.getSbjtNo())) { return HttpResult.error("科目代码已存在!"); } if (null != fncSubjectMapper.selectBySbjtName(subject.getSbjtName())) { return HttpResult.error("科目名称已存在!"); } if (StringUtils.isNullOrEmpty(subject.getStatus())) { subject.setStatus("1"); } // 创建时间 subject.setCreatetime(new Date()); // 创建人 subject.setCreateBy(new PubUserInfo().getUserName()); // 所属商户 subject.setShopId(new PubUserInfo().getDeptId()); fncSubjectMapper.insert(subject); return HttpResult.ok(msg, subject.getSbjtNo()); } /** * 编辑科目表信息 * * @param subject * @param request * @return */ @Override public HttpResult edit(FncSubject subject, HttpServletRequest request) { String msg = "修改成功!"; if (StringUtils.isNullOrEmpty(subject)) { return HttpResult.error("请求参数为空!"); } if (StringUtils.isNullOrEmpty(subject.getSbjtNo())) { return HttpResult.error("科目代码不能为空!"); } if (StringUtils.isNullOrEmpty(subject.getFncYear())) { return HttpResult.error("会计年度不能为空!"); } // 判断该条数据当前登录用户是否有权限修改 String tokenDeptId = new PubUserInfo().getDeptId(); if (!SysConstants.DEPT.equals(tokenDeptId)) { // 查询数据 FncSubject fncSubject = fncSubjectMapper.selectBySbjtNo(subject.getSbjtNo()); if (fncSubject == null) { msg = "无数据"; } else { String shopId = fncSubject.getShopId(); if (!shopId.startsWith(tokenDeptId)) { return HttpResult.error("权限不足,拒绝修改!"); } } } if (0 != fncSubjectMapper.selectBySbjtNameIsExits(subject)) { return HttpResult.error("公司名称已存在!"); } fncSubjectMapper.updateByPrimaryKeySelective(subject); return HttpResult.ok(msg); } /** * 删除科目表信息 * * @param subject * @return */ @Override public HttpResult delete(FncSubject subject) { return null; } /** * 查询全部科目表信息 * * @param req * @param request * @return */ @Override public HttpResult selectAll(FncSubjectReq req, HttpServletRequest request) { String msg = "查询成功!"; if (StringUtils.isNullOrEmpty(req)) { return HttpResult.error("分页信息为空!"); } // 判断是否有权限查询数据 String tokenDeptId = new PubUserInfo().getDeptId(); if (!SysConstants.DEPT.equals(tokenDeptId)) { String shopId = req.getShopId(); if (StringUtils.isNullOrEmpty(shopId)) { req.setShopId(tokenDeptId); } else { if (!shopId.startsWith(tokenDeptId)) { req.setShopId(tokenDeptId); // 设置为token中的部门 } } } // 分页查询 PageHelper.startPage(req.getPageNum(), req.getPageSize()); List list = fncSubjectMapper.select(req); return HttpResult.ok(msg, new PageResult<>(list)); } /** * 根据机构代码查询科目表信息 * * @param subject * @param request * @return */ @Override public HttpResult selectByCode(FncSubject subject, HttpServletRequest request) { String msg = "查询成功!"; if (StringUtils.isNullOrEmpty(subject) || StringUtils.isNullOrEmpty(subject.getSbjtNo())) { return HttpResult.error("请求参数为空!"); } // 查询数据 FncSubject fncSubject = fncSubjectMapper.selectBySbjtNo(subject.getSbjtNo()); if (fncSubject == null) { msg = "无数据"; } else { // 判断该条数据当前登录用户是否有权限查看 String tokenDeptId = new PubUserInfo().getDeptId(); if (!SysConstants.DEPT.equals(tokenDeptId)) { String shopId = fncSubject.getShopId(); if (!shopId.startsWith(tokenDeptId)) { return HttpResult.error("权限不足,拒绝访问!"); } } } return HttpResult.ok(msg, fncSubject); } }