puzhibing
2023-05-18 c54be562403989ae722ce4e12b640d4a44b5dcb3
UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
@@ -10,10 +10,7 @@
import com.stylefeng.guns.core.shiro.ShiroUser;
import com.stylefeng.guns.core.util.JwtTokenUtil;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.system.dao.DriverActivityRegisteredMapper;
import com.stylefeng.guns.modular.system.dao.DriverMapper;
import com.stylefeng.guns.modular.system.dao.UserActivityInviteMapper;
import com.stylefeng.guns.modular.system.dao.UserInfoMapper;
import com.stylefeng.guns.modular.system.dao.*;
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.service.*;
import com.stylefeng.guns.modular.system.util.*;
@@ -92,6 +89,9 @@
    @Autowired
    private PayMoneyUtil payMoneyUtil;
    @Resource
    private DriverActivityHistoryMapper driverActivityHistoryMapper;
    @Value("${callbackPath}")
    private String callbackPath;
@@ -234,6 +234,16 @@
                        if(Double.valueOf(String.valueOf(map.get("money"))).compareTo(0D) > 0){
                            bigDecimal = bigDecimal.add(new BigDecimal(String.valueOf(map.get("money"))));
                            incomeService.saveData(2, driver.getId(), 1, Integer.valueOf(String.valueOf(map.get("id"))), null, Double.valueOf(String.valueOf(map.get("money"))));
                            DriverActivityHistory driverActivityHistory = new DriverActivityHistory();
                            driverActivityHistory.setActivityId(Integer.valueOf(String.valueOf(map.get("id"))));
                            driverActivityHistory.setCarryOut(2);
                            driverActivityHistory.setDay(new Date());
                            driverActivityHistory.setDriverId(driver.getId());
                            driverActivityHistory.setInsertTime(new Date());
                            driverActivityHistory.setMoney(Double.valueOf(String.valueOf(map.get("money"))));
                            driverActivityHistory.setType(1);
                            driverActivityHistoryMapper.insert(driverActivityHistory);
                        }
                    }
                    driver.setActivityMoney(bigDecimal.add(new BigDecimal(driver.getActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
@@ -312,7 +322,59 @@
    @Override
    public synchronized ResultUtil<LoginWarpper> captchaLogin(String phone, String code, Integer uid, Integer type, Integer userType) throws Exception {
        ResultUtil<LoginWarpper> resultUtil = this.captchaLogin(phone, code, null, null,uid,type,userType);
        if(resultUtil.getCode() == 200 && null != uid){
            if(type == 2){//司机分享
                Driver driver = driverMapper.selectById(uid);
                List<Map<String, Object>> query = driverActivityRegisteredMapper.query(userType, driver.getCompanyId());
                BigDecimal bigDecimal = new BigDecimal("0");
                for(Map<String, Object> map : query){
                    if(Double.valueOf(String.valueOf(map.get("money"))).compareTo(0D) > 0){
                        bigDecimal = bigDecimal.add(new BigDecimal(String.valueOf(map.get("money"))));
                        incomeService.saveData(2, driver.getId(), 1, Integer.valueOf(String.valueOf(map.get("id"))), null, Double.valueOf(String.valueOf(map.get("money"))));
                    }
                }
                driver.setActivityMoney(bigDecimal.add(new BigDecimal(driver.getActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                driver.setLaveActivityMoney(bigDecimal.add(new BigDecimal(driver.getLaveActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                driver.setBalance(bigDecimal.add(new BigDecimal(driver.getBalance())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                driverMapper.updateById(driver);
            }
            if(type == 1){//用户分享
                UserInfo userInfo1 = userInfoMapper.selectById(uid);
                List<Map<String, Object>> query = userActivityInviteMapper.query(userInfo1.getCompanyId());
                Date date = new Date();
                for(Map<String, Object> map : query){
                    Double lavePrice = Double.valueOf(map.get("lavePrice").toString());
                    for(int i = Integer.valueOf(String.valueOf(map.get("totalNum"))); i > 0; i--){
                        //判断当前优惠券金额是否大于可发放剩余总金额
                        if(Double.valueOf(String.valueOf(map.get("money"))).compareTo(lavePrice) > 0){
                            break;
                        }
                        UserCouponRecord userCouponRecord = new UserCouponRecord();
                        userCouponRecord.setActivityType(3);
                        userCouponRecord.setCouponActivityId(Integer.valueOf(String.valueOf(map.get("id"))));
                        userCouponRecord.setCouponId(Integer.valueOf(String.valueOf(map.get("couponId"))));
                        userCouponRecord.setState(1);
                        Calendar calendar = Calendar.getInstance();
                        calendar.setTime(date);
                        calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) + Integer.valueOf(String.valueOf(map.get("effective"))));
                        userCouponRecord.setExpirationTime(calendar.getTime());
                        userCouponRecord.setCouponType(Integer.valueOf(String.valueOf(map.get("couponType"))));
                        userCouponRecord.setCouponUseType(Integer.valueOf(String.valueOf(map.get("couponUseType"))));
                        userCouponRecord.setInsertTime(date);
                        userCouponRecord.setFullMoney(Double.valueOf(String.valueOf(map.get("fullMoney"))));
                        userCouponRecord.setMoney(Double.valueOf(String.valueOf(map.get("money"))));
                        userCouponRecord.setCompanyId(userInfo1.getCompanyId());
                        userCouponRecord.setUserId(uid);
                        userCouponRecordService.insert(userCouponRecord);
                        //修改剩余可发放总金额
                        lavePrice -= Double.valueOf(String.valueOf(map.get("money")));
                    }
                    UserActivityInvite uai = userActivityInviteMapper.selectById(Integer.valueOf(map.get("id").toString()));
                    uai.setLavePrice(new BigDecimal(lavePrice).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                    userActivityInviteMapper.updateById(uai);
                }
            }
        }
        return resultUtil;
    }