Merge branch 'master' into api-dev

* master: (29 commits)
  修改话费订单导出
  修改话费订单导出
  提交代码
  修改话费订单导出
  提交代码
  提交代码
  提交代码
  提交代码
  修改话费订单导出
  提交代码
  修改话费订单导出
  提交文件
  提交代码
  提交代码
  提交代码
  提交代码
  修改短信话术 修改 修改工会卡终端号
  1
  提交代码
  修改短信话术 修改 修改工会卡终端号
  ...

# Conflicts:
#	hai-bweb/src/main/java/com/bweb/controller/HighTestController.java
#	hai-service/src/main/java/com/hai/config/RechargeConfig.java
#	hai-service/src/main/java/com/hai/service/impl/HltUnionCardVipServiceImpl.java
袁野 3 years ago
commit a5b48c1068
  1. 108
      hai-bweb/src/main/java/com/bweb/controller/HighAgentController.java
  2. 85
      hai-bweb/src/main/java/com/bweb/controller/HighCouponAgentController.java
  3. 9
      hai-bweb/src/main/java/com/bweb/controller/HighOrderController.java
  4. 5
      hai-bweb/src/main/java/com/bweb/controller/LoginController.java
  5. 6
      hai-bweb/src/main/java/com/bweb/excelListener/ImportRechargeOrderListener.java
  6. 14
      hai-bweb/src/main/resources/pre/application.yml
  7. 14
      hai-bweb/src/main/resources/prod/application.yml
  8. 2
      hai-cweb/src/main/java/com/cweb/controller/HighTestController.java
  9. 8
      hai-cweb/src/main/java/com/cweb/controller/pay/CzOrderController.java
  10. 2
      hai-cweb/src/main/java/com/cweb/controller/pay/OrderController.java
  11. 43
      hai-cweb/src/main/java/com/cweb/controller/pay/UnionPayController.java
  12. 14
      hai-cweb/src/main/resources/pre/application.yml
  13. 14
      hai-cweb/src/main/resources/prod-9401/application.yml
  14. 14
      hai-cweb/src/main/resources/prod/application.yml
  15. 21
      hai-cweb/src/test/common/test.java
  16. 4
      hai-schedule/src/main/java/com/hai/schedule/HighGasSchedule.java
  17. 8
      hai-schedule/src/main/java/com/hai/schedule/HighOrderSchedule.java
  18. 14
      hai-schedule/src/main/resources/dev/application.yml
  19. 15
      hai-schedule/src/main/resources/pre/application.yml
  20. 15
      hai-schedule/src/main/resources/prod/application.yml
  21. 38
      hai-service/src/main/java/com/hai/config/CommonSysConfig.java
  22. 2
      hai-service/src/main/java/com/hai/config/MqttProviderCallBack.java
  23. 50
      hai-service/src/main/java/com/hai/config/MqttProviderConfig.java
  24. 219
      hai-service/src/main/java/com/hai/config/PrintDemo.java
  25. 78
      hai-service/src/main/java/com/hai/config/ShellGroupService.java
  26. 365
      hai-service/src/main/java/com/hai/config/ZkcPrinterTemplate.java
  27. 17
      hai-service/src/main/java/com/hai/dao/HighAgentMapper.java
  28. 28
      hai-service/src/main/java/com/hai/dao/HighAgentSqlProvider.java
  29. 34
      hai-service/src/main/java/com/hai/dao/HighCouponAgentCodeMapper.java
  30. 42
      hai-service/src/main/java/com/hai/dao/HighCouponAgentCodeSqlProvider.java
  31. 38
      hai-service/src/main/java/com/hai/dao/HighCouponAgentRelMapper.java
  32. 14
      hai-service/src/main/java/com/hai/dao/HighCouponAgentRelSqlProvider.java
  33. 1
      hai-service/src/main/java/com/hai/dao/OutRechargeOrderMapperExt.java
  34. 35
      hai-service/src/main/java/com/hai/entity/HighAgent.java
  35. 130
      hai-service/src/main/java/com/hai/entity/HighAgentExample.java
  36. 50
      hai-service/src/main/java/com/hai/entity/HighCouponAgentCode.java
  37. 190
      hai-service/src/main/java/com/hai/entity/HighCouponAgentCodeExample.java
  38. 16
      hai-service/src/main/java/com/hai/entity/HighCouponAgentRel.java
  39. 60
      hai-service/src/main/java/com/hai/entity/HighCouponAgentRelExample.java
  40. 13
      hai-service/src/main/java/com/hai/service/HighAgentService.java
  41. 14
      hai-service/src/main/java/com/hai/service/HighCouponAgentService.java
  42. 5
      hai-service/src/main/java/com/hai/service/HighOrderService.java
  43. 51
      hai-service/src/main/java/com/hai/service/impl/HighAgentServiceImpl.java
  44. 136
      hai-service/src/main/java/com/hai/service/impl/HighCouponAgentServiceImpl.java
  45. 2
      hai-service/src/main/java/com/hai/service/impl/HighCouponServiceImpl.java
  46. 200
      hai-service/src/main/java/com/hai/service/impl/HighOrderServiceImpl.java
  47. 2
      hai-service/src/main/java/com/hai/service/impl/HltUnionCardVipServiceImpl.java
  48. 16
      hai-service/src/main/java/com/hai/service/impl/OutRechargeOrderServiceImpl.java
  49. 72
      hai-service/src/main/java/com/hai/service/pay/impl/GoodsOrderServiceImpl.java
  50. 8
      hai-service/src/main/resources/dev/commonConfig.properties

@ -1,5 +1,6 @@
package com.bweb.controller;
import com.alibaba.fastjson.JSONObject;
import com.bweb.config.SysConst;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@ -9,6 +10,7 @@ import com.hai.common.exception.ErrorHelp;
import com.hai.common.exception.SysCode;
import com.hai.common.security.SessionObject;
import com.hai.common.security.UserCenter;
import com.hai.common.utils.MemberValidateUtil;
import com.hai.common.utils.ResponseMsgUtil;
import com.hai.entity.HighAgent;
import com.hai.entity.SecUser;
@ -55,6 +57,109 @@ public class HighAgentController {
@Resource
private SecUserService secUserService;
@RequestMapping(value = "/insertChildAgent", method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "新增子级代理商")
public ResponseData insertChildAgent(@RequestBody JSONObject body) {
try {
//发布人员
UserInfoModel userInfoModel = userCenter.getSessionModel(UserInfoModel.class);
if (userInfoModel == null) {
log.error("HighAgentController -> insertAgent() error!","");
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMPETENCE_INSUFFICIENT, "");
}
if (body == null ||
StringUtils.isBlank(body.getString("agentName")) ||
StringUtils.isBlank(body.getString("agentPhone")) ||
StringUtils.isBlank(body.getString("agentAddress"))
) {
log.error("HighAgentController -> insertAgent() error!","");
throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, "");
}
// 校验账户手机号
if (!MemberValidateUtil.validatePhone(body.getString("agentPhone"))) {
log.error("BsStudentController --> updateMerchant() error!", "请输入正确的手机号");
throw ErrorHelp.genException(SysCode.System, ErrorCode.PHONE_NUM_IS_ERROR, "");
}
// 校验账号用户名是否存在
if (secUserService.findByLoginName(body.getString("agentPhone")) != null) {
log.error("HighAgentController --> insertAgent() error!", "手机号已存在,请更换!");
throw ErrorHelp.genException(SysCode.System, ErrorCode.USER_LOGIN_NAME_IS_EXIST_ERROR, "");
}
HighAgent agent = new HighAgent();
agent.setParentId(userInfoModel.getHighAgent().getId());
agent.setParentName(userInfoModel.getHighAgent().getAgentName());
agent.setType(userInfoModel.getHighAgent().getType());
agent.setAgentName(body.getString("agentName"));
agent.setAgentAddress(body.getString("agentAddress"));
agent.setAgentPhone(body.getString("agentPhone"));
agent.setAgentKey(String.valueOf(System.currentTimeMillis()));
agent.setAgentUser(body.getString("agentName"));
agent.setStatus(1); // 状态:0:不可用,1:可用
agent.setCreateTime(new Date());
agent.setOperatorId(userInfoModel.getSecUser().getId());
agent.setOperatorName(userInfoModel.getSecUser().getUserName());
highAgentService.insertChildAgent(agent);
return ResponseMsgUtil.success("新增成功");
} catch (Exception e) {
log.error("HighAgentController --> insertChildAgent() error!", e);
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value = "/changeAgentStatus", method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "变更代理商状态")
public ResponseData changeAgentStatus(@RequestParam(value = "agentId" , required = true) Long agentId,
@RequestParam(value = "status" , required = true) Integer status) {
try {
HighAgent highAgent = highAgentService.findByAgentMsgId(agentId);
if (highAgent == null) {
log.error("HighAgentController --> changeAgentStatus() error!");
throw ErrorHelp.genException(SysCode.System, ErrorCode.NOT_FOUND_USER_ERROR, "");
}
highAgent.setStatus(status);
highAgentService.updateAgentDetail(highAgent);
return ResponseMsgUtil.success("操作成功");
} catch (Exception e) {
log.error("HighAgentController --> changeAgentStatus() error!", e);
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value = "/getChildAgentList", method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "查询子级代理商列表")
public ResponseData getChildAgentList(@RequestParam(value = "agentId" , required = true) Long agentId,
@RequestParam(value = "agentPhone" , required = false) String agentPhone,
@RequestParam(value = "agentName" , required = false) String agentName,
@RequestParam(value = "status" , required = false) Integer status,
@RequestParam(value = "pageNum" , required = true) Integer pageNum,
@RequestParam(value = "pageSize" , required = true) Integer pageSize) {
try {
Map<String, Object> param = new HashMap<>();
param.put("parentAgentId", agentId);
param.put("agentPhone", agentPhone);
param.put("agentName", agentName);
param.put("status", status);
PageHelper.startPage(pageNum, pageSize);
return ResponseMsgUtil.success(new PageInfo<>(highAgentService.getListAgentMsg(param)));
} catch (Exception e) {
log.error("HighAgentController --> changeAgentStatus() error!", e);
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value = "/insertAgent", method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "新增代理商")
@ -206,7 +311,7 @@ public class HighAgentController {
// throw ErrorHelp.genException(SysCode.System, ErrorCode.MENU_TREE_HAS_NOT_ERROR, "");
// }
Map<String, String> map = new HashMap<>();
Map<String, Object> map = new HashMap<>();
if (StringUtils.isNotBlank(agentName)) {
map.put("agentName", agentName);
@ -235,7 +340,6 @@ public class HighAgentController {
}
}
@RequestMapping(value = "/findByAgentId", method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "根据id查询详情")

@ -105,6 +105,90 @@ public class HighCouponAgentController {
}
}
@RequestMapping(value = "/assignCouponChildAgent", method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "分配卡券给子级代理商")
public ResponseData assignCouponChildAgent(@RequestBody JSONObject body, HttpServletRequest request) {
try {
UserInfoModel userInfoModel = userCenter.getSessionModel(UserInfoModel.class);
if (userInfoModel == null || userInfoModel.getHighAgent() == null) {
log.error("HighCouponAgentController -> assignCouponAgent() error!","该主角色没有权限");
throw ErrorHelp.genException(SysCode.System, ErrorCode.MENU_TREE_HAS_NOT_ERROR, "");
}
if(body == null
|| body.getLong("couponAgentRelId") == null
|| body.getLong("agentId") == null
|| body.getInteger("stockCount") == null
) {
log.error("HighCouponAgentController -> assignCouponAgent() error!","参数错误");
throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, "");
}
// 查询父级代理商的卡券关系
HighCouponAgentRel rel = highCouponAgentService.getRelById(body.getLong("couponAgentRelId"));
if (rel == null) {
log.error("HighCouponAgentController -> assignCouponAgent() error!","参数错误");
throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, "");
}
if (rel.getAgentId().equals(body.getLong("agentId") )) {
log.error("HighCouponAgentController -> assignCouponAgent() error!","不能给自己分配");
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "不能给自己分配");
}
if (body.getInteger("stockCount").intValue() > rel.getStockCount().intValue()) {
log.error("HighCouponAgentController -> assignCouponAgent() error!","库存数量不足");
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "库存数量不足");
}
// 查询卡券详情
HighCoupon coupon = highCouponService.getCouponById(rel.getCouponId());
if (coupon == null) {
log.error("HighCouponAgentController -> assignCouponAgent() error!","未找到卡券信息");
throw ErrorHelp.genException(SysCode.System, ErrorCode.NOT_FOUND_COUPON, "");
}
// 查询代理商
HighAgent highAgent = highAgentService.findByAgentMsgId(body.getLong("agentId"));
if (highAgent == null) {
log.error("HighCouponAgentController -> assignCouponAgent() error!", "未找到代理商信息");
throw ErrorHelp.genException(SysCode.System, ErrorCode.NOT_FOUND_AGENT, "");
}
if (highAgent.getParentId() == null) {
log.error("HighCouponAgentController -> assignCouponAgent() error!", "不是子级代理商");
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "不是子级代理商");
}
// 校验是否分配过
HighCouponAgentRel couponAgent = highCouponAgentService.getRelByCouponAgent(rel.getCouponId(), body.getLong("agentId"), rel.getType());
if (couponAgent != null) {
couponAgent.setStockCount(couponAgent.getStockCount() + body.getInteger("stockCount"));
couponAgent.setOperatorId(userInfoModel.getSecUser().getId());
couponAgent.setOperatorName(userInfoModel.getSecUser().getUserName());
highCouponAgentService.assignCouponAgent(couponAgent, body.getInteger("stockCount"));
} else {
couponAgent = new HighCouponAgentRel();
couponAgent.setParentCouponAgentId(rel.getId());
couponAgent.setType(rel.getType());
couponAgent.setCouponId(rel.getCouponId());
couponAgent.setAgentId(body.getLong("agentId"));
couponAgent.setCouponName(coupon.getCouponName());
couponAgent.setSalesPrice(coupon.getSalesPrice());
couponAgent.setStatus(1); // 状态 0:删除 1:正常
couponAgent.setStockCount(body.getInteger("stockCount"));
couponAgent.setSalesCount(0);
couponAgent.setCreateTime(new Date());
couponAgent.setOperatorId(userInfoModel.getSecUser().getId());
couponAgent.setOperatorName(userInfoModel.getSecUser().getUserName());
highCouponAgentService.assignCouponAgent(couponAgent, body.getInteger("stockCount"));
}
return ResponseMsgUtil.success("分配成功");
} catch (Exception e) {
log.error("HighCouponAgentController --> assignCouponAgent() error!", e);
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value = "/getAgentSalesCodeList", method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "查询代理商已销售的卡券")
@ -259,7 +343,6 @@ public class HighCouponAgentController {
}
}
@RequestMapping(value = "/getCouponByAgent", method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "根据代理商 查询卡券")

@ -75,7 +75,8 @@ public class HighOrderController {
@RequestMapping(value = "/print", method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "打印")
public ResponseData print(@RequestParam(name = "orderId", required = true) Long orderId) {
public ResponseData print(@RequestParam(name = "orderId", required = true) Long orderId,
@RequestParam(name = "printType", required = true) Integer printType) {
try {
HighOrder order = highOrderService.getOrderById(orderId);
@ -83,11 +84,15 @@ public class HighOrderController {
log.error("HighCouponController -> getCouponList() error!","权限不足");
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMPETENCE_INSUFFICIENT, "");
}
order.setPrintStatus(true);
order.setPrintNum(order.getPrintNum() + 1);
highOrderService.updateOrderDetail(order);
// 1. 热敏打印机 2. 云打印机
if (printType == 2) {
highOrderService.printGasOrder(order.getHighChildOrderList().get(0).getGoodsId(), order);
}
return ResponseMsgUtil.success("操作成功");
} catch (Exception e) {

@ -173,10 +173,9 @@ public class LoginController {
log.error("login error!","未找到代理商");
throw ErrorHelp.genException(SysCode.System, ErrorCode.NOT_FOUND_AGENT, "");
}
if(highAgent.getStatus() != 1) {
log.error("login error!","未找到代理商");
throw ErrorHelp.genException(SysCode.System, ErrorCode.NOT_FOUND_AGENT, "");
log.error("login error!","代理商状态异常,请联系管理员");
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "代理商状态异常,请联系管理员");
}
userInfoModel.setHighAgent(highAgent);

@ -40,12 +40,6 @@ public class ImportRechargeOrderListener extends AnalysisEventListener<ExportOut
OutRechargeOrder rechargeOrder = outRechargeOrderService.findByOrderNo(data.getOrderNo());
if (rechargeOrder.getRechargeStatus() != 203 || rechargeOrder.getRechargeType() != 2) {
data.setErrorMessage("当前订单状态错误。");
errorData.add(data);
return;
}
if (Objects.equals(data.getRechargeStatusName(), "成功")) {
outRechargeOrderService.finishOrder(rechargeOrder.getId());
} else if (Objects.equals(data.getRechargeStatusName(), "失败")){

@ -39,6 +39,20 @@ spring:
max-wait: -1
max-idle: 10
min-idle: 0
#MQTT配置信息
mqtt:
#MQTT服务地址
url: ws://139.159.177.244:8083/mqtt
#用户名
username: printer_provider
#密码
password: 123654
#客户端id(不能重复)
# client:
# id: provider-id
#MQTT默认的消息推送主题,实际可在调用接口是指定
# default:
# topic: topic
#配置日期返回至前台为时间戳
jackson:
serialization:

@ -39,6 +39,20 @@ spring:
max-wait: -1
max-idle: 10
min-idle: 0
#MQTT配置信息
mqtt:
#MQTT服务地址
url: ws://122.9.135.148:8083/mqtt
#用户名
username: printer_provider
#密码
password: abcd123!
#客户端id(不能重复)
# client:
# id: provider-id
#MQTT默认的消息推送主题,实际可在调用接口是指定
# default:
# topic: topic
#thymelea模板配置
thymeleaf:
prefix: classpath:/templates/

File diff suppressed because one or more lines are too long

@ -285,7 +285,8 @@ public class CzOrderController {
Date rechargeTime = rechargeOrder.getCreateTimed();
Date currentTime = new Date();
int hours = (int) ((rechargeTime.getTime() - currentTime.getTime()) / (1000 * 60 * 60));
// 当前时间减去充值时间
int hours = (int) ((currentTime.getTime() - rechargeTime.getTime()) / (1000 * 60 * 60));
// 判断快充 并且 充值时间小于6
if (rechargeOrder.getRechargeType() == 1 && hours < 6) {
@ -298,6 +299,11 @@ public class CzOrderController {
return;
}
rechargeOrder.setRechargeStatus(203);
childOrder.setStatus(103);
outRechargeOrderService.updateOrder(rechargeOrder);
outRechargeChildOrderService.updateOrder(childOrder);
outRechargeOrderService.rechargeOrderToRefund(rechargeOrder.getId());

@ -223,7 +223,7 @@ public class OrderController {
} else {
weChatPayReqInfo.setSub_mch_id(wxMerNumber.getCodeValue());
}
profitSharing = "Y";
profitSharing = "N";
// 查询油站
HighMerchantStoreModel store = merchantStoreService.getMerchantStoreById(order.getHighChildOrderList().get(0).getGoodsId());

@ -304,40 +304,6 @@ public class UnionPayController {
// 扣预存款
this.redisTemplate.boundListOps(MsgTopic.MerStoreAccount.getName()).leftPush(pushParam);
}
if (StringUtils.isNotBlank(store.getDeviceSn())) {
new Thread(() -> {
try {
SpPrinterConfig sp = new SpPrinterConfig();
sp.print(store.getDeviceSn(),
SpPrinterTemplate.oilCashierStubTemp(
highChildOrder.getGoodsName(),
order.getOrderNo(),
DateUtil.date2String(order.getPayTime(), "yyyy-MM-dd HH:mm:ss"),
"嗨森逛",
highChildOrder.getGasGunNo(),
highChildOrder.getGasOilNo(),
highChildOrder.getGasOilLiters().toString(),
order.getTotalPrice().toString()
), 1);
Thread.sleep(6000);
sp.print(store.getDeviceSn(),
SpPrinterTemplate.oilClientStubTemp(
highChildOrder.getGoodsName(),
order.getOrderNo(),
DateUtil.date2String(order.getPayTime(), "yyyy-MM-dd HH:mm:ss"),
"嗨森逛",
highChildOrder.getGasGunNo(),
highChildOrder.getGasOilNo(),
highChildOrder.getGasOilLiters().toString(),
order.getTotalPrice().toString()
), 1);
} catch (Exception e) {
e.printStackTrace();
}
}).start();
}
} else if (store.getSourceType().equals(2)) {
// 推送团油订单
@ -404,11 +370,18 @@ public class UnionPayController {
}
highOrderService.updateOrder(order);
}
if (order.getHighChildOrderList().get(0).getGoodsType().equals(3)) {
new Thread(() -> {
highOrderService.printGasOrder(order.getHighChildOrderList().get(0).getGoodsId(), order);
}).start();
}
}
}
}
BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());
JSONObject result = new JSONObject();
result.put("resultcode", "00");

@ -39,6 +39,20 @@ spring:
max-wait: -1
max-idle: 10
min-idle: 0
#MQTT配置信息
mqtt:
#MQTT服务地址
url: ws://139.159.177.244:8083/mqtt
#用户名
username: printer_provider
#密码
password: 123654
#客户端id(不能重复)
# client:
# id: provider-id
#MQTT默认的消息推送主题,实际可在调用接口是指定
# default:
# topic: topic
#配置日期返回至前台为时间戳
jackson:
serialization:

@ -40,6 +40,20 @@ spring:
max-wait: -1
max-idle: 10
min-idle: 0
#MQTT配置信息
mqtt:
#MQTT服务地址
url: ws://122.9.135.148:8083/mqtt
#用户名
username: printer_provider
#密码
password: abcd123!
#客户端id(不能重复)
# client:
# id: provider-id
#MQTT默认的消息推送主题,实际可在调用接口是指定
# default:
# topic: topic
#thymelea模板配置
thymeleaf:
prefix: classpath:/templates/

@ -40,6 +40,20 @@ spring:
max-wait: -1
max-idle: 10
min-idle: 0
#MQTT配置信息
mqtt:
#MQTT服务地址
url: ws://122.9.135.148:8083/mqtt
#用户名
username: printer_provider
#密码
password: abcd123!
#客户端id(不能重复)
# client:
# id: provider-id
#MQTT默认的消息推送主题,实际可在调用接口是指定
# default:
# topic: topic
#thymelea模板配置
thymeleaf:
prefix: classpath:/templates/

@ -7,6 +7,8 @@ import com.hai.common.QRCodeGenerator;
import com.hai.common.utils.DateUtil;
import com.hai.common.utils.HttpsUtils;
import com.hai.common.utils.IDGenerator;
import com.hai.config.MqttProviderConfig;
import com.hai.config.ZkcPrinterTemplate;
import com.hai.entity.*;
import com.hai.service.*;
import org.junit.Test;
@ -35,27 +37,14 @@ import java.util.*;
public class test {
@Resource
private HighUserService highUserService;
private HighOrderService highOrderService;
@Resource
private HighDiscountUserRelService highDiscountUserRelService;
@Resource
private HighDiscountAgentCodeService highDiscountAgentCodeService;
private MqttProviderConfig mqttProviderConfig;
@Test
public void test(){
/* List<HighDiscountAgentCode> codeList = highDiscountAgentCodeService.getDiscountCodeByDiscountAgentId(55L);
List<HighUser> userList = highUserService.getUserList();
public void test() throws Exception{
int num = 0;
for (HighUser user : userList) {
// 领取优惠券
highDiscountUserRelService.receiveDiscount(user.getId(), codeList.get(num).getId());
num++;
}*/
}

@ -151,11 +151,11 @@ public class HighGasSchedule {
}
}
@Scheduled(cron = "0 30 7 * * ?") //每日7点1分执行一次
/* @Scheduled(cron = "0 30 7 * * ?") //每日7点1分执行一次
public void refreshPriceOfficial() throws Exception {
gasOilPriceOfficialService.refreshPriceOfficial();
gasOilPriceOfficialService.refreshGasPriceOfficial(null, null);
}
}*/
}

@ -92,19 +92,19 @@ public class HighOrderSchedule {
* @Param []
* @return void
*/
@Scheduled(cron="0 0/1 * * * ?") //每1分钟执行一次
@Scheduled(cron="0 0/5 * * * ?") //每10分钟执行一次
public void initRechargeOrder() {
Map<String, Object> map = new HashMap<>();
map.put("status" , String.valueOf(102));
map.put("payStatus" , String.valueOf(102));
map.put("rechargeStatus" , String.valueOf(204));
List<OutRechargeOrder> orderList = outRechargeOrderService.getListRechargeOrder(map);
if (orderList != null && orderList.size() > 0) {
System.out.println("订单数量------------------------------------------------------------------------------" + orderList.size());
if (orderList.size() > 0) {
for (OutRechargeOrder order : orderList) {
try {
// 查询充值子订单
Map<String, Object> childOrderMap = new HashMap<>();
childOrderMap.put("parent_order_id" , order.getId());
childOrderMap.put("status" , 102);

@ -40,6 +40,20 @@ spring:
max-wait: -1
max-idle: 10
min-idle: 0
#MQTT配置信息
mqtt:
#MQTT服务地址
url: ws://139.159.177.244:8083/mqtt
#用户名
username: printer_provider
#密码
password: 123654
#客户端id(不能重复)
# client:
# id: provider-id
#MQTT默认的消息推送主题,实际可在调用接口是指定
# default:
# topic: topic
#thymelea模板配置
thymeleaf:

@ -41,6 +41,21 @@ spring:
max-idle: 10
min-idle: 0
#MQTT配置信息
mqtt:
#MQTT服务地址
url: ws://139.159.177.244:8083/mqtt
#用户名
username: printer_provider
#密码
password: 123654
#客户端id(不能重复)
# client:
# id: provider-id
#MQTT默认的消息推送主题,实际可在调用接口是指定
# default:
# topic: topic
#thymelea模板配置
thymeleaf:
prefix: classpath:/templates/

@ -40,7 +40,20 @@ spring:
max-wait: -1
max-idle: 10
min-idle: 0
#MQTT配置信息
mqtt:
#MQTT服务地址
url: ws://122.9.135.148:8083/mqtt
#用户名
username: printer_provider
#密码
password: abcd123!
#客户端id(不能重复)
# client:
# id: provider-id
#MQTT默认的消息推送主题,实际可在调用接口是指定
# default:
# topic: topic
#thymelea模板配置
thymeleaf:
prefix: classpath:/templates/

@ -18,6 +18,12 @@ public class CommonSysConfig {
private String tuanYouDieselAccount; // 柴油账号
private String tuanYouGasolineAccount; // 汽油账号
// 壳牌公共参数
private String shellGroupUrl;
private String shellGroupPartnerId;
private String shellPlatMerchantId;
private String shellPlatMerchantKey;
private String qinzhuUrl;
private String qinzhuHtmlUrl;
private String qinzhuMobileUrl; // 话费充值地址
@ -74,6 +80,38 @@ public class CommonSysConfig {
private String unionSecret;
private String unionRsaKey;
public String getShellGroupPartnerId() {
return shellGroupPartnerId;
}
public void setShellGroupPartnerId(String shellGroupPartnerId) {
this.shellGroupPartnerId = shellGroupPartnerId;
}
public String getShellGroupUrl() {
return shellGroupUrl;
}
public void setShellGroupUrl(String shellGroupUrl) {
this.shellGroupUrl = shellGroupUrl;
}
public String getShellPlatMerchantId() {
return shellPlatMerchantId;
}
public void setShellPlatMerchantId(String shellPlatMerchantId) {
this.shellPlatMerchantId = shellPlatMerchantId;
}
public String getShellPlatMerchantKey() {
return shellPlatMerchantKey;
}
public void setShellPlatMerchantKey(String shellPlatMerchantKey) {
this.shellPlatMerchantKey = shellPlatMerchantKey;
}
public String getUnionAppId() {
return unionAppId;
}

@ -2,6 +2,7 @@ package com.hai.config;
import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
import org.eclipse.paho.client.mqttv3.MqttCallback;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.springframework.context.annotation.Configuration;
@ -26,6 +27,7 @@ public class MqttProviderCallBack implements MqttCallback {
@Override
public void messageArrived(String s, MqttMessage mqttMessage) throws Exception {
System.out.println("消息到达");
}
/**

@ -1,26 +1,22 @@
package com.hai.config;
import io.netty.handler.codec.mqtt.MqttConnAckVariableHeader;
import io.netty.handler.codec.mqtt.MqttConnectVariableHeader;
import io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader;
import io.netty.handler.codec.mqtt.MqttPublishVariableHeader;
import lombok.extern.slf4j.Slf4j;
import javax.annotation.PostConstruct;
import org.eclipse.paho.client.mqttv3.*;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
@Configuration
@Slf4j
public class MqttProviderConfig {
// @Value("${spring.mqtt.username}")
@Value("${spring.mqtt.username}")
private String username;
// @Value("${spring.mqtt.password}")
@Value("${spring.mqtt.password}")
private String password;
// @Value("${spring.mqtt.url}")
@Value("${spring.mqtt.url}")
private String hostUrl;
/* @Value("${spring.mqtt.client.id}")
@ -81,18 +77,23 @@ public class MqttProviderConfig {
if (client == null) {
init();
}
if (!client.isConnected()) {
init();
}
try {
MqttMessage mqttMessage = new MqttMessage();
mqttMessage.setQos(qos);
mqttMessage.setRetained(retained);
mqttMessage.setPayload(message.getBytes("UTF-8"));
mqttMessage.setPayload(message.getBytes());
client.subscribe(topic, qos);
// 主题的目的地,用于发布/订阅信息
MqttTopic mqttTopic = client.getTopic(topic);
//提供一种机制来跟踪消息的传递进度
//用于在以非阻塞方式(在后台运行)执行发布是跟踪消息的传递进度
MqttDeliveryToken token;
//将指定消息发布到主题,但不等待消息传递完成,返回的token可用于跟踪消息的传递状态
//一旦此方法干净地返回,消息就已被客户端接受发布,当连接可用,将在后台完成消息传递
//一旦此方法干净地返回,消息就已被客户端接受发布,当连接可用,将在后台完成消息传递
token = mqttTopic.publish(mqttMessage);
token.waitForCompletion();
@ -103,8 +104,33 @@ public class MqttProviderConfig {
}
}
public static void main(String[] args) {
System.out.println(sendPrinterRrCodeBytest("1213131", 1));
public void publish(int qos,boolean retained,String topic,byte[] message) {
if (client == null) {
init();
}
if (!client.isConnected()) {
init();
}
try {
MqttMessage mqttMessage = new MqttMessage();
mqttMessage.setQos(qos);
mqttMessage.setRetained(retained);
mqttMessage.setPayload(message);
// 主题的目的地,用于发布/订阅信息
MqttTopic mqttTopic = client.getTopic(topic);
//提供一种机制来跟踪消息的传递进度
//用于在以非阻塞方式(在后台运行)执行发布是跟踪消息的传递进度
MqttDeliveryToken token;
//将指定消息发布到主题,但不等待消息传递完成,返回的token可用于跟踪消息的传递状态
//一旦此方法干净地返回,消息就已被客户端接受发布,当连接可用,将在后台完成消息传递
token = mqttTopic.publish(mqttMessage);
token.waitForCompletion();
} catch (MqttException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
public static byte[] sendPrinterRrCodeBytest(String printText, int pageCount) {

@ -1,219 +0,0 @@
package com.hai.config;
import org.junit.Test;
import java.io.UnsupportedEncodingException;
public class PrintDemo {
private String accessKeyId = "LTAI5tHHL3z6gpJbMmCg3zt2";
private String accessKeySecret = "CC9kAuqgdjKiE6jxSQHddFxGDCTpBQ";
private String instanceId = "post-cn-i7m2558ze01";
private String topic = "Box";
private String groupId= "GID_BOX";
private String endpoint= "onsmqtt.mq-internet-access.aliyuncs.com";
public static final int PAYTYPE_VOICE_NULL=2000;
public static final int PAYTYPE_VOICE_ALI=2001;
public static final int PAYTYPE_VOICE_QQ=2002;
public static final int PAYTYPE_VOICE_WECHAT=2003;
public static final int PAYTYPE_VOICE_JD=2004;
public static final int PAYTYPE_VOICE_UNION=2005;
public static final int PAYTYPE_VOICE_DIY7570=7570;
public static final int PAYTYPE_VOICE_DIY7571=7571;
public static final int PAYTYPE_VOICE_DIY7572=7572;
public static final int PAYTYPE_VOICE_DIY7573=7573;
public static final int PAYTYPE_VOICE_DIY7574=7574;
public static final int PAYTYPE_VOICE_DIY7575=7575;
public static final int PAYTYPE_VOICE_DIY7576=7576;
public static final int PAYTYPE_VOICE_DIY7577=7577;
public static final int PAYTYPE_VOICE_DIY7578=7578;
public static final int PAYTYPE_VOICE_DIY7579=7579;
@Test
public void Test(){
String imeiStr="352736082440754";//设备IMEI
String printText="1234\r\n";//打印文本
String voiceMsgId="2019022611153312312345";//消息ID
String voiceMsgMoney="1234";//播报金额
//获取打印内容
byte[] printData = getPrinterBytes(printText, 1, "");
System.out.println(bytes2Hex(printData));
//获取播报字符串
System.out.println(getStaticVoiceStr(imeiStr,voiceMsgId,voiceMsgMoney,PAYTYPE_VOICE_ALI));
//获取播报打印机指令
printData=getPrinterVoiceBytes(printText,1,"",imeiStr,voiceMsgId,voiceMsgMoney,PAYTYPE_VOICE_ALI);
System.out.println(bytes2Hex(printData));
/*
try {
com.aliyun.onsmqtt20200420.Client client = createClient(accessKeyId, accessKeySecret);
SendMessageRequest sendMessageRequest = new SendMessageRequest()
.setInstanceId("post-cn-i7m2558ze01")
.setMqttTopic("Box/p2p/GID_BOX@@@359ac67b25c11b8")
.setPayload(bytes2Hex(printData));
SendMessageResponse sendMessageResponse = client.sendMessage(sendMessageRequest);
System.out.println(sendMessageResponse.getBody().msgId);
} catch (Exception e) {
e.printStackTrace();
}*/
}
/**
* 使用AK&SK初始化账号Client
* @param accessKeyId
* @param accessKeySecret
* @return Client
* @throws Exception
*/
/* public com.aliyun.onsmqtt20200420.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
Config config = new Config()
// 您的AccessKey ID
.setAccessKeyId(accessKeyId)
// 您的AccessKey Secret
.setAccessKeySecret(accessKeySecret);
// 访问的域名
config.endpoint = endpoint;
return new com.aliyun.onsmqtt20200420.Client(config);
}*/
/**
* 支付播报固定语音字节数组
* @param imeiStr IMEI设备唯一标识
* @param msgId 交易序列号不大于32字节保证唯一
* @param moneyStr 播报金额最多两位小数
* @param payType 支付类型
* @return
*/
public static byte[] getStaticVoiceBytes(String imeiStr,String msgId,String moneyStr,int payType){
return getStaticVoiceStr(imeiStr,msgId,moneyStr,payType).getBytes();
}
/**
* 支付播报固定语音字符串
* @param imeiStr IMEI设备唯一标识
* @param msgId 交易序列号不大于32字节保证唯一
* @param moneyStr 播报金额最多两位小数
* @param payType 支付类型
* @return
*/
public static String getStaticVoiceStr(String imeiStr,String msgId,String moneyStr,int payType){
String str=imeiStr+"|1007|"+msgId+"|"+moneyStr+"|"+payType;
return str;
}
/**
* 获取打印内容适用于云打印机
* @param printText 打印文本
* @param pageCount 打印联数
* @param encodingStr 编码方式默认UTF-8
* @return
*/
public static byte[] getPrinterBytes(final String printText,
final int pageCount, String encodingStr) {
try {
if(encodingStr.equals("")){
encodingStr="UTF-8";
}
byte[] msgByte = printText.getBytes(encodingStr);
// 消息数组
final byte[] dataByte = new byte[msgByte.length + 9];
dataByte[0] = 0x1E;
dataByte[1] = 0x10;
dataByte[2] = (byte) pageCount;// 打印多联
// 有效数据长度
final int len = dataByte.length - 5;
dataByte[3] = (byte) (len >> 8);
dataByte[4] = (byte) (len & 0xff);
// 数据内容
System.arraycopy(msgByte, 0, dataByte, 5, msgByte.length);
// 标识字节
dataByte[dataByte.length - 4] = 0x1b;
dataByte[dataByte.length - 3] = 0x63;
// 打印内容CRC校验
final byte[] dtCRC = getCRC(msgByte);
dataByte[dataByte.length - 2] = (byte) (dtCRC[0]);
dataByte[dataByte.length - 1] = (byte) (dtCRC[1]);
msgByte = dataByte;
return msgByte;
} catch (Exception ex) {
System.out.println(ex.getStackTrace());
}
return null;
}
public static byte[] getPrinterVoiceBytes(String printTxt,int pageCount,String encodingStr,String imeiStr,String msgId,String moneyStr,int payType){
byte[] voiceArray=getStaticVoiceBytes(imeiStr, msgId, moneyStr, payType);
byte[] printerArray=getPrinterBytes(printTxt,pageCount,encodingStr);
byte[] data=new byte[voiceArray.length+printerArray.length];
System.arraycopy(printerArray, 0, data, 0, printerArray.length);
System.arraycopy(voiceArray, 0, data, printerArray.length, voiceArray.length);
return data;
}
private static int[] CRC16Table = { 0x0000, 0x1189, 0x2312, 0x329b, 0x4624,
0x57ad, 0x6536, 0x74bf, 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c,
0xdbe5, 0xe97e, 0xf8f7, 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5,
0x472c, 0x75b7, 0x643e, 0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed,
0xcb64, 0xf9ff, 0xe876, 0x2102, 0x308b, 0x0210, 0x1399, 0x6726,
0x76af, 0x4434, 0x55bd, 0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e,
0xfae7, 0xc87c, 0xd9f5, 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7,
0x662e, 0x54b5, 0x453c, 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef,
0xea66, 0xd8fd, 0xc974, 0x4204, 0x538d, 0x6116, 0x709f, 0x0420,
0x15a9, 0x2732, 0x36bb, 0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868,
0x99e1, 0xab7a, 0xbaf3, 0x5285, 0x430c, 0x7197, 0x601e, 0x14a1,
0x0528, 0x37b3, 0x263a, 0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9,
0x8960, 0xbbfb, 0xaa72, 0x6306, 0x728f, 0x4014, 0x519d, 0x2522,
0x34ab, 0x0630, 0x17b9, 0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a,
0xb8e3, 0x8a78, 0x9bf1, 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3,
0x242a, 0x16b1, 0x0738, 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb,
0xa862, 0x9af9, 0x8b70, 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c,
0xd3a5, 0xe13e, 0xf0b7, 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64,
0x5fed, 0x6d76, 0x7cff, 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad,
0xc324, 0xf1bf, 0xe036, 0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5,
0x4f6c, 0x7df7, 0x6c7e, 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e,
0xf2a7, 0xc03c, 0xd1b5, 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66,
0x7eef, 0x4c74, 0x5dfd, 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af,
0xe226, 0xd0bd, 0xc134, 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7,
0x6e6e, 0x5cf5, 0x4d7c, 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028,
0x91a1, 0xa33a, 0xb2b3, 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60,
0x1de9, 0x2f72, 0x3efb, 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9,
0x8120, 0xb3bb, 0xa232, 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1,
0x0d68, 0x3ff3, 0x2e7a, 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a,
0xb0a3, 0x8238, 0x93b1, 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62,
0x3ceb, 0x0e70, 0x1ff9, 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab,
0xa022, 0x92b9, 0x8330, 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3,
0x2c6a, 0x1ef1, 0x0f78 };
private static byte[] getCRC(byte[] bytes) {
int crc = 0xFFFF; // 初始值
for (byte b : bytes) {
crc = (crc >> 8) ^ CRC16Table[(crc ^ b) & 0xff];
}
byte[] b = new byte[2];
b[0] = (byte) ((crc >> 8)^0xff);
b[1] = (byte) ((crc & 0xff)^0xff);
return b;
}
private static final char[] HEXES = { '0', '1', '2', '3', '4', '5', '6',
'7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
/**
* byte数组 转换成 16进制小写字符串
*/
private static String bytes2Hex(byte[] bytes) {
if (bytes == null || bytes.length == 0) {
return null;
}
StringBuilder hex = new StringBuilder();
for (byte b : bytes) {
hex.append(HEXES[(b >> 4) & 0x0F]);
hex.append(HEXES[b & 0x0F]);
}
return hex.toString();
}
}

@ -0,0 +1,78 @@
package com.hai.config;
import com.alibaba.fastjson.JSONObject;
import com.hai.common.exception.ErrorCode;
import com.hai.common.exception.ErrorHelp;
import com.hai.common.exception.SysCode;
import com.hai.common.pay.util.sdk.WXPayConstants;
import com.hai.common.utils.HttpsUtils;
import com.hai.common.utils.MD5Util;
import org.apache.commons.lang3.StringUtils;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/**
* 壳牌接口服务
*/
public class ShellGroupService {
/**
* 查询全量加油站
* @param pageNum 当前页码
* @param pageSize 每页数据量最大值50
* @return
*/
public static JSONObject gasPageQueryAllStation(Integer pageNum,Integer pageSize) {
try {
Map<String, Object> param = new HashMap<>();
param.put("merchantOrderNo", System.currentTimeMillis());
param.put("partnerId", CommonSysConst.getSysConfig().getShellGroupPartnerId());
param.put("service", "gasPageQueryAllStation");
param.put("version", "1.0.0");
param.put("signType", "MD5");
param.put("platMerchantId", CommonSysConst.getSysConfig().getShellPlatMerchantId());
param.put("pageNo", pageNum);
param.put("pageSize", pageSize);
param.put("sign", MD5Util.encode(generateSignature(param, CommonSysConst.getSysConfig().getShellPlatMerchantKey()).getBytes()));
// 请求接口
JSONObject object = HttpsUtils.doPost(CommonSysConst.getSysConfig().getShellGroupUrl(), param);
if (object == null || !object.getString("status").equals("SUCCESS")) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, object == null?"请求失败":object.getString("message"));
}
return object;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 生成签名
* @param data 数据
* @param key 秘钥app_secret
* @return 加密结果
*/
public static String generateSignature(final Map<String, Object> data, String key){
Set<String> keySet = data.keySet();
String[] keyArray = keySet.toArray(new String[keySet.size()]);
Arrays.sort(keyArray);
StringBuilder sb = new StringBuilder();
sb.append(key);
for (String k : keyArray) {
if (k.equals(WXPayConstants.FIELD_SIGN)) {
continue;
}
if (data.get(k) != null) // 参数值为空,则不参与签名
sb.append(k).append(data.get(k));
}
sb.append(key);
return sb.toString();
}
}

@ -0,0 +1,365 @@
package com.hai.config;
import com.hai.common.utils.DateUtil;
import java.io.ByteArrayOutputStream;
import java.util.Date;
/**
* ZKC云打印机模板
* @author hurui
*/
public class ZkcPrinterTemplate {
/**
* 加油站收银员存根模板
* @param gasName 油站名称
* @param orderNo 订单号
* @param payTime 支付时间
* @param source 来源
* @param gunNo 抢号
* @param oilNo 油号
* @param oilLiters 升数
* @param orderPrice 加油金额
* @return
*/
public static byte[] oilCashierStubTemp(String gasName,
String orderNo,
String payTime,
String source,
String gunNo,
String oilNo,
String oilLiters,
String orderPrice) throws Exception {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
// 居中
stream.write(0x1B);
stream.write(0x61);
stream.write(0x01);
stream.write(gasName.getBytes("UTF-8"));
stream.write(0x0A);
stream.write("(收银员存根)".getBytes("UTF-8"));
stream.write(0x0A);
// 左对齐
stream.write(0x1B);
stream.write(0x61);
stream.write(0x00);
stream.write("--------------------------------".getBytes("UTF-8"));
stream.write(0x0A);
stream.write(("流水号:" + orderNo).getBytes("UTF-8"));
stream.write(0x0A);
stream.write("--------------------------------".getBytes("UTF-8"));
stream.write(0x0A);
stream.write(("打印时间:" + DateUtil.date2String(new Date(), "yyyy-MM-dd HH:mm:ss")).getBytes("UTF-8"));
stream.write(0x0A);
stream.write(("支付时间:" + payTime).getBytes("UTF-8"));
stream.write(0x0A);
stream.write("来源:嗨森逛".getBytes("UTF-8"));
stream.write(0x0A);
stream.write(("油枪:" + gunNo).getBytes("UTF-8"));
stream.write(0x0A);
stream.write(("油品:" + oilNo).getBytes("UTF-8"));
stream.write(0x0A);
stream.write(("升数:" + oilLiters + "升").getBytes("UTF-8"));
stream.write(0x0A);
stream.write("实际加油升数以加油机为准!".getBytes("UTF-8"));
stream.write(0x0A);
stream.write("--------------------------------".getBytes("UTF-8"));
stream.write(0x0A);
stream.write(0x1B);
stream.write(0x0E);
stream.write("加油金额".getBytes("UTF-8"));
stream.write(0x0A);
stream.write(("¥" + orderPrice).getBytes("UTF-8"));
stream.write(0x0A);
stream.write(0x1B);
stream.write(0x21);
stream.write(0x00);
stream.write("--------------------------------".getBytes("UTF-8"));
stream.write(0x0A);
stream.write(0x1B);
stream.write(0x61);
stream.write(0x01);
stream.write("开心又省钱;来“ 嗨森逛 ”".getBytes("UTF-8"));
stream.write(0x0A);
stream.write(0x0A);
stream.write(0x0A);
stream.write(0x0A);
return getPrinterBytes(stream.toByteArray(), 1, "UTF-8");
}
/**
* 加油站客户存根模板
* @param gasName 油站名称
* @param orderNo 订单号
* @param payTime 支付时间
* @param source 来源
* @param gunNo 抢号
* @param oilNo 油号
* @param oilLiters 升数
* @param orderPrice 加油金额
* @return
*/
public static byte[] oilClientStubTemp(String gasName,
String orderNo,
String payTime,
String source,
String gunNo,
String oilNo,
String oilLiters,
String orderPrice) throws Exception {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
// 居中
stream.write(0x1B);
stream.write(0x61);
stream.write(0x01);
stream.write(gasName.getBytes("UTF-8"));
stream.write(0x0A);
stream.write("(客户存根)".getBytes("UTF-8"));
stream.write(0x0A);
// 左对齐
stream.write(0x1B);
stream.write(0x61);
stream.write(0x00);
stream.write("--------------------------------".getBytes("UTF-8"));
stream.write(0x0A);
stream.write(("流水号:" + orderNo).getBytes("UTF-8"));
stream.write(0x0A);
stream.write("--------------------------------".getBytes("UTF-8"));
stream.write(0x0A);
stream.write(("打印时间:" + DateUtil.date2String(new Date(), "yyyy-MM-dd HH:mm:ss")).getBytes("UTF-8"));
stream.write(0x0A);
stream.write(("支付时间:" + payTime).getBytes("UTF-8"));
stream.write(0x0A);
stream.write("来源:嗨森逛".getBytes("UTF-8"));
stream.write(0x0A);
stream.write(("油枪:" + gunNo).getBytes("UTF-8"));
stream.write(0x0A);
stream.write(("油品:" + oilNo).getBytes("UTF-8"));
stream.write(0x0A);
stream.write(("升数:" + oilLiters + "升").getBytes("UTF-8"));
stream.write(0x0A);
stream.write("实际加油升数以加油机为准!".getBytes("UTF-8"));
stream.write(0x0A);
stream.write("--------------------------------".getBytes("UTF-8"));
stream.write(0x0A);
stream.write(0x1B);
stream.write(0x0E);
stream.write("加油金额".getBytes("UTF-8"));
stream.write(0x0A);
stream.write(("¥" + orderPrice).getBytes("UTF-8"));
stream.write(0x0A);
stream.write(0x1B);
stream.write(0x21);
stream.write(0x00);
stream.write("--------------------------------".getBytes("UTF-8"));
stream.write(0x0A);
stream.write(0x1B);
stream.write(0x61);
stream.write(0x01);
stream.write("开心又省钱;来“ 嗨森逛 ”".getBytes("UTF-8"));
stream.write(0x0A);
stream.write(0x0A);
stream.write(0x0A);
stream.write(0x0A);
return getPrinterBytes(stream.toByteArray(), 1, "UTF-8");
}
public static String hexStringToString(String s) {
if (s == null || s.equals("")) {
return null;
}
s = s.replace(" ", "");
byte[] baKeyword = new byte[s.length() / 2];
for (int i = 0; i < baKeyword.length; i++) {
try {
baKeyword[i] = (byte) (0xff & Integer.parseInt(s.substring(i * 2, i * 2 + 2), 16));
} catch (Exception e) {
e.printStackTrace();
}
}
try {
s = new String(baKeyword, "UTF-8");
new String();
} catch (Exception e1) {
e1.printStackTrace();
}
return s;
}
/**
* 获取打印内容适用于云打印机
* @param printText 打印文本
* @param pageCount 打印联数
* @param encodingStr 编码方式默认UTF-8
* @return
*/
public static byte[] getPrinterBytes(final byte[] printText,
final int pageCount, String encodingStr) {
try {
if(encodingStr.equals("")){
encodingStr="UTF-8";
}
byte[] msgByte = printText;
// 消息数组
final byte[] dataByte = new byte[msgByte.length + 9];
dataByte[0] = 0x1E;
dataByte[1] = 0x10;
dataByte[2] = (byte) pageCount;// 打印多联
// 有效数据长度
final int len = dataByte.length - 5;
dataByte[3] = (byte) (len >> 8);
dataByte[4] = (byte) (len & 0xff);
// 数据内容
System.arraycopy(msgByte, 0, dataByte, 5, msgByte.length);
// 标识字节
dataByte[dataByte.length - 4] = 0x1b;
dataByte[dataByte.length - 3] = 0x63;
// 打印内容CRC校验
final byte[] dtCRC = getCRC(msgByte);
dataByte[dataByte.length - 2] = (byte) (dtCRC[0]);
dataByte[dataByte.length - 1] = (byte) (dtCRC[1]);
msgByte = dataByte;
return msgByte;
} catch (Exception ex) {
System.out.println(ex.getStackTrace());
}
return null;
}
/**
* 获取打印内容适用于云打印机
* @param printText 打印文本
* @param pageCount 打印联数
* @param encodingStr 编码方式默认UTF-8
* @return
*/
public byte[] getPrinterBytes(final String printText,
final int pageCount, String encodingStr) {
try {
if(encodingStr.equals("")){
encodingStr="UTF-8";
}
byte[] msgByte = printText.getBytes(encodingStr);
// 消息数组
final byte[] dataByte = new byte[msgByte.length + 9];
dataByte[0] = 0x1E;
dataByte[1] = 0x10;
dataByte[2] = (byte) pageCount;// 打印多联
// 有效数据长度
final int len = dataByte.length - 5;
dataByte[3] = (byte) (len >> 8);
dataByte[4] = (byte) (len & 0xff);
// 数据内容
System.arraycopy(msgByte, 0, dataByte, 5, msgByte.length);
// 标识字节
dataByte[dataByte.length - 4] = 0x1b;
dataByte[dataByte.length - 3] = 0x63;
// 打印内容CRC校验
final byte[] dtCRC = getCRC(msgByte);
dataByte[dataByte.length - 2] = (byte) (dtCRC[0]);
dataByte[dataByte.length - 1] = (byte) (dtCRC[1]);
msgByte = dataByte;
return msgByte;
} catch (Exception ex) {
System.out.println(ex.getStackTrace());
}
return null;
}
private static int[] CRC16Table = { 0x0000, 0x1189, 0x2312, 0x329b, 0x4624,
0x57ad, 0x6536, 0x74bf, 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c,
0xdbe5, 0xe97e, 0xf8f7, 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5,
0x472c, 0x75b7, 0x643e, 0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed,
0xcb64, 0xf9ff, 0xe876, 0x2102, 0x308b, 0x0210, 0x1399, 0x6726,
0x76af, 0x4434, 0x55bd, 0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e,
0xfae7, 0xc87c, 0xd9f5, 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7,
0x662e, 0x54b5, 0x453c, 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef,
0xea66, 0xd8fd, 0xc974, 0x4204, 0x538d, 0x6116, 0x709f, 0x0420,
0x15a9, 0x2732, 0x36bb, 0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868,
0x99e1, 0xab7a, 0xbaf3, 0x5285, 0x430c, 0x7197, 0x601e, 0x14a1,
0x0528, 0x37b3, 0x263a, 0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9,
0x8960, 0xbbfb, 0xaa72, 0x6306, 0x728f, 0x4014, 0x519d, 0x2522,
0x34ab, 0x0630, 0x17b9, 0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a,
0xb8e3, 0x8a78, 0x9bf1, 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3,
0x242a, 0x16b1, 0x0738, 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb,
0xa862, 0x9af9, 0x8b70, 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c,
0xd3a5, 0xe13e, 0xf0b7, 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64,
0x5fed, 0x6d76, 0x7cff, 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad,
0xc324, 0xf1bf, 0xe036, 0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5,
0x4f6c, 0x7df7, 0x6c7e, 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e,
0xf2a7, 0xc03c, 0xd1b5, 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66,
0x7eef, 0x4c74, 0x5dfd, 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af,
0xe226, 0xd0bd, 0xc134, 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7,
0x6e6e, 0x5cf5, 0x4d7c, 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028,
0x91a1, 0xa33a, 0xb2b3, 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60,
0x1de9, 0x2f72, 0x3efb, 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9,
0x8120, 0xb3bb, 0xa232, 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1,
0x0d68, 0x3ff3, 0x2e7a, 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a,
0xb0a3, 0x8238, 0x93b1, 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62,
0x3ceb, 0x0e70, 0x1ff9, 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab,
0xa022, 0x92b9, 0x8330, 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3,
0x2c6a, 0x1ef1, 0x0f78 };
private static byte[] getCRC(byte[] bytes) {
int crc = 0xFFFF; // 初始值
for (byte b : bytes) {
crc = (crc >> 8) ^ CRC16Table[(crc ^ b) & 0xff];
}
byte[] b = new byte[2];
b[0] = (byte) ((crc >> 8)^0xff);
b[1] = (byte) ((crc & 0xff)^0xff);
return b;
}
private static final char[] HEXES = { '0', '1', '2', '3', '4', '5', '6',
'7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
/**
* byte数组 转换成 16进制小写字符串
*/
private static String bytes2Hex(byte[] bytes) {
if (bytes == null || bytes.length == 0) {
return null;
}
StringBuilder hex = new StringBuilder();
for (byte b : bytes) {
hex.append(HEXES[(b >> 4) & 0x0F]);
hex.append(HEXES[b & 0x0F]);
}
return hex.toString();
}
}

@ -39,14 +39,16 @@ public interface HighAgentMapper extends HighAgentMapperExt {
int deleteByPrimaryKey(Long id);
@Insert({
"insert into high_agent (`type`, agent_key, ",
"insert into high_agent (`type`, parent_id, ",
"parent_name, agent_key, ",
"agent_name, agent_address, ",
"agent_user, agent_phone, ",
"create_time, `status`, ",
"user_name, operator_id, ",
"operator_name, ext_1, ",
"ext_2, ext_3)",
"values (#{type,jdbcType=INTEGER}, #{agentKey,jdbcType=VARCHAR}, ",
"values (#{type,jdbcType=INTEGER}, #{parentId,jdbcType=BIGINT}, ",
"#{parentName,jdbcType=VARCHAR}, #{agentKey,jdbcType=VARCHAR}, ",
"#{agentName,jdbcType=VARCHAR}, #{agentAddress,jdbcType=VARCHAR}, ",
"#{agentUser,jdbcType=VARCHAR}, #{agentPhone,jdbcType=VARCHAR}, ",
"#{createTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER}, ",
@ -65,6 +67,8 @@ public interface HighAgentMapper extends HighAgentMapperExt {
@Results({
@Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true),
@Result(column="type", property="type", jdbcType=JdbcType.INTEGER),
@Result(column="parent_id", property="parentId", jdbcType=JdbcType.BIGINT),
@Result(column="parent_name", property="parentName", jdbcType=JdbcType.VARCHAR),
@Result(column="agent_key", property="agentKey", jdbcType=JdbcType.VARCHAR),
@Result(column="agent_name", property="agentName", jdbcType=JdbcType.VARCHAR),
@Result(column="agent_address", property="agentAddress", jdbcType=JdbcType.VARCHAR),
@ -83,14 +87,17 @@ public interface HighAgentMapper extends HighAgentMapperExt {
@Select({
"select",
"id, `type`, agent_key, agent_name, agent_address, agent_user, agent_phone, create_time, ",
"`status`, user_name, operator_id, operator_name, ext_1, ext_2, ext_3",
"id, `type`, parent_id, parent_name, agent_key, agent_name, agent_address, agent_user, ",
"agent_phone, create_time, `status`, user_name, operator_id, operator_name, ext_1, ",
"ext_2, ext_3",
"from high_agent",
"where id = #{id,jdbcType=BIGINT}"
})
@Results({
@Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true),
@Result(column="type", property="type", jdbcType=JdbcType.INTEGER),
@Result(column="parent_id", property="parentId", jdbcType=JdbcType.BIGINT),
@Result(column="parent_name", property="parentName", jdbcType=JdbcType.VARCHAR),
@Result(column="agent_key", property="agentKey", jdbcType=JdbcType.VARCHAR),
@Result(column="agent_name", property="agentName", jdbcType=JdbcType.VARCHAR),
@Result(column="agent_address", property="agentAddress", jdbcType=JdbcType.VARCHAR),
@ -119,6 +126,8 @@ public interface HighAgentMapper extends HighAgentMapperExt {
@Update({
"update high_agent",
"set `type` = #{type,jdbcType=INTEGER},",
"parent_id = #{parentId,jdbcType=BIGINT},",
"parent_name = #{parentName,jdbcType=VARCHAR},",
"agent_key = #{agentKey,jdbcType=VARCHAR},",
"agent_name = #{agentName,jdbcType=VARCHAR},",
"agent_address = #{agentAddress,jdbcType=VARCHAR},",

@ -32,6 +32,14 @@ public class HighAgentSqlProvider {
sql.VALUES("`type`", "#{type,jdbcType=INTEGER}");
}
if (record.getParentId() != null) {
sql.VALUES("parent_id", "#{parentId,jdbcType=BIGINT}");
}
if (record.getParentName() != null) {
sql.VALUES("parent_name", "#{parentName,jdbcType=VARCHAR}");
}
if (record.getAgentKey() != null) {
sql.VALUES("agent_key", "#{agentKey,jdbcType=VARCHAR}");
}
@ -95,6 +103,8 @@ public class HighAgentSqlProvider {
sql.SELECT("id");
}
sql.SELECT("`type`");
sql.SELECT("parent_id");
sql.SELECT("parent_name");
sql.SELECT("agent_key");
sql.SELECT("agent_name");
sql.SELECT("agent_address");
@ -133,6 +143,14 @@ public class HighAgentSqlProvider {
sql.SET("`type` = #{record.type,jdbcType=INTEGER}");
}
if (record.getParentId() != null) {
sql.SET("parent_id = #{record.parentId,jdbcType=BIGINT}");
}
if (record.getParentName() != null) {
sql.SET("parent_name = #{record.parentName,jdbcType=VARCHAR}");
}
if (record.getAgentKey() != null) {
sql.SET("agent_key = #{record.agentKey,jdbcType=VARCHAR}");
}
@ -195,6 +213,8 @@ public class HighAgentSqlProvider {
sql.SET("id = #{record.id,jdbcType=BIGINT}");
sql.SET("`type` = #{record.type,jdbcType=INTEGER}");
sql.SET("parent_id = #{record.parentId,jdbcType=BIGINT}");
sql.SET("parent_name = #{record.parentName,jdbcType=VARCHAR}");
sql.SET("agent_key = #{record.agentKey,jdbcType=VARCHAR}");
sql.SET("agent_name = #{record.agentName,jdbcType=VARCHAR}");
sql.SET("agent_address = #{record.agentAddress,jdbcType=VARCHAR}");
@ -222,6 +242,14 @@ public class HighAgentSqlProvider {
sql.SET("`type` = #{type,jdbcType=INTEGER}");
}
if (record.getParentId() != null) {
sql.SET("parent_id = #{parentId,jdbcType=BIGINT}");
}
if (record.getParentName() != null) {
sql.SET("parent_name = #{parentName,jdbcType=VARCHAR}");
}
if (record.getAgentKey() != null) {
sql.SET("agent_key = #{agentKey,jdbcType=VARCHAR}");
}

@ -44,19 +44,23 @@ public interface HighCouponAgentCodeMapper extends HighCouponAgentCodeMapperExt
"coupon_agent_record_id, convert_user_phone, ",
"convert_code, coupon_code_id, ",
"coupon_code, qr_code, ",
"`status`, remark, ",
"create_time, sales_time, ",
"operator_id, operator_name, ",
"ext_1, ext_2, ext_3)",
"`status`, assign_coupon_agent_id, ",
"assign_agent_id, assign_agent_name, ",
"remark, create_time, ",
"sales_time, operator_id, ",
"operator_name, ext_1, ",
"ext_2, ext_3)",
"values (#{type,jdbcType=INTEGER}, #{couponAgentId,jdbcType=BIGINT}, ",
"#{couponId,jdbcType=BIGINT}, #{agentId,jdbcType=BIGINT}, ",
"#{couponAgentRecordId,jdbcType=BIGINT}, #{convertUserPhone,jdbcType=VARCHAR}, ",
"#{convertCode,jdbcType=VARCHAR}, #{couponCodeId,jdbcType=BIGINT}, ",
"#{couponCode,jdbcType=VARCHAR}, #{qrCode,jdbcType=VARCHAR}, ",
"#{status,jdbcType=INTEGER}, #{remark,jdbcType=VARCHAR}, ",
"#{createTime,jdbcType=TIMESTAMP}, #{salesTime,jdbcType=TIMESTAMP}, ",
"#{operatorId,jdbcType=BIGINT}, #{operatorName,jdbcType=VARCHAR}, ",
"#{ext1,jdbcType=VARCHAR}, #{ext2,jdbcType=VARCHAR}, #{ext3,jdbcType=VARCHAR})"
"#{status,jdbcType=INTEGER}, #{assignCouponAgentId,jdbcType=BIGINT}, ",
"#{assignAgentId,jdbcType=BIGINT}, #{assignAgentName,jdbcType=VARCHAR}, ",
"#{remark,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, ",
"#{salesTime,jdbcType=TIMESTAMP}, #{operatorId,jdbcType=BIGINT}, ",
"#{operatorName,jdbcType=VARCHAR}, #{ext1,jdbcType=VARCHAR}, ",
"#{ext2,jdbcType=VARCHAR}, #{ext3,jdbcType=VARCHAR})"
})
@Options(useGeneratedKeys=true,keyProperty="id")
int insert(HighCouponAgentCode record);
@ -79,6 +83,9 @@ public interface HighCouponAgentCodeMapper extends HighCouponAgentCodeMapperExt
@Result(column="coupon_code", property="couponCode", jdbcType=JdbcType.VARCHAR),
@Result(column="qr_code", property="qrCode", jdbcType=JdbcType.VARCHAR),
@Result(column="status", property="status", jdbcType=JdbcType.INTEGER),
@Result(column="assign_coupon_agent_id", property="assignCouponAgentId", jdbcType=JdbcType.BIGINT),
@Result(column="assign_agent_id", property="assignAgentId", jdbcType=JdbcType.BIGINT),
@Result(column="assign_agent_name", property="assignAgentName", jdbcType=JdbcType.VARCHAR),
@Result(column="remark", property="remark", jdbcType=JdbcType.VARCHAR),
@Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP),
@Result(column="sales_time", property="salesTime", jdbcType=JdbcType.TIMESTAMP),
@ -93,8 +100,9 @@ public interface HighCouponAgentCodeMapper extends HighCouponAgentCodeMapperExt
@Select({
"select",
"id, `type`, coupon_agent_id, coupon_id, agent_id, coupon_agent_record_id, convert_user_phone, ",
"convert_code, coupon_code_id, coupon_code, qr_code, `status`, remark, create_time, ",
"sales_time, operator_id, operator_name, ext_1, ext_2, ext_3",
"convert_code, coupon_code_id, coupon_code, qr_code, `status`, assign_coupon_agent_id, ",
"assign_agent_id, assign_agent_name, remark, create_time, sales_time, operator_id, ",
"operator_name, ext_1, ext_2, ext_3",
"from high_coupon_agent_code",
"where id = #{id,jdbcType=BIGINT}"
})
@ -111,6 +119,9 @@ public interface HighCouponAgentCodeMapper extends HighCouponAgentCodeMapperExt
@Result(column="coupon_code", property="couponCode", jdbcType=JdbcType.VARCHAR),
@Result(column="qr_code", property="qrCode", jdbcType=JdbcType.VARCHAR),
@Result(column="status", property="status", jdbcType=JdbcType.INTEGER),
@Result(column="assign_coupon_agent_id", property="assignCouponAgentId", jdbcType=JdbcType.BIGINT),
@Result(column="assign_agent_id", property="assignAgentId", jdbcType=JdbcType.BIGINT),
@Result(column="assign_agent_name", property="assignAgentName", jdbcType=JdbcType.VARCHAR),
@Result(column="remark", property="remark", jdbcType=JdbcType.VARCHAR),
@Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP),
@Result(column="sales_time", property="salesTime", jdbcType=JdbcType.TIMESTAMP),
@ -144,6 +155,9 @@ public interface HighCouponAgentCodeMapper extends HighCouponAgentCodeMapperExt
"coupon_code = #{couponCode,jdbcType=VARCHAR},",
"qr_code = #{qrCode,jdbcType=VARCHAR},",
"`status` = #{status,jdbcType=INTEGER},",
"assign_coupon_agent_id = #{assignCouponAgentId,jdbcType=BIGINT},",
"assign_agent_id = #{assignAgentId,jdbcType=BIGINT},",
"assign_agent_name = #{assignAgentName,jdbcType=VARCHAR},",
"remark = #{remark,jdbcType=VARCHAR},",
"create_time = #{createTime,jdbcType=TIMESTAMP},",
"sales_time = #{salesTime,jdbcType=TIMESTAMP},",

@ -72,6 +72,18 @@ public class HighCouponAgentCodeSqlProvider {
sql.VALUES("`status`", "#{status,jdbcType=INTEGER}");
}
if (record.getAssignCouponAgentId() != null) {
sql.VALUES("assign_coupon_agent_id", "#{assignCouponAgentId,jdbcType=BIGINT}");
}
if (record.getAssignAgentId() != null) {
sql.VALUES("assign_agent_id", "#{assignAgentId,jdbcType=BIGINT}");
}
if (record.getAssignAgentName() != null) {
sql.VALUES("assign_agent_name", "#{assignAgentName,jdbcType=VARCHAR}");
}
if (record.getRemark() != null) {
sql.VALUES("remark", "#{remark,jdbcType=VARCHAR}");
}
@ -125,6 +137,9 @@ public class HighCouponAgentCodeSqlProvider {
sql.SELECT("coupon_code");
sql.SELECT("qr_code");
sql.SELECT("`status`");
sql.SELECT("assign_coupon_agent_id");
sql.SELECT("assign_agent_id");
sql.SELECT("assign_agent_name");
sql.SELECT("remark");
sql.SELECT("create_time");
sql.SELECT("sales_time");
@ -198,6 +213,18 @@ public class HighCouponAgentCodeSqlProvider {
sql.SET("`status` = #{record.status,jdbcType=INTEGER}");
}
if (record.getAssignCouponAgentId() != null) {
sql.SET("assign_coupon_agent_id = #{record.assignCouponAgentId,jdbcType=BIGINT}");
}
if (record.getAssignAgentId() != null) {
sql.SET("assign_agent_id = #{record.assignAgentId,jdbcType=BIGINT}");
}
if (record.getAssignAgentName() != null) {
sql.SET("assign_agent_name = #{record.assignAgentName,jdbcType=VARCHAR}");
}
if (record.getRemark() != null) {
sql.SET("remark = #{record.remark,jdbcType=VARCHAR}");
}
@ -250,6 +277,9 @@ public class HighCouponAgentCodeSqlProvider {
sql.SET("coupon_code = #{record.couponCode,jdbcType=VARCHAR}");
sql.SET("qr_code = #{record.qrCode,jdbcType=VARCHAR}");
sql.SET("`status` = #{record.status,jdbcType=INTEGER}");
sql.SET("assign_coupon_agent_id = #{record.assignCouponAgentId,jdbcType=BIGINT}");
sql.SET("assign_agent_id = #{record.assignAgentId,jdbcType=BIGINT}");
sql.SET("assign_agent_name = #{record.assignAgentName,jdbcType=VARCHAR}");
sql.SET("remark = #{record.remark,jdbcType=VARCHAR}");
sql.SET("create_time = #{record.createTime,jdbcType=TIMESTAMP}");
sql.SET("sales_time = #{record.salesTime,jdbcType=TIMESTAMP}");
@ -312,6 +342,18 @@ public class HighCouponAgentCodeSqlProvider {
sql.SET("`status` = #{status,jdbcType=INTEGER}");
}
if (record.getAssignCouponAgentId() != null) {
sql.SET("assign_coupon_agent_id = #{assignCouponAgentId,jdbcType=BIGINT}");
}
if (record.getAssignAgentId() != null) {
sql.SET("assign_agent_id = #{assignAgentId,jdbcType=BIGINT}");
}
if (record.getAssignAgentName() != null) {
sql.SET("assign_agent_name = #{assignAgentName,jdbcType=VARCHAR}");
}
if (record.getRemark() != null) {
sql.SET("remark = #{remark,jdbcType=VARCHAR}");
}

@ -39,20 +39,20 @@ public interface HighCouponAgentRelMapper extends HighCouponAgentRelMapperExt {
int deleteByPrimaryKey(Long id);
@Insert({
"insert into high_coupon_agent_rel (`type`, coupon_name, ",
"sales_price, coupon_id, ",
"agent_id, stock_count, ",
"sales_count, create_time, ",
"`status`, operator_id, ",
"operator_name, ext_1, ",
"ext_2, ext_3)",
"values (#{type,jdbcType=INTEGER}, #{couponName,jdbcType=VARCHAR}, ",
"#{salesPrice,jdbcType=DECIMAL}, #{couponId,jdbcType=BIGINT}, ",
"#{agentId,jdbcType=BIGINT}, #{stockCount,jdbcType=INTEGER}, ",
"#{salesCount,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, ",
"#{status,jdbcType=INTEGER}, #{operatorId,jdbcType=BIGINT}, ",
"#{operatorName,jdbcType=VARCHAR}, #{ext1,jdbcType=VARCHAR}, ",
"#{ext2,jdbcType=VARCHAR}, #{ext3,jdbcType=VARCHAR})"
"insert into high_coupon_agent_rel (parent_coupon_agent_id, `type`, ",
"coupon_name, sales_price, ",
"coupon_id, agent_id, ",
"stock_count, sales_count, ",
"create_time, `status`, ",
"operator_id, operator_name, ",
"ext_1, ext_2, ext_3)",
"values (#{parentCouponAgentId,jdbcType=BIGINT}, #{type,jdbcType=INTEGER}, ",
"#{couponName,jdbcType=VARCHAR}, #{salesPrice,jdbcType=DECIMAL}, ",
"#{couponId,jdbcType=BIGINT}, #{agentId,jdbcType=BIGINT}, ",
"#{stockCount,jdbcType=INTEGER}, #{salesCount,jdbcType=INTEGER}, ",
"#{createTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER}, ",
"#{operatorId,jdbcType=BIGINT}, #{operatorName,jdbcType=VARCHAR}, ",
"#{ext1,jdbcType=VARCHAR}, #{ext2,jdbcType=VARCHAR}, #{ext3,jdbcType=VARCHAR})"
})
@Options(useGeneratedKeys=true,keyProperty="id")
int insert(HighCouponAgentRel record);
@ -64,6 +64,7 @@ public interface HighCouponAgentRelMapper extends HighCouponAgentRelMapperExt {
@SelectProvider(type=HighCouponAgentRelSqlProvider.class, method="selectByExample")
@Results({
@Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true),
@Result(column="parent_coupon_agent_id", property="parentCouponAgentId", jdbcType=JdbcType.BIGINT),
@Result(column="type", property="type", jdbcType=JdbcType.INTEGER),
@Result(column="coupon_name", property="couponName", jdbcType=JdbcType.VARCHAR),
@Result(column="sales_price", property="salesPrice", jdbcType=JdbcType.DECIMAL),
@ -83,13 +84,15 @@ public interface HighCouponAgentRelMapper extends HighCouponAgentRelMapperExt {
@Select({
"select",
"id, `type`, coupon_name, sales_price, coupon_id, agent_id, stock_count, sales_count, ",
"create_time, `status`, operator_id, operator_name, ext_1, ext_2, ext_3",
"id, parent_coupon_agent_id, `type`, coupon_name, sales_price, coupon_id, agent_id, ",
"stock_count, sales_count, create_time, `status`, operator_id, operator_name, ",
"ext_1, ext_2, ext_3",
"from high_coupon_agent_rel",
"where id = #{id,jdbcType=BIGINT}"
})
@Results({
@Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true),
@Result(column="parent_coupon_agent_id", property="parentCouponAgentId", jdbcType=JdbcType.BIGINT),
@Result(column="type", property="type", jdbcType=JdbcType.INTEGER),
@Result(column="coupon_name", property="couponName", jdbcType=JdbcType.VARCHAR),
@Result(column="sales_price", property="salesPrice", jdbcType=JdbcType.DECIMAL),
@ -118,7 +121,8 @@ public interface HighCouponAgentRelMapper extends HighCouponAgentRelMapperExt {
@Update({
"update high_coupon_agent_rel",
"set `type` = #{type,jdbcType=INTEGER},",
"set parent_coupon_agent_id = #{parentCouponAgentId,jdbcType=BIGINT},",
"`type` = #{type,jdbcType=INTEGER},",
"coupon_name = #{couponName,jdbcType=VARCHAR},",
"sales_price = #{salesPrice,jdbcType=DECIMAL},",
"coupon_id = #{couponId,jdbcType=BIGINT},",

@ -28,6 +28,10 @@ public class HighCouponAgentRelSqlProvider {
SQL sql = new SQL();
sql.INSERT_INTO("high_coupon_agent_rel");
if (record.getParentCouponAgentId() != null) {
sql.VALUES("parent_coupon_agent_id", "#{parentCouponAgentId,jdbcType=BIGINT}");
}
if (record.getType() != null) {
sql.VALUES("`type`", "#{type,jdbcType=INTEGER}");
}
@ -94,6 +98,7 @@ public class HighCouponAgentRelSqlProvider {
} else {
sql.SELECT("id");
}
sql.SELECT("parent_coupon_agent_id");
sql.SELECT("`type`");
sql.SELECT("coupon_name");
sql.SELECT("sales_price");
@ -129,6 +134,10 @@ public class HighCouponAgentRelSqlProvider {
sql.SET("id = #{record.id,jdbcType=BIGINT}");
}
if (record.getParentCouponAgentId() != null) {
sql.SET("parent_coupon_agent_id = #{record.parentCouponAgentId,jdbcType=BIGINT}");
}
if (record.getType() != null) {
sql.SET("`type` = #{record.type,jdbcType=INTEGER}");
}
@ -194,6 +203,7 @@ public class HighCouponAgentRelSqlProvider {
sql.UPDATE("high_coupon_agent_rel");
sql.SET("id = #{record.id,jdbcType=BIGINT}");
sql.SET("parent_coupon_agent_id = #{record.parentCouponAgentId,jdbcType=BIGINT}");
sql.SET("`type` = #{record.type,jdbcType=INTEGER}");
sql.SET("coupon_name = #{record.couponName,jdbcType=VARCHAR}");
sql.SET("sales_price = #{record.salesPrice,jdbcType=DECIMAL}");
@ -218,6 +228,10 @@ public class HighCouponAgentRelSqlProvider {
SQL sql = new SQL();
sql.UPDATE("high_coupon_agent_rel");
if (record.getParentCouponAgentId() != null) {
sql.SET("parent_coupon_agent_id = #{parentCouponAgentId,jdbcType=BIGINT}");
}
if (record.getType() != null) {
sql.SET("`type` = #{type,jdbcType=INTEGER}");
}

@ -68,6 +68,7 @@ public interface OutRechargeOrderMapperExt {
" operator_name as operatorName," +
" labor_union_card as laborUnionCard," +
" refund_time as refundTime," +
" create_timed as createTime," +
" case recharge_type when 1 then '快充' when 2 then '慢充' end rechargeTypeName ," +
" case pay_type when 2 then '微信支付' when 3 then '工会卡支付' when 4 then '银联支付' when null then '积分抵扣' end payTypeName," +
" recharge_content as rechargeContent,recharge_price as rechargePrice,pay_price as payPrice,discount_deduction_price as discountDeductionPrice,integral_deduction_price as integralDeductionPrice,pay_real_price as payRealPrice," +

@ -20,6 +20,16 @@ public class HighAgent implements Serializable {
*/
private Integer type;
/**
* 上级代理商id
*/
private Long parentId;
/**
* 上级代理商名称
*/
private String parentName;
/**
* 代理商编号
*/
@ -50,6 +60,9 @@ public class HighAgent implements Serializable {
*/
private Date createTime;
/**
* 状态0不可用1可用 2禁用
*/
private Integer status;
/**
@ -91,6 +104,22 @@ public class HighAgent implements Serializable {
this.type = type;
}
public Long getParentId() {
return parentId;
}
public void setParentId(Long parentId) {
this.parentId = parentId;
}
public String getParentName() {
return parentName;
}
public void setParentName(String parentName) {
this.parentName = parentName;
}
public String getAgentKey() {
return agentKey;
}
@ -209,6 +238,8 @@ public class HighAgent implements Serializable {
HighAgent other = (HighAgent) that;
return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
&& (this.getType() == null ? other.getType() == null : this.getType().equals(other.getType()))
&& (this.getParentId() == null ? other.getParentId() == null : this.getParentId().equals(other.getParentId()))
&& (this.getParentName() == null ? other.getParentName() == null : this.getParentName().equals(other.getParentName()))
&& (this.getAgentKey() == null ? other.getAgentKey() == null : this.getAgentKey().equals(other.getAgentKey()))
&& (this.getAgentName() == null ? other.getAgentName() == null : this.getAgentName().equals(other.getAgentName()))
&& (this.getAgentAddress() == null ? other.getAgentAddress() == null : this.getAgentAddress().equals(other.getAgentAddress()))
@ -230,6 +261,8 @@ public class HighAgent implements Serializable {
int result = 1;
result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
result = prime * result + ((getType() == null) ? 0 : getType().hashCode());
result = prime * result + ((getParentId() == null) ? 0 : getParentId().hashCode());
result = prime * result + ((getParentName() == null) ? 0 : getParentName().hashCode());
result = prime * result + ((getAgentKey() == null) ? 0 : getAgentKey().hashCode());
result = prime * result + ((getAgentName() == null) ? 0 : getAgentName().hashCode());
result = prime * result + ((getAgentAddress() == null) ? 0 : getAgentAddress().hashCode());
@ -254,6 +287,8 @@ public class HighAgent implements Serializable {
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", type=").append(type);
sb.append(", parentId=").append(parentId);
sb.append(", parentName=").append(parentName);
sb.append(", agentKey=").append(agentKey);
sb.append(", agentName=").append(agentName);
sb.append(", agentAddress=").append(agentAddress);

@ -245,6 +245,136 @@ public class HighAgentExample {
return (Criteria) this;
}
public Criteria andParentIdIsNull() {
addCriterion("parent_id is null");
return (Criteria) this;
}
public Criteria andParentIdIsNotNull() {
addCriterion("parent_id is not null");
return (Criteria) this;
}
public Criteria andParentIdEqualTo(Long value) {
addCriterion("parent_id =", value, "parentId");
return (Criteria) this;
}
public Criteria andParentIdNotEqualTo(Long value) {
addCriterion("parent_id <>", value, "parentId");
return (Criteria) this;
}
public Criteria andParentIdGreaterThan(Long value) {
addCriterion("parent_id >", value, "parentId");
return (Criteria) this;
}
public Criteria andParentIdGreaterThanOrEqualTo(Long value) {
addCriterion("parent_id >=", value, "parentId");
return (Criteria) this;
}
public Criteria andParentIdLessThan(Long value) {
addCriterion("parent_id <", value, "parentId");
return (Criteria) this;
}
public Criteria andParentIdLessThanOrEqualTo(Long value) {
addCriterion("parent_id <=", value, "parentId");
return (Criteria) this;
}
public Criteria andParentIdIn(List<Long> values) {
addCriterion("parent_id in", values, "parentId");
return (Criteria) this;
}
public Criteria andParentIdNotIn(List<Long> values) {
addCriterion("parent_id not in", values, "parentId");
return (Criteria) this;
}
public Criteria andParentIdBetween(Long value1, Long value2) {
addCriterion("parent_id between", value1, value2, "parentId");
return (Criteria) this;
}
public Criteria andParentIdNotBetween(Long value1, Long value2) {
addCriterion("parent_id not between", value1, value2, "parentId");
return (Criteria) this;
}
public Criteria andParentNameIsNull() {
addCriterion("parent_name is null");
return (Criteria) this;
}
public Criteria andParentNameIsNotNull() {
addCriterion("parent_name is not null");
return (Criteria) this;
}
public Criteria andParentNameEqualTo(String value) {
addCriterion("parent_name =", value, "parentName");
return (Criteria) this;
}
public Criteria andParentNameNotEqualTo(String value) {
addCriterion("parent_name <>", value, "parentName");
return (Criteria) this;
}
public Criteria andParentNameGreaterThan(String value) {
addCriterion("parent_name >", value, "parentName");
return (Criteria) this;
}
public Criteria andParentNameGreaterThanOrEqualTo(String value) {
addCriterion("parent_name >=", value, "parentName");
return (Criteria) this;
}
public Criteria andParentNameLessThan(String value) {
addCriterion("parent_name <", value, "parentName");
return (Criteria) this;
}
public Criteria andParentNameLessThanOrEqualTo(String value) {
addCriterion("parent_name <=", value, "parentName");
return (Criteria) this;
}
public Criteria andParentNameLike(String value) {
addCriterion("parent_name like", value, "parentName");
return (Criteria) this;
}
public Criteria andParentNameNotLike(String value) {
addCriterion("parent_name not like", value, "parentName");
return (Criteria) this;
}
public Criteria andParentNameIn(List<String> values) {
addCriterion("parent_name in", values, "parentName");
return (Criteria) this;
}
public Criteria andParentNameNotIn(List<String> values) {
addCriterion("parent_name not in", values, "parentName");
return (Criteria) this;
}
public Criteria andParentNameBetween(String value1, String value2) {
addCriterion("parent_name between", value1, value2, "parentName");
return (Criteria) this;
}
public Criteria andParentNameNotBetween(String value1, String value2) {
addCriterion("parent_name not between", value1, value2, "parentName");
return (Criteria) this;
}
public Criteria andAgentKeyIsNull() {
addCriterion("agent_key is null");
return (Criteria) this;

@ -71,10 +71,25 @@ public class HighCouponAgentCode extends HighCouponAgentCodeModel implements Ser
private String qrCode;
/**
* 状态1.待销售 2.未使用 3.已使用
* 状态0.删除 1.待销售 2.未使用 3.已使用 4. 分发代理商
*/
private Integer status;
/**
* 分配给卡券和代理商的id
*/
private Long assignCouponAgentId;
/**
* 分配代理商id
*/
private Long assignAgentId;
/**
* 分配代理商名称
*/
private String assignAgentName;
/**
* 备注
*/
@ -204,6 +219,30 @@ public class HighCouponAgentCode extends HighCouponAgentCodeModel implements Ser
this.status = status;
}
public Long getAssignCouponAgentId() {
return assignCouponAgentId;
}
public void setAssignCouponAgentId(Long assignCouponAgentId) {
this.assignCouponAgentId = assignCouponAgentId;
}
public Long getAssignAgentId() {
return assignAgentId;
}
public void setAssignAgentId(Long assignAgentId) {
this.assignAgentId = assignAgentId;
}
public String getAssignAgentName() {
return assignAgentName;
}
public void setAssignAgentName(String assignAgentName) {
this.assignAgentName = assignAgentName;
}
public String getRemark() {
return remark;
}
@ -292,6 +331,9 @@ public class HighCouponAgentCode extends HighCouponAgentCodeModel implements Ser
&& (this.getCouponCode() == null ? other.getCouponCode() == null : this.getCouponCode().equals(other.getCouponCode()))
&& (this.getQrCode() == null ? other.getQrCode() == null : this.getQrCode().equals(other.getQrCode()))
&& (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
&& (this.getAssignCouponAgentId() == null ? other.getAssignCouponAgentId() == null : this.getAssignCouponAgentId().equals(other.getAssignCouponAgentId()))
&& (this.getAssignAgentId() == null ? other.getAssignAgentId() == null : this.getAssignAgentId().equals(other.getAssignAgentId()))
&& (this.getAssignAgentName() == null ? other.getAssignAgentName() == null : this.getAssignAgentName().equals(other.getAssignAgentName()))
&& (this.getRemark() == null ? other.getRemark() == null : this.getRemark().equals(other.getRemark()))
&& (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
&& (this.getSalesTime() == null ? other.getSalesTime() == null : this.getSalesTime().equals(other.getSalesTime()))
@ -318,6 +360,9 @@ public class HighCouponAgentCode extends HighCouponAgentCodeModel implements Ser
result = prime * result + ((getCouponCode() == null) ? 0 : getCouponCode().hashCode());
result = prime * result + ((getQrCode() == null) ? 0 : getQrCode().hashCode());
result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
result = prime * result + ((getAssignCouponAgentId() == null) ? 0 : getAssignCouponAgentId().hashCode());
result = prime * result + ((getAssignAgentId() == null) ? 0 : getAssignAgentId().hashCode());
result = prime * result + ((getAssignAgentName() == null) ? 0 : getAssignAgentName().hashCode());
result = prime * result + ((getRemark() == null) ? 0 : getRemark().hashCode());
result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
result = prime * result + ((getSalesTime() == null) ? 0 : getSalesTime().hashCode());
@ -347,6 +392,9 @@ public class HighCouponAgentCode extends HighCouponAgentCodeModel implements Ser
sb.append(", couponCode=").append(couponCode);
sb.append(", qrCode=").append(qrCode);
sb.append(", status=").append(status);
sb.append(", assignCouponAgentId=").append(assignCouponAgentId);
sb.append(", assignAgentId=").append(assignAgentId);
sb.append(", assignAgentName=").append(assignAgentName);
sb.append(", remark=").append(remark);
sb.append(", createTime=").append(createTime);
sb.append(", salesTime=").append(salesTime);

@ -885,6 +885,196 @@ public class HighCouponAgentCodeExample {
return (Criteria) this;
}
public Criteria andAssignCouponAgentIdIsNull() {
addCriterion("assign_coupon_agent_id is null");
return (Criteria) this;
}
public Criteria andAssignCouponAgentIdIsNotNull() {
addCriterion("assign_coupon_agent_id is not null");
return (Criteria) this;
}
public Criteria andAssignCouponAgentIdEqualTo(Long value) {
addCriterion("assign_coupon_agent_id =", value, "assignCouponAgentId");
return (Criteria) this;
}
public Criteria andAssignCouponAgentIdNotEqualTo(Long value) {
addCriterion("assign_coupon_agent_id <>", value, "assignCouponAgentId");
return (Criteria) this;
}
public Criteria andAssignCouponAgentIdGreaterThan(Long value) {
addCriterion("assign_coupon_agent_id >", value, "assignCouponAgentId");
return (Criteria) this;
}
public Criteria andAssignCouponAgentIdGreaterThanOrEqualTo(Long value) {
addCriterion("assign_coupon_agent_id >=", value, "assignCouponAgentId");
return (Criteria) this;
}
public Criteria andAssignCouponAgentIdLessThan(Long value) {
addCriterion("assign_coupon_agent_id <", value, "assignCouponAgentId");
return (Criteria) this;
}
public Criteria andAssignCouponAgentIdLessThanOrEqualTo(Long value) {
addCriterion("assign_coupon_agent_id <=", value, "assignCouponAgentId");
return (Criteria) this;
}
public Criteria andAssignCouponAgentIdIn(List<Long> values) {
addCriterion("assign_coupon_agent_id in", values, "assignCouponAgentId");
return (Criteria) this;
}
public Criteria andAssignCouponAgentIdNotIn(List<Long> values) {
addCriterion("assign_coupon_agent_id not in", values, "assignCouponAgentId");
return (Criteria) this;
}
public Criteria andAssignCouponAgentIdBetween(Long value1, Long value2) {
addCriterion("assign_coupon_agent_id between", value1, value2, "assignCouponAgentId");
return (Criteria) this;
}
public Criteria andAssignCouponAgentIdNotBetween(Long value1, Long value2) {
addCriterion("assign_coupon_agent_id not between", value1, value2, "assignCouponAgentId");
return (Criteria) this;
}
public Criteria andAssignAgentIdIsNull() {
addCriterion("assign_agent_id is null");
return (Criteria) this;
}
public Criteria andAssignAgentIdIsNotNull() {
addCriterion("assign_agent_id is not null");
return (Criteria) this;
}
public Criteria andAssignAgentIdEqualTo(Long value) {
addCriterion("assign_agent_id =", value, "assignAgentId");
return (Criteria) this;
}
public Criteria andAssignAgentIdNotEqualTo(Long value) {
addCriterion("assign_agent_id <>", value, "assignAgentId");
return (Criteria) this;
}
public Criteria andAssignAgentIdGreaterThan(Long value) {
addCriterion("assign_agent_id >", value, "assignAgentId");
return (Criteria) this;
}
public Criteria andAssignAgentIdGreaterThanOrEqualTo(Long value) {
addCriterion("assign_agent_id >=", value, "assignAgentId");
return (Criteria) this;
}
public Criteria andAssignAgentIdLessThan(Long value) {
addCriterion("assign_agent_id <", value, "assignAgentId");
return (Criteria) this;
}
public Criteria andAssignAgentIdLessThanOrEqualTo(Long value) {
addCriterion("assign_agent_id <=", value, "assignAgentId");
return (Criteria) this;
}
public Criteria andAssignAgentIdIn(List<Long> values) {
addCriterion("assign_agent_id in", values, "assignAgentId");
return (Criteria) this;
}
public Criteria andAssignAgentIdNotIn(List<Long> values) {
addCriterion("assign_agent_id not in", values, "assignAgentId");
return (Criteria) this;
}
public Criteria andAssignAgentIdBetween(Long value1, Long value2) {
addCriterion("assign_agent_id between", value1, value2, "assignAgentId");
return (Criteria) this;
}
public Criteria andAssignAgentIdNotBetween(Long value1, Long value2) {
addCriterion("assign_agent_id not between", value1, value2, "assignAgentId");
return (Criteria) this;
}
public Criteria andAssignAgentNameIsNull() {
addCriterion("assign_agent_name is null");
return (Criteria) this;
}
public Criteria andAssignAgentNameIsNotNull() {
addCriterion("assign_agent_name is not null");
return (Criteria) this;
}
public Criteria andAssignAgentNameEqualTo(String value) {
addCriterion("assign_agent_name =", value, "assignAgentName");
return (Criteria) this;
}
public Criteria andAssignAgentNameNotEqualTo(String value) {
addCriterion("assign_agent_name <>", value, "assignAgentName");
return (Criteria) this;
}
public Criteria andAssignAgentNameGreaterThan(String value) {
addCriterion("assign_agent_name >", value, "assignAgentName");
return (Criteria) this;
}
public Criteria andAssignAgentNameGreaterThanOrEqualTo(String value) {
addCriterion("assign_agent_name >=", value, "assignAgentName");
return (Criteria) this;
}
public Criteria andAssignAgentNameLessThan(String value) {
addCriterion("assign_agent_name <", value, "assignAgentName");
return (Criteria) this;
}
public Criteria andAssignAgentNameLessThanOrEqualTo(String value) {
addCriterion("assign_agent_name <=", value, "assignAgentName");
return (Criteria) this;
}
public Criteria andAssignAgentNameLike(String value) {
addCriterion("assign_agent_name like", value, "assignAgentName");
return (Criteria) this;
}
public Criteria andAssignAgentNameNotLike(String value) {
addCriterion("assign_agent_name not like", value, "assignAgentName");
return (Criteria) this;
}
public Criteria andAssignAgentNameIn(List<String> values) {
addCriterion("assign_agent_name in", values, "assignAgentName");
return (Criteria) this;
}
public Criteria andAssignAgentNameNotIn(List<String> values) {
addCriterion("assign_agent_name not in", values, "assignAgentName");
return (Criteria) this;
}
public Criteria andAssignAgentNameBetween(String value1, String value2) {
addCriterion("assign_agent_name between", value1, value2, "assignAgentName");
return (Criteria) this;
}
public Criteria andAssignAgentNameNotBetween(String value1, String value2) {
addCriterion("assign_agent_name not between", value1, value2, "assignAgentName");
return (Criteria) this;
}
public Criteria andRemarkIsNull() {
addCriterion("remark is null");
return (Criteria) this;

@ -21,6 +21,11 @@ public class HighCouponAgentRel extends HighCouponAgentRelModel implements Seria
*/
private Long id;
/**
* 上级关系
*/
private Long parentCouponAgentId;
/**
* 类型 1销售码 2兑换码
*/
@ -92,6 +97,14 @@ public class HighCouponAgentRel extends HighCouponAgentRelModel implements Seria
this.id = id;
}
public Long getParentCouponAgentId() {
return parentCouponAgentId;
}
public void setParentCouponAgentId(Long parentCouponAgentId) {
this.parentCouponAgentId = parentCouponAgentId;
}
public Integer getType() {
return type;
}
@ -217,6 +230,7 @@ public class HighCouponAgentRel extends HighCouponAgentRelModel implements Seria
}
HighCouponAgentRel other = (HighCouponAgentRel) that;
return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
&& (this.getParentCouponAgentId() == null ? other.getParentCouponAgentId() == null : this.getParentCouponAgentId().equals(other.getParentCouponAgentId()))
&& (this.getType() == null ? other.getType() == null : this.getType().equals(other.getType()))
&& (this.getCouponName() == null ? other.getCouponName() == null : this.getCouponName().equals(other.getCouponName()))
&& (this.getSalesPrice() == null ? other.getSalesPrice() == null : this.getSalesPrice().equals(other.getSalesPrice()))
@ -238,6 +252,7 @@ public class HighCouponAgentRel extends HighCouponAgentRelModel implements Seria
final int prime = 31;
int result = 1;
result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
result = prime * result + ((getParentCouponAgentId() == null) ? 0 : getParentCouponAgentId().hashCode());
result = prime * result + ((getType() == null) ? 0 : getType().hashCode());
result = prime * result + ((getCouponName() == null) ? 0 : getCouponName().hashCode());
result = prime * result + ((getSalesPrice() == null) ? 0 : getSalesPrice().hashCode());
@ -262,6 +277,7 @@ public class HighCouponAgentRel extends HighCouponAgentRelModel implements Seria
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", parentCouponAgentId=").append(parentCouponAgentId);
sb.append(", type=").append(type);
sb.append(", couponName=").append(couponName);
sb.append(", salesPrice=").append(salesPrice);

@ -186,6 +186,66 @@ public class HighCouponAgentRelExample {
return (Criteria) this;
}
public Criteria andParentCouponAgentIdIsNull() {
addCriterion("parent_coupon_agent_id is null");
return (Criteria) this;
}
public Criteria andParentCouponAgentIdIsNotNull() {
addCriterion("parent_coupon_agent_id is not null");
return (Criteria) this;
}
public Criteria andParentCouponAgentIdEqualTo(Long value) {
addCriterion("parent_coupon_agent_id =", value, "parentCouponAgentId");
return (Criteria) this;
}
public Criteria andParentCouponAgentIdNotEqualTo(Long value) {
addCriterion("parent_coupon_agent_id <>", value, "parentCouponAgentId");
return (Criteria) this;
}
public Criteria andParentCouponAgentIdGreaterThan(Long value) {
addCriterion("parent_coupon_agent_id >", value, "parentCouponAgentId");
return (Criteria) this;
}
public Criteria andParentCouponAgentIdGreaterThanOrEqualTo(Long value) {
addCriterion("parent_coupon_agent_id >=", value, "parentCouponAgentId");
return (Criteria) this;
}
public Criteria andParentCouponAgentIdLessThan(Long value) {
addCriterion("parent_coupon_agent_id <", value, "parentCouponAgentId");
return (Criteria) this;
}
public Criteria andParentCouponAgentIdLessThanOrEqualTo(Long value) {
addCriterion("parent_coupon_agent_id <=", value, "parentCouponAgentId");
return (Criteria) this;
}
public Criteria andParentCouponAgentIdIn(List<Long> values) {
addCriterion("parent_coupon_agent_id in", values, "parentCouponAgentId");
return (Criteria) this;
}
public Criteria andParentCouponAgentIdNotIn(List<Long> values) {
addCriterion("parent_coupon_agent_id not in", values, "parentCouponAgentId");
return (Criteria) this;
}
public Criteria andParentCouponAgentIdBetween(Long value1, Long value2) {
addCriterion("parent_coupon_agent_id between", value1, value2, "parentCouponAgentId");
return (Criteria) this;
}
public Criteria andParentCouponAgentIdNotBetween(Long value1, Long value2) {
addCriterion("parent_coupon_agent_id not between", value1, value2, "parentCouponAgentId");
return (Criteria) this;
}
public Criteria andTypeIsNull() {
addCriterion("`type` is null");
return (Criteria) this;

@ -25,7 +25,7 @@ public interface HighAgentService {
* @throws Exception 抛出异常
*/
List<HighAgent> getListAgentMsg(Map<String , String> map) throws Exception;
List<HighAgent> getListAgentMsg(Map<String , Object> map) throws Exception;
/**
*
@ -61,6 +61,17 @@ public interface HighAgentService {
*/
void updateAgentMsg(HighAgentModel highAgentModel) throws Exception;
/**
*
* @Title: insertUser
* @Description: 新增代理商信息
* @author: Sum1Dream
* @Date: 2021/03/09 11:23
* @param: [highUser] 用户信息
* @return: com.hai.entity.HighAgentMsg
*/
void insertChildAgent(HighAgent agent) throws Exception ;
/**
*
* @Title: insertUser

@ -3,6 +3,7 @@ package com.hai.service;
import com.hai.entity.HighCouponAgentCode;
import com.hai.entity.HighCouponAgentRecord;
import com.hai.entity.HighCouponAgentRel;
import com.hai.entity.HighCouponCode;
import org.apache.ibatis.annotations.Param;
import java.security.PrivateKey;
@ -37,6 +38,13 @@ public interface HighCouponAgentService {
**/
HighCouponAgentRel getRelByCouponAgent(Long couponId,Long agentId, Integer type);
/**
* 根据id查询关系
* @param couponAgentRelId
* @return
*/
HighCouponAgentRel getRelById(Long couponAgentRelId);
/**
* @Author 胡锐
* @Description 查询卡券与代理商关系列表
@ -135,4 +143,10 @@ public interface HighCouponAgentService {
*/
Map<String, Object> pushGzSinopec(Long couponAgentRelId, String phone, String remark) throws Exception;
/**
* 查询代理商未分配的 销售码兑换码
* @param couponAgentRelId
* @return
*/
List<HighCouponAgentCode> getNoSaleCode(Long couponAgentRelId);
}

@ -428,4 +428,9 @@ public interface HighOrderService {
*/
GasOrderModel getGasOrderDetail(String orderNo);
/**
* 打印加油订单
* @param gasId
*/
void printGasOrder(Long gasId, HighOrder order);
}

@ -8,8 +8,11 @@ import com.hai.entity.SecUser;
import com.hai.model.HighAgentModel;
import com.hai.service.HighAgentService;
import com.hai.service.SecUserService;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Date;
@ -31,27 +34,36 @@ public class HighAgentServiceImpl implements HighAgentService {
private SecUserService secUserService;
@Override
public List<HighAgent> getListAgentMsg(Map<String, String> map) throws Exception {
public List<HighAgent> getListAgentMsg(Map<String, Object> map) throws Exception {
HighAgentExample example = new HighAgentExample();
HighAgentExample.Criteria criteria = example.createCriteria();
if (StringUtils.isNotBlank(map.get("agentName"))) {
if (MapUtils.getLong(map, "parentAgentId") != null) {
criteria.andParentIdEqualTo(MapUtils.getLong(map, "parentAgentId"));
}
if (StringUtils.isNotBlank(MapUtils.getString(map, "agentName"))) {
criteria.andAgentNameLike("%" + map.get("agentName") + "%");
}
if (StringUtils.isNotBlank(map.get("agentPhone"))) {
criteria.andAgentPhoneEqualTo( map.get("agentPhone"));
if (StringUtils.isNotBlank(MapUtils.getString(map, "agentPhone"))) {
criteria.andAgentPhoneEqualTo(MapUtils.getString(map, "agentPhone"));
}
if (StringUtils.isNotBlank(map.get("status"))) {
criteria.andStatusEqualTo(Integer.valueOf(map.get("status")));
if (MapUtils.getInteger(map, "status") != null) {
criteria.andStatusEqualTo(MapUtils.getInteger(map, "status"));
}
if (StringUtils.isNotBlank(map.get("type"))) {
criteria.andTypeEqualTo(Integer.valueOf(map.get("type")));
if (MapUtils.getInteger(map, "type") != null) {
criteria.andTypeEqualTo(MapUtils.getInteger(map, "type"));
}
if (StringUtils.isNotBlank(map.get("operatorId"))) {
criteria.andOperatorIdEqualTo(Long.valueOf(map.get("operatorId")));
if (MapUtils.getLong(map, "operatorId") != null) {
criteria.andOperatorIdEqualTo(MapUtils.getLong(map, "operatorId"));
}
example.setOrderByClause("create_time desc");
return highAgentMapper.selectByExample(example);
}
@ -89,6 +101,25 @@ public class HighAgentServiceImpl implements HighAgentService {
}
}
@Override
@Transactional(propagation= Propagation.REQUIRES_NEW)
public void insertChildAgent(HighAgent agent) throws Exception {
highAgentMapper.insert(agent);
SecUser secUser = new SecUser();
secUser.setUserName(agent.getUserName());
secUser.setLoginName(agent.getAgentPhone());
secUser.setPassword(MD5Util.encode("123456".getBytes()));
secUser.setAdminFlag(1);
secUser.setStatus(1);
secUser.setRoleId(6L);
secUser.setObjectType(4);
secUser.setObjectId(agent.getId());
secUser.setCreateTime(new Date());
secUser.setUpdateTime(new Date());
secUserService.addUser(secUser);
}
@Override
public void insertAgentMsg(HighAgentModel highAgentModel) throws Exception {
highAgentMapper.insert(highAgentModel);

@ -73,7 +73,6 @@ public class HighCouponAgentServiceImpl implements HighCouponAgentService {
@Override
@Transactional(propagation= Propagation.REQUIRES_NEW)
public void assignCouponAgent(HighCouponAgentRel highCouponAgentRel,Integer stockCount) {
if (highCouponAgentRel.getId() != null) {
highCouponAgentRelMapper.updateByPrimaryKey(highCouponAgentRel);
} else {
@ -100,51 +99,92 @@ public class HighCouponAgentServiceImpl implements HighCouponAgentService {
record.setCreateTime(new Date());
highCouponAgentRecordMapper.insert(record);
if (highCouponAgentRel.getType() == 1) {
// 查询未销售的卡券
List<HighCouponCode> codeList = highCouponCodeService.getNoSaleCode(highCouponAgentRel.getCouponId());
if (stockCount > codeList.size()) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "无法分配,分配数量超过库存数量");
if (highCouponAgentRel.getParentCouponAgentId() == null) {
if (highCouponAgentRel.getType() == 1) {
// 查询未销售的卡券
List<HighCouponCode> codeList = highCouponCodeService.getNoSaleCode(highCouponAgentRel.getCouponId());
if (stockCount > codeList.size()) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "无法分配,分配数量超过库存数量");
}
List<HighCouponCode> assignCouponCodeList = codeList.stream().limit(stockCount).collect(Collectors.toList());
HighCouponAgentCode highCouponAgentCode;
for (HighCouponCode code : assignCouponCodeList) {
code.setAgentId(highCouponAgentRel.getAgentId());
code.setIsAssignAgent(true);
highCouponCodeService.updateCouponCode(code);
highCouponAgentCode = new HighCouponAgentCode();
highCouponAgentCode.setType(highCouponAgentRel.getType());
highCouponAgentCode.setCouponAgentId(highCouponAgentRel.getId());
highCouponAgentCode.setCouponAgentRecordId(record.getId());
highCouponAgentCode.setCouponId(code.getCouponId());
highCouponAgentCode.setAgentId(highCouponAgentRel.getAgentId());
highCouponAgentCode.setCouponCodeId(code.getId());
highCouponAgentCode.setCouponCode(code.getSalesCode());
highCouponAgentCode.setQrCode(code.getExt1());
highCouponAgentCode.setStatus(1);
highCouponAgentCode.setCreateTime(new Date());
highCouponAgentCode.setOperatorId(highCouponAgentRel.getOperatorId());
highCouponAgentCode.setOperatorName(highCouponAgentRel.getOperatorName());
highCouponAgentCodeMapper.insert(highCouponAgentCode);
}
}
List<HighCouponCode> assignCouponCodeList = codeList.stream().limit(stockCount).collect(Collectors.toList());
HighCouponAgentCode highCouponAgentCode;
for (HighCouponCode code : assignCouponCodeList) {
code.setAgentId(highCouponAgentRel.getAgentId());
code.setIsAssignAgent(true);
highCouponCodeService.updateCouponCode(code);
highCouponAgentCode = new HighCouponAgentCode();
highCouponAgentCode.setType(highCouponAgentRel.getType());
highCouponAgentCode.setCouponAgentId(highCouponAgentRel.getId());
highCouponAgentCode.setCouponAgentRecordId(record.getId());
highCouponAgentCode.setCouponId(code.getCouponId());
highCouponAgentCode.setAgentId(highCouponAgentRel.getAgentId());
highCouponAgentCode.setCouponCodeId(code.getId());
highCouponAgentCode.setCouponCode(code.getSalesCode());
highCouponAgentCode.setQrCode(code.getExt1());
highCouponAgentCode.setStatus(1);
highCouponAgentCode.setCreateTime(new Date());
highCouponAgentCode.setOperatorId(highCouponAgentRel.getOperatorId());
highCouponAgentCode.setOperatorName(highCouponAgentRel.getOperatorName());
highCouponAgentCodeMapper.insert(highCouponAgentCode);
if (highCouponAgentRel.getType() == 2) {
HighCouponAgentCode highCouponAgentCode;
for (int i = 0; i < stockCount; i++) {
highCouponAgentCode = new HighCouponAgentCode();
highCouponAgentCode.setType(highCouponAgentRel.getType());
highCouponAgentCode.setCouponAgentId(highCouponAgentRel.getId());
highCouponAgentCode.setCouponAgentRecordId(record.getId());
highCouponAgentCode.setCouponId(highCoupon.getId());
highCouponAgentCode.setAgentId(highCouponAgentRel.getAgentId());
highCouponAgentCode.setConvertCode(generateConvertCode(highCouponAgentRel.getId()));
highCouponAgentCode.setStatus(1);
highCouponAgentCode.setCreateTime(new Date());
highCouponAgentCode.setOperatorId(highCouponAgentRel.getOperatorId());
highCouponAgentCode.setOperatorName(highCouponAgentRel.getOperatorName());
highCouponAgentCodeMapper.insert(highCouponAgentCode);
}
}
}
if (highCouponAgentRel.getType() == 2) {
HighCouponAgentCode highCouponAgentCode;
if (highCouponAgentRel.getParentCouponAgentId() != null) {
// 父级代理商库存
HighCouponAgentRel parentRel = getRelById(highCouponAgentRel.getParentCouponAgentId());
if (parentRel == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到代理商");
}
parentRel.setStockCount(parentRel.getStockCount() - stockCount);
parentRel.setSalesCount(parentRel.getSalesCount() + stockCount);
highCouponAgentRelMapper.updateByPrimaryKey(parentRel);
// 查询父代理商未分配的码值
List<HighCouponAgentCode> codeList = getNoSaleCode(parentRel.getId());
if (codeList.size() < stockCount) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "库存数量不足");
}
for (int i = 0; i < stockCount; i++) {
highCouponAgentCode = new HighCouponAgentCode();
highCouponAgentCode.setType(highCouponAgentRel.getType());
highCouponAgentCode.setCouponAgentId(highCouponAgentRel.getId());
highCouponAgentCode.setCouponAgentRecordId(record.getId());
highCouponAgentCode.setCouponId(highCoupon.getId());
highCouponAgentCode.setAgentId(highCouponAgentRel.getAgentId());
highCouponAgentCode.setConvertCode(generateConvertCode(highCouponAgentRel.getId()));
highCouponAgentCode.setStatus(1);
highCouponAgentCode.setCreateTime(new Date());
highCouponAgentCode.setOperatorId(highCouponAgentRel.getOperatorId());
highCouponAgentCode.setOperatorName(highCouponAgentRel.getOperatorName());
highCouponAgentCodeMapper.insert(highCouponAgentCode);
HighCouponAgentCode code = codeList.get(i);
code.setAssignCouponAgentId(highCouponAgentRel.getId());
code.setAssignAgentId(highAgent.getId());
code.setAssignAgentName(highAgent.getAgentName());
code.setStatus(4);
highCouponAgentCodeMapper.updateByPrimaryKey(code);
code.setId(null);
code.setAssignCouponAgentId(null);
code.setAssignAgentId(null);
code.setAssignAgentName(null);
code.setStatus(1);
code.setAgentId(highCouponAgentRel.getAgentId());
code.setCouponAgentId(highCouponAgentRel.getId());
code.setCouponAgentRecordId(record.getId());
code.setCreateTime(new Date());
code.setOperatorId(highCouponAgentRel.getOperatorId());
code.setOperatorName(highCouponAgentRel.getOperatorName());
highCouponAgentCodeMapper.insert(code);
}
}
}
@ -165,6 +205,11 @@ public class HighCouponAgentServiceImpl implements HighCouponAgentService {
return null;
}
@Override
public HighCouponAgentRel getRelById(Long couponAgentRelId) {
return highCouponAgentRelMapper.selectByPrimaryKey(couponAgentRelId);
}
@Override
public List<HighCouponAgentRel> getCouponAgentList(Map<String, Object> map) {
HighCouponAgentRelExample example = new HighCouponAgentRelExample();
@ -618,4 +663,13 @@ public class HighCouponAgentServiceImpl implements HighCouponAgentService {
map.put("couponAgentCode", convertCode);
return map;
}
@Override
public List<HighCouponAgentCode> getNoSaleCode(Long couponAgentRelId) {
HighCouponAgentCodeExample example = new HighCouponAgentCodeExample();
example.createCriteria().andStatusEqualTo(1).andCouponAgentIdEqualTo(couponAgentRelId);
example.setOrderByClause("create_time desc");
return highCouponAgentCodeMapper.selectByExample(example);
}
}

@ -380,7 +380,7 @@ public class HighCouponServiceImpl implements HighCouponService {
criteria.andCouponSourceNotEqualTo(MapUtils.getInteger(map, "notCouponSource"));
}
example.setOrderByClause("display_area desc");
example.setOrderByClause("create_time");
List<HighCoupon> coupons = highCouponMapper.selectByExample(example);
if (coupons != null && coupons.size() > 0) {
for (HighCoupon highCoupon : coupons) {

@ -17,6 +17,7 @@ import com.hai.msg.entity.MsgTopic;
import com.hai.service.*;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.paho.client.mqttv3.MqttClient;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
@ -39,6 +40,9 @@ public class HighOrderServiceImpl implements HighOrderService {
@Resource
private HighOrderMapper highOrderMapper;
@Resource
private HighDeviceService deviceService;
@Resource
private HighOrderMapperExt highOrderMapperExt;
@ -114,6 +118,9 @@ public class HighOrderServiceImpl implements HighOrderService {
@Resource
private RedisTemplate redisTemplate;
@Resource
private MqttProviderConfig mqttProviderConfig;
@Resource
private WebSocket webSocket;
@ -378,40 +385,6 @@ public class HighOrderServiceImpl implements HighOrderService {
// 扣预存款
this.redisTemplate.boundListOps(MsgTopic.MerStoreAccount.getName()).leftPush(pushParam);
}
if (StringUtils.isNotBlank(store.getDeviceSn())) {
new Thread(() -> {
try {
SpPrinterConfig sp = new SpPrinterConfig();
sp.print(store.getDeviceSn(),
SpPrinterTemplate.oilCashierStubTemp(
highChildOrder.getGoodsName(),
highOrder.getOrderNo(),
DateUtil.date2String(highOrder.getPayTime(), "yyyy-MM-dd HH:mm:ss"),
"嗨森逛",
highChildOrder.getGasGunNo(),
highChildOrder.getGasOilNo(),
highChildOrder.getGasOilLiters().toString(),
highOrder.getTotalPrice().toString()
), 1);
Thread.sleep(6000);
sp.print(store.getDeviceSn(),
SpPrinterTemplate.oilClientStubTemp(
highChildOrder.getGoodsName(),
highOrder.getOrderNo(),
DateUtil.date2String(highOrder.getPayTime(), "yyyy-MM-dd HH:mm:ss"),
"嗨森逛",
highChildOrder.getGasGunNo(),
highChildOrder.getGasOilNo(),
highChildOrder.getGasOilLiters().toString(),
highOrder.getTotalPrice().toString()
), 1);
} catch (Exception e) {
e.printStackTrace();
}
}).start();
}
} else if (store.getSourceType().equals(2)) {
// 推送团油订单
Map<String,Object> paramMap = new HashMap<>();
@ -480,6 +453,8 @@ public class HighOrderServiceImpl implements HighOrderService {
new Thread(() -> {
if (highOrder.getHighChildOrderList().get(0).getGoodsType().equals(3)) {
printGasOrder(highOrder.getHighChildOrderList().get(0).getGoodsId(), highOrder);
Map<String, Object> pushMsg = new HashMap<>();
pushMsg.put("userId", highOrder.getHighChildOrderList().get(0).getGoodsId());
@ -677,38 +652,6 @@ public class HighOrderServiceImpl implements HighOrderService {
// 扣预存款
this.redisTemplate.boundListOps(MsgTopic.MerStoreAccount.getName()).leftPush(pushParam);
}
if (StringUtils.isNotBlank(store.getDeviceSn())) {
new Thread(() -> {
try {
SpPrinterConfig sp = new SpPrinterConfig();
sp.print(store.getDeviceSn(),
SpPrinterTemplate.oilCashierStubTemp(
highChildOrder.getGoodsName(),
order.getOrderNo(),
DateUtil.date2String(order.getPayTime(), "yyyy-MM-dd HH:mm:ss"),
"嗨森逛",
highChildOrder.getGasGunNo(),
highChildOrder.getGasOilNo(),
highChildOrder.getGasOilLiters().toString(),
order.getTotalPrice().toString()
), 1);
Thread.sleep(6000);
sp.print(store.getDeviceSn(),
SpPrinterTemplate.oilClientStubTemp(
highChildOrder.getGoodsName(),
order.getOrderNo(),
DateUtil.date2String(order.getPayTime(), "yyyy-MM-dd HH:mm:ss"),
"嗨森逛",
highChildOrder.getGasGunNo(),
highChildOrder.getGasOilNo(),
highChildOrder.getGasOilLiters().toString(),
order.getTotalPrice().toString()
), 1);
} catch (Exception e) {
e.printStackTrace();
}
}).start();
}
} else if (store.getSourceType().equals(2)) {
// 推送团油订单
@ -753,6 +696,9 @@ public class HighOrderServiceImpl implements HighOrderService {
new Thread(() -> {
if (order.getHighChildOrderList().get(0).getGoodsType().equals(3)) {
printGasOrder(order.getHighChildOrderList().get(0).getGoodsId(), order);
Map<String, Object> pushMsg = new HashMap<>();
pushMsg.put("userId", order.getHighChildOrderList().get(0).getGoodsId());
@ -1012,39 +958,6 @@ public class HighOrderServiceImpl implements HighOrderService {
// 扣预存款
this.redisTemplate.boundListOps(MsgTopic.MerStoreAccount.getName()).leftPush(pushParam);
}
if (StringUtils.isNotBlank(store.getDeviceSn())) {
new Thread(() -> {
try {
SpPrinterConfig sp = new SpPrinterConfig();
sp.print(store.getDeviceSn(),
SpPrinterTemplate.oilCashierStubTemp(
highChildOrder.getGoodsName(),
order.getOrderNo(),
DateUtil.date2String(order.getPayTime(), "yyyy-MM-dd HH:mm:ss"),
"嗨森逛",
highChildOrder.getGasGunNo(),
highChildOrder.getGasOilNo(),
highChildOrder.getGasOilLiters().toString(),
order.getTotalPrice().toString()
), 1);
Thread.sleep(6000);
sp.print(store.getDeviceSn(),
SpPrinterTemplate.oilClientStubTemp(
highChildOrder.getGoodsName(),
order.getOrderNo(),
DateUtil.date2String(order.getPayTime(), "yyyy-MM-dd HH:mm:ss"),
"嗨森逛",
highChildOrder.getGasGunNo(),
highChildOrder.getGasOilNo(),
highChildOrder.getGasOilLiters().toString(),
order.getTotalPrice().toString()
), 1);
} catch (Exception e) {
e.printStackTrace();
}
}).start();
}
} else if (store.getSourceType().equals(2)) {
// 推送团油订单
Map<String,Object> paramMap = new HashMap<>();
@ -1113,6 +1026,8 @@ public class HighOrderServiceImpl implements HighOrderService {
new Thread(() -> {
if (order.getHighChildOrderList().get(0).getGoodsType().equals(3)) {
printGasOrder(order.getHighChildOrderList().get(0).getGoodsId(), order);
Map<String, Object> pushMsg = new HashMap<>();
pushMsg.put("userId", order.getHighChildOrderList().get(0).getGoodsId());
@ -1742,6 +1657,93 @@ public class HighOrderServiceImpl implements HighOrderService {
return null;
}
@Override
public void printGasOrder(Long gasId, HighOrder order) {
if (order == null) {
return;
}
for (HighChildOrder childOrder : order.getHighChildOrderList()) {
if (childOrder.getGoodsType().equals(3)) {
// 查询油站云打印设备
List<HighDevice> deviceList = deviceService.getDeviceListByStoreId(gasId);
for (HighDevice device : deviceList) {
if (device.getType().equals(DeviceTypeEnum.type1.getType())) {
new Thread(() -> {
try {
SpPrinterConfig sp = new SpPrinterConfig();
sp.print(device.getDeviceSn(),
SpPrinterTemplate.oilCashierStubTemp(
childOrder.getGoodsName(),
order.getOrderNo(),
DateUtil.date2String(order.getPayTime(), "yyyy-MM-dd HH:mm:ss"),
"嗨森逛",
childOrder.getGasGunNo(),
childOrder.getGasOilNo(),
childOrder.getGasOilLiters().toString(),
order.getTotalPrice().toString()
), 1);
Thread.sleep(6000);
sp.print(device.getDeviceSn(),
SpPrinterTemplate.oilClientStubTemp(
childOrder.getGoodsName(),
order.getOrderNo(),
DateUtil.date2String(order.getPayTime(), "yyyy-MM-dd HH:mm:ss"),
"嗨森逛",
childOrder.getGasGunNo(),
childOrder.getGasOilNo(),
childOrder.getGasOilLiters().toString(),
order.getTotalPrice().toString()
), 1);
} catch (Exception e) {
e.printStackTrace();
}
}).start();
}
if (device.getType().equals(DeviceTypeEnum.type2.getType())) {
new Thread(() -> {
try {
mqttProviderConfig.publish(2, false, device.getDeviceImei(),
ZkcPrinterTemplate.oilCashierStubTemp(
childOrder.getGoodsName(),
order.getOrderNo(),
DateUtil.date2String(order.getPayTime(), "yyyy-MM-dd HH:mm:ss"),
"嗨森逛",
childOrder.getGasGunNo(),
childOrder.getGasOilNo(),
childOrder.getGasOilLiters().toString(),
order.getTotalPrice().toString()
));
Thread.sleep(6000);
mqttProviderConfig.publish(2, false, device.getDeviceImei(),
ZkcPrinterTemplate.oilClientStubTemp(
childOrder.getGoodsName(),
order.getOrderNo(),
DateUtil.date2String(order.getPayTime(), "yyyy-MM-dd HH:mm:ss"),
"嗨森逛",
childOrder.getGasGunNo(),
childOrder.getGasOilNo(),
childOrder.getGasOilLiters().toString(),
order.getTotalPrice().toString()
));
} catch (Exception e) {
e.getMessage();
}
}).start();
}
}
}
}
}
public String priceName(Integer num) {
switch (num) {

@ -199,7 +199,7 @@ public class HltUnionCardVipServiceImpl implements HltUnionCardVipService {
HuiLianTongUnionCardConfig.submitSms(phone , "“E信通春节关怀”3张4元话费券、99折加油券已到账,打开“嗨森逛”微信小程序>我的>我的优惠券即可直接使用,到账之日起1月内(30天)有效。");
} else {
if (equityLevel == 1) {
HuiLianTongUnionCardConfig.submitSms(phone , "“E信通会员专属”3张4元话费券、2张96折加油券已到账,打开“嗨森逛”微信小程序>我的>我的优惠券即可直接使用,到账之日起1月内(30天)有效。");
HuiLianTongUnionCardConfig.submitSms(phone , "“E信通会员专属”3张4元话费券、2张99折加油券已到账,打开“嗨森逛”微信小程序>我的>我的优惠券即可直接使用,到账之日起1月内(30天)有效。");
} else {
HuiLianTongUnionCardConfig.submitSms(phone , "“工会卡用户专属”2元话费券、2张96折加油券已到账,打开“嗨森逛”微信小程序>我的>我的优惠券即可直接使用,到账之日起1月内(30天)有效。");
}

@ -596,6 +596,7 @@ public class OutRechargeOrderServiceImpl implements OutRechargeOrderService {
public void rechargeOrderToRefund(Long orderId) throws Exception {
OutRechargeOrder order = outRechargeOrderService.findByOrderId(orderId);
System.out.println("发起退款------------------------------------------------------------------------------" + orderId);
// 101.待支付 102.已支付 100.已完成 104.已取消 105.已退款
if (order.getPayStatus() != 102) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "无法退款,订单不处于已支付状态");
@ -605,8 +606,9 @@ public class OutRechargeOrderServiceImpl implements OutRechargeOrderService {
if (order.getRechargeStatus() == 201) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "无法退款,订单处于充值中状态");
}
// 退还积分
if (order.getIntegralNum() != null) {
if (order.getIntegralNum().compareTo(new BigDecimal(0)) > 0) {
highUserService.goldHandle(order.getUserId(), order.getIntegralNum().intValue(), 1, 3, order.getId());
if (order.getPayRealPrice().compareTo(new BigDecimal(0)) == 0) {
order.setPayStatus(105);
@ -834,7 +836,13 @@ public class OutRechargeOrderServiceImpl implements OutRechargeOrderService {
String orderNo = "CZ" + DateUtil.date2String(new Date(), "yyyyMMddHHmmss") + IDGenerator.nextId(5);
String[] rechargePlatform = outRechargePrice.getRechargePlatform().split("-");
String string = outRechargePrice.getRechargePlatform().substring(1,outRechargePrice.getRechargePlatform().length()-1);
String[] rechargePlatform = string.split("-");
if (string.length() == 1) {
type = Integer.parseInt(string);
}
for (String s : rechargePlatform) {
// 尖椒充值
@ -843,8 +851,8 @@ public class OutRechargeOrderServiceImpl implements OutRechargeOrderService {
object.put("amount", outRechargePrice.getRechargePrice());
object.put("mobile", outRechargeOrder.getRechargeContent());
object.put("notifyUrl", CommonSysConst.getSysConfig().getJjNotifyUrl());
System.out.println("尖椒请求回调地址---------------------" + CommonSysConst.getSysConfig().getJjNotifyUrl());
if (outRechargePrice.getRechargeType() == 1) {
System.out.println("outRechargeOrder-----------------------------------------------------------------------------------------------------------------------------------------------------" + outRechargePrice.getRechargeType());
if (outRechargeOrder.getRechargeType() == 1) {
object.put("is_fast", 1);
}
JSONObject returnObject = RechargeConfig.rechargeOrderByJj(object);

@ -299,41 +299,6 @@ public class GoodsOrderServiceImpl implements PayService {
// 扣预存款
this.redisTemplate.boundListOps(MsgTopic.MerStoreAccount.getName()).leftPush(pushParam);
}
if (StringUtils.isNotBlank(store.getDeviceSn())) {
new Thread(() -> {
try {
SpPrinterConfig sp = new SpPrinterConfig();
sp.print(store.getDeviceSn(),
SpPrinterTemplate.oilCashierStubTemp(
highChildOrder.getGoodsName(),
order.getOrderNo(),
DateUtil.date2String(order.getPayTime(), "yyyy-MM-dd HH:mm:ss"),
"嗨森逛",
highChildOrder.getGasGunNo(),
highChildOrder.getGasOilNo(),
highChildOrder.getGasOilLiters().toString(),
order.getTotalPrice().toString()
), 1);
Thread.sleep(6000);
sp.print(store.getDeviceSn(),
SpPrinterTemplate.oilClientStubTemp(
highChildOrder.getGoodsName(),
order.getOrderNo(),
DateUtil.date2String(order.getPayTime(), "yyyy-MM-dd HH:mm:ss"),
"嗨森逛",
highChildOrder.getGasGunNo(),
highChildOrder.getGasOilNo(),
highChildOrder.getGasOilLiters().toString(),
order.getTotalPrice().toString()
), 1);
} catch (Exception e) {
e.printStackTrace();
}
}).start();
}
} else if (store.getSourceType().equals(2)) {
// 推送团油订单
Map<String,Object> paramMap = new HashMap<>();
@ -447,22 +412,29 @@ public class GoodsOrderServiceImpl implements PayService {
if (order.getHighChildOrderList().get(0).getGoodsType().equals(3)) {
// 加油站
HighMerchantStoreModel store = highMerchantStoreService.getMerchantStoreById(order.getHighChildOrderList().get(0).getGoodsId());
if (store != null) {
if (store.getSourceType() != null && store.getSourceType().equals(1)) {
new Thread(() -> {
Map<String, Object> pushMsg = new HashMap<>();
pushMsg.put("userId", order.getHighChildOrderList().get(0).getGoodsId());
Map<String, Object> msgContent = new HashMap<>();
msgContent.put("order", highOrderService.getGasOrderDetail(order.getOrderNo()));
msgContent.put("voice", baiduVoiceService.text2audio(order.getHighChildOrderList().get(0).getGoodsName() + ",收款:" + order.getTotalPrice() + "元"));
pushMsg.put("message", JSONObject.toJSONString(msgContent));
HttpsUtils.doPost("http://127.0.0.1:9901/msg/websocket/websocket", pushMsg, new HashMap<>());
}).start();
new Thread(() -> {
try {
// 加油站
HighMerchantStoreModel store = highMerchantStoreService.getMerchantStoreById(order.getHighChildOrderList().get(0).getGoodsId());
if (store != null) {
if (store.getSourceType() != null && store.getSourceType().equals(1)) {
new Thread(() -> {
Map<String, Object> pushMsg = new HashMap<>();
pushMsg.put("userId", order.getHighChildOrderList().get(0).getGoodsId());
Map<String, Object> msgContent = new HashMap<>();
msgContent.put("order", highOrderService.getGasOrderDetail(order.getOrderNo()));
msgContent.put("voice", baiduVoiceService.text2audio(order.getHighChildOrderList().get(0).getGoodsName() + ",收款:" + order.getTotalPrice() + "元"));
pushMsg.put("message", JSONObject.toJSONString(msgContent));
HttpsUtils.doPost("http://127.0.0.1:9901/msg/websocket/websocket", pushMsg, new HashMap<>());
}).start();
}
}
highOrderService.printGasOrder(order.getHighChildOrderList().get(0).getGoodsId(), order);
} catch (Exception e){
}
}
}).start();
if (order.getProfitSharingStatus() == true) {
new Thread(() -> {

@ -1,11 +1,17 @@
hsgDomainName=https://hsgcs.dctpay.com
# ????
# TuanYou configuration parameters
tuanYouUrl=https://test05-motorcade-hcs.czb365.com
tuanYouAppKey=231599775566496
tuanYouAppSecret=cbfab3c550d6142a779c5196c9416342
tuanYouDieselAccount=c009bidg4400
tuanYouGasolineAccount=c009bic04400
#
shellGroupUrl=http://openapi.ngrok.xinyebang.cn/gateway.html
shellGroupPartnerId=123
shellPlatMerchantId=123
shellPlatMerchantKey=123
# ????
qinzhuUrl=https://live-test.qianzhu8.com
qinzhuHtmlUrl=https://m-test.qianzhu8.com

Loading…
Cancel
Save