Commit bc0de1ae by 罗承锋

预制卡下单

parent a343197f
......@@ -60,8 +60,7 @@ public interface OrderMapper extends BaseMapper<Order> {
@Select("select xb_order_id xbOrderId from `hhr_order` where order_number = #{orderNumber}")
String selectxbOrderIdByOrderNumber(String orderNumber);
@Select("select * from `hhr_order` where order_number = #{orderNumber}")
List<Map<String, Object>> selectOrderIdByOrderNumber(String orderNumber);
List<Order> selectOrderIdByOrderNumber(@Param("orderNumber") String orderNumber);
@Select(" SELECT id,order_status,hehuoren_id,package_id,customer_name,business_number, " +
" contact_number,site,address,id_card,parent_name,business_iccid,kapin,id_cardz,id_cardf,id_cardzs,studen_card, " +
......
......@@ -5,7 +5,7 @@ package com.winsun.constant;
*/
public enum OrderType {
ZERO("0", "新用户办"),
ZERO("0", "新用户办"),
ONE("1", "放号登记"),
TWO("2","存量升级"),
THREE("3", "小白卡"),
......
......@@ -16,6 +16,7 @@ import com.winsun.auth.core.shiro.ShiroUser;
import com.winsun.auth.core.util.IOUtils;
import com.winsun.bean.*;
import com.winsun.constant.FilePath;
import com.winsun.constant.OrderType;
import com.winsun.mapper.*;
import com.winsun.rabbitmq.RabbitProducer;
import com.winsun.utils.Constant;
......@@ -58,6 +59,8 @@ import java.security.NoSuchAlgorithmException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
......@@ -110,8 +113,17 @@ public class OrderController extends BaseController {
private ExportExcelMapper exportExcelMapper;
@Autowired
private HhrUserMapper hhrUserMapper;
@Autowired
private YsmUserMapper ysmUserMapper;
@Autowired
private RabbitProducer taskImport;
@Autowired
private SalesListController salesListController;
private InputStream in = this.getClass().getResourceAsStream("/txtfiledetail.properties");
private Properties prop = new Properties();
......@@ -135,14 +147,182 @@ public class OrderController extends BaseController {
}
/**
* 修改配送方式
* @param id
* @param sendType
* @return
*/
@Permission(menuname = "更新配送方式", value = "updateSendType", method = RequestMethod.POST)
public ResponseData<String> updateSendType(@RequestParam("id") String id, @RequestParam("sendType") String sendType) {
ShiroUser user = getShiroUser();
Order order = new Order();
order.setSendType(sendType);
order.setId(id);
Integer integer = orderMapper.updateById(order);
if (integer == 1) {
appMapper.inserOrderHis(id, "更新配送方式成功!", new Date(), user.getName());
} else {
return ResponseData.error("更新配送方式失败!");
}
return ResponseData.success("更新配送方式成功!");
}
/**
* 修改iccid
* @param id
* @param businessIccid
* @param businessNumber
* @return
*/
@Permission(menuname = "更新iccid", value = "updateIccid", method = RequestMethod.POST)
public ResponseData<String> updateIccid(@RequestParam("id") String id, @RequestParam("businessIccid") String businessIccid,
@RequestParam("businessNumber") String businessNumber) {
ShiroUser user = getShiroUser();
// 初始化保存参数
Order saveOrder = new Order();
saveOrder.setBusinessNumber(businessNumber);
saveOrder.setBusinessIccid(businessIccid);
saveOrder.setId(id);
// 获取快递方式
Order sendTypeOrder = orderMapper.selectById(id);
if ("快递".equals(sendTypeOrder.getSendType())) {
saveOrder.setOrderStatus("提交中");
Integer integer = orderMapper.updateById(saveOrder);
if (integer == 1) {
appMapper.inserOrderHis(id, "实名验证中", new Date(), user.getName());
// 另起线程执行智能平台下单
new Thread(new Runnable() {
@Override
public void run() {
log.info("线程开始执行");
Order order = orderMapper.selectById(id);
String hehuoren_id = order.getHehuorenId();
String business_number = order.getBusinessNumber();
String business_iccid = order.getBusinessIccid();
HhrUser hhrUser = hhrUserMapper.selectById(hehuoren_id);
Map<String, Object> map1 = new HashMap<>();
int ysm = Integer.parseInt(hhrUser.getYsm());
YsmUser ysmUser = ysmUserMapper.selectById(ysm);
map1.put("ysmUser", ysmUser.getUserName());
map1.put("sign", ysmUser.getSign());
map1.put("idCardUrl1", order.getIdCardz());
map1.put("idCardUrl2", order.getIdCardf());
map1.put("idCardUrl3", order.getIdCardzs());
map1.put("idCardUrl4", order.getIdCardzs());
map1.put("cardType", order.getKapin());
if (order.getPackageId().equals("49")) {
map1.put("userName", order.getParentName());
} else {
map1.put("userName", order.getCustomerName());
}
map1.put("linkPhone", order.getContactNumber());
map1.put("idCard", order.getIdCard());
map1.put("orderPhone", business_number);
map1.put("iccId", business_iccid);
String site = order.getSite().toString();
String[] split = null;
if(site.indexOf(" ") != -1) {
split = site.split(" ");
}else{
split = new String[3];
}
map1.put("sheng", split[0]);
map1.put("shi", split[1]);
if (split.length > 2) {
map1.put("xian", split[2]);
} else {
map1.put("xian", "无");
}
map1.put("address", order.getAddress());
String result = "";
// 发送智能平台参数
result = sendOrder(map1);
JSONObject resultDataJson = JSONObject.fromObject(result);
String orderNum = resultDataJson.getString("orderNumber");
Order updateOrder = new Order();
updateOrder.setId(order.getId());
if (Is.isNoEmpty(orderNum)) {
updateOrder.setOrderStatus("审核中");
updateOrder.setOrderId(orderNum);
} else {
updateOrder.setOrderStatus("异常单");
String msg = resultDataJson.getString("msg");
updateOrder.setMsg(msg);
try {
// 添加操作记录
appMapper.inserOrderHis(order.getId(), "审核失败!", new Date(), "智能平台");
} catch (Exception e) {
e.printStackTrace();
}
}
try {
// 更新状态
orderMapper.updateById(updateOrder);
} catch (Exception e) {
log.error("更新状态:", e);
}
}
}).start();
} else {
return ResponseData.error("更新iccid失败!");
}
}else if ("送货上门".equals(sendTypeOrder.getSendType())){
saveOrder.setOrderStatus("已发货");
if(sendTypeOrder.getUserType().equals("1")) {
saveOrder.setOrderStatus("待受理");
}
Integer integer = orderMapper.updateById(saveOrder);
if (integer > 0 && !sendTypeOrder.getUserType().equals("1")) {
HhrUser hhrUser = hhrUserMapper.selectById(sendTypeOrder.getHehuorenId());
int ysm = Integer.parseInt(hhrUser.getYsm());
YsmUser ysmUser = ysmUserMapper.selectById(ysm);
if (ysmUser.getStatus() == 1) {
log.info("销售订单带同步");
this.syncSalesOrder(sendTypeOrder.getId(), "新用户办理");
}
}
// 添加操作记录
appMapper.inserOrderHis(sendTypeOrder.getId(), "送货上门中", new Date(), user.getName());
}
return ResponseData.success("更新iccid成功!");
}
/**
* 同步销售订单
* @param orderId
*/
public void syncSalesOrder(String orderId, String orderType) {
Order order = orderMapper.selectById(orderId);
List<Map<String, Object>> listForMap = new ArrayList<>();
Map<String, Object> map = new HashMap<>();
map.put("a", "");
map.put("b", order.getBusinessNumber());
map.put("c", order.getHehuorenName());
map.put("d", order.getHehuorenPhone());
map.put("e", order.getHehuorenSchool());
map.put("f", order.getHehuorenArea());
map.put("g", orderType);
listForMap.add(map);
Map<String, Object> stringObjectMap = salesListController.dealUploadData(listForMap);
}
/**
* 审核学生证
*/
@Permission(menuname = "审核学生证", value = "reviewStudentIdCard", method = RequestMethod.POST)
public ResponseData<String> reviewStudentIdCard(@RequestParam("studentCardCheckStatus") String studentCardCheckStatus, @RequestParam(name = "checkFail", required = false) String checkFail, @RequestParam("id") String id) {
ShiroUser user = getShiroUser();
/*if (!user.getRoleNames().stream().anyMatch(roleName -> StringUtils.equalsAny(roleName, "超级管理员"))) {
return ResponseData.error("无数据权限");
}*/
Wrapper wrapper = new EntityWrapper<>();
wrapper.eq("id", id);
Map<String, Object> dataMapping = new HashMap<>();
......@@ -951,24 +1131,34 @@ public class OrderController extends BaseController {
int number = 0;
Date successTime = new Date();
Integer integer = 0;
// 暂用100个线程池
ExecutorService executorService = Executors.newFixedThreadPool(100);
for (int i = 1; i < listMap.size(); i++) {
Map<String, Object> map = listMap.get(i);
String orderNumber = map.get("a").toString();
String businessNumber = map.get("b").toString();
String iccid = map.get("c").toString();
List<Map<String, Object>> orderByNumber = orderMapper.selectOrderIdByOrderNumber(orderNumber);
List<Order> orderByNumber = orderMapper.selectOrderIdByOrderNumber(orderNumber);
if(orderByNumber.size()==0){
continue;
}
Map<String, Object> map1 = orderByNumber.get(0);
map1.put("business_number",number);
map1.put("business_iccid",iccid);
map1.put("send_type", "快递");
map1.put("order_status", "提交中");
new Thread(new Runnable() {
Order dataOrder = new Order();
dataOrder.setId(orderByNumber.get(0).getId());
dataOrder.setBusinessNumber(String.valueOf(number));
dataOrder.setBusinessIccid(String.valueOf(iccid));
dataOrder.setSendType("快递");
dataOrder.setOrderStatus("提交中");
try {
// 更新订单
Integer num = orderMapper.updateById(dataOrder);
number+=num;
} catch (Exception e) {
e.printStackTrace();
}
executorService.execute(new Runnable() {
public void run() {
String id = map1.get("id").toString();
Order orderData = orderMapper.selectById(map1.get("id").toString());
String id = dataOrder.getId();
Order orderData = orderMapper.selectById(dataOrder.getId());
String hehuoren_id = orderData.getHehuorenId();
String business_number = orderData.getBusinessNumber();
String business_iccid = orderData.getBusinessIccid();
......@@ -1037,28 +1227,15 @@ public class OrderController extends BaseController {
e.printStackTrace();
}
}
}).start();
int num = 0;
try {
// num = basemapper.update("hhr_order",map1) > 0 ? 1 : 0;
number+=num;
} catch (Exception e) {
e.printStackTrace();
}
Map<String, Object> history = new HashMap<String, Object>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
});
history.put("order_id", map1.get("id"));
history.put("create_date", sdf.format(new Date()));
history.put("status", "实名验证中");
try {
// basemapper.insert("hhr_order_history", history);
// 新增订单流转记录
appMapper.inserOrderHis(dataOrder.getId(), "实名验证中", new Date(), user.getName());
} catch (Exception e) {
e.printStackTrace();
}
if (integer == 1) {
number++;
} else {
......@@ -1465,7 +1642,6 @@ public class OrderController extends BaseController {
builder.addTextBody("productJson", URLEncoder.encode(productJson, "UTF-8"), contentType);// 产品信息,必填
signMap.put("productJson", URLEncoder.encode(productJson, "UTF-8"));
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
......
......@@ -160,4 +160,8 @@
order by create_time desc
</select>
<select id="selectOrderIdByOrderNumber" parameterType="String" resultType="com.winsun.bean.Order">
select * from hhr_order where order_number = #{orderNumber}
</select>
</mapper>
\ No newline at end of file
......@@ -5,8 +5,7 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.winsun.bean.Order;
import com.winsun.bean.SysUser;
import com.winsun.mapper.*;
import com.winsun.mapper.OrderMapper;
import com.winsun.utils.MyBatisPlusUpdateUtils;
import com.winsun.utils.XbkUtil;
import lombok.extern.slf4j.Slf4j;
......@@ -36,6 +35,7 @@ public class OrderTask {
OrderTask.orderMapper = orderMapper;
}
// TODO 定时器更新已送货订单
@Scheduled(cron = "0 0 0 * * ? ")
//@Scheduled(cron = "0/5 * * * * ? ")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment