wang-hao-jie
2021-12-27 fb53a9997de491c3d0a30ed333a6bd3b24877b82
违章记录
9个文件已修改
18个文件已添加
1130 ■■■■■ 已修改文件
xboot-admin/pom.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-file/src/main/java/cn/exrick/xboot/file/manage/FileManage.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-file/src/main/java/cn/exrick/xboot/file/manage/impl/LocalFileManage.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/pom.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderDetailOriginalController.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderTaskOriginalController.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/face/FaceImgController.java 161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/orderSyn/OrderSynController.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/wx/IndexController.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/Alarm.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/OrderDetail.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/OrderDetailOriginal.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/OrderTaskOriginal.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/OrderDetailOriginalMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/OrderTaskOriginalMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/OrderSynScheduleImpl.java 175 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/StatisticPc2ScheduleImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/StatisticPcScheduleImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/StatisticScheduleImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/IOrderDetailOriginalService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/IOrderTaskOriginalService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/IOrderDetailOriginalServiceImpl.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/IOrderTaskOriginalServiceImpl.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/FaceSystem.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/HttpUtil.java 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/resources/mapper/OrderDetailOriginalMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/resources/mapper/OrderTaskOriginalMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-admin/pom.xml
@@ -82,6 +82,9 @@
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <includeSystemScope>true</includeSystemScope>
                </configuration>
            </plugin>
        </plugins>
    </build>
xboot-modules/xboot-file/src/main/java/cn/exrick/xboot/file/manage/FileManage.java
@@ -3,6 +3,7 @@
import cn.exrick.xboot.core.vo.OssSetting;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.Part;
import java.io.InputStream;
/**
xboot-modules/xboot-file/src/main/java/cn/exrick/xboot/file/manage/impl/LocalFileManage.java
@@ -17,6 +17,7 @@
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import java.io.*;
/**
@@ -60,7 +61,7 @@
        if (f.exists()) {
            throw new XbootException("文件名已存在");
        }
        try {
        try{
            file.transferTo(f);
            return path + "/" + key;
        } catch (IOException e) {
xboot-modules/xboot-your/pom.xml
@@ -25,9 +25,10 @@
        </dependency>
        <dependency>
            <groupId>com.rabbitmq</groupId>
            <artifactId>amqp-client</artifactId>
            <version>5.7.0</version>
            <groupId>cn.exrick</groupId>
            <artifactId>xboot-file</artifactId>
            <version>1.0-SNAPSHOT</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
</project>
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderDetailOriginalController.java
New file
@@ -0,0 +1,77 @@
package cn.exrick.xboot.your.controller;
import cn.exrick.xboot.core.common.utils.PageUtil;
import cn.exrick.xboot.core.common.utils.ResultUtil;
import cn.exrick.xboot.core.common.vo.PageVo;
import cn.exrick.xboot.core.common.vo.Result;
import cn.exrick.xboot.your.entity.OrderDetailOriginal;
import cn.exrick.xboot.your.service.IOrderDetailOriginalService;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
 * @author whj
 */
@Slf4j
@RestController
@Api(tags = "订单详情原始表管理接口")
@RequestMapping("/xboot/orderDetailOriginal")
@Transactional
public class OrderDetailOriginalController {
    @Autowired
    private IOrderDetailOriginalService iOrderDetailOriginalService;
    @RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
    @ApiOperation(value = "通过id获取")
    public Result<OrderDetailOriginal> get(@PathVariable String id) {
        OrderDetailOriginal orderDetailOriginal = iOrderDetailOriginalService.getById(id);
        return new ResultUtil<OrderDetailOriginal>().setData(orderDetailOriginal);
    }
    @RequestMapping(value = "/getAll", method = RequestMethod.GET)
    @ApiOperation(value = "获取全部数据")
    public Result<List<OrderDetailOriginal>> getAll() {
        List<OrderDetailOriginal> list = iOrderDetailOriginalService.list();
        return new ResultUtil<List<OrderDetailOriginal>>().setData(list);
    }
    @RequestMapping(value = "/getByPage", method = RequestMethod.GET)
    @ApiOperation(value = "分页获取")
    public Result<IPage<OrderDetailOriginal>> getByPage(PageVo page) {
        IPage<OrderDetailOriginal> data = iOrderDetailOriginalService.page(PageUtil.initMpPage(page));
        return new ResultUtil<IPage<OrderDetailOriginal>>().setData(data);
    }
    @RequestMapping(value = "/insertOrUpdate", method = RequestMethod.POST)
    @ApiOperation(value = "编辑或更新数据")
    public Result<OrderDetailOriginal> saveOrUpdate(OrderDetailOriginal orderDetailOriginal) {
        if (iOrderDetailOriginalService.saveOrUpdate(orderDetailOriginal)) {
            return new ResultUtil<OrderDetailOriginal>().setData(orderDetailOriginal);
        }
        return new ResultUtil<OrderDetailOriginal>().setErrorMsg("操作失败");
    }
    @RequestMapping(value = "/delByIds", method = RequestMethod.POST)
    @ApiOperation(value = "批量通过id删除")
    public Result<Object> delAllByIds(@RequestParam String[] ids) {
        for (String id : ids) {
            iOrderDetailOriginalService.removeById(id);
        }
        return ResultUtil.success("批量通过id删除数据成功");
    }
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderTaskOriginalController.java
New file
@@ -0,0 +1,77 @@
package cn.exrick.xboot.your.controller;
import cn.exrick.xboot.core.common.utils.PageUtil;
import cn.exrick.xboot.core.common.utils.ResultUtil;
import cn.exrick.xboot.core.common.vo.PageVo;
import cn.exrick.xboot.core.common.vo.Result;
import cn.exrick.xboot.your.entity.OrderTaskOriginal;
import cn.exrick.xboot.your.service.IOrderTaskOriginalService;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
 * @author whj
 */
@Slf4j
@RestController
@Api(tags = "订单任务原始表管理接口")
@RequestMapping("/xboot/orderTaskOriginal")
@Transactional
public class OrderTaskOriginalController {
    @Autowired
    private IOrderTaskOriginalService iOrderTaskOriginalService;
    @RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
    @ApiOperation(value = "通过id获取")
    public Result<OrderTaskOriginal> get(@PathVariable String id) {
        OrderTaskOriginal orderTaskOriginal = iOrderTaskOriginalService.getById(id);
        return new ResultUtil<OrderTaskOriginal>().setData(orderTaskOriginal);
    }
    @RequestMapping(value = "/getAll", method = RequestMethod.GET)
    @ApiOperation(value = "获取全部数据")
    public Result<List<OrderTaskOriginal>> getAll() {
        List<OrderTaskOriginal> list = iOrderTaskOriginalService.list();
        return new ResultUtil<List<OrderTaskOriginal>>().setData(list);
    }
    @RequestMapping(value = "/getByPage", method = RequestMethod.GET)
    @ApiOperation(value = "分页获取")
    public Result<IPage<OrderTaskOriginal>> getByPage(PageVo page) {
        IPage<OrderTaskOriginal> data = iOrderTaskOriginalService.page(PageUtil.initMpPage(page));
        return new ResultUtil<IPage<OrderTaskOriginal>>().setData(data);
    }
    @RequestMapping(value = "/insertOrUpdate", method = RequestMethod.POST)
    @ApiOperation(value = "编辑或更新数据")
    public Result<OrderTaskOriginal> saveOrUpdate(OrderTaskOriginal orderTaskOriginal) {
        if (iOrderTaskOriginalService.saveOrUpdate(orderTaskOriginal)) {
            return new ResultUtil<OrderTaskOriginal>().setData(orderTaskOriginal);
        }
        return new ResultUtil<OrderTaskOriginal>().setErrorMsg("操作失败");
    }
    @RequestMapping(value = "/delByIds", method = RequestMethod.POST)
    @ApiOperation(value = "批量通过id删除")
    public Result<Object> delAllByIds(@RequestParam String[] ids) {
        for (String id : ids) {
            iOrderTaskOriginalService.removeById(id);
        }
        return ResultUtil.success("批量通过id删除数据成功");
    }
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/face/FaceImgController.java
New file
@@ -0,0 +1,161 @@
package cn.exrick.xboot.your.controller.face;
import cn.exrick.xboot.core.common.constant.CommonConstant;
import cn.exrick.xboot.core.common.constant.SettingConstant;
import cn.exrick.xboot.core.common.redis.RedisTemplateHelper;
import cn.exrick.xboot.core.common.utils.CommonUtil;
import cn.exrick.xboot.core.entity.User;
import cn.exrick.xboot.core.service.SettingService;
import cn.exrick.xboot.core.service.UserService;
import cn.exrick.xboot.core.vo.OssSetting;
import cn.exrick.xboot.file.entity.File;
import cn.exrick.xboot.file.manage.FileManageFactory;
import cn.exrick.xboot.file.service.FileService;
import cn.exrick.xboot.your.entity.Alarm;
import cn.exrick.xboot.your.entity.Car;
import cn.exrick.xboot.your.service.IAlarmService;
import cn.exrick.xboot.your.service.ICarService;
import cn.exrick.xboot.your.util.FaceSystem;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.gson.Gson;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.Part;
import java.io.IOException;
import java.io.InputStream;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
@RestController
@RequestMapping("/hk")
public class FaceImgController {
    @Autowired
    private FileManageFactory fileManageFactory;
    @Autowired
    private FileService fileService;
    @Autowired
    private ICarService iCarService;
    @Autowired
    private UserService userService;
    @Autowired
    private SettingService settingService;
    @Autowired
    private IAlarmService iAlarmService;
    @Autowired
    private RedisTemplateHelper redisTemplate;
    @RequestMapping(value = "/faceImg", method = RequestMethod.POST)
    public void saveOrUpdate(HttpServletRequest request) throws IOException, ServletException {
        OssSetting os = new Gson().fromJson(settingService.get(SettingConstant.LOCAL_OSS).getValue(), OssSetting.class);
        String faceCapture = request.getParameter("faceCapture");
        if(StrUtil.isNotEmpty(faceCapture)){
            JSONObject jsonObject = JSONUtil.parseObj(faceCapture);
            String faceCaptures = jsonObject.get("faceCapture").toString();
            JSONArray objects = JSONUtil.parseArray(faceCaptures);
            JSONObject jsonObject1 = objects.getJSONObject(0);
            String targetAttrs = jsonObject1.get("targetAttrs").toString();
            JSONObject jsonObject2 = JSONUtil.parseObj(targetAttrs);
            String deviceName = jsonObject2.get("deviceName").toString();
            System.out.println(deviceName);
            QueryWrapper<Car> wrapper = new QueryWrapper<Car>();
            wrapper.eq("car_no",deviceName.substring(0,deviceName.length()-1));
            Car one = iCarService.getOne(wrapper);
            User user = userService.get(one.getUserId());
            User user1 = userService.get(one.getFollowUserId());
            Collection parts = request.getParts();
            for (Iterator iterator = parts.iterator(); iterator.hasNext();) {
                Part part = (Part) iterator.next();
                if(part.getContentType().equals("image/jpeg")){
                    MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
                    List<MultipartFile> imgs = multipartRequest.getFiles(part.getName());
                    for(MultipartFile multipartFile:imgs){
                        String result = "";
                        String fKey = CommonUtil.renamePic(part.getName())+".jpeg";
                        File f = new File();
                        try {
                            InputStream inputStream = part.getInputStream();
                            result = fileManageFactory.getFileManage(null).inputStreamUpload(inputStream, fKey, multipartFile);
                            f.setLocation(0).setName(multipartFile.getOriginalFilename()).setSize(multipartFile.getSize()).setType(multipartFile.getContentType()).setFKey(fKey).setUrl(result);
                            fileService.save(f);
                            int flag = 0;
                            String avatar2 = os.getHttp() + os.getEndpoint() + "/" + f.getId();
                            if(user!=null){
                                String avatar = user.getAvatar();
                                int result1 = FaceSystem.getResult(avatar, avatar2);
                                if(result1<70){
                                    flag++;
                                }else{
                                    deleteFile(f.getId());
                                }
                            }
                            if(user1!=null){
                                String avatar = user1.getAvatar();
                                int result1 = FaceSystem.getResult(avatar, avatar2);
                                if(result1<70){
                                    flag++;
                                }else{
                                    deleteFile(f.getId());
                                }
                            }
                            if(flag>0){
                                Alarm alarm = new Alarm();
                                alarm.setCarNo(one.getCarNo());
                                alarm.setCarId(one.getId());
                                alarm.setCarUserId(one.getUserId());
                                alarm.setFollowUserId(one.getFollowUserId());
                                alarm.setType(5);
                                alarm.setValue("车厢异常开启");
                                alarm.setAlarmImg(avatar2);
                                iAlarmService.saveOrUpdate(alarm);
                            }
                        } catch (Exception e) {
                            System.out.println(e.toString());
                        }
                    }
                }
            }
        }
    }
    public void deleteFile(String id){
        File file = fileService.get(id);
        // 特殊处理本地服务器
        String key = file.getFKey();
        if (CommonConstant.OSS_LOCAL.equals(file.getLocation())) {
            key = file.getUrl();
        }
        fileManageFactory.getFileManage(file.getLocation()).deleteFile(key);
        fileService.delete(id);
        redisTemplate.delete("file::" + id);
    }
    //                System.out.println("-----类型名称------->"+part.getName());
//                System.out.println("-----提交的类型名称------->"+part.getSubmittedFileName());
//                System.out.println("----流-------->"+part.getInputStream());
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/orderSyn/OrderSynController.java
New file
@@ -0,0 +1,43 @@
package cn.exrick.xboot.your.controller.orderSyn;
import cn.exrick.xboot.core.common.utils.ResultUtil;
import cn.exrick.xboot.your.entity.*;
import cn.exrick.xboot.your.service.*;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * @author whj
 */
@Slf4j
@RestController
@Api(tags = "订单同步接口")
@RequestMapping("/xboot/orderSyn")
@Transactional
public class OrderSynController {
    @Autowired
    private IOrderTaskOriginalService iOrderTaskOriginalService;
    @Autowired
    private IOrderDetailOriginalService iOrderDetailOriginalService;
    @RequestMapping(value = "/insert", method = RequestMethod.POST)
    public Object saveOrUpdate(@RequestBody List<OrderTaskOriginal> list) {
        System.out.println(list.size());
        iOrderTaskOriginalService.saveBatch(list);
        return ResultUtil.success("成功");
    }
    @RequestMapping(value = "/insert2", method = RequestMethod.POST)
    public Object saveOrUpdate2(@RequestBody List<OrderDetailOriginal> list) {
        System.out.println(list.size());
        iOrderDetailOriginalService.saveBatch(list);
        return ResultUtil.success("成功");
    }
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/wx/IndexController.java
New file
@@ -0,0 +1,102 @@
package cn.exrick.xboot.your.controller.wx;
import cn.exrick.xboot.core.common.utils.ResultUtil;
import cn.exrick.xboot.your.entity.*;
import cn.exrick.xboot.your.service.*;
import cn.exrick.xboot.your.util.HttpUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.util.*;
/**
 * @author whj
 */
@Slf4j
@RestController
@Api(tags = "订单接口")
@RequestMapping("/xboot/wx")
@Transactional
public class IndexController {
    @Autowired
    private IOrderTaskService iOrderTaskService;
    @Autowired
    private ICustomerService iCustomerService;
    @Autowired
    private IOrderDetailService iOrderDetailService;
    //获取今日配送订单
    @RequestMapping("/getTodayOrder")
    public Object getTodayOrder(String customerId){
        QueryWrapper<OrderTask> wrapper2 = new QueryWrapper<OrderTask>();
        String format = DateUtil.format(new Date(), "yyyy-MM-dd");
        wrapper2.eq("customer_id",customerId);
        wrapper2.eq("send_date",format);
        OrderTask orderTask = iOrderTaskService.getOne(wrapper2);
        if(orderTask==null){
            return ResultUtil.data(new ArrayList<>());
        }else{
            QueryWrapper<OrderDetail> wrapper = new QueryWrapper<OrderDetail>();
            wrapper.eq("order_id",orderTask.getId());
            List<OrderDetail> list = iOrderDetailService.list(wrapper);
            return ResultUtil.data(list);
        }
    }
    //微信绑定零售许可证
    @RequestMapping("/bindWx")
    public Object bindWx(String licence,String openId){
        QueryWrapper<Customer> wrapper = new QueryWrapper<>();
        wrapper.eq("licence",licence);
        Customer one = iCustomerService.getOne(wrapper);
        if(one==null){
            return ResultUtil.error("零售许可证无效");//首次登陆需绑定零售许可证
        }else {
            one.setOpenId(openId);
            iCustomerService.saveOrUpdate(one);
            return ResultUtil.data(one,"登录成功");
        }
    }
    //微信登陆
    @RequestMapping("/login")
    public Object doLogin(String code){
        JSONObject SessionKeyOpenId = getSessionKeyOrOpenId( code );
        String openid = SessionKeyOpenId.getStr("openid");
        if(StrUtil.isEmpty(openid)){
            return ResultUtil.error(SessionKeyOpenId.toString());
        }
        QueryWrapper<Customer> wrapper = new QueryWrapper<>();
        wrapper.eq("open_id",openid);
        Customer one = iCustomerService.getOne(wrapper);
        if(one==null){
            return ResultUtil.error(openid);//首次登陆需绑定零售许可证
        }else {
            return ResultUtil.data(one,"登录成功");
        }
    }
    public static JSONObject getSessionKeyOrOpenId(String code){
        //微信端登录code
        String wxCode = code;
        String requestUrl = "https://api.weixin.qq.com/sns/jscode2session?appid=wx0f10f6d253f3ee6b&secret=4d4cbc8da31a96559114ad693de70631&grant_type=authorization_code&js_code="+code;
        JSONObject jsonObject = JSONUtil.parseObj( HttpUtil.get(requestUrl));
        return jsonObject;
    }
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/Alarm.java
@@ -53,4 +53,7 @@
    @ApiModelProperty(value = "车机报警id")
    private String alarmId;
    @ApiModelProperty(value = "异常开启图片")
    private String alarmImg;
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/OrderDetail.java
@@ -35,6 +35,6 @@
    private String product;
    @ApiModelProperty(value = "数量")
    private String num;
    private Integer num;
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/OrderDetailOriginal.java
New file
@@ -0,0 +1,40 @@
package cn.exrick.xboot.your.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
@Data
@Entity
@DynamicInsert
@DynamicUpdate
@Table(name = "t_order_detail_original")
@TableName("t_order_detail_original")
@ApiModel(value = "订单详情原始表")
public class OrderDetailOriginal {
    @Id
    private String id;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    protected Date createTime;//创建时间
    private String orderId;//订单id
    private String orderCode;//订单code唯一标识
    private Integer num;//条数
    private String productName;//产品名称
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/OrderTaskOriginal.java
New file
@@ -0,0 +1,64 @@
package cn.exrick.xboot.your.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
@Data
@DynamicInsert
@DynamicUpdate
@Table(name = "t_order_task_original")
@TableName("t_order_task_original")
@Entity
@ApiModel(value = "订单任务原始表")
public class OrderTaskOriginal {
    @Id
    private String id;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    protected Date createTime;
    private String code;//订单编号
    private String customerName;//客户名称
    private String customerCode;//客户代号
    private String customerPhone;//客户电话
    private String linker;//法人
    private Integer seq;//送货顺序
    private Integer num;//包数
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date orderDate;//订货日期
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date packetDate;//封包日期
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date sendDate;//配送日期
    private String areaName;//片区名称
    private String areaCode;//片区编号
    private String areaSection;//片区段名称
    private String sectionCode;//片区段编号
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/OrderDetailOriginalMapper.java
New file
@@ -0,0 +1,14 @@
package cn.exrick.xboot.your.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import cn.exrick.xboot.your.entity.OrderDetailOriginal;
import java.util.List;
/**
 * 订单详情原始表数据处理层
 * @author whj
 */
public interface OrderDetailOriginalMapper extends BaseMapper<OrderDetailOriginal> {
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/OrderTaskOriginalMapper.java
New file
@@ -0,0 +1,14 @@
package cn.exrick.xboot.your.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import cn.exrick.xboot.your.entity.OrderTaskOriginal;
import java.util.List;
/**
 * 订单任务原始表数据处理层
 * @author whj
 */
public interface OrderTaskOriginalMapper extends BaseMapper<OrderTaskOriginal> {
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/OrderSynScheduleImpl.java
New file
@@ -0,0 +1,175 @@
package cn.exrick.xboot.your.schedulings;
import cn.exrick.xboot.your.entity.*;
import cn.exrick.xboot.your.service.*;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
//订单处理
@Component
public class OrderSynScheduleImpl {
    @Autowired
    private IOrderTaskOriginalService iOrderTaskOriginalService;
    @Autowired
    private IOrderDetailOriginalService iOrderDetailOriginalService;
    @Autowired
    private IOrderTaskService iOrderTaskService;
    @Autowired
    private IOrderDetailService iOrderDetailService;
    @Autowired
    private IAreaService iAreaService;
    @Autowired
    private IAreaSectionService iAreaSectionService;
    @Autowired
    private ICustomerService iCustomerService;
    @Autowired
    private ICarService iCarService;
    @Autowired
    private ICustomerReceiveService iCustomerReceiveService;
    @Scheduled(cron="0 30 23 * * ?")//每晚凌晨1点执行
    public void execute(){
        QueryWrapper<OrderTaskOriginal> queryWrapper = new QueryWrapper<>();
        queryWrapper.between("create_time",dateStringFormat(new Date()),dateStringFormat2(new Date()));
        List<OrderTaskOriginal> list = iOrderTaskOriginalService.list();
        for(OrderTaskOriginal original:list){
            OrderTask orderTask = new OrderTask();
            orderTask.setCode(original.getCode());
            orderTask.setAreaId(getArea(original.getAreaName()));
            orderTask.setAreaSectionId(getAreaSection(orderTask.getAreaId(),original.getAreaSection()));
            orderTask.setCustomerId(getCustomer(original.getCustomerCode(),original.getCustomerName(),original.getCustomerPhone(),original.getLinker(),orderTask.getAreaId(),orderTask.getAreaSectionId()));
            orderTask.setEndDate(original.getPacketDate());
            orderTask.setSendDate(original.getSendDate());
            orderTask.setOrderDate(original.getOrderDate());
            orderTask.setSeq(original.getSeq());
            orderTask.setNum(original.getNum());
            orderTask.setCarId(orderTask.getAreaId());
            iOrderTaskService.saveOrUpdate(orderTask);
            updateCustomerRecive(orderTask.getCustomerId(),original.getLinker(),original.getCustomerPhone());
            QueryWrapper<OrderDetailOriginal> wrapper = new QueryWrapper<>();
            wrapper.between("create_time",dateStringFormat(new Date()),dateStringFormat2(new Date()));
            wrapper.eq("orderId",original.getId());
            List<OrderDetailOriginal> list1 = iOrderDetailOriginalService.list(wrapper);
            for(OrderDetailOriginal o:list1){
                OrderDetail orderDetail = new OrderDetail();
                orderDetail.setNum(o.getNum());
                orderDetail.setOrderId(orderTask.getId());
                orderDetail.setProduct(o.getProductName());
                iOrderDetailService.saveOrUpdate(orderDetail);
            }
        }
    }
    public void updateCustomerRecive(String customerId,String linker,String phone){
        QueryWrapper<CustomerReceive> wrapper = new QueryWrapper<>();
        wrapper.eq("customer_id",customerId);
        wrapper.eq("name",linker);
        CustomerReceive one = iCustomerReceiveService.getOne(wrapper);
        if(one==null){
            one = new CustomerReceive();
            one.setCustomerId(customerId);
            one.setFstatus(0);
            one.setStatus(1);
            one.setName(linker);
            one.setPhone(phone);
            iCustomerReceiveService.saveOrUpdate(one);
        }
    }
    public String getCustomer(String customerCode,String customerName,String customerPhone,String linker,String areaId,String areaSectionId){
        QueryWrapper<Customer> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("licence",customerCode);
        Customer one = iCustomerService.getOne(queryWrapper);
        if(one==null){
            Customer customer = new Customer();
            customer.setLicence(customerCode);
            customer.setName(customerName);
            customer.setPhone(customerPhone);
            customer.setLinker(linker);
            customer.setAreaId(areaId);
            customer.setAreaSectionId(areaSectionId);
            customer.setKstatus(1);
            iCustomerService.saveOrUpdate(customer);
            return customer.getId();
        }
        one.setAreaId(areaId);
        one.setAreaSectionId(areaSectionId);
        iCustomerService.saveOrUpdate(one);
        return one.getId();
    }
    public String getArea(String name){
        QueryWrapper<Area> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("name",name);
        Area one = iAreaService.getOne(queryWrapper);
        if(one==null){
            Area area = new Area();
            area.setName(name);
            iAreaService.saveOrUpdate(area);
            return area.getId();
        }
        return one.getId();
    }
    public String getAreaSection(String areaId,String name){
        QueryWrapper<AreaSection> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("name",name);
        queryWrapper.eq("area_id",areaId);
        AreaSection one = iAreaSectionService.getOne(queryWrapper);
        if(one==null){
            AreaSection area = new AreaSection();
            area.setName(name);
            area.setAreaId(areaId);
            iAreaSectionService.saveOrUpdate(area);
            return area.getId();
        }
        return one.getId();
    }
    public String getCarId(String areaId){
        Area area = iAreaService.getById(areaId);
        String userId = area.getUserId();
        if(StrUtil.isNotEmpty(userId)){
            QueryWrapper<Car> queryWrapper = new QueryWrapper<>();
            queryWrapper.eq("follow_user_id",userId);
            Car one = iCarService.getOne(queryWrapper);
            return one.getId();
        }else{
            return null;
        }
    }
    public String dateStringFormat(Date strDate) {
        if (strDate == null)
            return "";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        return sdf.format(strDate)+" 00:00:00";
    }
    public String dateStringFormat2(Date strDate) {
        if (strDate == null)
            return "";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        return sdf.format(strDate)+" 23:59:59";
    }
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/StatisticPc2ScheduleImpl.java
@@ -34,7 +34,7 @@
    @Autowired
    private IOrderTaskService iOrderTaskService;
    @Scheduled(cron="0 * * * * ?")//每小时执行一次
    @Scheduled(cron="0 0 * * * ?")//每小时执行一次
    public void execute(){
        List<Area> list = iAreaService.list();
        for(Area area:list){
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/StatisticPcScheduleImpl.java
@@ -53,7 +53,7 @@
    public static final String HEAD = "statistic1::";
    @Scheduled(cron="0 */10 * * * ?")//每小时
    @Scheduled(cron="0 0 * * * ?")//每小时
    public void execute(){
        redisTemplate.set(HEAD+"car",iCarService.count()+"");//车辆
        redisTemplate.set(HEAD+"user",userService.countByType(0)+"");//司机
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/StatisticScheduleImpl.java
@@ -36,7 +36,7 @@
    @Autowired
    private IAlarmService iAlarmService;
    @Scheduled(cron="0 0 * * * ?")//每晚凌晨1点执行
    @Scheduled(cron="0 0 1 * * ?")//每晚凌晨1点执行
    public void execute(){
        List<User> all = userService.findAll();
        for(User user:all){
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/IOrderDetailOriginalService.java
New file
@@ -0,0 +1,14 @@
package cn.exrick.xboot.your.service;
import com.baomidou.mybatisplus.extension.service.IService;
import cn.exrick.xboot.your.entity.OrderDetailOriginal;
import java.util.List;
/**
 * 订单详情原始表接口
 * @author whj
 */
public interface IOrderDetailOriginalService extends IService<OrderDetailOriginal> {
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/IOrderTaskOriginalService.java
New file
@@ -0,0 +1,14 @@
package cn.exrick.xboot.your.service;
import com.baomidou.mybatisplus.extension.service.IService;
import cn.exrick.xboot.your.entity.OrderTaskOriginal;
import java.util.List;
/**
 * 订单任务原始表接口
 * @author whj
 */
public interface IOrderTaskOriginalService extends IService<OrderTaskOriginal> {
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/IOrderDetailOriginalServiceImpl.java
New file
@@ -0,0 +1,26 @@
package cn.exrick.xboot.your.serviceimpl;
import cn.exrick.xboot.your.mapper.OrderDetailOriginalMapper;
import cn.exrick.xboot.your.entity.OrderDetailOriginal;
import cn.exrick.xboot.your.service.IOrderDetailOriginalService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
/**
 * 订单详情原始表接口实现
 * @author whj
 */
@Slf4j
@Service
@Transactional
public class IOrderDetailOriginalServiceImpl extends ServiceImpl<OrderDetailOriginalMapper, OrderDetailOriginal> implements IOrderDetailOriginalService {
    @Autowired
    private OrderDetailOriginalMapper orderDetailOriginalMapper;
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/IOrderTaskOriginalServiceImpl.java
New file
@@ -0,0 +1,26 @@
package cn.exrick.xboot.your.serviceimpl;
import cn.exrick.xboot.your.mapper.OrderTaskOriginalMapper;
import cn.exrick.xboot.your.entity.OrderTaskOriginal;
import cn.exrick.xboot.your.service.IOrderTaskOriginalService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
/**
 * 订单任务原始表接口实现
 * @author whj
 */
@Slf4j
@Service
@Transactional
public class IOrderTaskOriginalServiceImpl extends ServiceImpl<OrderTaskOriginalMapper, OrderTaskOriginal> implements IOrderTaskOriginalService {
    @Autowired
    private OrderTaskOriginalMapper orderTaskOriginalMapper;
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/FaceSystem.java
New file
@@ -0,0 +1,127 @@
package cn.exrick.xboot.your.util;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Map;
/**
 * 人脸系统
 *
 * @author Administrator
 *
 */
public class FaceSystem {
    private static final String APP_ID = "10545313";
    private static final String API_KEY = "QSh91rzoNgFvUum4ww34aVoS";
    private static final String SECRET_KEY = "ln6sHT70qoFNEg6VmbvZ6XGvd3PF9KQg";
    private static final String BAIDU_REG_GROUP = "hebeiboying";
    public static int getResult(String img1,String img2) {
        List<Object>  list = new ArrayList<>();
        Map<String,String>  map = new HashMap<>();
        map.put("image",img1);
        map.put("image_type","URL");
        Map<String,String>  map2 = new HashMap<>();
        map2.put("image",img2);
        map2.put("image_type","URL");
        list.add(map);
        list.add(map2);
        String s = JSONObject.valueToString(list);
        return face(s);
    }
    public static int face(String jsonBody) {
        String result = HttpUtil.jsonPost2(jsonBody, "https://aip.baidubce.com/rest/2.0/face/v3/match?access_token=" + getAuth());
        try {
            JSONObject jsonObject = new JSONObject(result);
            String access_token = jsonObject.getString("error_msg");
            if(access_token.equals("SUCCESS")){
                String result2 = jsonObject.get("result").toString();
                JSONObject jsonObject2 = new JSONObject(result2);
                int score = jsonObject2.getInt("score");
                return score;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return 0;
    }
        /**
         * 获取权限token
         * @return 返回示例:
         * {
         * "access_token": "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567",
         * "expires_in": 2592000
         * }
         */
        public static String getAuth() {
            // 官网获取的 API Key 更新为你注册的
            String clientId = API_KEY;
            // 官网获取的 Secret Key 更新为你注册的
            String clientSecret = SECRET_KEY;
            return getAuth(clientId, clientSecret);
        }
        /**
         * 获取API访问token
         * 该token有一定的有效期,需要自行管理,当失效时需重新获取.
         * @param ak - 百度云官网获取的 API Key
         * @param sk - 百度云官网获取的 Securet Key
         * @return assess_token 示例:
         * "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567"
         */
        public static String getAuth(String ak, String sk) {
            // 获取token地址
            String authHost = "https://aip.baidubce.com/oauth/2.0/token?";
            String getAccessTokenUrl = authHost
                    // 1. grant_type为固定参数
                    + "grant_type=client_credentials"
                    // 2. 官网获取的 API Key
                    + "&client_id=" + ak
                    // 3. 官网获取的 Secret Key
                    + "&client_secret=" + sk;
            try {
                URL realUrl = new URL(getAccessTokenUrl);
                // 打开和URL之间的连接
                HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();
                connection.setRequestMethod("GET");
                connection.connect();
                // 获取所有响应头字段
                Map<String, List<String>> map = connection.getHeaderFields();
                // 遍历所有的响应头字段
//                for (String key : map.keySet()) {
//                    System.err.println(key + "--->" + map.get(key));
//                }
                // 定义 BufferedReader输入流来读取URL的响应
                BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                String result = "";
                String line;
                while ((line = in.readLine()) != null) {
                    result += line;
                }
                /**
                 * 返回结果示例
                 */
                //System.err.println("result:" + result);
                JSONObject jsonObject = new JSONObject(result);
                String access_token = jsonObject.getString("access_token");
                return access_token;
            } catch (Exception e) {
                System.err.printf("获取token失败!");
                e.printStackTrace(System.err);
            }
            return null;
        }
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/HttpUtil.java
New file
@@ -0,0 +1,121 @@
package cn.exrick.xboot.your.util;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
public class HttpUtil {
    public static String get(String url) {
        BufferedReader in = null;
        try {
            URL realUrl = new URL(url);
            // 打开和URL之间的连接
            URLConnection connection = realUrl.openConnection();
            // 设置通用的请求属性
            connection.setRequestProperty("accept", "*/*");
            connection.setRequestProperty("connection", "Keep-Alive");
            connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            connection.setConnectTimeout(5000);
            connection.setReadTimeout(5000);
            // 建立实际的连接
            connection.connect();
            // 定义 BufferedReader输入流来读取URL的响应
            in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            StringBuffer sb = new StringBuffer();
            String line;
            while ((line = in.readLine()) != null) {
                sb.append(line);
            }
            return sb.toString();
        } catch (Exception e) {
        }
        // 使用finally块来关闭输入流
        finally {
            try {
                if (in != null) {
                    in.close();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
        return null;
    }
    public static String jsonPost2(String params,String strURL) {
        try {
            URL url = new URL(strURL);// 创建连接
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setDoOutput(true);
            connection.setDoInput(true);
            connection.setUseCaches(false);
            connection.setInstanceFollowRedirects(true);
            connection.setRequestMethod("POST"); // 设置请求方式
            connection.setRequestProperty("Accept", "application/json"); // 设置接收数据的格式
            connection.setRequestProperty("Content-Type", "application/json"); // 设置发送数据的格式
            connection.connect();
            OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8"); // utf-8编码
            out.append(params);
            out.flush();
            out.close();
            int code = connection.getResponseCode();
            InputStream is = null;
            if (code == 200) {
                is = connection.getInputStream();
            } else {
                is = connection.getErrorStream();
            }
            BufferedReader bReader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
            String line, resultStr = "";
            while (null != (line = bReader.readLine())) {
                resultStr += line;
            }
            bReader.close();
            return resultStr;
        } catch (IOException e) {
            return "error";
        }
    }
    public static String jsonPost3(StringBuffer params,String strURL) {
        try {
            URL url = new URL(strURL);// 创建连接
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setDoOutput(true);
            connection.setDoInput(true);
            connection.setUseCaches(false);
            connection.setInstanceFollowRedirects(true);
            connection.setRequestMethod("POST"); // 设置请求方式
            connection.setRequestProperty("Accept", "application/json"); // 设置接收数据的格式
            connection.setRequestProperty("Content-Type", "application/json"); // 设置发送数据的格式
            connection.connect();
            OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8"); // utf-8编码
            out.append(params);
            out.flush();
            out.close();
            int code = connection.getResponseCode();
            InputStream is = null;
            if (code == 200) {
                is = connection.getInputStream();
            } else {
                is = connection.getErrorStream();
            }
            BufferedReader bReader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
            String line, resultStr = "";
            while (null != (line = bReader.readLine())) {
                resultStr += line;
            }
            //System.out.println(resultStr);
            bReader.close();
            return resultStr;
        } catch (IOException e) {
            return "error";
        }
    }
}
xboot-modules/xboot-your/src/main/resources/mapper/OrderDetailOriginalMapper.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.exrick.xboot.your.mapper.OrderDetailOriginalMapper">
</mapper>
xboot-modules/xboot-your/src/main/resources/mapper/OrderTaskOriginalMapper.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.exrick.xboot.your.mapper.OrderTaskOriginalMapper">
</mapper>