management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/HomeController.java
@@ -147,7 +147,7 @@ for(TDriver driver : tDrivers){ keys += "DRIVER" + driver.getId() + ","; } String value = redisUtil.getValues(keys.substring(0, keys.length() - 1)); String value = redisUtil.getValue(keys.substring(0, keys.length() - 1)); JSONArray jsonArray = JSON.parseArray(value); int size = driverOnlineService.queryOnlineDriverCount(null, null); map1.put("netcardriver", size); //在线司机 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TAppUserController.java
@@ -8,14 +8,12 @@ import com.stylefeng.guns.modular.system.enums.CouponStatusEnum; import com.stylefeng.guns.modular.system.enums.OrderStateEnum; import com.stylefeng.guns.modular.system.exports.TAppUserExceptionExport; import com.stylefeng.guns.modular.system.model.TAppUser; import com.stylefeng.guns.modular.system.model.TCoupon; import com.stylefeng.guns.modular.system.model.TOrder; import com.stylefeng.guns.modular.system.model.TUserToCoupon; import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.ITAppUserService; import com.stylefeng.guns.modular.system.service.ITCouponService; import com.stylefeng.guns.modular.system.service.ITOrderService; import com.stylefeng.guns.modular.system.service.ITUserToCouponService; import com.stylefeng.guns.modular.system.util.RedisUtil; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; @@ -58,6 +56,8 @@ private ITOrderService tOrderService; @Autowired private ITUserToCouponService tUserToCouponService; @Autowired private RedisUtil redisUtil; /** * 跳转到首页 @@ -239,6 +239,9 @@ TAppUser tAppUser = tAppUserService.selectById(id); if(1 == status){ tAppUser.setStatus(2); String value = redisUtil.getValue("USER_" + tAppUser.getPhone()); redisUtil.remove(value); redisUtil.remove("USER_" + tAppUser.getPhone()); } if(2 == status){ tAppUser.setStatus(1); management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/THomePageController.java
@@ -183,8 +183,12 @@ || order.getState().equals(OrderStateEnum.WAIT_EVALUATED.getCode()) || order.getState().equals(OrderStateEnum.FINISH.getCode()))).collect(Collectors.toList()); // 驾龄 Period period = Period.between(LocalDate.now(), DateUtil.dateToLocalDate(tDriver.getFirstCertificateTime())); tOrderServerResp.setDrivingExperience(Math.max(Math.abs(period.getYears()), 1)); if(Objects.nonNull(tDriver.getFirstCertificateTime())){ Period period = Period.between(LocalDate.now(), DateUtil.dateToLocalDate(tDriver.getFirstCertificateTime())); tOrderServerResp.setDrivingExperience(Math.max(Math.abs(period.getYears()), 1)); }else { tOrderServerResp.setDrivingExperience(0); } // 代驾次数 tOrderServerResp.setValetDrivingCount(collect.size()); // 行驶时间 @@ -199,8 +203,12 @@ } tOrderServerResp.setGoTime(Long.valueOf(goTime).intValue()); // 行驶里程 int sum = collect.stream().mapToInt(TOrder::getActualMileage).sum(); tOrderServerResp.setMileageTraveled(sum/1000); if(CollectionUtils.isEmpty(collect)){ tOrderServerResp.setMileageTraveled(0); }else { int sum = collect.stream().mapToInt(TOrder::getActualMileage).sum(); tOrderServerResp.setMileageTraveled(sum/1000); } } map.put("serverList",orderServerRespList); // 查询今天所有订单 @@ -254,8 +262,12 @@ || order.getState().equals(OrderStateEnum.WAIT_EVALUATED.getCode()) || order.getState().equals(OrderStateEnum.FINISH.getCode()))).collect(Collectors.toList()); // 驾龄 Period period = Period.between(LocalDate.now(), DateUtil.dateToLocalDate(tDriver.getFirstCertificateTime())); tOrderServerResp.setDrivingExperience(Math.max(Math.abs(period.getYears()), 1)); if(Objects.nonNull(tDriver.getFirstCertificateTime())){ Period period = Period.between(LocalDate.now(), DateUtil.dateToLocalDate(tDriver.getFirstCertificateTime())); tOrderServerResp.setDrivingExperience(Math.max(Math.abs(period.getYears()), 1)); }else { tOrderServerResp.setDrivingExperience(0); } // 代驾次数 tOrderServerResp.setValetDrivingCount(collect.size()); // 行驶时间 @@ -270,8 +282,12 @@ } tOrderServerResp.setGoTime(Long.valueOf(goTime).intValue()); // 行驶里程 int sum = collect.stream().mapToInt(TOrder::getActualMileage).sum(); tOrderServerResp.setMileageTraveled(sum/1000); if(CollectionUtils.isEmpty(collect)){ tOrderServerResp.setMileageTraveled(0); }else { int sum = collect.stream().mapToInt(TOrder::getActualMileage).sum(); tOrderServerResp.setMileageTraveled(sum/1000); } } map.put("serverList",orderServerRespList); @@ -330,8 +346,12 @@ || order.getState().equals(OrderStateEnum.WAIT_EVALUATED.getCode()) || order.getState().equals(OrderStateEnum.FINISH.getCode()))).collect(Collectors.toList()); // 驾龄 Period period = Period.between(LocalDate.now(), DateUtil.dateToLocalDate(tDriver.getFirstCertificateTime())); tOrderServerResp.setDrivingExperience(Math.max(Math.abs(period.getYears()), 1)); if(Objects.nonNull(tDriver.getFirstCertificateTime())){ Period period = Period.between(LocalDate.now(), DateUtil.dateToLocalDate(tDriver.getFirstCertificateTime())); tOrderServerResp.setDrivingExperience(Math.max(Math.abs(period.getYears()), 1)); }else { tOrderServerResp.setDrivingExperience(0); } // 代驾次数 tOrderServerResp.setValetDrivingCount(collect.size()); // 行驶时间 @@ -346,8 +366,12 @@ } tOrderServerResp.setGoTime(Long.valueOf(goTime).intValue()); // 行驶里程 int sum = collect.stream().mapToInt(TOrder::getActualMileage).sum(); tOrderServerResp.setMileageTraveled(sum/1000); if(CollectionUtils.isEmpty(collect)){ tOrderServerResp.setMileageTraveled(0); }else { int sum = collect.stream().mapToInt(TOrder::getActualMileage).sum(); tOrderServerResp.setMileageTraveled(sum/1000); } } map.put("serverList",orderServerRespList); }else { @@ -366,8 +390,12 @@ || order.getState().equals(OrderStateEnum.WAIT_EVALUATED.getCode()) || order.getState().equals(OrderStateEnum.FINISH.getCode()))).collect(Collectors.toList()); // 驾龄 Period period = Period.between(LocalDate.now(), DateUtil.dateToLocalDate(tDriver.getFirstCertificateTime())); tOrderServerResp.setDrivingExperience(Math.max(Math.abs(period.getYears()), 1)); if(Objects.nonNull(tDriver.getFirstCertificateTime())){ Period period = Period.between(LocalDate.now(), DateUtil.dateToLocalDate(tDriver.getFirstCertificateTime())); tOrderServerResp.setDrivingExperience(Math.max(Math.abs(period.getYears()), 1)); }else { tOrderServerResp.setDrivingExperience(0); } // 代驾次数 tOrderServerResp.setValetDrivingCount(collect.size()); // 行驶时间 @@ -382,8 +410,12 @@ } tOrderServerResp.setGoTime(Long.valueOf(goTime).intValue()); // 行驶里程 int sum = collect.stream().mapToInt(TOrder::getActualMileage).sum(); tOrderServerResp.setMileageTraveled(sum/1000); if(CollectionUtils.isEmpty(collect)){ tOrderServerResp.setMileageTraveled(0); }else { int sum = collect.stream().mapToInt(TOrder::getActualMileage).sum(); tOrderServerResp.setMileageTraveled(sum/1000); } } map.put("serverList",orderServerRespList); } management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TSystemConfigController.java
@@ -4,6 +4,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.core.base.controller.BaseController; import com.stylefeng.guns.core.shiro.ShiroKit; import com.stylefeng.guns.modular.system.model.TAgent; import com.stylefeng.guns.modular.system.model.TBranchOffice; import com.stylefeng.guns.modular.system.service.ITAgentService; import com.stylefeng.guns.modular.system.service.ITBranchOfficeService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @@ -18,6 +23,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Objects; /** * 控制器 @@ -33,6 +39,8 @@ @Autowired private ITSystemConfigService tSystemConfigService; @Autowired private ITAgentService agentService; /** * 跳转到首页 @@ -191,14 +199,24 @@ @ResponseBody public Object systemConfigSubmit(Integer type,String content) { TSystemConfig tSystemConfig = tSystemConfigService.selectOne(new EntityWrapper<TSystemConfig>().eq("type", type) .last("LIMIT 1")); System.err.println(content); tSystemConfig.setContent(content); return tSystemConfigService.updateById(tSystemConfig); Integer roleType = Objects.requireNonNull(ShiroKit.getUser()).getRoleType(); Integer objectId = Objects.requireNonNull(ShiroKit.getUser()).getObjectId(); if(roleType == 1){ TSystemConfig tSystemConfig = tSystemConfigService.selectOne(new EntityWrapper<TSystemConfig>().eq("type", type) .last("LIMIT 1")); tSystemConfig.setContent(content); tSystemConfigService.updateById(tSystemConfig); } if(roleType == 3){ TAgent tAgent = agentService.selectById(objectId); if (Objects.nonNull(tAgent)){ JSONObject jsonObject = JSONObject.parseObject(content); String num1 = jsonObject.getString("num1"); tAgent.setServiceCalls(num1); agentService.updateById(tAgent); } } return SUCCESS_TIP; } /** * 获取列表 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderMapper.xml
@@ -122,7 +122,7 @@ GROUP BY `month` </select> <select id="getDataStatisticsOrderCount" resultType="com.stylefeng.guns.modular.system.controller.resp.PerformanceTableResp"> SELECT date_format(o.createTime, '%Y-%m') AS monthTime,COUNT(o.id) AS amount,d.userName SELECT date_format(o.payTime, '%Y-%m') AS monthTime,COUNT(o.id) AS amount,d.userName FROM t_order o LEFT JOIN (SELECT id,name AS userName from t_driver) d ON o.driverId = d.id <where> @@ -130,7 +130,7 @@ AND o.agentId = #{agentId} </if> <if test="monthDate != null and monthDate != ''"> AND date_format(o.createTime, '%Y-%m') LIKE concat('',#{monthDate},'%') AND date_format(o.payTime, '%Y-%m') LIKE concat('',#{monthDate},'%') </if> AND (o.`state` = 107 OR o.`state` = 108 OR o.`state` = 109) AND d.userName is not null management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TDriverServiceImpl.java
@@ -240,8 +240,16 @@ // 查询当前用户邀请了哪些人 List<TDriver> list = tDriverMapper.selectList(new EntityWrapper<TDriver>().eq("inviterId", tDriver.getId())); if(!CollectionUtils.isEmpty(list)){ List<TCashWithdrawal> tCashWithdrawals = tCashWithdrawalMapper.selectList(new EntityWrapper<TCashWithdrawal>() .eq("type", UserTypeEnum.DRIVER.getCode()) .eq("userDriverId", tDriver.getId()) .eq("businessType", 11) .eq("state", 2)); Optional<BigDecimal> reduce = tCashWithdrawals.stream().map(TCashWithdrawal::getAmount).reduce(BigDecimal::add); BigDecimal bigDecimal = BigDecimal.ZERO; reduce.ifPresent(bigDecimal::add); model.addAttribute("inviterCommission",bigDecimal.add(tDriver.getCommission())); model.addAttribute("inviterCount",list.size()); model.addAttribute("inviterCommission",0); }else { model.addAttribute("inviterCommission",0); model.addAttribute("inviterCount",0); @@ -438,11 +446,23 @@ commissionResp.setConnectedPersons(connectedPersons.get()); // 已提现佣金 查询该司机的佣金提现记录 commissionResp.setWithdrawnAmount(BigDecimal.ZERO); List<TCashWithdrawal> tCashWithdrawals = tCashWithdrawalMapper.selectList(new EntityWrapper<TCashWithdrawal>() .eq("type", UserTypeEnum.DRIVER.getCode()) .eq("userDriverId", driver.getId()) .eq("businessType", 11) .eq("state", 2)); BigDecimal bigDecimal = BigDecimal.ZERO; if(!CollectionUtils.isEmpty(tCashWithdrawals)){ Optional<BigDecimal> reduce = tCashWithdrawals.stream().map(TCashWithdrawal::getAmount).reduce(BigDecimal::add); if(reduce.isPresent()){ bigDecimal.add(reduce.get()); commissionResp.setWithdrawnAmount(bigDecimal); } }else { commissionResp.setWithdrawnAmount(bigDecimal); } // 累计佣金 可提现佣金+已提现佣金 commissionResp.setAccumulatedCommission(BigDecimal.ZERO); commissionResp.setAccumulatedCommission(bigDecimal.add(commissionResp.getCommission())); commissionRespList.add(commissionResp); } @@ -494,11 +514,26 @@ model.addAttribute("numberPromoters",0); } model.addAttribute("connectedPersons",connectedPersons.get()); // 已提现佣金 查询该司机的佣金提现记录 model.addAttribute("withdrawnAmount",BigDecimal.ZERO); List<TCashWithdrawal> tCashWithdrawals = tCashWithdrawalMapper.selectList(new EntityWrapper<TCashWithdrawal>() .eq("type", UserTypeEnum.DRIVER.getCode()) .eq("userDriverId", driver.getId()) .eq("businessType", 11) .eq("state", 2)); BigDecimal bigDecimal = BigDecimal.ZERO; if(!CollectionUtils.isEmpty(tCashWithdrawals)){ Optional<BigDecimal> reduce = tCashWithdrawals.stream().map(TCashWithdrawal::getAmount).reduce(BigDecimal::add); if(reduce.isPresent()){ bigDecimal.add(reduce.get()); // 已提现佣金 查询该司机的佣金提现记录 model.addAttribute("withdrawnAmount",bigDecimal); } }else { // 已提现佣金 查询该司机的佣金提现记录 model.addAttribute("withdrawnAmount",bigDecimal); } // commissionResp.setWithdrawnAmount(BigDecimal.ZERO); // 累计佣金 可提现佣金+已提现佣金 model.addAttribute("accumulatedCommission",BigDecimal.ZERO); model.addAttribute("accumulatedCommission",bigDecimal.add(driver.getCommission())); // commissionResp.setAccumulatedCommission(BigDecimal.ZERO); } management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
@@ -75,9 +75,15 @@ TOrder tOrder = orderService.selectOne(new EntityWrapper<TOrder>() .eq("userId", tAppUser.getId()) .last("LIMIT 1")); // 客户一个月未下单,状态异常 Period period = Period.between(DateUtil.dateToLocalDate(tOrder.getCreateTime()), LocalDate.now()); int day = Math.abs(period.getDays()); int day; if(Objects.nonNull(tOrder)){ // 客户一个月未下单,状态异常 Period period = Period.between(DateUtil.dateToLocalDate(tOrder.getCreateTime()), LocalDate.now()); day = Math.abs(period.getDays()); }else { Period period = Period.between(DateUtil.dateToLocalDate(tAppUser.getCreateTime()), LocalDate.now()); day = Math.abs(period.getDays()); } if(day > 29){ tAppUser.setIsException(2); } management/guns-admin/src/main/resources/application.yml
@@ -29,13 +29,6 @@ multipart: max-request-size: 100MB max-file-size: 100MB redis: #测试环境 host: 127.0.0.1 port: 6379 timeout: 5000 database: 10 mybatis-plus: type-aliases-package: com.stylefeng.guns.modular.system.model global-config: management/guns-admin/src/main/resources/redis.properties
@@ -2,18 +2,18 @@ # RedisÊý¾Ý¿âË÷Òý£¨Ä¬ÈÏΪ0£© spring.redis.database=0 ## Redis·þÎñÆ÷µØÖ· #spring.redis.host=127.0.0.1 ### Redis·þÎñÆ÷Á¬½Ó¶Ë¿Ú #spring.redis.port=16379 ### Redis·þÎñÆ÷Á¬½ÓÃÜÂ루ĬÈÏΪ¿Õ£© #spring.redis.password=cKsEeyffDXG5PzNg8CIbrWxFluXrCprZ spring.redis.host=127.0.0.1 ## Redis·þÎñÆ÷Á¬½Ó¶Ë¿Ú spring.redis.port=16379 ## Redis·þÎñÆ÷Á¬½ÓÃÜÂ루ĬÈÏΪ¿Õ£© spring.redis.password=cKsEeyffDXG5PzNg8CIbrWxFluXrCprZ ## Redis·þÎñÆ÷µØÖ· spring.redis.host=127.0.0.1 # Redis·þÎñÆ÷Á¬½Ó¶Ë¿Ú spring.redis.port=6379 # Redis·þÎñÆ÷Á¬½ÓÃÜÂ루ĬÈÏΪ¿Õ£© spring.redis.password=123456 #spring.redis.host=127.0.0.1 ## Redis·þÎñÆ÷Á¬½Ó¶Ë¿Ú #spring.redis.port=6379 ## Redis·þÎñÆ÷Á¬½ÓÃÜÂ루ĬÈÏΪ¿Õ£© #spring.redis.password=123456 # Á¬½Ó³Ø×î´óÁ¬½ÓÊý£¨Ê¹ÓøºÖµ±íʾûÓÐÏÞÖÆ£© spring.redis.jedis.pool.max-active=1024 management/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemConfig/tSystemConfigCommissionShareRules.html
@@ -25,27 +25,27 @@ <div class="initialLevel col-sm-12 control-label form-group" style="text-align: left" > <div class="initialLevel col-sm-12 control-label form-group" > <span class="control-label" >司机A邀请1名司机B,完成有效单后获得</span> <input class="control-label" id="num2" name="num2" value="${num2}" type="text" min="0" style="height: 30px;width: 80px"> <input class="control-label" id="num1" name="num1" value="${num1}" type="text" min="0" style="height: 30px;width: 80px"> <span class="control-label" >元/单</span> </div> </div> <div class="initialLevel col-sm-12 control-label form-group" style="text-align: left" > <div class="initialLevel col-sm-12 control-label form-group" > <span class="control-label" >司机B邀请1名司机C,完成有效单后B获得</span> <input class="control-label" id="num3" name="num3" value="${num3}" type="text" min="0" style="height: 30px;width: 80px"> <input class="control-label" id="num2" name="num2" value="${num2}" type="text" min="0" style="height: 30px;width: 80px"> <span class="control-label" >元/单 司机A获得</span> <input class="control-label" id="num4" name="num4" value="${num4}" type="text" min="0" style="height: 30px;width: 80px"> <input class="control-label" id="num3" name="num3" value="${num3}" type="text" min="0" style="height: 30px;width: 80px"> <span class="control-label" >元/单</span> </div> </div> <div class="initialLevel col-sm-12 control-label form-group" style="text-align: left" > <div class="initialLevel col-sm-12 control-label form-group" > <span class="control-label" >司机C邀请1名司机D,完成有效单后C获得</span> <input class="control-label" id="num5" name="num5" value="${num5}" type="text" min="0" style="height: 30px;width: 80px"> <input class="control-label" id="num4" name="num4" value="${num4}" type="text" min="0" style="height: 30px;width: 80px"> <span class="control-label" >元/单 司机B获得</span> <input class="control-label" id="num6" name="num6" value="${num6}" type="text" min="0" style="height: 30px;width: 80px"> <input class="control-label" id="num5" name="num5" value="${num5}" type="text" min="0" style="height: 30px;width: 80px"> <span class="control-label" >元/单 司机A获得</span> <input class="control-label" id="num7" name="num7" value="${num7}" type="text" min="0" style="height: 30px;width: 80px"> <input class="control-label" id="num6" name="num6" value="${num6}" type="text" min="0" style="height: 30px;width: 80px"> <span class="control-label" >元/单</span> </div> </div> @@ -87,10 +87,6 @@ regexp(value) }) $("input[name=num6]").mouseleave('input',function(){ var value = $(this).val() regexp(value) }) $("input[name=num7]").mouseleave(function(){ var value = $(this).val() regexp(value) }) management/guns-admin/src/main/webapp/static/modular/system/tSystemConfig/tSystemConfig.js
@@ -120,7 +120,6 @@ reqData['num4'] = $("#num4").val(); reqData['num5'] = $("#num5").val(); reqData['num6'] = $("#num6").val(); reqData['num7'] = $("#num7").val(); console.log(JSON.stringify(reqData)) ajax.set("content",JSON.stringify(reqData)); ajax.set("type",2); @@ -295,7 +294,6 @@ }; TSystemConfig.openOrClose = function () { console.log(111111111111) var ajax = new $ax(Feng.ctxPath + "/tSystemConfig/openOrClose", function (data) { Feng.success("修改成功!"); TSystemConfig.table.refresh();