package com.thhy.secure.modules.biz.integralAccount.service.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.thhy.general.common.BasicResult; import com.thhy.general.config.SysUserInfo; import com.thhy.general.utils.ExcelUtils; import com.thhy.general.utils.UUIDUtils; import com.thhy.general.utils.UserInfoUtils; import com.thhy.secure.modules.biz.integralAccount.entity.IntegralAccountEntity; import com.thhy.secure.modules.biz.integralAccount.entity.IntegralDetailEntity; import com.thhy.secure.modules.biz.integralAccount.mapper.IntegralDetailMapper; import com.thhy.secure.modules.biz.integralAccount.service.IntegralDetailService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletResponse; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @Author QiuYuHao * @CreateDate 2023-11-27 18:33:40 * 积分超市实现 */ @Service public class IntegralDetailServiceImpl implements IntegralDetailService { @Autowired private IntegralDetailMapper integralDetailMapper; /** * 积分超市新增和修改 * @param integralDetailEntity */ @Override @Transactional(rollbackFor = Exception.class) public BasicResult insertAndUpdate(IntegralDetailEntity integralDetailEntity){ String id = integralDetailEntity.getId(); SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(); String sysUserId = sysUserInfo.getUserId(); String companyId = sysUserInfo.getCompanyId(); //扣积分逻辑 IntegralAccountEntity integralAccountEntity = IntegralAccountEntity .builder() .userId(integralDetailEntity.getUserId()) .updateUser(sysUserId) .updateTime(new Date()) .id(UUIDUtils.create()) .build(); Map map = new HashMap(); map.put("userId",integralDetailEntity.getUserId()); //查询账户 IntegralAccountEntity queryAccount = integralDetailMapper.selectByOne(map); if(queryAccount == null || queryAccount.getTotalIntegral() integralDetailEntities = integralDetailMapper.selectPageList(map); return BasicResult.success(new PageInfo<>(integralDetailEntities)); } /** * 积分超市删除 * @param id */ @Override @Transactional(rollbackFor = Exception.class) public BasicResult delete(String id){ Map map =new HashMap(); map.put("id",id); IntegralDetailEntity integralDetailEntity = integralDetailMapper.selectSafeIntegralInfo(map).get(0); Double integralWater = integralDetailEntity.getIntegralWater();//获取消耗积分 Map account = new HashMap(); account.put("userId",integralDetailEntity.getUserId()); //查询账户 IntegralAccountEntity queryAccount = integralDetailMapper.selectByOne(account); Double totalConsumption = queryAccount.getTotalConsumption();//总消耗 Double accumulateIntegral = queryAccount.getAccumulateIntegral();//累计积分 Double totalIntegral = queryAccount.getTotalIntegral();//当前余额 IntegralAccountEntity integralAccountEntity = IntegralAccountEntity .builder() .userId(integralDetailEntity.getUserId()) .totalConsumption(totalConsumption - integralWater) .accumulateIntegral(accumulateIntegral + integralWater) .totalIntegral(totalIntegral + integralWater) .build(); integralDetailMapper.insertAndUpdateAccount(integralAccountEntity); integralDetailMapper.delete(id); return BasicResult.success(); } /** * 安全积分列表 */ @Override public BasicResult selectSafeIntegralPageList(Map map){ SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(); String companyId = sysUserInfo.getCompanyId(); int pageNum = (int) map.get("pageNum"); int pageSize = (int) map.get("pageSize"); PageHelper.startPage(pageNum,pageSize); map.put("companyId",companyId); List integralAccountEntities = integralDetailMapper.selectSafeIntegralPageList(map); return BasicResult.success(new PageInfo<>(integralAccountEntities)); } /** * 安全积分明细 * @param map * @return */ @Override public BasicResult selectSafeIntegralInfo(Map map){ SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(); String companyId = sysUserInfo.getCompanyId(); IntegralAccountEntity integralAccountEntity = integralDetailMapper.selectByOne(map); map.put("integral",integralAccountEntity.getTotalIntegral()); int pageNum = (int) map.get("pageNum"); int pageSize = (int) map.get("pageSize"); PageHelper.startPage(pageNum,pageSize); map.put("companyId",companyId); List integralDetailEntities = integralDetailMapper.selectSafeIntegralInfo(map); map.put("data",new PageInfo<>(integralDetailEntities)); return BasicResult.success(map); } @Override public void exportList(Map map, HttpServletResponse rsp) { SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(); String companyId = sysUserInfo.getCompanyId(); map.put("companyId",companyId); List integralDetailEntities = integralDetailMapper.selectPageList(map); ExcelUtils.downExcel(integralDetailEntities,IntegralDetailEntity.class,rsp,"班组列表"); } @Override public void exportSafeIntegralInfo(Map map, HttpServletResponse rsp) { SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(); String companyId = sysUserInfo.getCompanyId(); IntegralAccountEntity integralAccountEntity = integralDetailMapper.selectByOne(map); map.put("integral",integralAccountEntity.getTotalIntegral()); map.put("companyId",companyId); List integralDetailEntities = integralDetailMapper.selectSafeIntegralInfo(map); ExcelUtils.downExcel(integralDetailEntities,IntegralDetailEntity.class,rsp,"班组列表"); } }