diff --git a/src/main/java/com/sqx/modules/artificer/controller/app/AppArtificerController.java b/src/main/java/com/sqx/modules/artificer/controller/app/AppArtificerController.java index 2457440..504f5cd 100644 --- a/src/main/java/com/sqx/modules/artificer/controller/app/AppArtificerController.java +++ b/src/main/java/com/sqx/modules/artificer/controller/app/AppArtificerController.java @@ -35,6 +35,7 @@ import com.sqx.modules.utils.LonLatUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.gavaghan.geodesy.Ellipsoid; import org.gavaghan.geodesy.GlobalCoordinates; import org.springframework.beans.factory.annotation.Autowired; @@ -522,4 +523,63 @@ public class AppArtificerController { } + /** + * 技师首页获取当期订单,加钟订单,充值订单 + * @param userId 技师id + * @param page 第几页 + * @param limit 每页几条 + * @param orderType 类型 1当期 2加钟 3充值 + * @param isSfwc 0不包含 1包含 空为全部 + * @param startTime 开始时间 + * @param endTime 结束时间 + * @return + */ + @ApiOperation("技师首页获取当期订单,加钟订单,充值订单") + @GetMapping("/getOrderTypeList") + public Result getOrderTypeList(Long userId,Integer page, Integer limit,Integer orderType,Integer isSfwc,String startTime,String endTime){ + if(page == null){ + page = 0; + } + if(limit == null){ + limit = 10; + } + if(StringUtils.isNotEmpty(endTime)){ + endTime = endTime+" 23:59:59"; + }else{ + return Result.error("结束时间不能为空"); + } + return artificerService.getOrderTypeList(userId,page,limit,orderType,isSfwc,startTime,endTime); + } + + /** + * 技师确认接单 + * @param ordersId 订单id + * @return + */ + @ApiOperation("技师确认接单") + @GetMapping("/jishiQueren") + public Result jishiQueren(Long ordersId){ + Result result = ordersService.jishiQueren(ordersId); + return result; + } + + + /** + * 拒单申请 + * @param ordersId 订单id + * @param refusalContent 拒单内容 + * @return + */ + @ApiOperation("技师拒单申请") + @GetMapping("/jishiJdsq") + public Result jishiJdsq(Long ordersId,String refusalContent){ + Orders orders = new Orders(); + orders.setOrdersId(ordersId); + orders.setRefusalContent(refusalContent); + orders.setStatus(9);//拒单申请 + ordersService.updateById(orders); + return Result.success("拒单申请已提交,请等待客户审核!"); + } + + } diff --git a/src/main/java/com/sqx/modules/artificer/dao/ArtificerDao.java b/src/main/java/com/sqx/modules/artificer/dao/ArtificerDao.java index 3d9d203..5cc2ac0 100644 --- a/src/main/java/com/sqx/modules/artificer/dao/ArtificerDao.java +++ b/src/main/java/com/sqx/modules/artificer/dao/ArtificerDao.java @@ -9,6 +9,7 @@ import com.sqx.modules.artificer.entity.Artificer; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; import java.util.Map; @@ -35,4 +36,11 @@ public interface ArtificerDao extends BaseMapper { Integer selectArtificerMassageDuration(Long artificerId); IPage getHomeStartArtificerList(Page page,@Param("isStart")Integer isStart, @Param("status")Integer status, @Param("city")String city); + + /** + * 查询有效技师 + * @return + */ + List getYxjsList(); + } \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/artificer/dao/OrdersDao.java b/src/main/java/com/sqx/modules/artificer/dao/OrdersDao.java index db720f6..749ba02 100644 --- a/src/main/java/com/sqx/modules/artificer/dao/OrdersDao.java +++ b/src/main/java/com/sqx/modules/artificer/dao/OrdersDao.java @@ -106,4 +106,20 @@ public interface OrdersDao extends BaseMapper { String selectTaxiMoney(Long artificerId, String endDate, String startDate); String earnings(Long artificerId, String endDate, String startDate); + + /** + * 统计技师price价格 + * startTime 开始时间 + * endTime 结束时间 + * artificerId 技师id + * ordersQueryWrapper + * @return + */ + String selectTjpriceList(Orders ordersQueryWrapper); + + IPage getDangqiList(Page pages, Long userId, Integer isSfwc, String startTime, String endTime); + + IPage getJiazhongList(Page pages, Long userId, Integer isSfwc, String startTime, String endTime); + + IPage getChongzhiList(Page pages, Long userId, Integer isSfwc, String startTime, String endTime); } \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/artificer/entity/Artificer.java b/src/main/java/com/sqx/modules/artificer/entity/Artificer.java index f630964..cd115da 100644 --- a/src/main/java/com/sqx/modules/artificer/entity/Artificer.java +++ b/src/main/java/com/sqx/modules/artificer/entity/Artificer.java @@ -151,6 +151,10 @@ public class Artificer implements Serializable { */ private Integer isStart; + /** + * 是否参与积分规则计算(0不参与 1参与) + */ + private Integer ynJfgz; /** * 1可服务 2可预约 3休息中 diff --git a/src/main/java/com/sqx/modules/artificer/entity/Orders.java b/src/main/java/com/sqx/modules/artificer/entity/Orders.java index 808934d..1016797 100644 --- a/src/main/java/com/sqx/modules/artificer/entity/Orders.java +++ b/src/main/java/com/sqx/modules/artificer/entity/Orders.java @@ -305,6 +305,10 @@ public class Orders implements Serializable { * 用户服务包明细ID */ private Long userPackageDetailId; + /** + * 拒单内容 + */ + private String refusalContent; /** * 项目名称 @@ -368,5 +372,8 @@ public class Orders implements Serializable { private String shopPhone; + @TableField(exist = false) + private String userRecharge; + public Orders() {} } diff --git a/src/main/java/com/sqx/modules/artificer/service/ArtificerService.java b/src/main/java/com/sqx/modules/artificer/service/ArtificerService.java index 46b660a..e332e8a 100644 --- a/src/main/java/com/sqx/modules/artificer/service/ArtificerService.java +++ b/src/main/java/com/sqx/modules/artificer/service/ArtificerService.java @@ -39,4 +39,6 @@ public interface ArtificerService extends IService { Result selectArtificerByArtificerId(Long artificerId); Result getHomeArtificerList(Integer page, Integer limit, Integer isStart,Integer status, String city, String longitude, String latitude); + + Result getOrderTypeList(Long userId, Integer page, Integer limit, Integer orderType, Integer isSfwc,String startTime,String endTime); } \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/artificer/service/OrdersService.java b/src/main/java/com/sqx/modules/artificer/service/OrdersService.java index 97b64ee..6bb0662 100644 --- a/src/main/java/com/sqx/modules/artificer/service/OrdersService.java +++ b/src/main/java/com/sqx/modules/artificer/service/OrdersService.java @@ -97,4 +97,11 @@ public interface OrdersService extends IService { Result selectDividedIntoDetails(Integer page, Integer limit, Period period); Result splitDetails(Period period); + + /** + * 技师确认接单 + * @param ordersId 订单id + * @return + */ + Result jishiQueren(Long ordersId); } \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerServiceImpl.java b/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerServiceImpl.java index 8a08f94..6c33a07 100644 --- a/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerServiceImpl.java +++ b/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerServiceImpl.java @@ -433,4 +433,33 @@ public class ArtificerServiceImpl extends ServiceImpl i return Result.success(map); } + /** + * 技师首页获取当期订单,加钟订单,充值订单 + * @param userId 技师id + * @param page 第几页 + * @param limit 每页几条 + * @param orderType 类型 1当期 2加钟 3充值 + * @param isSfwc 0不包含 1包含 空为全部 + * @param startTime 开始时间 + * @param endTime 结束时间 + * @return + */ + @Override + public Result getOrderTypeList(Long userId, Integer page, Integer limit, Integer orderType, Integer isSfwc,String startTime,String endTime) { + Map map = new HashMap(); + Page pages=new Page<>(page,limit); + IPage ordersIPage = null; + if(orderType == 1){//1当期 + ordersIPage = ordersDao.getDangqiList(pages, userId,isSfwc,startTime,endTime); + }else if(orderType == 2){//2加钟 + ordersIPage = ordersDao.getJiazhongList(pages, userId,isSfwc,startTime,endTime); + }else if(orderType == 3){//3充值 + ordersIPage = ordersDao.getChongzhiList(pages, userId,isSfwc,startTime,endTime); + } + + map.put("data",new PageUtils(ordersIPage)); + return Result.success(map); + } + + } \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/artificer/service/impl/OrdersServiceImpl.java b/src/main/java/com/sqx/modules/artificer/service/impl/OrdersServiceImpl.java index 1435989..de60580 100644 --- a/src/main/java/com/sqx/modules/artificer/service/impl/OrdersServiceImpl.java +++ b/src/main/java/com/sqx/modules/artificer/service/impl/OrdersServiceImpl.java @@ -36,6 +36,12 @@ import com.sqx.modules.consortia.entity.Consortia; import com.sqx.modules.consortia.service.ConsortiaService; import com.sqx.modules.coupon.entity.CouponUser; import com.sqx.modules.coupon.service.CouponUserService; +import com.sqx.modules.material.dao.MaterialArtificerMapper; +import com.sqx.modules.material.dao.MaterialMapper; +import com.sqx.modules.material.dao.MaterialMassageMapper; +import com.sqx.modules.material.entity.Material; +import com.sqx.modules.material.entity.MaterialArtificer; +import com.sqx.modules.material.entity.MaterialMassage; import com.sqx.modules.material.service.MaterialArtificerService; import com.sqx.modules.message.entity.MessageInfo; import com.sqx.modules.message.service.MessageService; @@ -122,6 +128,14 @@ public class OrdersServiceImpl extends ServiceImpl implements private MaterialArtificerService materialArtificerService; @Autowired private ArtificerDao artificerDao; + @Autowired + private MaterialMassageMapper materialMassageMapper; + @Autowired + private MaterialArtificerMapper materialArtificerMapper; + @Autowired + private MaterialMapper materialMapper; + + private ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWriteLock(true); @@ -2645,4 +2659,77 @@ public class OrdersServiceImpl extends ServiceImpl implements //分成明细添加到返回对象中 return Result.success().put("data", trees); } + + /** + * 技师确认接单 + * @param ordersId 订单id + * @return + */ + @Override + public Result jishiQueren(Long ordersId) { + //获取项目是否包含物料包 + Orders orders = ordersDao.selectById(ordersId); + Long messageTypeId = orders.getMassageTypeId(); +// MassageType massageType =massageTypeService.getById(messageTypeId); + + QueryWrapper materialMassageQueryWrapper = new QueryWrapper<>(); + materialMassageQueryWrapper.eq("massage_type_id",messageTypeId); + //查询服务是否消耗指定的物料信息 + List wllist =materialMassageMapper.selectList(materialMassageQueryWrapper); + if(wllist.size()>0){ + + int code = 200; + String msg = "已确认接单"; + for(MaterialMassage par: wllist){ + QueryWrapper materialArtificerQueryWrapper = new QueryWrapper(); + materialArtificerQueryWrapper.eq("material_id",par.getMaterialId()); + materialArtificerQueryWrapper.eq("artificer_id",orders.getArtificerId()); + materialArtificerQueryWrapper.orderByDesc("residue"); + materialArtificerQueryWrapper.last("limit 1"); + //获取技师是否有对应的物料 + MaterialArtificer materialArtificer = materialArtificerMapper.selectOne(materialArtificerQueryWrapper); + + if(materialArtificer == null){ + //获取缺少的物料 + Material material = materialMapper.getById(par.getMaterialId()); + code = 500; + msg = "此服务需要【"+material.getMaterialName()+"】物料,您还没有此物料信息"; + break; + } + BigDecimal consume = par.getConsume();//每次服务需要消耗的数量 + BigDecimal residue = materialArtificer.getResidue();//技师剩余物料库存 + + if(residue.compareTo(consume) < 0){//库存不足 + //获取缺少的物料 + Material material = materialMapper.getById(par.getMaterialId()); + code = 500; + msg = "【"+material.getMaterialName()+"】库存不足,剩余数量:【"+residue+"】,消耗数量:【"+consume+"】"; + break; + } + } + + orders = new Orders(); + orders.setOrdersId(ordersId); + orders.setStatus(2);//确认接单 + ordersDao.updateById(orders); + if(code == 200){ + Map map = new HashMap<>(); + map.put("code",code); + map.put("msg",msg); + return Result.success(map); + }else{ + return Result.error(msg); + } + + }else{ + orders = new Orders(); + orders.setOrdersId(ordersId); + orders.setStatus(2);//确认接单 + ordersDao.updateById(orders); + Map map = new HashMap<>(); + map.put("code",200); + map.put("msg","已确认接单"); + return Result.success(map); + } + } } \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/material/dao/MaterialMassageMapper.java b/src/main/java/com/sqx/modules/material/dao/MaterialMassageMapper.java index 5d9e4d9..8c106a9 100644 --- a/src/main/java/com/sqx/modules/material/dao/MaterialMassageMapper.java +++ b/src/main/java/com/sqx/modules/material/dao/MaterialMassageMapper.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.sqx.modules.material.entity.MaterialMassage; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * @author Administrator * @description 针对表【material_massage(物料包与服务表中间表)】的数据库操作Mapper @@ -13,6 +15,7 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface MaterialMassageMapper extends BaseMapper { + List selectWlList(Long messageTypeId); } diff --git a/src/main/resources/mapper/artificer/ArtificerDao.xml b/src/main/resources/mapper/artificer/ArtificerDao.xml index e684460..7930fa7 100644 --- a/src/main/resources/mapper/artificer/ArtificerDao.xml +++ b/src/main/resources/mapper/artificer/ArtificerDao.xml @@ -199,4 +199,12 @@ order by artificer_sales desc + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/artificer/OrdersDao.xml b/src/main/resources/mapper/artificer/OrdersDao.xml index 98aa798..51ffb04 100644 --- a/src/main/resources/mapper/artificer/OrdersDao.xml +++ b/src/main/resources/mapper/artificer/OrdersDao.xml @@ -910,7 +910,7 @@ left join tb_user u on u.user_id=o.user_id left join consortia c on c.consortia_id=o.consortia_id where o.artificer_id=#{artificerId} - and o.pay_time BETWEEN #{startDate} and #{endDate} + and o.end_times BETWEEN #{startDate} and #{endDate} and o.status in (3,5) @@ -922,7 +922,7 @@ left join tb_user u on u.user_id=o.user_id left join consortia c on c.consortia_id=o.consortia_id where o.artificer_id=#{artificerId} - and o.pay_time BETWEEN #{startDate} and #{endDate} + and o.end_times BETWEEN #{startDate} and #{endDate} and o.status in (3,5) and o.parent_id = 0 @@ -935,7 +935,7 @@ left join tb_user u on u.user_id=o.user_id left join consortia c on c.consortia_id=o.consortia_id where o.artificer_id=#{artificerId} - and o.pay_time BETWEEN #{startDate} and #{endDate} + and o.end_times BETWEEN #{startDate} and #{endDate} @@ -988,8 +988,60 @@ left join tb_user u on u.user_id=o.user_id left join consortia c on c.consortia_id=o.consortia_id where o.artificer_id=#{artificerId} - and o.pay_time BETWEEN #{startDate} and #{endDate} + and o.end_times BETWEEN #{startDate} and #{endDate} and o.status in (3,5) + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/material/MaterialMassageMapper.xml b/src/main/resources/mapper/material/MaterialMassageMapper.xml index 5037a07..fb78565 100644 --- a/src/main/resources/mapper/material/MaterialMassageMapper.xml +++ b/src/main/resources/mapper/material/MaterialMassageMapper.xml @@ -20,4 +20,10 @@ consume,create_user,create_time, update_user,update_time + + + +