| | |
| | | } |
| | | |
| | | |
| | | @PostConstruct |
| | | void started() { |
| | | TimeZone.setDefault(TimeZone.getTimeZone("GMT+0")); |
| | | } |
| | | // @PostConstruct |
| | | // void started() { |
| | | // TimeZone.setDefault(TimeZone.getTimeZone("GMT+0")); |
| | | // } |
| | | |
| | | |
| | | |
| | |
| | | public String receiveRecord(Model model,Integer activityId){ |
| | | model.addAttribute("activityId",activityId); |
| | | DriverActivity driverActivity = driverActivityService.selectById(activityId); |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | model.addAttribute("startTime", sdf.format(driverActivity.getStartTime())); |
| | | model.addAttribute("endTime", sdf.format(driverActivity.getEndTime())); |
| | | DriverActivityRegistered driverActivityRegistered = driverActivityRegisteredService.selectOne(new EntityWrapper<DriverActivityRegistered>().eq("driverActivityId",activityId).eq("type",1)); |
| | |
| | | TAdvertisementUser tAdvertisementUser = itAdvertisementUserService.selectById(id); |
| | | TAdvertisement tAdvertisement = tAdvertisementService.selectById(tAdvertisementUser.getAdvertisementId()); |
| | | // 司机所有 TODO |
| | | if("[]".equals(tAdvertisementUser.getDriverId())){ |
| | | if(ToolUtil.isNotEmpty(tAdvertisementUser.getDriverId()) && "[]".equals(tAdvertisementUser.getDriverId())){ |
| | | System.out.println(1111111111); |
| | | List<TDriver> list = driverService.selectList(null); |
| | | for (TDriver tDriver : list) { |
| | |
| | | } |
| | | } |
| | | } |
| | | }else { |
| | | }else if(ToolUtil.isNotEmpty(tAdvertisementUser.getDriverId())) { |
| | | JSONArray driverId = JSON.parseArray(tAdvertisementUser.getDriverId()); |
| | | for(int j=0;j<driverId.size();j++){ |
| | | TDriver tDriver = driverService.selectById(driverId.getJSONObject(j).getInteger("userId")); |
| | |
| | | } |
| | | } |
| | | // 用户所有 |
| | | if("[]".equals(tAdvertisementUser.getUserId())){ |
| | | if(ToolUtil.isNotEmpty(tAdvertisementUser.getUserId()) && "[]".equals(tAdvertisementUser.getUserId())){ |
| | | List<TUser> users = userService.selectList(null); |
| | | for (TUser user : users) { |
| | | String email = user.getEmail(); |
| | |
| | | } |
| | | } |
| | | } |
| | | }else { |
| | | }else if(ToolUtil.isNotEmpty(tAdvertisementUser.getUserId())) { |
| | | JSONArray driverId = JSON.parseArray(tAdvertisementUser.getUserId()); |
| | | for(int j=0;j<driverId.size();j++){ |
| | | TUser tUser = userService.selectById(driverId.getJSONObject(j).getInteger("userId")); |
| | |
| | | return ResultUtil.error(results.getStatusDescription()); |
| | | } |
| | | tPubWithdrawal.setSerialNo(results.getBeepTransactionID()); |
| | | tPubWithdrawal.setState(4); |
| | | }else{//回退金额 |
| | | tPubWithdrawal.setHandleTime(new Date()); |
| | | tPubWithdrawal.setState(state); |
| | |
| | | <select id="getUserDetailById" resultType="java.util.Map"> |
| | | SELECT DATE_FORMAT(ui.insertTime,'%Y-%m-%d %H:%i') as insertTimeStr,ci.`name` as companyName, |
| | | case when ui.isAuth = 1 then '否' else '是' end as isAuthStr, |
| | | IFNULL(0,0) as zcNum, |
| | | IFNULL(op.num,0) as zcNum, |
| | | IFNULL(ot.num,0) as czNum, |
| | | IFNULL(0,0) as kcNum, |
| | | IFNULL(0,0) as wlNum, |
| | | IFNULL(ol.num,0) as wlNum, |
| | | IFNULL(td.num,0) as consumptionNum, |
| | | IFNULL(ui.balance,0) as balanceStr, |
| | | ui.* from t_user as ui |
| | | LEFT JOIN (select * from t_company where flag != 3) as ci on ci.id = ui.companyId |
| | | LEFT JOIN (SELECT sum(money) as num,userId from t_pub_transaction_details where userType = 1 and type = 1 and state = 2 GROUP BY userId) as td on td.userId = ui.id |
| | | LEFT JOIN (SELECT COUNT(id) as num,userId from t_order_private_car where FIND_IN_SET(state,'8,9') GROUP BY userId) as op on op.userId = ui.id |
| | | LEFT JOIN (SELECT COUNT(id) as num,userId from t_order_taxi where FIND_IN_SET(state,'8,9') GROUP BY userId) as ot on ot.userId = ui.id |
| | | LEFT JOIN (SELECT COUNT(id) as num,userId from t_order_logistics where FIND_IN_SET(state,'9') GROUP BY userId) as ol on ol.userId = ui.id |
| | | where ui.id = #{userId} |
| | | </select> |
| | | |
| | |
| | | select |
| | | concat('user_',id) as id, |
| | | phone as phone, |
| | | IFNULL(name,nickName) as name, |
| | | IFNULL(CONCAT(firstName, lastName),nickName) as name, |
| | | 1 as uType, |
| | | insertTime as insertTime |
| | | from t_user |
| | |
| | | select |
| | | concat('driver_',id) as id, |
| | | phone as phone, |
| | | name as name, |
| | | CONCAT(firstName, lastName) as name, |
| | | 2 as uType, |
| | | insertTime as insertTime |
| | | from |
| | |
| | | a.startTime as startTime, |
| | | a.endTime as endTime, |
| | | a.remark as remark, |
| | | a.`status` as `status`, |
| | | IF(a.`status` != 3, a.`status`, IF(NOW() < a.startTime, 5, if(now() >= a.startTime and now() < a.endTime, 6, 7))) as `status`, |
| | | ( |
| | | (select count(aa.id) from t_user_red_packet_record aa left join t_user_activity_redenvelope bb on (aa.redPacketActivityId = bb.id) where aa.state = 2 and bb.userActivityId = a.id) + |
| | | (select count(aa.id) from t_user_coupon_record aa left join t_user_activity_registered bb on (aa.couponActivityId = bb.id and aa.activityType = 2) where aa.state = 2 and bb.userActivityId = a.id) + |
| | |
| | | import com.baomidou.mybatisplus.service.IService; |
| | | import org.apache.poi.hssf.usermodel.HSSFWorkbook; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | |
| | | * 发送活动提醒邮件 |
| | | */ |
| | | void sendActivityEmail(); |
| | | |
| | | void sendEmail(List<UserActivityDiscount1> list)throws Exception; |
| | | } |
| | |
| | | for (Map<String, Object> stringObjectMap : advertisementList1) { |
| | | Integer id = (Integer)stringObjectMap.get("id"); |
| | | TAdvertisementUser tAdvertisementUser = tAdvertisementUserMapper.selectTAdvertisementInform(id); |
| | | if("[]".equals(tAdvertisementUser.getDriverId()) && "[]".equals(tAdvertisementUser.getUserId())){ |
| | | if(ToolUtil.isNotEmpty(tAdvertisementUser.getDriverId()) && ToolUtil.isNotEmpty(tAdvertisementUser.getUserId()) && "[]".equals(tAdvertisementUser.getDriverId()) && "[]".equals(tAdvertisementUser.getUserId())){ |
| | | // all |
| | | stringObjectMap.put("sendUser",1); |
| | | }else if("[]".equals(tAdvertisementUser.getDriverId()) && !"[]".equals(tAdvertisementUser.getUserId())){ |
| | | }else if(ToolUtil.isNotEmpty(tAdvertisementUser.getDriverId()) && ToolUtil.isNotEmpty(tAdvertisementUser.getUserId()) && "[]".equals(tAdvertisementUser.getDriverId()) && !"[]".equals(tAdvertisementUser.getUserId())){ |
| | | // driver |
| | | stringObjectMap.put("sendUser",2); |
| | | }else if(!"[]".equals(tAdvertisementUser.getDriverId()) && "[]".equals(tAdvertisementUser.getUserId())){ |
| | | }else if(ToolUtil.isNotEmpty(tAdvertisementUser.getDriverId()) && ToolUtil.isNotEmpty(tAdvertisementUser.getUserId()) && !"[]".equals(tAdvertisementUser.getDriverId()) && "[]".equals(tAdvertisementUser.getUserId())){ |
| | | stringObjectMap.put("sendUser",3); |
| | | }else if(!"[]".equals(tAdvertisementUser.getDriverId()) && !"[]".equals(tAdvertisementUser.getUserId())){ |
| | | }else if(ToolUtil.isNotEmpty(tAdvertisementUser.getDriverId()) && ToolUtil.isNotEmpty(tAdvertisementUser.getUserId()) && !"[]".equals(tAdvertisementUser.getDriverId()) && !"[]".equals(tAdvertisementUser.getUserId())){ |
| | | stringObjectMap.put("sendUser",4); |
| | | }else if(ToolUtil.isEmpty(tAdvertisementUser.getDriverId()) && ToolUtil.isNotEmpty(tAdvertisementUser.getUserId()) && "[]".equals(tAdvertisementUser.getUserId())){ |
| | | stringObjectMap.put("sendUser",5); |
| | | }else if(ToolUtil.isEmpty(tAdvertisementUser.getDriverId()) && ToolUtil.isNotEmpty(tAdvertisementUser.getUserId()) && !"[]".equals(tAdvertisementUser.getUserId())){ |
| | | stringObjectMap.put("sendUser",6); |
| | | }else if(ToolUtil.isNotEmpty(tAdvertisementUser.getDriverId()) && ToolUtil.isEmpty(tAdvertisementUser.getUserId()) && "[]".equals(tAdvertisementUser.getDriverId())){ |
| | | stringObjectMap.put("sendUser",7); |
| | | }else if(ToolUtil.isNotEmpty(tAdvertisementUser.getDriverId()) && ToolUtil.isEmpty(tAdvertisementUser.getUserId()) && !"[]".equals(tAdvertisementUser.getDriverId())){ |
| | | stringObjectMap.put("sendUser",8); |
| | | } |
| | | } |
| | | return advertisementList1; |
| | |
| | | @Override |
| | | public void sendActivityEmail() { |
| | | try { |
| | | List<UserActivityDiscount1> lis = this.selectList(new EntityWrapper<UserActivityDiscount1>().eq("enable", 2) |
| | | List<UserActivityDiscount1> list = this.selectList(new EntityWrapper<UserActivityDiscount1>().eq("enable", 2) |
| | | .last(" and now() >= startTime and now() < ADDDATE(startTime,INTERVAL 1 MINUTE)")); |
| | | if(lis.size() > 0){ |
| | | if(list.size() > 0){ |
| | | sendEmail(list); |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | public void sendEmail(List<UserActivityDiscount1> list) throws Exception{ |
| | | List<TUser> tUsers = userService.selectList(new EntityWrapper<TUser>().ne("flag", 3).eq("state", 1)); |
| | | for (UserActivityDiscount1 uad : lis) { |
| | | for (UserActivityDiscount1 uad : list) { |
| | | Map<String, Double> map = new HashMap<>(); |
| | | Double special = uad.getSpecial(); |
| | | if(null != special){ |
| | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | } |
| | | } |
| | |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | } |
| | | } |
| | | //添加打折活动 |
| | | UserActivityDiscount1 userActivityDiscount1 = null; |
| | | if(SinataUtil.isNotEmpty(discountSpecial) && |
| | | /*SinataUtil.isNotEmpty(discountTaxi) &&*/ |
| | | SinataUtil.isNotEmpty(discountLogistics)){ |
| | | UserActivityDiscount1 userActivityDiscount1 = new UserActivityDiscount1(); |
| | | userActivityDiscount1 = new UserActivityDiscount1(); |
| | | userActivityDiscount1.setUserActivityId(userActivity.getId()); |
| | | userActivityDiscount1.setStartTime(startTimes); |
| | | userActivityDiscount1.setEndTime(endTimes); |
| | |
| | | userActivityRedenvelope.setLavePrice(redPrice); |
| | | userActivityRedenvelope.insertOrUpdate(); |
| | | } |
| | | |
| | | if(SinataUtil.isNotEmpty(discountSpecial) && |
| | | /*SinataUtil.isNotEmpty(discountTaxi) &&*/ |
| | | SinataUtil.isNotEmpty(discountLogistics)){ |
| | | UserActivityDiscount1 finalUserActivityDiscount = userActivityDiscount1; |
| | | new Thread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | Date startTime1 = userActivity.getStartTime(); |
| | | Date endTime = userActivity.getEndTime(); |
| | | if(System.currentTimeMillis() >= startTime1.getTime() && System.currentTimeMillis() < endTime.getTime()){ |
| | | List<UserActivityDiscount1> list = new ArrayList(); |
| | | list.add(finalUserActivityDiscount); |
| | | try { |
| | | userActivityDiscount1Service.sendEmail(list); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | | }).start(); |
| | | } |
| | | |
| | | }else{ |
| | | String[] timeArray = startTime.split(" - "); |
| | | Date startTimes = DateUtil.getDate_str3(timeArray[0]); |
| | |
| | | |
| | | |
| | | |
| | | private static TimeZone tz = TimeZone.getTimeZone("GMT+8"); |
| | | private static TimeZone tz = TimeZone.getTimeZone("GMT+0"); |
| | | |
| | | // private static TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai"); |
| | | |
| | |
| | | <option value="1">专车券</option> |
| | | <!--<option value="2">出租车券</option> |
| | | <option value="3">跨城出行券</option>--> |
| | | <option value="0">通用券</option> |
| | | <!--<option value="0">通用券</option>--> |
| | | </#select> |
| | | <#input id="money" name="金额" underline="true" placeholder="最多4位数字"/> |
| | | <div class="form-group" id="fullMoneys" style="display: none"> |
| | |
| | | <label class="col-sm-3 control-label">发送对象:</label> |
| | | <div class="col-sm-9" style="display: flex;align-items: center;"> |
| | | <div class="radio radio-info radio-inline"> |
| | | <input type="radio" id="sendType1" value="1" name="sendType" checked="" > |
| | | <input type="radio" id="sendType1" value="1" name="sendType"> |
| | | <label for="sendType1"> 全部用户 </label> |
| | | </div> |
| | | <div class="radio radio-success radio-inline"> |
| | |
| | | </div> |
| | | <div class="col-sm-9 left:50px" style="display: flex;align-items: center;left: 341px;"> |
| | | <div class="radio radio-info radio-inline"> |
| | | <input type="radio" id="sendType3" value="1" name="sendType1" checked="" > |
| | | <input type="radio" id="sendType3" value="1" name="sendType1"> |
| | | <label for="sendType3"> 全部司机 </label> |
| | | </div> |
| | | <div class="radio radio-success radio-inline"> |
| | |
| | | <div class="row"> |
| | | <div class="col-sm-6"> |
| | | <#label id="zcNum" name="专车" value="${item.zcNum}"/> |
| | | <#label id="czNum" name="出租车" value="${item.czNum}"/> |
| | | <!--<#label id="czNum" name="出租车" value="${item.czNum}"/>--> |
| | | <#label id="consumptionStr" name="历史消费" value="¥${item.consumptionNum}"/> |
| | | <#label id="integral" name="积分" value="${item.integral}"/> |
| | | </div> |
| | | <div class="col-sm-6"> |
| | | <#label id="kcNum" name="跨城出行" value="${item.kcNum}"/> |
| | | <!--<#label id="kcNum" name="跨城出行" value="${item.kcNum}"/>--> |
| | | <#label id="wlNum" name="小件物流" value="${item.wlNum}"/> |
| | | <#label id="balance" name="钱包余额" value="¥${item.balanceStr}"/> |
| | | @if(item.state == 1){ |
| | |
| | | Feng.info("请输入通知标题"); |
| | | return; |
| | | } |
| | | if ("" == editor){ |
| | | Feng.info("请输入发送内容"); |
| | | return; |
| | | } |
| | | var subArr=[]; |
| | | $(".timeClass").each(function () { |
| | | subArr.push({ |
| | |
| | | }) |
| | | }); |
| | | var sendType = $("input[name='sendType']:checked").val(); |
| | | var sendType1 = $("input[name='sendType1']:checked").val(); |
| | | console.log(sendType) |
| | | if(sendType==2 && subArr.length <= 0){ |
| | | if(null == sendType && null == sendType1){ |
| | | Feng.error("请选择发送对象"); |
| | | return; |
| | | } |
| | | if(null != sendType && sendType==2 && subArr.length <= 0){ |
| | | Feng.error("请选择用户"); |
| | | return; |
| | | } |
| | | console.log(subArr) |
| | | console.log(subArr1) |
| | | if(null != sendType1 && sendType1==2 && subArr1.length <= 0){ |
| | | Feng.error("请选择司机"); |
| | | return; |
| | | } |
| | | if(null == sendType){ |
| | | subArr = null; |
| | | } |
| | | if(null == sendType1){ |
| | | subArr1 = null; |
| | | } |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tAdvertisement/addInfo1", function(data){ |
| | | Feng.success("添加成功!"); |
| | |
| | | },function(data){ |
| | | Feng.error("添加失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("userId",JSON.stringify(subArr)) |
| | | ajax.set("driverId",JSON.stringify(subArr1)) |
| | | ajax.set("userId", null == subArr ? '' : JSON.stringify(subArr)) |
| | | ajax.set("driverId", null == subArr1 ? '' : JSON.stringify(subArr1)) |
| | | ajax.set("name",name) |
| | | ajax.set("content",editor) |
| | | ajax.start(); |
| | |
| | | if(data==4){ |
| | | return '部分用户/部分司机' |
| | | } |
| | | if(data==5){ |
| | | return '所有用户' |
| | | } |
| | | if(data==6){ |
| | | return '部分用户' |
| | | } |
| | | if(data==7){ |
| | | return '所有司机' |
| | | } |
| | | if(data==8){ |
| | | return '部分司机' |
| | | } |
| | | } |
| | | }, |
| | | {title: '状态', field: 'status', visible: true, align: 'center', valign: 'middle', |
| | |
| | | btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="已同意" onfocus="TUser.tooltip()">已同意</p>'] |
| | | }else if (row.state == 3){ |
| | | btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="已拒绝" onfocus="TUser.tooltip()">已拒绝</p>'] |
| | | }else if (row.state == 4){ |
| | | btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="待确认转账" onfocus="TUser.tooltip()">待确认转账</p>'] |
| | | } |
| | | } |
| | | return btn; |
| | |
| | | }else if(value==2){ |
| | | return "已驳回"; |
| | | }else if(value==3){ |
| | | if(new Date()<new Date(row.startTime.replace(/-/g,"/"))){ |
| | | return "未开始"; |
| | | }else if(new Date()>new Date(row.endTime.replace(/-/g,"/"))){ |
| | | return "已结束"; |
| | | }else{ |
| | | return "进行中"; |
| | | } |
| | | // if(new Date()<new Date(row.startTime.replace(/-/g,"/"))){ |
| | | // return "未开始"; |
| | | // }else if(new Date()>new Date(row.endTime.replace(/-/g,"/"))){ |
| | | // return "已结束"; |
| | | // }else{ |
| | | // return "进行中"; |
| | | // } |
| | | }else if(value==4){ |
| | | return "已暂停"; |
| | | }else if(value==5){ |
| | | return "未开始"; |
| | | }else if(value==6){ |
| | | return "进行中"; |
| | | }else if(value==7){ |
| | | return "已结束"; |
| | | } |
| | | } |
| | | } |