فهرست منبع

扫码打印二维码

夏文涛 1 سال پیش
والد
کامیت
3afffaa290
52فایلهای تغییر یافته به همراه772 افزوده شده و 114 حذف شده
  1. 1 1
      src/main/java/com/sqx/modules/activity/controller/ActivityPartRecordController.java
  2. 1 0
      src/main/java/com/sqx/modules/activity/service/ActivityService.java
  3. 1 0
      src/main/java/com/sqx/modules/activity/service/ActivityShopService.java
  4. 1 0
      src/main/java/com/sqx/modules/activity/service/impl/ActivityServiceImpl.java
  5. 2 2
      src/main/java/com/sqx/modules/app/service/UserService.java
  6. 0 1
      src/main/java/com/sqx/modules/app/service/impl/UserMoneyServiceImpl.java
  7. 1 4
      src/main/java/com/sqx/modules/app/service/impl/UserServiceImpl.java
  8. 1 0
      src/main/java/com/sqx/modules/banner/service/BannerService.java
  9. 3 2
      src/main/java/com/sqx/modules/chat/service/ChatContentService.java
  10. 2 2
      src/main/java/com/sqx/modules/chat/service/ChatConversationService.java
  11. 2 2
      src/main/java/com/sqx/modules/chat/service/impl/ChatContentServiceImpl.java
  12. 3 2
      src/main/java/com/sqx/modules/chat/service/impl/ChatConversationServiceImpl.java
  13. 0 4
      src/main/java/com/sqx/modules/coupon/service/impl/TbCouponServiceImpl.java
  14. 0 1
      src/main/java/com/sqx/modules/coupon/service/impl/TbTbCouponUserServiceImpl.java
  15. 0 1
      src/main/java/com/sqx/modules/datacentre/service/impl/DataCentreServiceImpl.java
  16. 83 39
      src/main/java/com/sqx/modules/errand/controller/app/AppTbIndentController.java
  17. 6 0
      src/main/java/com/sqx/modules/errand/dao/TbIndentDao.java
  18. 25 0
      src/main/java/com/sqx/modules/errand/dto/OrderRiderDeliveryDTO.java
  19. 16 0
      src/main/java/com/sqx/modules/errand/service/TbIndentService.java
  20. 0 1
      src/main/java/com/sqx/modules/errand/service/impl/AdminTrainingCenterServiceImpl.java
  21. 0 2
      src/main/java/com/sqx/modules/errand/service/impl/ErrandComplaintServiceImpl.java
  22. 250 1
      src/main/java/com/sqx/modules/errand/service/impl/TbIndentServiceImpl.java
  23. 0 1
      src/main/java/com/sqx/modules/errand/service/impl/UserInfoServiceImpl.java
  24. 1 2
      src/main/java/com/sqx/modules/gameChat/service/ChatContentTcwmService.java
  25. 1 5
      src/main/java/com/sqx/modules/gameChat/service/impl/ChatContentTcwmServiceImpl.java
  26. 0 1
      src/main/java/com/sqx/modules/goods/service/impl/GoodsShopServiceImpl.java
  27. 1 1
      src/main/java/com/sqx/modules/invite/controller/app/AppInviteController.java
  28. 1 0
      src/main/java/com/sqx/modules/invite/service/impl/InviteServiceImpl.java
  29. 1 1
      src/main/java/com/sqx/modules/message/controller/app/AppMessageController.java
  30. 1 0
      src/main/java/com/sqx/modules/message/service/impl/MessageServiceImpl.java
  31. 2 2
      src/main/java/com/sqx/modules/oss/controller/SysOssController.java
  32. 1 0
      src/main/java/com/sqx/modules/oss/service/SysOssService.java
  33. 1 1
      src/main/java/com/sqx/modules/oss/service/impl/SysOssServiceImpl.java
  34. 1 1
      src/main/java/com/sqx/modules/pay/controller/CashController.java
  35. 1 1
      src/main/java/com/sqx/modules/pay/controller/app/AppCashController.java
  36. 1 0
      src/main/java/com/sqx/modules/pay/service/PayDetailsService.java
  37. 0 1
      src/main/java/com/sqx/modules/pay/service/impl/PayDetailsServiceImpl.java
  38. 23 0
      src/main/java/com/sqx/modules/printInfo/controller/PrintInfoController.java
  39. 4 4
      src/main/java/com/sqx/modules/printInfo/entity/eOrderTypeExtra.java
  40. 0 1
      src/main/java/com/sqx/modules/printInfo/service/impl/PrintInfoServiceImpl.java
  41. 9 8
      src/main/java/com/sqx/modules/sys/service/SysConfigService.java
  42. 1 0
      src/main/java/com/sqx/modules/sys/service/SysLogService.java
  43. 1 1
      src/main/java/com/sqx/modules/sys/service/SysRoleService.java
  44. 3 3
      src/main/java/com/sqx/modules/sys/service/SysUserService.java
  45. 1 1
      src/main/java/com/sqx/modules/sys/service/impl/SysConfigServiceImpl.java
  46. 1 0
      src/main/java/com/sqx/modules/sys/service/impl/SysDictServiceImpl.java
  47. 1 0
      src/main/java/com/sqx/modules/sys/service/impl/SysLogServiceImpl.java
  48. 2 2
      src/main/java/com/sqx/modules/sys/service/impl/SysRoleServiceImpl.java
  49. 4 4
      src/main/java/com/sqx/modules/sys/service/impl/SysUserServiceImpl.java
  50. 286 6
      src/main/java/com/sqx/modules/utils/fieYun/FeiYunUtils.java
  51. 1 1
      src/main/resources/application.yml
  52. 24 1
      src/main/resources/mapper/errand/TbIndentMapper.xml

+ 1 - 1
src/main/java/com/sqx/modules/activity/controller/ActivityPartRecordController.java

@@ -24,7 +24,7 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("admin/activity-part-record")
 @RequiredArgsConstructor
 public class ActivityPartRecordController{
-    
+
     private final ActivityPartRecordService activityPartRecordService;
 
     @GetMapping("page")

+ 1 - 0
src/main/java/com/sqx/modules/activity/service/ActivityService.java

@@ -9,6 +9,7 @@ import com.sqx.modules.activity.entity.Activity;
 import com.sqx.modules.activity.vo.ActivityOrderVO;
 import com.sqx.modules.activity.vo.ActivityVO;
 import com.sqx.modules.activity.vo.OrderSuitActivityVO;
+import org.apache.poi.ss.formula.functions.T;
 
 import java.util.List;
 

+ 1 - 0
src/main/java/com/sqx/modules/activity/service/ActivityShopService.java

@@ -9,6 +9,7 @@ import com.sqx.modules.activity.dto.QuitActivityDTO;
 import com.sqx.modules.activity.entity.ActivityShop;
 import com.sqx.modules.activity.vo.ShopActivityGroupVO;
 import com.sqx.modules.activity.vo.ShopActivityVO;
+import org.apache.poi.ss.formula.functions.T;
 
 import java.util.List;
 

+ 1 - 0
src/main/java/com/sqx/modules/activity/service/impl/ActivityServiceImpl.java

@@ -36,6 +36,7 @@ import com.sqx.modules.order.entity.OrderGoods;
 import com.sqx.modules.order.entity.TbOrder;
 import com.sqx.modules.order.service.AppOrderService;
 import lombok.RequiredArgsConstructor;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;

+ 2 - 2
src/main/java/com/sqx/modules/app/service/UserService.java

@@ -8,7 +8,7 @@ import com.sqx.common.utils.PageUtils;
 import com.sqx.common.utils.Result;
 import com.sqx.modules.app.entity.UserEntity;
 import com.sqx.modules.errand.entity.Feedback;
-import org.springframework.web.bind.annotation.RequestParam;
+import org.apache.poi.ss.formula.functions.T;
 
 import java.util.List;
 import java.util.Map;
@@ -202,7 +202,7 @@ public interface UserService extends IService<UserEntity> {
     void pushToSingleShop(String title, String content, String clientId);
 
     PageUtils selectUserPage(Integer page, Integer limit, String search, Integer sex, String platform, String sysPhone,
-                             Integer status, Integer type, String userName, Integer isVip, Integer shopAdminFlag,String nickName);
+                                Integer status, Integer type, String userName, Integer isVip, Integer shopAdminFlag, String nickName);
 
     int queryInviterCount(String inviterCode);
 

+ 0 - 1
src/main/java/com/sqx/modules/app/service/impl/UserMoneyServiceImpl.java

@@ -18,7 +18,6 @@ import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
-import java.util.Calendar;
 import java.util.Date;
 
 @Service

+ 1 - 4
src/main/java/com/sqx/modules/app/service/impl/UserServiceImpl.java

@@ -1,6 +1,5 @@
 package com.sqx.modules.app.service.impl;
 
-import cn.hutool.system.UserInfo;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONException;
 import com.alibaba.fastjson.JSONObject;
@@ -44,7 +43,6 @@ import com.sqx.modules.app.entity.UserMoney;
 import com.sqx.modules.app.service.UserService;
 import com.sqx.modules.app.utils.JwtUtils;
 import com.sqx.modules.app.utils.UserConstantInterface;
-import com.sqx.modules.chats.utils.ResultUtil;
 import com.sqx.modules.common.entity.CommonInfo;
 import com.sqx.modules.common.service.CommonInfoService;
 import com.sqx.modules.errand.entity.Feedback;
@@ -56,7 +54,6 @@ import com.sqx.modules.message.entity.MessageInfo;
 import com.sqx.modules.message.service.MessageService;
 import com.sqx.modules.utils.HttpClientUtil;
 import com.sqx.modules.utils.InvitationCodeUtil;
-import com.sqx.modules.utils.MD5Util;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.lang.StringUtils;
@@ -1035,7 +1032,7 @@ public class UserServiceImpl extends ServiceImpl<UserDao, UserEntity> implements
 
     @Override
     public PageUtils selectUserPage(Integer page, Integer limit, String search, Integer sex, String platform, String sysPhone, Integer status,
-                                    Integer type, String userName, Integer isVip, Integer shopAdminFlag, String nickName) {
+                                       Integer type, String userName, Integer isVip, Integer shopAdminFlag, String nickName) {
         Page<UserEntity> pages = new Page<>(page, limit);
         return new PageUtils(baseMapper.selectUserPage(pages, search, sex, platform, sysPhone, status, type, userName, isVip, shopAdminFlag, nickName));
     }

+ 1 - 0
src/main/java/com/sqx/modules/banner/service/BannerService.java

@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.sqx.common.utils.PageUtils;
 import com.sqx.common.utils.Result;
 import com.sqx.modules.banner.entity.Banner;
+import org.apache.poi.ss.formula.functions.T;
 
 import java.util.List;
 

+ 3 - 2
src/main/java/com/sqx/modules/chat/service/ChatContentService.java

@@ -4,13 +4,14 @@ package com.sqx.modules.chat.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.sqx.common.utils.PageUtils;
 import com.sqx.modules.chat.entity.ChatContent;
+import org.apache.poi.ss.formula.functions.T;
 
 public interface ChatContentService  extends IService<ChatContent> {
 
-    PageUtils selectChatContentPage(Integer page, Integer limit, Long chatConversationId, String content,String userName,String phone);
+    PageUtils selectChatContentPage(Integer page, Integer limit, Long chatConversationId, String content, String userName, String phone);
 
     int updateChatContentStatusByUserIdAndChatId(Long userId,Long chatConversationId);
 
     int selectChatCount(Long userId);
 
-}
+}

+ 2 - 2
src/main/java/com/sqx/modules/chat/service/ChatConversationService.java

@@ -8,7 +8,7 @@ import com.sqx.modules.chat.entity.ChatConversation;
 
 public interface ChatConversationService extends IService<ChatConversation> {
 
-    PageUtils selectChatConversationPage(Integer page, Integer limit, Long userId, String nickName,String content);
+    PageUtils selectChatConversationPage(Integer page, Integer limit, Long userId, String nickName, String content);
 
     int insertChatConversation(ChatConversation chatConversation);
 
@@ -16,4 +16,4 @@ public interface ChatConversationService extends IService<ChatConversation> {
 
     Result insertChatConversations(ChatConversation chatConversation);
 
-}
+}

+ 2 - 2
src/main/java/com/sqx/modules/chat/service/impl/ChatContentServiceImpl.java

@@ -14,7 +14,7 @@ public class ChatContentServiceImpl extends ServiceImpl<ChatContentDao, ChatCont
 
 
     @Override
-    public PageUtils selectChatContentPage(Integer page, Integer limit, Long chatConversationId, String content,String userName,String phone) {
+    public PageUtils selectChatContentPage(Integer page, Integer limit, Long chatConversationId, String content, String userName, String phone) {
         return new PageUtils(baseMapper.selectChatContentPage(new Page<>(page,limit),chatConversationId,content,userName,phone));
     }
 
@@ -28,4 +28,4 @@ public class ChatContentServiceImpl extends ServiceImpl<ChatContentDao, ChatCont
         return baseMapper.selectChatCount(userId);
     }
 
-}
+}

+ 3 - 2
src/main/java/com/sqx/modules/chat/service/impl/ChatConversationServiceImpl.java

@@ -13,6 +13,7 @@ import com.sqx.modules.chat.entity.ChatConversation;
 import com.sqx.modules.chat.service.ChatContentService;
 import com.sqx.modules.chat.service.ChatConversationService;
 import org.apache.commons.lang.StringUtils;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -31,7 +32,7 @@ public class ChatConversationServiceImpl extends ServiceImpl<ChatConversationDao
     private ChatContentService chatContentService;
 
     @Override
-    public PageUtils selectChatConversationPage(Integer page, Integer limit, Long userId, String nickName,String content){
+    public PageUtils selectChatConversationPage(Integer page, Integer limit, Long userId, String nickName, String content){
         return new PageUtils(baseMapper.selectChatConversationPage(new Page<>(page,limit),userId,nickName,content));
     }
 
@@ -87,4 +88,4 @@ public class ChatConversationServiceImpl extends ServiceImpl<ChatConversationDao
 
 
 
-}
+}

+ 0 - 4
src/main/java/com/sqx/modules/coupon/service/impl/TbCouponServiceImpl.java

@@ -5,20 +5,16 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.sqx.common.utils.PageUtils;
 import com.sqx.common.utils.Result;
-import com.sqx.modules.app.entity.UserMoneyDetails;
 import com.sqx.modules.coupon.dao.TbCouponDao;
 import com.sqx.modules.coupon.dao.TbCouponUserDao;
 import com.sqx.modules.coupon.entity.TbCoupon;
-import com.sqx.modules.coupon.entity.TbCouponUser;
 import com.sqx.modules.coupon.service.TbCouponService;
 import com.sqx.modules.datacentre.entity.SysUserShop;
-import com.sqx.modules.goods.entity.GoodsShop;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.List;

+ 0 - 1
src/main/java/com/sqx/modules/coupon/service/impl/TbTbCouponUserServiceImpl.java

@@ -15,7 +15,6 @@ import com.sqx.modules.integral.dao.UserIntegralDao;
 import com.sqx.modules.integral.dao.UserIntegralDetailsDao;
 import com.sqx.modules.integral.entity.UserIntegral;
 import com.sqx.modules.integral.entity.UserIntegralDetails;
-import com.sqx.modules.integral.service.UserIntegralService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;

+ 0 - 1
src/main/java/com/sqx/modules/datacentre/service/impl/DataCentreServiceImpl.java

@@ -33,7 +33,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
-import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.Date;

+ 83 - 39
src/main/java/com/sqx/modules/errand/controller/app/AppTbIndentController.java

@@ -7,6 +7,7 @@ import com.sqx.modules.app.annotation.Login;
 import com.sqx.modules.app.entity.UserEntity;
 import com.sqx.modules.app.service.UserService;
 import com.sqx.modules.common.service.CommonInfoService;
+import com.sqx.modules.errand.dto.OrderRiderDeliveryDTO;
 import com.sqx.modules.errand.dto.RiderDeliveryDTO;
 import com.sqx.modules.errand.dto.RiderTransferOrderDTO;
 import com.sqx.modules.errand.dto.WaitForAcceptOrderQueryDTO;
@@ -20,6 +21,7 @@ import com.sqx.modules.errand.service.TbIndentService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang.StringUtils;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -48,7 +50,7 @@ public class AppTbIndentController {
     @Login
     @PostMapping(value = "distance")
     @ApiOperation("根据经纬度计算两点之间距离")
-    public Result distance(double ol, double od, double dl, double dd){
+    public Result distance(double ol, double od, double dl, double dd) {
 
         return tbIndentService.distance(ol, od, dl, dd);
     }
@@ -56,7 +58,7 @@ public class AppTbIndentController {
     @Login
     @ApiOperation("保存用户输入地址")
     @PostMapping(value = "addUserAddress")
-    public Result addUserAddress(@RequestAttribute Long userId, @RequestBody ErrandAddress errandAddress){
+    public Result addUserAddress(@RequestAttribute Long userId, @RequestBody ErrandAddress errandAddress) {
 
         return tbIndentService.addUserAddress(userId, errandAddress);
     }
@@ -64,7 +66,7 @@ public class AppTbIndentController {
     @Login
     @ApiOperation("编辑地址")
     @PostMapping(value = "updateAddress")
-    public Result updateAddress(@RequestAttribute Long userId, @RequestBody ErrandAddress errandAddress){
+    public Result updateAddress(@RequestAttribute Long userId, @RequestBody ErrandAddress errandAddress) {
 
         return tbIndentService.updateAddress(userId, errandAddress);
     }
@@ -72,7 +74,7 @@ public class AppTbIndentController {
     @Login
     @ApiOperation("获取用户历史地址")
     @GetMapping(value = "findUserAddress")
-    public Result findUserAddress(@RequestAttribute Long userId){
+    public Result findUserAddress(@RequestAttribute Long userId) {
 
         return tbIndentService.findUserAddress(userId);
     }
@@ -80,7 +82,7 @@ public class AppTbIndentController {
     @Login
     @ApiOperation("根据地址id获取地址信息")
     @GetMapping(value = "findAddressById")
-    public Result findAddressById(@RequestAttribute Long userId, Integer addressId){
+    public Result findAddressById(@RequestAttribute Long userId, Integer addressId) {
 
         return tbIndentService.findAddressById(userId, addressId);
     }
@@ -88,7 +90,7 @@ public class AppTbIndentController {
     @Login
     @ApiOperation("设置默认地址")
     @GetMapping(value = "addDefaultAddress")
-    private Result addDefaultAddress(@RequestAttribute Long userId, Integer addressId){
+    private Result addDefaultAddress(@RequestAttribute Long userId, Integer addressId) {
 
         return tbIndentService.addDefaultAddress(userId, addressId);
     }
@@ -96,7 +98,7 @@ public class AppTbIndentController {
     @Login
     @ApiOperation("删除历史地址")
     @GetMapping(value = "delUserAddress")
-    public Result delUserAddress(@RequestAttribute Long userId, Integer addressId){
+    public Result delUserAddress(@RequestAttribute Long userId, Integer addressId) {
 
         return tbIndentService.delUserAddress(userId, addressId);
     }
@@ -104,7 +106,7 @@ public class AppTbIndentController {
     @Login
     @ApiOperation("获取订单起点附近5公里内所有骑手")
     @GetMapping(value = "find5KmRider")
-    public Result find5KmRider(double lng, double lat){
+    public Result find5KmRider(double lng, double lat) {
 
         return tbIndentService.find5KmRider(lng, lat);
     }
@@ -112,17 +114,16 @@ public class AppTbIndentController {
     @Login
     @ApiOperation("骑手上线时更新骑手坐标")
     @PostMapping(value = "updateCoordinate")
-    public Result updateCoordinate(@RequestAttribute Long userId, double lng, double lat){
+    public Result updateCoordinate(@RequestAttribute Long userId, double lng, double lat) {
 
         return tbIndentService.updateCoordinate(userId, lng, lat);
     }
 
 
-
     @Login
     @GetMapping(value = "/findUserInfoById")
     @ApiOperation("获取登陆用户信息")
-    public Result findUserInfoById(@RequestAttribute("userId") Long userId){
+    public Result findUserInfoById(@RequestAttribute("userId") Long userId) {
         UserEntity userEntity = tbIndentService.findUserInfoById(userId);
 
         return Result.success().put("data", userEntity);
@@ -131,7 +132,7 @@ public class AppTbIndentController {
     @Login
     @ApiOperation("新用户领取新人红包")
     @GetMapping(value = "getNewUserRedPacket")
-    public Result getNewUserRedPacket(@RequestAttribute Long userId){
+    public Result getNewUserRedPacket(@RequestAttribute Long userId) {
 
         return tbIndentService.getNewUserRedPacket(userId);
     }
@@ -139,7 +140,7 @@ public class AppTbIndentController {
     @Login
     @GetMapping(value = "findAllRedPacket")
     @ApiOperation("获取该用户的所有红包")
-    public Result findAllRedPacket(@RequestAttribute Long userId){
+    public Result findAllRedPacket(@RequestAttribute Long userId) {
         List<ErrandRedPacket> allRedPacket = tbIndentService.findAllRedPacket(userId);
         return Result.success().put("data", allRedPacket);
     }
@@ -147,7 +148,7 @@ public class AppTbIndentController {
     @Login
     @PostMapping(value = "findRedPacket")
     @ApiOperation("获取用户可用红包")
-    public Result findRedPacket(@RequestAttribute Long userId, @RequestBody TbIndent indent){
+    public Result findRedPacket(@RequestAttribute Long userId, @RequestBody TbIndent indent) {
         List<ErrandRedPacket> redPackets = tbIndentService.findRedPacket(userId, indent);
         return Result.success().put("data", redPackets);
     }
@@ -155,15 +156,15 @@ public class AppTbIndentController {
     @Login
     @PostMapping(value = "basicsMoney")
     @ApiOperation("计算订单基础价格")
-    public Result basicsMoney(@RequestBody TbIndent tbIndent){
+    public Result basicsMoney(@RequestBody TbIndent tbIndent) {
 
-        return Result.success().put("data",tbIndentService.basicsMoney(tbIndent));
+        return Result.success().put("data", tbIndentService.basicsMoney(tbIndent));
     }
 
     @Login
     @PostMapping(value = "addIndent")
     @ApiOperation("用户下单")
-    public Result addIndentBuy(@RequestAttribute Long userId, @RequestBody TbIndent tbIndent){
+    public Result addIndentBuy(@RequestAttribute Long userId, @RequestBody TbIndent tbIndent) {
         tbIndent.setUserId(userId);
         return tbIndentService.addIndentBuy(tbIndent);
     }
@@ -171,7 +172,7 @@ public class AppTbIndentController {
     @Login
     @PostMapping(value = "findNewIndent")
     @ApiOperation("骑手查看可接订单")
-    public Result findNewIndent(@RequestAttribute Long userId, @RequestBody TbIndent tbIndent){
+    public Result findNewIndent(@RequestAttribute Long userId, @RequestBody TbIndent tbIndent) {
         String receivingPettern = tbIndent.getReceivingPettern();
         double riderlat = tbIndent.getRiderlat();
         double riderlng = tbIndent.getRiderlng();
@@ -185,7 +186,7 @@ public class AppTbIndentController {
     @Login
     @PostMapping(value = "find-new-indent")
     @ApiOperation("骑手查看可接订单(新)")
-    public Result findNewIndent(@Valid @RequestBody WaitForAcceptOrderQueryDTO queryDTO){
+    public Result findNewIndent(@Valid @RequestBody WaitForAcceptOrderQueryDTO queryDTO) {
         PageUtils newIndent = tbIndentService.findNewIndent(queryDTO);
         return Result.success().put("data", newIndent);
     }
@@ -193,7 +194,7 @@ public class AppTbIndentController {
     @Login
     @PostMapping(value = "find-new-indent-group-by-shop")
     @ApiOperation("骑手查看可接订单(按商家分组)")
-    public Result findNewIndentGroupByShop(@Valid @RequestBody WaitForAcceptOrderQueryDTO queryDTO){
+    public Result findNewIndentGroupByShop(@Valid @RequestBody WaitForAcceptOrderQueryDTO queryDTO) {
         PageUtils newIndent = tbIndentService.findNewIndentGroupByShop(queryDTO);
         return Result.success().put("data", newIndent);
     }
@@ -201,7 +202,7 @@ public class AppTbIndentController {
     @Login
     @PostMapping(value = "indentReceiving")
     @ApiOperation("骑手接单")
-    public Result indentReceiving(@RequestAttribute Long userId, String indentNumber){
+    public Result indentReceiving(@RequestAttribute Long userId, String indentNumber) {
 
         return tbIndentService.indentReceiving(userId, indentNumber);
     }
@@ -209,7 +210,7 @@ public class AppTbIndentController {
     @Login
     @PostMapping(value = "riderBuyGoods")
     @ApiOperation("骑手修改订单状态")
-    public Result riderBuyGoods(@RequestBody TbIndent tbIndent){
+    public Result riderBuyGoods(@RequestBody TbIndent tbIndent) {
 
         return tbIndentService.riderBuyGoods(tbIndent);
     }
@@ -217,9 +218,9 @@ public class AppTbIndentController {
     @Login
     @GetMapping(value = "findUserIndent")
     @ApiOperation("用户查看自己所有订单(全部、待付款、待接单、派送中(已接单未完成)、已完成)")
-    public Result findUserIndent(@RequestAttribute Long userId, Integer page, Integer limit,String indentState){
+    public Result findUserIndent(@RequestAttribute Long userId, Integer page, Integer limit, String indentState) {
 
-        return tbIndentService.findUserIndent(userId, page, limit,indentState);
+        return tbIndentService.findUserIndent(userId, page, limit, indentState);
     }
 
 
@@ -233,7 +234,7 @@ public class AppTbIndentController {
     @Login
     @PostMapping(value = "userCancleIndent")
     @ApiOperation("用户取消订单")
-    public Result userCancleIndent(@RequestAttribute Long userId, String indentNumber){
+    public Result userCancleIndent(@RequestAttribute Long userId, String indentNumber) {
 
         return tbIndentService.userCancleIndent(userId, indentNumber);
     }
@@ -241,7 +242,7 @@ public class AppTbIndentController {
     @Login
     @GetMapping(value = "findRiderIndent")
     @ApiOperation("骑手查看自己所有订单")
-    public Result findRiderIndent(@RequestAttribute Long userId, Integer page, Integer limit, String indentState){
+    public Result findRiderIndent(@RequestAttribute Long userId, Integer page, Integer limit, String indentState) {
 
         return tbIndentService.findRiderIndent(userId, page, limit, indentState);
     }
@@ -264,15 +265,15 @@ public class AppTbIndentController {
     @Login
     @PostMapping(value = "riderCancleIndent")
     @ApiOperation("骑手取消订单")
-    public Result riderCancleIndent( String indentNumber){
-        return tbIndentService.riderCancleIndent(indentNumber,1);
+    public Result riderCancleIndent(String indentNumber) {
+        return tbIndentService.riderCancleIndent(indentNumber, 1);
     }
 
     //骑手已送达
     @Login
     @PostMapping(value = "riderDelivery")
     @ApiOperation("骑手已送达")
-    public Result riderDelivery(@RequestAttribute Long userId, @Valid @RequestBody RiderDeliveryDTO riderDeliveryDTO){
+    public Result riderDelivery(@RequestAttribute Long userId, @Valid @RequestBody RiderDeliveryDTO riderDeliveryDTO) {
 
         return tbIndentService.riderDelivery(userId, riderDeliveryDTO);
     }
@@ -281,7 +282,7 @@ public class AppTbIndentController {
     @Login
     @PostMapping(value = "userDelivery")
     @ApiOperation("用户确认已送达")
-    public Result userDelivery(@RequestAttribute Long userId, String indentNumber){
+    public Result userDelivery(@RequestAttribute Long userId, String indentNumber) {
 
         return tbIndentService.userDelivery(userId, indentNumber);
     }
@@ -289,14 +290,14 @@ public class AppTbIndentController {
     @Login
     @PostMapping(value = "userEvaluate")
     @ApiOperation("用户评价(评价等级和内容)")
-    public Result userEvaluate(@RequestAttribute Long userId, @RequestBody ErrandEvaluate errandEvaluate){
+    public Result userEvaluate(@RequestAttribute Long userId, @RequestBody ErrandEvaluate errandEvaluate) {
         errandEvaluate.setUserId(userId);
         return tbIndentService.userEvaluate(errandEvaluate);
     }
 
     @ApiOperation("用户投诉订单")
     @PostMapping(value = "insertComplaint")
-    public Result insertComplaint(@RequestBody ErrandComplaint errandComplaint){
+    public Result insertComplaint(@RequestBody ErrandComplaint errandComplaint) {
 
         return errandComplaintService.insertComplaint(errandComplaint);
     }
@@ -304,7 +305,7 @@ public class AppTbIndentController {
     @Login
     @ApiOperation("用户查看所有投诉")
     @GetMapping(value = "selectComplaint")
-    public Result selectComplaint(@RequestAttribute Long userId, Integer page, Integer limit){
+    public Result selectComplaint(@RequestAttribute Long userId, Integer page, Integer limit) {
 
         return errandComplaintService.selectComplaint(userId, page, limit);
     }
@@ -312,23 +313,23 @@ public class AppTbIndentController {
     @Login
     @GetMapping(value = "findAllComplaint")
     @ApiOperation("骑手查看自己的所有被投诉")
-    public Result findAllComplaint(@RequestAttribute Long userId, Integer illegalId, Integer complaintState, Integer page, Integer limit){
+    public Result findAllComplaint(@RequestAttribute Long userId, Integer illegalId, Integer complaintState, Integer page, Integer limit) {
 
-        return errandComplaintService.findAllComplaint(userId,illegalId, complaintState, page, limit);
+        return errandComplaintService.findAllComplaint(userId, illegalId, complaintState, page, limit);
     }
 
     @Login
     @GetMapping(value = "findComplaint")
     @ApiOperation("骑手查看被投诉内容")
-    public Result findComplaint(@RequestAttribute Long userId, Long complaintId){
+    public Result findComplaint(@RequestAttribute Long userId, Long complaintId) {
 
-        return errandComplaintService.findComplaint(userId,complaintId);
+        return errandComplaintService.findComplaint(userId, complaintId);
     }
 
     @Login
     @PostMapping(value = "appealIndent")
     @ApiOperation("骑手提交申诉")
-    public Result appealIndent(@RequestAttribute Long userId, @RequestBody ErrandComplaint errandComplaint){
+    public Result appealIndent(@RequestAttribute Long userId, @RequestBody ErrandComplaint errandComplaint) {
 
         return errandComplaintService.appealIndent(userId, errandComplaint);
     }
@@ -340,7 +341,7 @@ public class AppTbIndentController {
     @Login
     @ApiOperation("转单")
     @PostMapping("/transferOfOrder")
-    public Result transferOfOrder(@RequestAttribute Long userId, @Valid RiderTransferOrderDTO transferOrderDTO){
+    public Result transferOfOrder(@RequestAttribute Long userId, @Valid RiderTransferOrderDTO transferOrderDTO) {
         // 检查入参
         checkTransferOrderParam(transferOrderDTO);
 
@@ -367,4 +368,47 @@ public class AppTbIndentController {
             throw new SqxException("待分配骑手手机号和待分配骑手真实姓名不能同时为空");
         }
     }
+
+
+    //region 2024-09-12 A-jax 添加接口
+    //region 1、根据订单id查询跑腿订单的信息;
+    @Login
+    @GetMapping("selectTbIndentPage")
+    @ApiOperation("扫码或收单码查询跑腿订单列表(带分页")
+    public Result selectMemberPage(@RequestAttribute Long userId, Integer page, Integer limit, String acquireCode) {
+        //如果只有一条数据就看看数据是否能被当前骑手接
+        PageUtils datas = tbIndentService.selectIndentPage(page, limit, acquireCode);
+        if (datas.getTotalCount() == 1) {
+            //校验当前骑手是否能接单
+            Result checkData = tbIndentService.checkIndent(userId, acquireCode);
+            if(!checkData.get("code").equals("0")){
+                return Result.error("当前订单无法接单");
+            }
+        }
+
+        return Result.success().put("data",datas);
+    }
+    //endregion
+
+    //region 2、根据订单id抢单(跑腿订单);
+    @Login
+    @PostMapping(value = "orderIndentReceiving")
+    @ApiOperation("骑手根据扫码或收单码接单")
+    public Result orderIndentReceiving(@RequestAttribute Long userId, String acquireCode) {
+
+        return tbIndentService.orderIndentReceiving(userId, acquireCode);
+    }
+    //endregion
+
+    //region 3、根据订单id完成跑腿订单。
+    @Login
+    @PostMapping(value = "orderRiderDelivery")
+    @ApiOperation("骑手根据扫码或收单码完成订单")
+    public Result orderRiderDelivery(@RequestAttribute Long userId, @Valid @RequestBody OrderRiderDeliveryDTO orderRiderDeliveryDTO) {
+
+        return tbIndentService.orderRiderDelivery(userId, orderRiderDeliveryDTO);
+    }
+    //endregion
+    //endregion
+
 }

+ 6 - 0
src/main/java/com/sqx/modules/errand/dao/TbIndentDao.java

@@ -31,12 +31,18 @@ public interface TbIndentDao extends BaseMapper<TbIndent> {
 
     TbIndent findIndentByNumber(String indentNumber);
 
+    TbIndent findIndentByOrderId(String orderId);
+
     int selectIndentByRiderUserCount(Long riderUserId);
 
     void indentReceiving(Long userId, String indentNumber, String format);
 
     void indentReceiv(Long userId, String indentNumber, String format,String state);
 
+    void orderIndentReceiving(Long userId, String orderId, String format);
+
+    void orderIndentReceiv(Long userId, String orderId, String format,String state);
+
     IPage<TbIndent> findRiderIndent(Page<TbIndent> pages, Long userId, String indentState);
 
     TbIndent indentRiderMessage(String indentNumber, double riderLng, double riderLat);

+ 25 - 0
src/main/java/com/sqx/modules/errand/dto/OrderRiderDeliveryDTO.java

@@ -0,0 +1,25 @@
+package com.sqx.modules.errand.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 骑手送达dto
+ */
+@Data
+@ApiModel("OrderRiderDeliveryDTO")
+public class OrderRiderDeliveryDTO {
+
+    @ApiModelProperty(value = "扫码或收单码", required = true)
+    @NotBlank(message = "扫码或收单码不能为空")
+    private String acquireCode;
+
+    @ApiModelProperty(value = "短信模板id,外卖订单该值不能为空")
+    private Long smsTemplateId;
+
+    @ApiModelProperty(value = "图片地址,多个图片使用,分割,外卖订单该值不能为空")
+    private String imgs;
+}

+ 16 - 0
src/main/java/com/sqx/modules/errand/service/TbIndentService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.sqx.common.utils.PageUtils;
 import com.sqx.common.utils.Result;
 import com.sqx.modules.app.entity.UserEntity;
+import com.sqx.modules.errand.dto.OrderRiderDeliveryDTO;
 import com.sqx.modules.errand.dto.RiderDeliveryDTO;
 import com.sqx.modules.errand.dto.RiderTransferOrderDTO;
 import com.sqx.modules.errand.dto.WaitForAcceptOrderQueryDTO;
@@ -12,6 +13,8 @@ import com.sqx.modules.errand.entity.ErrandEvaluate;
 import com.sqx.modules.errand.entity.ErrandRedPacket;
 import com.sqx.modules.errand.entity.TbIndent;
 import com.sqx.modules.order.entity.TbOrder;
+import org.apache.poi.ss.formula.functions.T;
+
 
 import java.util.List;
 
@@ -31,6 +34,8 @@ public interface TbIndentService extends IService<TbIndent> {
 
     Result indentReceiving(Long userId, String indentNumber);
 
+    Result orderIndentReceiving(Long userId, String acquireCode);
+
     Result riderBuyGoods(TbIndent tbIndent);
 
     Result findRiderIndent(Long userId, Integer page, Integer limit, String indentState);
@@ -41,6 +46,8 @@ public interface TbIndentService extends IService<TbIndent> {
 
     Result riderDelivery(Long userId, RiderDeliveryDTO deliveryDTO);
 
+    Result orderRiderDelivery(Long userId, OrderRiderDeliveryDTO orderDeliveryDTO);
+
     Result userDelivery(Long userId, String indentNumber);
 
     Result userEvaluate(ErrandEvaluate errandEvaluate);
@@ -113,4 +120,13 @@ public interface TbIndentService extends IService<TbIndent> {
      * @param transferOrderDTO dto
      */
     void transferOfOrder(Long userId, RiderTransferOrderDTO transferOrderDTO);
+
+    //region 2024-09-12 A-jax 添加方法
+    //获取跑腿订单分页数据
+    PageUtils selectIndentPage(Integer page, Integer limit, String acquireCode);
+
+    //校验订单是否能接
+    Result checkIndent(Long userId, String orderId);
+
+    //endregion
 }

+ 0 - 1
src/main/java/com/sqx/modules/errand/service/impl/AdminTrainingCenterServiceImpl.java

@@ -6,7 +6,6 @@ import com.sqx.common.utils.PageUtils;
 import com.sqx.common.utils.Result;
 import com.sqx.modules.errand.dao.AdminTrainingCenterDao;
 import com.sqx.modules.errand.dao.UserInfoDao;
-import com.sqx.modules.errand.entity.TbIndent;
 import com.sqx.modules.errand.entity.TrainingCenter;
 import com.sqx.modules.errand.service.AdminTrainingCenterService;
 import org.springframework.beans.factory.annotation.Autowired;

+ 0 - 2
src/main/java/com/sqx/modules/errand/service/impl/ErrandComplaintServiceImpl.java

@@ -16,7 +16,6 @@ import com.sqx.modules.errand.dao.ShopIllegalTypeDao;
 import com.sqx.modules.errand.dao.TbIndentDao;
 import com.sqx.modules.errand.entity.ErrandComplaint;
 import com.sqx.modules.errand.entity.ErrandIllegalType;
-import com.sqx.modules.errand.entity.ShopIllegalType;
 import com.sqx.modules.errand.entity.TbIndent;
 import com.sqx.modules.errand.service.ErrandComplaintService;
 import com.sqx.modules.order.entity.TbOrder;
@@ -26,7 +25,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
-import java.sql.Timestamp;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 

+ 250 - 1
src/main/java/com/sqx/modules/errand/service/impl/TbIndentServiceImpl.java

@@ -24,6 +24,7 @@ import com.sqx.modules.common.entity.CommonInfo;
 import com.sqx.modules.common.service.CommonInfoService;
 import com.sqx.modules.errand.dao.ErrandEvaluateDao;
 import com.sqx.modules.errand.dao.TbIndentDao;
+import com.sqx.modules.errand.dto.OrderRiderDeliveryDTO;
 import com.sqx.modules.errand.dto.RiderDeliveryDTO;
 import com.sqx.modules.errand.dto.RiderTransferOrderDTO;
 import com.sqx.modules.errand.dto.WaitForAcceptOrderQueryDTO;
@@ -54,6 +55,7 @@ import com.sqx.modules.utils.HttpClientUtil;
 import com.sqx.modules.utils.SenInfoCheckUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.ss.formula.functions.T;
 import org.gavaghan.geodesy.Ellipsoid;
 import org.gavaghan.geodesy.GlobalCoordinates;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -731,6 +733,107 @@ public class TbIndentServiceImpl extends ServiceImpl<TbIndentDao, TbIndent> impl
     }
 
     @Override
+    public Result orderIndentReceiving(Long userId, String acquireCode) {
+        reentrantReadWriteLock.writeLock().lock();
+        try {
+            //判断骑手状态是否被封号
+            UserEntity userEntity1 = userService.selectUserById(userId);
+            if(userEntity1.getStatus()!=1){
+                return Result.error("您的帐号已被封禁,请联系客服解封!");
+            }
+            //判断骑手保证金是否大于可接单金额
+            UserEntity userMessage = userService.selectUserById(userId);
+            String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
+            CommonInfo one1 = commonInfoService.findOne(273);
+            Double cashDeposit = Double.valueOf(one1.getValue());
+            if(userMessage.getCashDeposit().compareTo(BigDecimal.valueOf(cashDeposit)) > 0 ||userMessage.getCashDeposit().compareTo(BigDecimal.valueOf(cashDeposit))==0){
+                //  tbIndentDao.indentReceiving(userId, indentNumber, format);
+                //判断骑手是否超过最大接单数量
+                String maxNumStr = commonInfoService.findOne(342).getValue();
+                Integer maxNum=Integer.parseInt(maxNumStr);
+                int i = tbIndentDao.selectIndentByRiderUserCount(userId);
+                if(i>=maxNum){
+                    return Result.error("您已达最大接单数量,请先完成订单后再进行接单");
+                }
+                TbIndent tbIndent = tbIndentDao.findIndentByOrderId(acquireCode);
+                log.error("抢单:"+userId+"     "+tbIndent.getIndentState());
+                if(!"2".equals(tbIndent.getIndentState())){
+                    return Result.error("订单已被抢走!");
+                }
+                if("4".equals(tbIndent.getIndentType())){
+                    tbIndentDao.orderIndentReceiv(userId, acquireCode, format,"4");
+                }else {
+                    tbIndentDao.orderIndentReceiving(userId, acquireCode, format);
+                }
+                //消息推送(以前写的在下面放着)
+                CommonInfo five = commonInfoService.findOne(310);
+                List<String> msgList=new ArrayList<>();
+                msgList.add("接单项目");
+                msgList.add(userEntity1.getNickName());
+                msgList.add(format);
+                msgList.add("接单成功,请及时取货!");
+                SenInfoCheckUtil.sendRiderMsg(userEntity1.getRiderOpenId(),five.getValue(),msgList,4);
+                userService.pushToSingleRider("接单成功", "您已接单成功,请及时派送", userEntity1.getRiderClientid());
+
+                //用户推送
+                CommonInfo msg = commonInfoService.findOne(269);
+                UserEntity userEntity = userService.selectUserById(tbIndent.getUserId());
+                MessageInfo messageInfo = new MessageInfo();
+                messageInfo.setContent("骑手已接单");
+                messageInfo.setTitle("订单状态通知");
+                messageInfo.setState(String.valueOf(5));
+                messageInfo.setUserName(userEntity.getUserName());
+                messageInfo.setUserId(String.valueOf(userEntity.getUserId()));
+                messageInfo.setCreateAt(DateUtils.format(new Date()));
+                messageInfo.setIsSee("0");
+                messageService.saveBody(messageInfo);
+
+
+                List<String> msgListUser = new ArrayList<>();
+                String value = commonInfoService.findOne(12).getValue();
+                msgListUser.add("骑手已接单");
+                msgListUser.add(tbIndent.getIndentNumber());
+                if(tbIndent.getOrderId()!=null){
+                    TbOrder order = appOrderService.getById(tbIndent.getOrderId());
+                    if(order!=null){
+                        Long shopId = order.getShopId();
+                        GoodsShop goodsShop = goodsShopDao.selectById(shopId);
+                        msgListUser.add(goodsShop.getShopName());
+                    }else{
+                        msgListUser.add(value);
+                    }
+                }else{
+                    msgListUser.add(value);
+                }
+                msgListUser.add(DateUtils.format(new Date()));
+                SenInfoCheckUtil.sendMsg(userEntity.getOpenId(), msg.getValue(), msgListUser, 1);
+                if(tbIndent.getOrderId()!=null){
+                    TbOrder order = appOrderService.getById(tbIndent.getOrderId());
+                    String shopTemplate = commonInfoService.findOne(354).getValue();
+                    List<String> msgListShop = new ArrayList<>();
+                    msgListShop.add(tbIndent.getIndentNumber());
+                    log.error("打印:"+tbIndent.getIndentNumber());
+                    msgListShop.add("骑手接单");
+                    msgListShop.add(DateUtils.format(new Date()));
+                    log.error("打印:"+msgListShop.toString());
+                    GoodsShop goodsShop = goodsShopDao.selectById(order.getShopId());
+                    UserEntity shopUser = userService.selectUserById(goodsShop.getUserId());
+                    SenInfoCheckUtil.sendShopMsg(shopUser.getShopOpenId(), shopTemplate, msgListShop, 9);
+                }
+            }else {
+                return Result.error("你的保证金不足,请缴纳保证金后再接单");
+            }
+            return Result.success();
+        }catch (Exception e){
+            e.printStackTrace();
+            log.error("骑手接单 异常:"+e.getMessage(),e);
+        }finally {
+            reentrantReadWriteLock.writeLock().unlock();
+        }
+        return Result.error("系统繁忙,请稍后再试!");
+    }
+
+    @Override
     public Result riderBuyGoods(TbIndent indent) {
         if("4".equals(indent.getIndentState())){
             TbIndent tbIndent= baseMapper.selectById(indent.getIndentId());
@@ -813,6 +916,8 @@ public class TbIndentServiceImpl extends ServiceImpl<TbIndentDao, TbIndent> impl
         noticeAfterTransfer(indent);
     }
 
+
+
     @Transactional
     @Override
     public Result riderCancleIndent(String indentNumber,Integer type) {
@@ -925,6 +1030,99 @@ public class TbIndentServiceImpl extends ServiceImpl<TbIndentDao, TbIndent> impl
         }
     }
 
+    //region
+    @Override
+    public Result orderRiderDelivery(Long userId, OrderRiderDeliveryDTO orderDeliveryDTO) {
+        // 添加拍照发短信逻辑
+        // 因为原有的确认送达方法代码比较凌乱,且不好重新封装,所以这里就在原有确认收货方法之前添加拍照发短信逻辑
+        reentrantReadWriteLock.writeLock().lock();
+        try{
+            String acquireCode = orderDeliveryDTO.getAcquireCode();
+            TbIndent indentOrder = tbIndentDao.findIndentByOrderId(acquireCode);
+            if (ObjectUtil.isNull(indentOrder)) {
+                throw new SqxException("扫码无效的跑腿订单id");
+            }
+
+            // 如果是外卖订单
+            if (ObjectUtil.equal(indentOrder.getIndentType(), "5")) {
+                orderHandTakeoutOrder(indentOrder, userId, orderDeliveryDTO);
+            }
+
+            return orderFinshOrder(userId, indentOrder.getIndentNumber());
+        } catch (Exception e){
+            log.error("完成订单异常:"+e.getMessage(),e);
+            throw new SqxException(e.getMessage());
+        } finally {
+            reentrantReadWriteLock.writeLock().unlock();
+        }
+    }
+
+    /**
+     * 处理外卖订单
+     * @param indentOrder 跑腿订单
+     * @param userId 当前用户id
+     * @param deliveryDTO 送达信息
+     */
+    private void orderHandTakeoutOrder(TbIndent indentOrder, Long userId, OrderRiderDeliveryDTO deliveryDTO) {
+        // 6表示跑腿订单处于已完成状态
+        if("6".equals(indentOrder.getIndentState())){
+            return;
+        }
+
+        Long smsTemplateId = deliveryDTO.getSmsTemplateId();
+        String imgs = deliveryDTO.getImgs();
+        if (ObjectUtil.isNull(smsTemplateId) || StrUtil.isBlank(imgs)) {
+            throw new SqxException("短信模板id或图片不能为空");
+        }
+
+        // 收货人手机
+        String userPhone = indentOrder.getUserPhone();
+        // 当前骑手
+        UserEntity riderUser = userService.getById(userId);
+
+        if (StrUtil.isBlank(userPhone)) {
+            log.error("外卖跑腿订单【{}】收货人手机号码为空...", indentOrder.getIndentNumber());
+            return;
+        }
+
+        if (ObjectUtil.isNull(riderUser) || StrUtil.isBlank(riderUser.getPhone())) {
+            log.error("外卖跑腿订单【{}】当前骑手id【{}】骑手不存在,或当前骑手手机号码为空...", indentOrder.getIndentNumber(), userId);
+            return;
+        }
+
+        // 订单新增送达图片
+        TbOrder tbOrder = appOrderService.getById(indentOrder.getOrderId());
+        tbOrder.setDeliveryImgs(imgs);
+        appOrderService.updateById(tbOrder);
+
+        // 发送短信并记录短信发送记录
+        SmsSendResult smsSendResult = smsTemplateService.sendSms(smsTemplateId, riderUser, userPhone);
+        // sourceType 1骑手、2商家
+        smsSendLogService.saveLog(indentOrder.getIndentId(), "1", smsSendResult);
+    }
+
+    @Transactional
+    public Result orderFinshOrder(Long userId, String indentNumber){
+        String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
+        TbIndent indentByNumber = tbIndentDao.findIndentByNumber(indentNumber);
+        if("6".equals(indentByNumber.getIndentState())){
+            return Result.success();
+        }
+        if("4".equals(indentByNumber.getIndentState())){
+            if("5".equals(indentByNumber.getIndentType())){
+                log.info("操作完成订单1:"+indentByNumber.getOrderId());
+                appOrderService.accomplishOrder(indentByNumber.getOrderId());
+            }else{
+                tbIndentDao.riderDelivery(indentByNumber.getIndentId(), date);
+                finshIndent(userId, indentNumber);
+            }
+
+            return Result.success();
+        }
+        return Result.error("订单已完成!");
+    }
+    //endregion
+
     /**
      * 处理外卖订单
      * @param indentOrder 跑腿订单
@@ -1447,6 +1645,57 @@ public class TbIndentServiceImpl extends ServiceImpl<TbIndentDao, TbIndent> impl
 
         return userEntity;
     }
+
+
+    @Override
+    public PageUtils selectIndentPage(Integer page, Integer limit, String acquireCode) {
+        IPage<TbIndent> pages = new Page<>(page, limit);
+        QueryWrapper<TbIndent> queryWrapper = new QueryWrapper();
+        queryWrapper.like(org.springframework.util.StringUtils.hasText(acquireCode), "order_id", acquireCode);
+        queryWrapper.orderByAsc("create_time");
+        IPage<TbIndent> result = baseMapper.selectPage(pages, queryWrapper);
+
+        return new PageUtils(result);
+    }
+
+    @Override
+    public Result checkIndent(Long userId, String orderId) {
+        try {
+            //判断骑手状态是否被封号
+            UserEntity userEntity1 = userService.selectUserById(userId);
+            if(userEntity1.getStatus()!=1){
+                return Result.error("您的帐号已被封禁,请联系客服解封!");
+            }
+            //判断骑手保证金是否大于可接单金额
+            UserEntity userMessage = userService.selectUserById(userId);
+            String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
+            CommonInfo one1 = commonInfoService.findOne(273);
+            Double cashDeposit = Double.valueOf(one1.getValue());
+            if(userMessage.getCashDeposit().compareTo(BigDecimal.valueOf(cashDeposit)) > 0 ||userMessage.getCashDeposit().compareTo(BigDecimal.valueOf(cashDeposit))==0){
+                //  tbIndentDao.indentReceiving(userId, indentNumber, format);
+                //判断骑手是否超过最大接单数量
+                String maxNumStr = commonInfoService.findOne(342).getValue();
+                Integer maxNum=Integer.parseInt(maxNumStr);
+                int i = tbIndentDao.selectIndentByRiderUserCount(userId);
+                if(i>=maxNum){
+                    return Result.error("您已达最大接单数量,请先完成订单后再进行接单");
+                }
+                TbIndent tbIndent = tbIndentDao.findIndentByOrderId(orderId);
+                log.error("抢单:"+userId+"     "+tbIndent.getIndentState());
+                if(!"2".equals(tbIndent.getIndentState())){
+                    return Result.error("订单已被抢走!");
+                }
+            }else {
+                return Result.error("你的保证金不足,请缴纳保证金后再接单");
+            }
+            return Result.success();
+        }catch (Exception e){
+            e.printStackTrace();
+            log.error("骑手接单 异常:"+e.getMessage(),e);
+        }
+        return Result.error("系统繁忙,请稍后再试!");
+    }
+
 }
 
 
@@ -1519,4 +1768,4 @@ public class TbIndentServiceImpl extends ServiceImpl<TbIndentDao, TbIndent> impl
                 }
                 String contents = "订单已完成,服务费将在稍后返回到您的账户";
                 userService.pushToSingle(title, contents, riderEntity.getClientid());
-            }*/
+            }*/

+ 0 - 1
src/main/java/com/sqx/modules/errand/service/impl/UserInfoServiceImpl.java

@@ -21,7 +21,6 @@ import com.sqx.modules.errand.entity.ErrandRedPacket;
 import com.sqx.modules.errand.entity.Feedback;
 import com.sqx.modules.errand.entity.TbIndent;
 import com.sqx.modules.errand.service.UserInfoService;
-import com.sqx.modules.order.entity.Evaluate;
 import com.sqx.modules.pay.dao.PayDetailsDao;
 import com.sqx.modules.pay.service.CashOutService;
 import com.sqx.modules.utils.VerifyIdCardUtils;

+ 1 - 2
src/main/java/com/sqx/modules/gameChat/service/ChatContentTcwmService.java

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.sqx.common.utils.PageUtils;
 import com.sqx.common.utils.Result;
 import com.sqx.modules.gameChat.entity.ChatContentTcwm;
-import org.springframework.stereotype.Service;
 
 
 public interface ChatContentTcwmService extends IService<ChatContentTcwm> {
@@ -29,4 +28,4 @@ public interface ChatContentTcwmService extends IService<ChatContentTcwm> {
     Result selectAllUnreadCount(Long userId, Long riderUserId, Long shopId);
 
     Result updateShopAllUnreadCount(Long userId, Long riderUserId, Long shopId);
-}
+}

+ 1 - 5
src/main/java/com/sqx/modules/gameChat/service/impl/ChatContentTcwmServiceImpl.java

@@ -9,12 +9,8 @@ import com.sqx.modules.gameChat.dao.ChatContentTcwmDao;
 import com.sqx.modules.gameChat.entity.ChatContentTcwm;
 import com.sqx.modules.gameChat.service.ChatContentTcwmService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Service;
 
-import java.util.Map;
-
 
 @Service
 public class ChatContentTcwmServiceImpl extends ServiceImpl<ChatContentTcwmDao, ChatContentTcwm> implements ChatContentTcwmService {
@@ -102,4 +98,4 @@ public class ChatContentTcwmServiceImpl extends ServiceImpl<ChatContentTcwmDao,
         return Result.success();
     }
 
-}
+}

+ 0 - 1
src/main/java/com/sqx/modules/goods/service/impl/GoodsShopServiceImpl.java

@@ -36,7 +36,6 @@ import com.sqx.modules.order.dao.AppOrderDao;
 import com.sqx.modules.order.dao.OrderGoodsDao;
 import com.sqx.modules.order.entity.OrderGoods;
 import com.sqx.modules.order.entity.TbOrder;
-import com.sqx.modules.shop.entity.ShopType;
 import com.sqx.modules.shop.service.ShopMessageService;
 import com.sqx.modules.shop.service.ShopTypeService;
 import com.sqx.modules.sys.dao.SysUserDao;

+ 1 - 1
src/main/java/com/sqx/modules/invite/controller/app/AppInviteController.java

@@ -89,4 +89,4 @@ public class AppInviteController {
         return Result.success().put("data",pageUtils);
     }
 
-}
+}

+ 1 - 0
src/main/java/com/sqx/modules/invite/service/impl/InviteServiceImpl.java

@@ -17,6 +17,7 @@ import com.sqx.modules.invite.service.InviteService;
 import com.sqx.modules.message.entity.MessageInfo;
 import com.sqx.modules.message.service.MessageService;
 import org.apache.commons.lang.StringUtils;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;

+ 1 - 1
src/main/java/com/sqx/modules/message/controller/app/AppMessageController.java

@@ -66,4 +66,4 @@ public class AppMessageController {
 
 
 
-}
+}

+ 1 - 0
src/main/java/com/sqx/modules/message/service/impl/MessageServiceImpl.java

@@ -10,6 +10,7 @@ import com.sqx.common.utils.Result;
 import com.sqx.modules.message.dao.MessageInfoDao;
 import com.sqx.modules.message.entity.MessageInfo;
 import com.sqx.modules.message.service.MessageService;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 

+ 2 - 2
src/main/java/com/sqx/modules/oss/controller/SysOssController.java

@@ -37,7 +37,7 @@ public class SysOssController {
     private SysConfigService sysConfigService;
 
     private final static String KEY = ConfigConstant.CLOUD_STORAGE_CONFIG_KEY;
-	
+
 	/**
 	 * 列表
 	 */
@@ -86,7 +86,7 @@ public class SysOssController {
 
 		return Result.success();
 	}
-	
+
 
 	/**
 	 * 上传文件

+ 1 - 0
src/main/java/com/sqx/modules/oss/service/SysOssService.java

@@ -3,6 +3,7 @@ package com.sqx.modules.oss.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.sqx.common.utils.PageUtils;
 import com.sqx.modules.oss.entity.SysOssEntity;
+import org.apache.poi.ss.formula.functions.T;
 
 import java.util.Map;
 

+ 1 - 1
src/main/java/com/sqx/modules/oss/service/impl/SysOssServiceImpl.java

@@ -23,5 +23,5 @@ public class SysOssServiceImpl extends ServiceImpl<SysOssDao, SysOssEntity> impl
 
 		return new PageUtils(page);
 	}
-	
+
 }

+ 1 - 1
src/main/java/com/sqx/modules/pay/controller/CashController.java

@@ -740,4 +740,4 @@ public class CashController {
 
 
 
-}
+}

+ 1 - 1
src/main/java/com/sqx/modules/pay/controller/app/AppCashController.java

@@ -104,4 +104,4 @@ public class AppCashController extends AbstractController {
     }
 
 
-}
+}

+ 1 - 0
src/main/java/com/sqx/modules/pay/service/PayDetailsService.java

@@ -2,6 +2,7 @@ package com.sqx.modules.pay.service;
 
 import com.sqx.common.utils.PageUtils;
 import com.sqx.common.utils.Result;
+import org.apache.poi.ss.formula.functions.T;
 
 public interface PayDetailsService {
 

+ 0 - 1
src/main/java/com/sqx/modules/pay/service/impl/PayDetailsServiceImpl.java

@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.sqx.common.utils.PageUtils;
 import com.sqx.common.utils.Result;
-import com.sqx.modules.app.entity.UserMoneyDetails;
 import com.sqx.modules.pay.dao.PayDetailsDao;
 import com.sqx.modules.pay.entity.PayDetails;
 import com.sqx.modules.pay.service.PayDetailsService;

+ 23 - 0
src/main/java/com/sqx/modules/printInfo/controller/PrintInfoController.java

@@ -73,6 +73,29 @@ public class PrintInfoController {
         return Result.success();
     }
 
+    @GetMapping("testReturnPrintModel")
+    @ApiOperation("测试退单打印")
+    public Result testReturnPrintModel(Long orderId) {
+        // 查询订单信息
+        TbOrder tbOrder = appAppOrderService.selectOrderByIds(orderId);
+        Long shopId = tbOrder.getShopId();
+
+        // 查询店铺信息
+        GoodsShop goodsShop = goodsShopService.selectGoodDatas(shopId);
+
+        // 查询当天店铺所有已支付的订单号,按支付时间排序
+        tbOrder.setCountOrder(3);
+
+        if (StringUtils.isNotEmpty(goodsShop.getSnCode())) {
+            FeiYunUtils.returnPrint(goodsShop.getSnCode(), null, tbOrder);
+        } else {
+            return Result.error("当前商家未绑定打印机!");
+        }
+        return Result.success();
+    }
+
+
+
 
     @GetMapping("getPrintInfoList")
     @ApiOperation("获取打印信息列表")

+ 4 - 4
src/main/java/com/sqx/modules/printInfo/entity/eOrderTypeExtra.java

@@ -10,11 +10,11 @@ import java.util.List;
  * @Version: 1.0
  * 订单类型
  */
-//上门:1
+//到店取餐:1
 //骑手配送:2
 //商家配送:3
 public enum eOrderTypeExtra {
-    Door(1),//上门
+    Door(1),//到店取餐
     Rider(2),//骑手配送
     Store(3);//商家配送
 
@@ -42,7 +42,7 @@ public enum eOrderTypeExtra {
 
     public static Integer integerOf(String value) {
         switch (value) {
-            case "上门":
+            case "到店取餐":
                 return 1;
             case "骑手配送":
                 return 2;
@@ -56,7 +56,7 @@ public enum eOrderTypeExtra {
     public static String stringOf(Integer value) {
         switch (value) {
             case 1:
-                return "上门";
+                return "到店取餐";
             case 2:
                 return "骑手配送";
             case 3:

+ 0 - 1
src/main/java/com/sqx/modules/printInfo/service/impl/PrintInfoServiceImpl.java

@@ -8,7 +8,6 @@ import com.sqx.common.utils.Result;
 import com.sqx.modules.printInfo.dao.PrintInfoDao;
 import com.sqx.modules.printInfo.entity.PrintInfo;
 import com.sqx.modules.printInfo.service.PrintInfoService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 

+ 9 - 8
src/main/java/com/sqx/modules/sys/service/SysConfigService.java

@@ -3,6 +3,7 @@ package com.sqx.modules.sys.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.sqx.common.utils.PageUtils;
 import com.sqx.modules.sys.entity.SysConfigEntity;
+import org.apache.poi.ss.formula.functions.T;
 
 import java.util.Map;
 
@@ -13,39 +14,39 @@ import java.util.Map;
 public interface SysConfigService extends IService<SysConfigEntity> {
 
 	PageUtils queryPage(Map<String, Object> params);
-	
+
 	/**
 	 * 保存配置信息
 	 */
 	public void saveConfig(SysConfigEntity config);
-	
+
 	/**
 	 * 更新配置信息
 	 */
 	public void update(SysConfigEntity config);
-	
+
 	/**
 	 * 根据key,更新value
 	 */
 	public void updateValueByKey(String key, String value);
-	
+
 	/**
 	 * 删除配置信息
 	 */
 	public void deleteBatch(Long[] ids);
-	
+
 	/**
 	 * 根据key,获取配置的value值
-	 * 
+	 *
 	 * @param key           key
 	 */
 	public String getValue(String key);
-	
+
 	/**
 	 * 根据key,获取value的Object对象
 	 * @param key    key
 	 * @param clazz  Object对象
 	 */
 	public <T> T getConfigObject(String key, Class<T> clazz);
-	
+
 }

+ 1 - 0
src/main/java/com/sqx/modules/sys/service/SysLogService.java

@@ -4,6 +4,7 @@ package com.sqx.modules.sys.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.sqx.common.utils.PageUtils;
 import com.sqx.modules.sys.entity.SysLogEntity;
+import org.apache.poi.ss.formula.functions.T;
 
 import java.util.Map;
 

+ 1 - 1
src/main/java/com/sqx/modules/sys/service/SysRoleService.java

@@ -22,7 +22,7 @@ public interface SysRoleService extends IService<SysRoleEntity> {
 
 	void deleteBatch(Long[] roleIds);
 
-	
+
 	/**
 	 * 查询用户创建的角色ID列表
 	 */

+ 3 - 3
src/main/java/com/sqx/modules/sys/service/SysUserService.java

@@ -22,7 +22,7 @@ public interface SysUserService extends IService<SysUserEntity> {
 	 * @param userId  用户ID
 	 */
 	List<String> queryAllPerms(Long userId);
-	
+
 	/**
 	 * 查询用户的所有菜单ID
 	 */
@@ -37,12 +37,12 @@ public interface SysUserService extends IService<SysUserEntity> {
 	 * 保存用户
 	 */
 	void saveUser(SysUserEntity user);
-	
+
 	/**
 	 * 修改用户
 	 */
 	void update(SysUserEntity user);
-	
+
 	/**
 	 * 删除用户
 	 */

+ 1 - 1
src/main/java/com/sqx/modules/sys/service/impl/SysConfigServiceImpl.java

@@ -79,7 +79,7 @@ public class SysConfigServiceImpl extends ServiceImpl<SysConfigDao, SysConfigEnt
 
 		return config == null ? null : config.getParamValue();
 	}
-	
+
 	@Override
 	public <T> T getConfigObject(String key, Class<T> clazz) {
 		String value = getValue(key);

+ 1 - 0
src/main/java/com/sqx/modules/sys/service/impl/SysDictServiceImpl.java

@@ -9,6 +9,7 @@ import com.sqx.modules.sys.dao.SysDictDao;
 import com.sqx.modules.sys.entity.SysDictEntity;
 import com.sqx.modules.sys.service.SysDictService;
 import org.apache.commons.lang.StringUtils;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.stereotype.Service;
 
 import java.util.Map;

+ 1 - 0
src/main/java/com/sqx/modules/sys/service/impl/SysLogServiceImpl.java

@@ -9,6 +9,7 @@ import com.sqx.modules.sys.dao.SysLogDao;
 import com.sqx.modules.sys.entity.SysLogEntity;
 import com.sqx.modules.sys.service.SysLogService;
 import org.apache.commons.lang.StringUtils;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.stereotype.Service;
 
 import java.util.Map;

+ 2 - 2
src/main/java/com/sqx/modules/sys/service/impl/SysRoleServiceImpl.java

@@ -101,10 +101,10 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleDao, SysRoleEntity> i
 		if(role.getCreateUserId() == Constant.SUPER_ADMIN){
 			return ;
 		}
-		
+
 		//查询用户所拥有的菜单列表
 		List<Long> menuIdList = sysUserService.queryAllMenuId(role.getCreateUserId());
-		
+
 		//判断是否越权
 		if(!menuIdList.containsAll(role.getMenuIdList())){
 			throw new SqxException("新增角色的权限,已超出你的权限范围");

+ 4 - 4
src/main/java/com/sqx/modules/sys/service/impl/SysUserServiceImpl.java

@@ -112,7 +112,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUserEntity> i
 
 		//检查角色是否越权
 		checkRole(user);
-		
+
 		//保存用户与角色关系
 		sysUserRoleService.saveOrUpdate(user.getUserId(), user.getRoleIdList());
 	}
@@ -142,7 +142,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUserEntity> i
 
 		//检查角色是否越权
 		checkRole(user);
-		
+
 		//保存用户与角色关系
 		sysUserRoleService.saveOrUpdate(user.getUserId(), user.getRoleIdList());
 	}
@@ -199,7 +199,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUserEntity> i
 		if(user.getCreateUserId() == Constant.SUPER_ADMIN){
 			return ;
 		}
-		
+
 		//查询用户创建的角色列表
 		List<Long> roleIdList = sysRoleService.queryRoleIdList(user.getCreateUserId());
 
@@ -208,4 +208,4 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUserEntity> i
 			throw new SqxException("新增用户所选角色,不是本人创建");
 		}*/
 	}
-}
+}

+ 286 - 6
src/main/java/com/sqx/modules/utils/fieYun/FeiYunUtils.java

@@ -955,15 +955,15 @@ public class FeiYunUtils {
                     }
                 }
                 //endregion
-                if(goods_name_start != null){
+                if (goods_name_start != null) {
                     stringBuilder.append(goods_name_start).append("名称").append(goods_name_end).append("     ");
                 }
 
-                if(goods_price_start != null){
+                if (goods_price_start != null) {
                     stringBuilder.append(goods_price_start).append("单价").append(goods_price_end).append("  ");
                 }
 
-                if(goods_num_start != null){
+                if (goods_num_start != null) {
                     stringBuilder.append(goods_num_start).append("数量").append(goods_num_end).append("  ");
                 }
 
@@ -997,7 +997,7 @@ public class FeiYunUtils {
                     } else {
                         stringBuilder.append("  ");
                     }
-                    stringBuilder.append(goods_num_start).append("x"+orderGoods.getGoodsNum()).append(goods_num_end);
+                    stringBuilder.append(goods_num_start).append("x" + orderGoods.getGoodsNum()).append(goods_num_end);
                     stringBuilder.append("   ");
                     if (sum_money_start != null) {
                         stringBuilder.append(sum_money_start).append(sumMoney).append(sum_money_end);
@@ -1489,7 +1489,11 @@ public class FeiYunUtils {
                 stringBuilder.append(pay_time_start).append("订餐时间:").append(tbOrder.getPayTime()).append(pay_time_end).append("<BR>");
 
                 stringBuilder.append(userStringBuilder);
-
+                stringBuilder.append("<BR>");
+                //String returnNo = getDigitBarCode();
+                //sb.append("<BC128_C>"+returnNo+"</BC128_C>");
+                stringBuilder.append("<CB><QR>").append(tbOrder.getOrderId()).append("</QR></CB><BR>");
+                stringBuilder.append("<CB>收单码:").append(tbOrder.getOrderId()).append("</CB>");
                 stringBuilder.append("<BR>").append("<BR>").append("<BR>");
                 stringBuilder.append("<CUT>");
                 //endregion
@@ -1567,6 +1571,128 @@ public class FeiYunUtils {
     /**
      * 小票机打印订单接口
      *
+     * @param sn       打印机编号
+     * @param classify 分类 1加油成功出票模版  2提货券推送模版  3加油订单结算模版  4商品消费结算
+     * @return 成功:{"msg":"ok","ret":0,"data":"xxxxxxx_xxxxxxxx_xxxxxxxx","serverExecutedTime":5}
+     * 失败:{"msg":"错误描述","ret":非0,"data":"null","serverExecutedTime":5}
+     */
+    public static String returnPrint(String sn, Integer classify, TbOrder tbOrder) {
+        try {
+            //标签说明:
+            //单标签:
+            //"<BR>"为换行,"<CUT>"为切刀指令(主动切纸,仅限切刀打印机使用才有效果)
+            //"<LOGO>"为打印LOGO指令(前提是预先在机器内置LOGO图片),"<PLUGIN>"为钱箱或者外置音响指令
+            //成对标签:
+            //"<CB></CB>"为居中放大一倍,"<B></B>"为放大一倍,"<C></C>"为居中,<L></L>字体变高一倍
+            //<W></W>字体变宽一倍,"<QR></QR>"为二维码,"<BOLD></BOLD>"为字体加粗,""为右对齐
+            //拼凑订单内容时可参考如下格式
+            //根据打印纸张的宽度,自行调整内容的格式,可参考下面的样例格式
+
+            //region 以前的代码
+            /*content = "<CB>测试打印</CB><BR>";
+            content += "名称      单价  数量 金额<BR>";
+            content += "--------------------------------<BR>";
+            content += "饭       1.0    1   1.0<BR>";
+            content += "炒饭      10.0   10  10.0<BR>";
+            content += "蛋炒饭     10.0   10  100.0<BR>";
+            content += "鸡蛋炒饭    100.0  1   100.0<BR>";
+            content += "番茄蛋炒饭   1000.0 1   100.0<BR>";
+            content += "西红柿蛋炒饭  1000.0 1   100.0<BR>";
+            content += "西红柿鸡蛋炒饭 100.0  10  100.0<BR>";
+            content += "备注:加辣<BR>";
+            content += "--------------------------------<BR>";
+            content += "合计:xx.0元<BR>";
+            content += "送货地点:广州市南沙区xx路xx号<BR>";
+            content += "联系电话:13888888888888<BR>";
+            content += "订餐时间:2016-08-08 08:08:08<BR>";
+            content += "<QR>http://www.dzist.com</QR>";*/
+            //endregion
+            StringBuilder sb = new StringBuilder();
+
+            log.info("utils方法打印开始");
+
+            //region 以前的代码
+            sb.append("<AUDIO-REFUND>");
+            sb.append("#").append(tbOrder.getCountOrder()).append("-").append("墨轩云商<BR>");
+            sb.append("<CB>用户已取消,请勿继续配送</CB><BR>");
+            sb.append(tbOrder.getShopName()+"<BR>");
+            sb.append("订单号:").append(tbOrder.getOrderNumber()).append("<BR>");
+            sb.append("类型:").append(eOrderTypeExtra.stringOf(tbOrder.getOrderTypeExtra())).append("<BR>");
+
+//            String returnNo = getDigitBarCode(tbOrder.getOrderNumber());
+//            //sb.append("<BC128_C>"+returnNo+"</BC128_C>");
+//            sb.append("<CB>").append(returnNo).append("</CB>");
+            String content = sb.toString();
+            log.info("打印内容:" + content);
+            //通过POST请求,发送打印信息到服务器
+            RequestConfig requestConfig = RequestConfig.custom()
+                    .setSocketTimeout(30000)//读取超时
+                    .setConnectTimeout(30000)//连接超时
+                    .build();
+
+            CloseableHttpClient httpClient = HttpClients.custom()
+                    .setDefaultRequestConfig(requestConfig)
+                    .build();
+            String URL = commonInfoService.findOne(325).getValue();
+            String USER = commonInfoService.findOne(326).getValue();
+            String UKEY = commonInfoService.findOne(327).getValue();
+            HttpPost post = new HttpPost(URL);
+            List<NameValuePair> nvps = new ArrayList<NameValuePair>();
+            nvps.add(new BasicNameValuePair("user", USER));
+            String STIME = String.valueOf(System.currentTimeMillis() / 1000);
+            nvps.add(new BasicNameValuePair("stime", STIME));
+            nvps.add(new BasicNameValuePair("sig", signature(USER, UKEY, STIME)));
+            nvps.add(new BasicNameValuePair("apiname", "Open_printMsg"));//固定值,不需要修改
+            nvps.add(new BasicNameValuePair("sn", sn));
+            nvps.add(new BasicNameValuePair("content", content));
+            nvps.add(new BasicNameValuePair("times", "1"));//打印联数
+
+            CloseableHttpResponse response = null;
+            String result = null;
+            try {
+                post.setEntity(new UrlEncodedFormEntity(nvps, "utf-8"));
+                response = httpClient.execute(post);
+                int statecode = response.getStatusLine().getStatusCode();
+                if (statecode == 200) {
+                    HttpEntity httpentity = response.getEntity();
+                    if (httpentity != null) {
+                        //服务器返回的JSON字符串,建议要当做日志记录起来
+                        result = EntityUtils.toString(httpentity);
+                    }
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            } finally {
+                try {
+                    if (response != null) {
+                        response.close();
+                    }
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+                try {
+                    post.abort();
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                try {
+                    httpClient.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+            log.error("打印返回值:" + result);
+            return result;
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("打印异常:" + e.getMessage(), e);
+        }
+        return null;
+    }
+
+    /**
+     * 小票机打印订单接口
+     *
      * @param sn 打印机编号
      * @return 成功:{"msg":"ok","ret":0,"data":"xxxxxxx_xxxxxxxx_xxxxxxxx","serverExecutedTime":5}
      * 失败:{"msg":"错误描述","ret":非0,"data":"null","serverExecutedTime":5}
@@ -1586,7 +1712,8 @@ public class FeiYunUtils {
             log.info("utils方法打印开始");
 
             //region 以前的代码
-            String content = "<CB>测试打印</CB><BR>";
+            String content = "<AUDIO-REFUND>";
+            content += "<CB>测试打印</CB><BR>";
             content += "名称      单价  数量 金额<BR>";
             content += "--------------------------------<BR>";
             content += "<B>饭       1.0    1   1.0</B><BR>";
@@ -2055,4 +2182,157 @@ public class FeiYunUtils {
     }
 
 
+    /**
+     *    飞鹅技术支持-2020-03-25
+     *    #########################################################################################################
+     *    一,纯数字条件下:
+     *        58mm打印机最大支持28位纯数字,80mm打印机最大支持46位纯数字,超出无效
+     *
+     *        26-28位数字条形码,在数字中不可以出现2个及以上连续的0存在
+     *        23-25位数字条形码,在数字中不可以出现3个及以上连续的0存在
+     *        21-22位数字条形码,在数字中不可以出现4个及以上连续的0存在
+     *        19-20位数字条形码,在数字中不可以出现6个及以上连续的0存在
+     *        17-18位数字条形码,在数字中不可以出现8个及以上连续的0存在
+     *        15-16位数字条形码,在数字中不可以出现10个及以上连续的0存在
+     *        少于或等于14位数字的条形码,0的数量没有影响
+     *    #########################################################################################################
+     *    二,非纯数字混合条件下:
+     *        58mm打印机最大支持14位字符,80mm打印机最大支持23位字符,超出无效
+     *
+     *        支持数字,大小写字母,特殊字符例如:  !@#$%^&*()-=+_
+     *    #########################################################################################################
+     *    把条形码函数返回值,调用飞鹅云打印接口发给打印机打印
+     */
+    private static String getDigitBarCode(String input) {
+        String chr = "";
+        String laststr = "";
+        byte[] codeB = { 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39 }; // 匹配字符集B
+        byte[] codeC = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
+                0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20,
+                0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31,
+                0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42,
+                0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53,
+                0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x61, 0x62, 0x63 }; // 匹配字符集C
+        int length = input.length();
+        byte[] b = new byte[100];
+        b[0] = 0x1b;
+        b[1] = 0x64;
+        b[2] = 0x02;
+        b[3] = 0x1d;
+        b[4] = 0x48;
+        b[5] = 0x32; // 0x32打印条形码下的数字, 0x30不打印条形码下的数字
+        b[6] = 0x1d;
+        b[7] = 0x68;
+        b[8] = 0x50; // 7F是最大的高度
+        b[9] = 0x1d;
+        b[10] = 0x77;
+        b[11] = 0x02; // 2-6  条码宽度
+        b[12] = 0x1d;
+        b[13] = 0x6b;
+        b[14] = 0x49; // code128
+        b[15] = (byte) (length + 2); // 得出条形码长度
+        b[16] = 0x7b;
+        b[17] = 0x42;
+        boolean result=input.matches("[0-9]+");//判断是否为纯数字
+        if (length > 14 && result == true) {
+            b[17] = 0x43;
+            int j = 0;
+            int key = 18;
+            int ss = length / 2;// 初始化数组长度
+            String temp = "";
+            int iindex = 0;
+            for (int i = 0; i < ss; i++) {
+                temp = input.substring(j, j + 2);
+                iindex = Integer.valueOf(temp);
+                j = j + 2;
+                if (iindex == 0) {
+                    chr = "";
+                    if(b[key + i - 1] == '0' && b[key + i - 2] == '0') {
+                        b[key + i] = codeB[0];
+                        b[key + i+1] = codeB[0];
+                        key+=1;
+                    }else {
+                        if(b[key + i-1] == 'C' && b[key + i-2] == '{' ){//判断前面的为字符集C时转换字符集B
+                            b[key + i - 2] = 0x7b;
+                            b[key + i - 1] = 0x42;
+                            b[key + i] = codeB[0];
+                            b[key + i + 1] = codeB[0];
+                            key += 1;
+                        }else{
+                            b[key + i] = 0x7b;
+                            b[key + i + 1] = 0x42;
+                            b[key + i + 2] = codeB[0];
+                            b[key + i + 3] = codeB[0];
+                            key += 3;
+                        }
+                    }
+                } else {
+                    // 判断前面的为字符集B,此时要转换字符集C
+                    if (b[key + i - 1] == '0' && b[key + i - 2] == '0' && chr != "chr") {
+                        b[key + i] = 0x7b;
+                        b[key + i + 1] = 0x43;
+                        b[key + i + 2] = codeC[iindex];
+                        key += 2;
+                    }else {
+                        chr = "";
+                        b[key + i] = codeC[iindex];
+                        if(iindex == 48) chr = "chr";//判断chr(48)等于0的情况
+                    }
+                }
+            }
+            int lastKey = getLastIndex(b);
+            if (length % 2 > 0) {
+                int lastnum = Integer.valueOf(input.substring(input.length() - 1)); // 取得字符串的最后一个数字
+                if(b[lastKey] == '0' && b[lastKey-1] == '0'){//判断前面的为字符集B,此时不需要转换字符集
+                    b[lastKey + 1] = codeB[lastnum];
+                }else{
+                    b[lastKey + 1] = 0x7b;
+                    b[lastKey + 2] = 0x42;
+                    b[lastKey + 3] = codeB[lastnum];
+                }
+            }
+            // 得出条形码长度
+            int blength = getLastIndex(b);
+            int len = (blength - 15);
+            b[15] = (byte) (len);
+            String str = "";
+            str = new String(b);
+            laststr = str;
+
+            String Last_two = input.substring(input.length()-2,input.length());
+            int Last_two_int = 0;
+            Last_two_int = Integer.valueOf(Last_two);
+            if(Last_two_int > 32) {
+                laststr = laststr.trim().substring(1);
+            }
+        } else { // 1-14位数字的条形码进来这个区间
+            b[15] = (byte) (length+2);
+            laststr = new String(b);
+            laststr = laststr.substring(0, 18);
+            laststr += input;
+        }
+        return laststr;
+    }
+
+
+    // 获取数组中最后一个不是0x0的元素的下标
+    private static int getLastIndex(byte[] b) {
+        if (b == null || b.length == 0) {
+            return 0;
+        }
+        int blength = 0;
+        for (int i = b.length - 1; i >= 0; i--) {
+            if (b[i] != 0x0) {
+                blength = i;
+                break;
+            }
+        }
+        return blength;
+    }
+
+
+    public static void main(String[] args) {
+        String result = getDigitBarCode("!@#$%^&*()-=+_");
+
+    }
 }

+ 1 - 1
src/main/resources/application.yml

@@ -19,7 +19,7 @@ spring:
     allow-circular-references: true
   # 环境 dev|test|prod
   profiles:
-    active: prod
+    active: dev
   # jackson时间格式化
   jackson:
     time-zone: GMT+8

+ 24 - 1
src/main/resources/mapper/errand/TbIndentMapper.xml

@@ -144,6 +144,12 @@
         where indent_number = #{indentNumber}
     </select>
 
+    <select id="findIndentByOrderId" resultType="com.sqx.modules.errand.entity.TbIndent">
+        select *
+        from tb_indent
+        where order_id = #{orderId}
+    </select>
+
     <select id="selectIndentByRiderUserCount" resultType="Integer">
         select count(*)
         from tb_indent
@@ -166,6 +172,22 @@
         where indent_number = #{indentNumber}
     </update>
 
+    <update id="orderIndentReceiv">
+        update tb_indent
+        set indent_state   = #{state},
+            rider_user_id  = #{userId},
+            receiving_time = #{format}
+        where order_id = #{orderId}
+    </update>
+
+    <update id="orderIndentReceiving">
+        update tb_indent
+        set indent_state   = 3,
+            rider_user_id  = #{userId},
+            receiving_time = #{format}
+        where order_id = #{orderId}
+    </update>
+
     <select id="findRiderIndent" resultType="com.sqx.modules.errand.entity.TbIndent">
         select * from tb_indent where rider_user_id = #{userId}
         <if test="indentState!=''">
@@ -247,6 +269,7 @@
         where indent_number = #{indentNumber}
     </select>
 
+
     <update id="updateRiderBalance">
         update tb_user
         set balance = #{balance}
@@ -837,4 +860,4 @@ select tu.user_id, (st_distance (point (station_lat, station_lng), point(#{userL
         order by distance asc limit 1
     -->
 
-</mapper>
+</mapper>