From cdca588a565c7ba3cc22bf45c0701f5f0562783b Mon Sep 17 00:00:00 2001 From: 叶松 <2217086471@qq.com> Date: 星期三, 29 十一月 2023 17:27:48 +0800 Subject: [PATCH] Merge branch 'master' of http://111.30.93.211:10101/r/supipe --- hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/integralAccount/service/impl/IntegralDetailServiceImpl.java | 124 +++++++++++++++++++++++++---------------- 1 files changed, 76 insertions(+), 48 deletions(-) diff --git a/hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/integralAccount/service/impl/IntegralDetailServiceImpl.java b/hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/integralAccount/service/impl/IntegralDetailServiceImpl.java index b4df2b5..9e9c823 100644 --- a/hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/integralAccount/service/impl/IntegralDetailServiceImpl.java +++ b/hd/pipe/secure/src/main/java/com/thhy/secure/modules/biz/integralAccount/service/impl/IntegralDetailServiceImpl.java @@ -8,6 +8,7 @@ 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.IntegralDetailDto; 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; @@ -33,6 +34,7 @@ @Autowired private IntegralDetailMapper integralDetailMapper; + private static final Object Lock= new Object(); /** * 积分超市新增和修改 * @param integralDetailEntity @@ -45,42 +47,44 @@ 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()<integralDetailEntity.getIntegralWater()){//无账户 - return BasicResult.faild("500","积分不足,无法扣除积分",null); - } - //有账户 - Double totalConsumption = queryAccount.getTotalConsumption();//总消耗 - Double accumulateIntegral = queryAccount.getAccumulateIntegral();//累计积分 - Double totalIntegral = queryAccount.getTotalIntegral();//当前余额 + synchronized (Lock){ + 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()<integralDetailEntity.getIntegralWater()){//无账户 + return BasicResult.faild("500","积分不足,无法扣除积分",null); + } + //有账户 + Double totalConsumption = queryAccount.getTotalConsumption();//总消耗 + Double accumulateIntegral = queryAccount.getAccumulateIntegral();//累计积分 + Double totalIntegral = queryAccount.getTotalIntegral();//当前余额 - integralAccountEntity.setTotalIntegral(totalIntegral-integralDetailEntity.getIntegralWater()); - integralAccountEntity.setAccumulateIntegral(accumulateIntegral); - integralAccountEntity.setTotalConsumption(totalConsumption+integralDetailEntity.getIntegralWater()); - //修改账户 - integralDetailMapper.insertAndUpdateAccount(integralAccountEntity); - if(id == null){ - integralDetailEntity.setCompanyId(companyId); - integralDetailEntity.setId(UUIDUtils.create()); - integralDetailEntity.setCreateTime(new Date()); - integralDetailEntity.setCreateUser(sysUserId); - } - integralDetailEntity.setBalanc(totalIntegral-integralDetailEntity.getIntegralWater());//拿到当前余额 + integralAccountEntity.setTotalIntegral(totalIntegral-integralDetailEntity.getIntegralWater()); + integralAccountEntity.setAccumulateIntegral(accumulateIntegral); + integralAccountEntity.setTotalConsumption(totalConsumption+integralDetailEntity.getIntegralWater()); + //修改账户 + integralDetailMapper.insertAndUpdateAccount(integralAccountEntity); + if(id == null){ + integralDetailEntity.setCompanyId(companyId); + integralDetailEntity.setId(UUIDUtils.create()); + integralDetailEntity.setCreateTime(new Date()); + integralDetailEntity.setCreateUser(sysUserId); + } + integralDetailEntity.setBalanc(totalIntegral-integralDetailEntity.getIntegralWater());//拿到当前余额 - integralDetailEntity.setType(2); - integralDetailEntity.setIntegralSource("积分超市"); - //添加或修改明细 - integralDetailMapper.insertDetailAndUpdate(integralDetailEntity); + integralDetailEntity.setType(2); + integralDetailEntity.setIntegralSource("积分超市"); + //添加或修改明细 + integralDetailMapper.insertDetailAndUpdate(integralDetailEntity); + } return BasicResult.success(); } @@ -111,7 +115,7 @@ public BasicResult delete(String id){ Map map =new HashMap(); map.put("id",id); - IntegralDetailEntity integralDetailEntity = integralDetailMapper.selectSafeIntegralInfo(map).get(0); + IntegralDetailDto integralDetailEntity = integralDetailMapper.selectSafeIntegralInfo(map).get(0); Double integralWater = integralDetailEntity.getIntegralWater();//获取消耗积分 Map account = new HashMap(); account.put("userId",integralDetailEntity.getUserId()); @@ -121,16 +125,17 @@ 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); + synchronized (Lock){ + 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(); } @@ -165,7 +170,7 @@ int pageSize = (int) map.get("pageSize"); PageHelper.startPage(pageNum,pageSize); map.put("companyId",companyId); - List<IntegralDetailEntity> integralDetailEntities = integralDetailMapper.selectSafeIntegralInfo(map); + List<IntegralDetailDto> integralDetailEntities = integralDetailMapper.selectSafeIntegralInfo(map); map.put("data",new PageInfo<>(integralDetailEntities)); return BasicResult.success(map); } @@ -177,6 +182,14 @@ map.put("companyId",companyId); List<IntegralDetailEntity> integralDetailEntities = integralDetailMapper.selectPageList(map); + integralDetailEntities.forEach(obj->{ + if(obj.getUserType() ==1){ + obj.setUserTypeName("管服人员"); + } + if(obj.getUserType() ==2){ + obj.setUserTypeName("劳务人员"); + } + }); ExcelUtils.downExcel(integralDetailEntities,IntegralDetailEntity.class,rsp,"班组列表"); } @@ -184,11 +197,26 @@ 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<IntegralDetailEntity> integralDetailEntities = integralDetailMapper.selectSafeIntegralInfo(map); - ExcelUtils.downExcel(integralDetailEntities,IntegralDetailEntity.class,rsp,"班组列表"); + List<IntegralDetailDto> integralDetailEntities = integralDetailMapper.selectSafeIntegralInfo(map); + integralDetailEntities.forEach(obj->{ + if(obj.getUserType() ==1){ + obj.setUserTypeName("管服人员"); + } + if(obj.getUserType() ==2){ + obj.setUserTypeName("劳务人员"); + } + if(obj.getType() == 1){ + obj.setTypeName("获取"); + } + if(obj.getType() == 2){ + obj.setTypeName("消耗"); + } + }); + ExcelUtils.downExcel(integralDetailEntities,IntegralDetailDto.class,rsp,"班组列表"); } } -- Gitblit v1.9.3