diff --git a/src/main/java/com/sqx/modules/artificer/entity/MassageType.java b/src/main/java/com/sqx/modules/artificer/entity/MassageType.java index 977b123..e974650 100644 --- a/src/main/java/com/sqx/modules/artificer/entity/MassageType.java +++ b/src/main/java/com/sqx/modules/artificer/entity/MassageType.java @@ -125,6 +125,11 @@ public class MassageType implements Serializable { private Integer qyMinNum;//企业预约最小次数 + /** + * 是否推荐0否1是 + */ + private Integer isTj; + @TableField(exist = false) private String ids; diff --git a/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerTimeServiceImpl.java b/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerTimeServiceImpl.java index 2a67a9d..d7c30e4 100644 --- a/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerTimeServiceImpl.java +++ b/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerTimeServiceImpl.java @@ -71,17 +71,13 @@ public class ArtificerTimeServiceImpl extends ServiceImpl() - .eq("artificer_id", artificerId) - .eq("artificer_date", artificerDate)); + .eq("artificer_id", artificerId)); if(ati!=null){ map.put("startTime", ati.getStartTime()); map.put("endTime", ati.getEndTime()); }else{ - map.put("startTime", artificerDate+" 00:00:00"); - Date endDate = DateUtils.stringToDate(artificerDate,DateUtils.DATE_PATTERN); - endDate = DateUtils.addDateDays(endDate,1); - String endDateStr = DateUtils.format(endDate,DateUtils.DATE_PATTERN); - map.put("endTime", endDateStr+" 00:00:00"); + map.put("startTime", "00:00:00"); + map.put("endTime", "23:30:00"); } List artificerTimes = baseMapper.selectList(new QueryWrapper() .eq("artificer_id", artificerId) @@ -134,14 +130,12 @@ public class ArtificerTimeServiceImpl extends ServiceImpl(); qwi.eq("artificer_id", artificer.getArtificerId()); - qwi.eq("artificer_date", startDay); artificerTimeIdelDao.delete(qwi); ArtificerTimeIdel ati = new ArtificerTimeIdel(); ati.setArtificerId(artificer.getArtificerId()); - ati.setArtificerDate(startDay); - ati.setStartTime(idelTimes[0]); - ati.setEndTime(idelTimes[1]); + ati.setStartTime(startTime); + ati.setEndTime(endTime); ati.setCreateTime(DateUtils.format(new Date())); artificerTimeIdelDao.insert(ati); @@ -189,7 +183,7 @@ public class ArtificerTimeServiceImpl extends ServiceImpl { int updateCoupon(MassagePackage massagePackage); int updateVip(MassagePackage massagePackage); int updateNewer(MassagePackage massagePackage); + int updateTj(MassagePackage massagePackage); int updateStatus(MassagePackage massagePackage); int updatePrice(MassagePackage massagePackage); int delete(MassagePackage massagePackage); diff --git a/src/main/java/com/sqx/modules/bl/massage/entity/MassagePackage.java b/src/main/java/com/sqx/modules/bl/massage/entity/MassagePackage.java index 876a01b..c63641b 100644 --- a/src/main/java/com/sqx/modules/bl/massage/entity/MassagePackage.java +++ b/src/main/java/com/sqx/modules/bl/massage/entity/MassagePackage.java @@ -161,6 +161,11 @@ public class MassagePackage implements Serializable { */ private Integer isNewer; + /** + * 是否推荐0否1是 + */ + private Integer isTj; + /** * 服务次数 */ diff --git a/src/main/java/com/sqx/modules/bl/massage/service/MassagePackageService.java b/src/main/java/com/sqx/modules/bl/massage/service/MassagePackageService.java index 22dd7f3..c4cedfc 100644 --- a/src/main/java/com/sqx/modules/bl/massage/service/MassagePackageService.java +++ b/src/main/java/com/sqx/modules/bl/massage/service/MassagePackageService.java @@ -12,6 +12,7 @@ public interface MassagePackageService extends IService { int updateCoupon(MassagePackage massagePackage); int updateVip(MassagePackage massagePackage); int updateNewer(MassagePackage massagePackage); + int updateTj(MassagePackage massagePackage); int updateStatus(MassagePackage massagePackage); int updatePrice(MassagePackage massagePackage); int delete(MassagePackage massagePackage); diff --git a/src/main/java/com/sqx/modules/bl/massage/service/impl/MassagePackageServiceImpl.java b/src/main/java/com/sqx/modules/bl/massage/service/impl/MassagePackageServiceImpl.java index 764d0a3..d6aa078 100644 --- a/src/main/java/com/sqx/modules/bl/massage/service/impl/MassagePackageServiceImpl.java +++ b/src/main/java/com/sqx/modules/bl/massage/service/impl/MassagePackageServiceImpl.java @@ -81,6 +81,10 @@ public class MassagePackageServiceImpl extends ServiceImpl response = wxpay.refund(data); diff --git a/src/main/java/com/sqx/modules/shipinquan/content/BlShipinquanController.java b/src/main/java/com/sqx/modules/shipinquan/content/BlShipinquanController.java index 2223a1c..2b32c8c 100644 --- a/src/main/java/com/sqx/modules/shipinquan/content/BlShipinquanController.java +++ b/src/main/java/com/sqx/modules/shipinquan/content/BlShipinquanController.java @@ -1,22 +1,16 @@ package com.sqx.modules.shipinquan.content; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.sqx.common.utils.Result; import com.sqx.modules.shipinquan.entity.BlShipinquan; import com.sqx.modules.shipinquan.service.BlShipinquanService; -import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; - import java.util.Date; - @RestController @RequestMapping("/bl/shipinquan") public class BlShipinquanController { @@ -28,10 +22,7 @@ public class BlShipinquanController { @GetMapping("/list") @ApiOperation("获取数据列表") public Result list(BlShipinquan entity, Integer page, Integer limit){ - QueryWrapper qw = new QueryWrapper<>(); - qw.orderByDesc("create_time"); - IPage pageList = service.page(new Page<>(page,limit),qw); - return Result.success().put("data",pageList); + return service.findPage(page,limit,entity); } @PostMapping("/add") @@ -57,4 +48,12 @@ public class BlShipinquanController { return Result.success(); } + @PostMapping("/approve") + @ApiOperation("审批") + public Result approve(BlShipinquan BlShipinquan){ + service.approve(BlShipinquan); + return Result.success(); + } + + } diff --git a/src/main/java/com/sqx/modules/shipinquan/content/app/AppShipinquanController.java b/src/main/java/com/sqx/modules/shipinquan/content/app/AppShipinquanController.java index f9ac5b8..db0dc7b 100644 --- a/src/main/java/com/sqx/modules/shipinquan/content/app/AppShipinquanController.java +++ b/src/main/java/com/sqx/modules/shipinquan/content/app/AppShipinquanController.java @@ -38,7 +38,7 @@ public class AppShipinquanController { @GetMapping("/list") @ApiOperation("获取视频数据列表") - public Result list(Integer page, Integer limit, Long createBy,String userId,String gzrId,String longitude,String latitude){ + public Result list(Integer page, Integer limit, Long createBy,String userId,String gzrId,String longitude,String latitude,String status){ if(page==null){ page=1; limit=10; @@ -49,6 +49,7 @@ public class AppShipinquanController { entity.setLongitude(longitude); entity.setLatitude(latitude); entity.setGzrId(gzrId); + entity.setStatus(status); return service.findPage(page,limit,entity); } diff --git a/src/main/java/com/sqx/modules/shipinquan/dao/BlShipinquanDao.java b/src/main/java/com/sqx/modules/shipinquan/dao/BlShipinquanDao.java index 1bf7b3f..7c47212 100644 --- a/src/main/java/com/sqx/modules/shipinquan/dao/BlShipinquanDao.java +++ b/src/main/java/com/sqx/modules/shipinquan/dao/BlShipinquanDao.java @@ -11,4 +11,5 @@ import org.apache.ibatis.annotations.Param; @Mapper public interface BlShipinquanDao extends BaseMapper { IPage findPage(Page page, @Param("params") BlShipinquan entity); + int approve(BlShipinquan entity); } \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/shipinquan/entity/BlShipinquan.java b/src/main/java/com/sqx/modules/shipinquan/entity/BlShipinquan.java index a2efd42..8142dbc 100644 --- a/src/main/java/com/sqx/modules/shipinquan/entity/BlShipinquan.java +++ b/src/main/java/com/sqx/modules/shipinquan/entity/BlShipinquan.java @@ -19,8 +19,8 @@ public class BlShipinquan implements Serializable { @TableId(type = IdType.AUTO) private Long id; - @DateTimeFormat(pattern = "yyyy-MM-dd") - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createTime;//创建实践 private Long createBy;//创建人 private String content;//发布内容 @@ -29,6 +29,16 @@ public class BlShipinquan implements Serializable { private int dzs;//点赞数 private int pls;//评论数 private int type;//类型(0视频,1图片目前都是视频,预留) + private String status;//审批,0待审批 1通过 2拒绝 + private String opinion;//审批意见 + /** + *审批时间 + */ + private String approveTime; + /** + *审批人 + */ + private Long approveUser; @TableField(exist = false) private String artificerImg; diff --git a/src/main/java/com/sqx/modules/shipinquan/service/BlShipinquanService.java b/src/main/java/com/sqx/modules/shipinquan/service/BlShipinquanService.java index d66e38d..baf5a12 100644 --- a/src/main/java/com/sqx/modules/shipinquan/service/BlShipinquanService.java +++ b/src/main/java/com/sqx/modules/shipinquan/service/BlShipinquanService.java @@ -6,4 +6,5 @@ import com.sqx.modules.shipinquan.entity.BlShipinquan; public interface BlShipinquanService extends IService { Result findPage(Integer page, Integer limit, BlShipinquan entity); + int approve(BlShipinquan entity); } \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/shipinquan/service/impl/BlShipinquanServiceImpl.java b/src/main/java/com/sqx/modules/shipinquan/service/impl/BlShipinquanServiceImpl.java index eefb06b..5d502e7 100644 --- a/src/main/java/com/sqx/modules/shipinquan/service/impl/BlShipinquanServiceImpl.java +++ b/src/main/java/com/sqx/modules/shipinquan/service/impl/BlShipinquanServiceImpl.java @@ -7,8 +7,13 @@ import com.sqx.common.utils.Result; import com.sqx.modules.shipinquan.dao.BlShipinquanDao; import com.sqx.modules.shipinquan.entity.BlShipinquan; import com.sqx.modules.shipinquan.service.BlShipinquanService; +import com.sqx.modules.sys.entity.SysUserEntity; +import org.apache.shiro.SecurityUtils; import org.springframework.stereotype.Service; +import java.text.SimpleDateFormat; +import java.util.Date; + @Service public class BlShipinquanServiceImpl extends ServiceImpl implements BlShipinquanService { @Override @@ -16,4 +21,12 @@ public class BlShipinquanServiceImpl extends ServiceImpl pages=new Page<>(page,limit); return Result.success().put("data",new PageUtils(baseMapper.findPage(pages,entity))); } + + @Override + public int approve(BlShipinquan entity){ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + entity.setApproveTime(sdf.format(new Date())); + entity.setApproveUser(((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUserId()); + return baseMapper.approve(entity); + } } \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/task/service/impl/AllTaskServiceImpl.java b/src/main/java/com/sqx/modules/task/service/impl/AllTaskServiceImpl.java index 21ce353..d13e6c2 100644 --- a/src/main/java/com/sqx/modules/task/service/impl/AllTaskServiceImpl.java +++ b/src/main/java/com/sqx/modules/task/service/impl/AllTaskServiceImpl.java @@ -6,13 +6,8 @@ import com.sqx.modules.app.entity.UserMoney; import com.sqx.modules.app.entity.UserSadDetails; import com.sqx.modules.app.service.UserMoneyService; import com.sqx.modules.app.service.UserSadDetailsService; -import com.sqx.modules.artificer.dao.ArtificerDao; -import com.sqx.modules.artificer.dao.BlArtificerZqhzDao; -import com.sqx.modules.artificer.dao.OrdersDao; -import com.sqx.modules.artificer.dao.UserRechargeDao; -import com.sqx.modules.artificer.entity.Artificer; -import com.sqx.modules.artificer.entity.BlArtificerZqhz; -import com.sqx.modules.artificer.entity.UserRecharge; +import com.sqx.modules.artificer.dao.*; +import com.sqx.modules.artificer.entity.*; import com.sqx.modules.bl.artificer.dao.ArtificerIntegralStatisticsDao; import com.sqx.modules.bl.artificer.dao.ArtificerPartitioningDetailsDao; import com.sqx.modules.bl.artificer.entity.ArtificerIntegralStatistics; @@ -32,10 +27,8 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; @Service public class AllTaskServiceImpl implements AllTaskSercice { @@ -70,6 +63,10 @@ public class AllTaskServiceImpl implements AllTaskSercice { private UserMoneyService userMoneyService; @Autowired private ArtificerIntegralStatisticsDao artificerIntegralStatisticsDao; + @Autowired + private ArtificerTimeDao artificerTimeDao; + @Autowired + private ArtificerTimeIdelDao artificerTimeIdelDao; /** * 计算技师升级规则 每天半夜1点执行,预留12点到01点之间的计算间隔,用于触发其他计算逻辑 @@ -406,4 +403,90 @@ public class AllTaskServiceImpl implements AllTaskSercice { blSadJobService.updateById(par); } } + + //技师每天闲时配置 + @Scheduled(cron = "10 00 0 * * ?") + public void setArtificerTime() { + String curDate = DateUtils.format(new Date(),DateUtils.DATE_PATTERN); + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.apply("id in ( select max(id) from artificer_time_idel b group by artificer_id )"); + List artificerTimeIdelList = artificerTimeIdelDao.selectList(queryWrapper); + for(int i=0;i dateMap = getIdelMap(curDate+" "+startTime,curDate+" "+endTime); + Map busyMap = getBusyMap(dateMap); + for (String key : busyMap.keySet()) { + List busyTimeList = busyMap.get(key); + for(String time : busyTimeList){ + Integer counts = artificerTimeDao.selectCount(new QueryWrapper().eq("artificer_date", key).eq("artificer_id", artificerId).eq("artificer_time", time)); + if(counts==0){ + ArtificerTime artificerTime=new ArtificerTime(); + artificerTime.setArtificerDate(key); + artificerTime.setArtificerTime(time); + artificerTime.setArtificerId(artificerId); + artificerTime.setClassify(2); + artificerTime.setCreateTime(DateUtils.format(new Date())); + artificerTimeDao.insert(artificerTime); + } + } + } + } + } + + private Map getIdelMap(String startDateStr, String endDateStr){ + Map map = new HashMap(); + Date startDate = DateUtils.stringToDate(startDateStr,"yyyy-MM-dd HH:mm"); + Date endDate = DateUtils.stringToDate(endDateStr,"yyyy-MM-dd HH:mm"); + Date current = startDate; + while(current.getTime()<=endDate.getTime()){ + String day = DateUtils.format(current,"yyyy-MM-dd"); + String time = DateUtils.format(current,"HH:mm"); + if(map.get(day)!=null){ + List timeList = map.get(day); + timeList.add(time); + }else{ + List timeList = new ArrayList<>(); + timeList.add(time); + map.put(day,timeList); + } + current = DateUtils.addDateMinutes(current,30); + } + return map; + } + + private Map getBusyMap(Map dateMap){ + Map map = new HashMap(); + for (String key : dateMap.keySet()) { + List timeList = dateMap.get(key); + Map allTimes = getTimeMap(); + for(int i=0; i < timeList.size();i++){ + String time = timeList.get(i); + if(allTimes.get(time)!=null){ + allTimes.remove(time); + } + } + List keyList = allTimes.keySet().stream().collect(Collectors.toList()); + Collections.sort(keyList); + map.put(key,keyList); + } + return map; + } + + private Map getTimeMap(){ + Map map = new HashMap(); + for(int i=0;i<24;i++){ + String s = ""; + if(i<10){ + s = "0"+i+":"; + }else{ + s = i+":"; + } + map.put(s+"00",s+"00"); + map.put(s+"30",s+"30"); + } + return map; + } } diff --git a/src/main/java/com/sqx/modules/utils/WXConfigUtil.java b/src/main/java/com/sqx/modules/utils/WXConfigUtil.java index 497d1ee..df3aa1e 100644 --- a/src/main/java/com/sqx/modules/utils/WXConfigUtil.java +++ b/src/main/java/com/sqx/modules/utils/WXConfigUtil.java @@ -18,61 +18,33 @@ public class WXConfigUtil implements WXPayConfig { private String appId = ""; private String key = ""; private String mchId = ""; - - //初始化加载证书 public WXConfigUtil() throws Exception { - /*int byteread = 0; - int bytesum = 0; - URL url = new URL("windine.blogdriver.com/logo.gif"); - *//*String certPath = ClassUtils.getDefaultClassLoader().getResource("").getPath()+"/weixin/apiclient_cert.p12";//从微信商户平台下载的安全证书存放的路径*//* - URLConnection conn = url.openConnection(); - InputStream inStream = conn.getInputStream(); - FileOutputStream fs = new FileOutputStream(" /www/wwwroot/"+profileHttpUrl+"/file/uploadPath"); - byte[] buffer = new byte[1204]; - int length; - while ((byteread = inStream.read(buffer)) != -1) { - bytesum += byteread; - fs.write(buffer, 0, byteread); - }*/ ClassPathResource classPathResource = new ClassPathResource("weixin/apiclient_cert.p12"); InputStream certStream = classPathResource.getInputStream(); this.certData = IOUtils.toByteArray(certStream); certStream.read(this.certData); certStream.close(); -// File file = new File(" "); - /*InputStream certStream = new FileInputStream(file); - this.certData = new byte[(int) file.length()]; - certStream.read(this.certData); - certStream.close();*/ } - - @Override public String getAppID() { return this.appId; } - @Override public String getMchID() { return this.mchId; } - @Override public InputStream getCertStream() { ByteArrayInputStream certBis = new ByteArrayInputStream(this.certData); return certBis; } - @Override public int getHttpConnectTimeoutMs() { return 8000; } - @Override public int getHttpReadTimeoutMs() { return 10000; } - - } diff --git a/src/main/resources/mapper/bl/massage/MassagePackageDao.xml b/src/main/resources/mapper/bl/massage/MassagePackageDao.xml index 460c895..50a444a 100644 --- a/src/main/resources/mapper/bl/massage/MassagePackageDao.xml +++ b/src/main/resources/mapper/bl/massage/MassagePackageDao.xml @@ -53,6 +53,10 @@ update bl_massage_package set is_newer=#{isNewer} where id=#{id} + + update bl_massage_package set is_tj=#{isTj} where id=#{id} + + update bl_massage_package set status=#{status} where id=#{id} @@ -90,6 +94,9 @@ and a.type = #{params.type} + + and a.is_tj = #{params.isTj} + union all select massage_type_id as id,title,classify_id as type,b.value as type_name,old_price,price,massage_img,jianjie,content_img,add_num,sales,labels,'项目' as flag,1 as is_can_coupon,1 as is_can_vip, 1 as service_count, 0 as level @@ -109,6 +116,9 @@ and a.massage_type_id = 0 + + and a.is_tj = #{params.isTj} + order by sales desc,id asc diff --git a/src/main/resources/mapper/shipinquan/ShipinquanDao.xml b/src/main/resources/mapper/shipinquan/ShipinquanDao.xml index 821adbf..1d4ba6a 100644 --- a/src/main/resources/mapper/shipinquan/ShipinquanDao.xml +++ b/src/main/resources/mapper/shipinquan/ShipinquanDao.xml @@ -30,6 +30,8 @@ a.pls, a.type, a.pic_path, + a.status, + a.opinion, b.artificer_id as create_by, b.artificer_name as artificer_name, b.artificer_img AS artificerImg, @@ -43,6 +45,12 @@ and a.create_by = #{params.createBy} + + and a.status = #{params.status} + + + and b.artificer_name like concat('%',#{params.artificerName},'%') + order by (st_distance (point (b.longitude, b.latitude),point(#{params.longitude},#{params.longitude}) ) *111195) asc,a.create_time desc @@ -52,4 +60,13 @@ + + update bl_shipinquan + set status=#{status}, + opinion=#{opinion}, + approve_time=#{approveTime}, + approve_user=#{approveUser} + where id=#{id} + + \ No newline at end of file diff --git a/src/main/resources/weixin/apiclient_cert.p12 b/src/main/resources/weixin/apiclient_cert.p12 index eaeb5db..38131ce 100644 Binary files a/src/main/resources/weixin/apiclient_cert.p12 and b/src/main/resources/weixin/apiclient_cert.p12 differ