|
@@ -18,6 +18,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.util.List;
|
|
|
+import java.util.UUID;
|
|
|
|
|
|
/**
|
|
|
* 事件定单表(CareEventOrder)表服务实现类
|
|
@@ -111,79 +112,95 @@ public class CareEventOrderServiceImpl extends ServiceImpl<CareEventOrderMapper,
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public boolean saveOrder(CareEventOrder order){
|
|
|
- this.baseMapper.insert(order);
|
|
|
- CareEventOrderHandleHis his = new CareEventOrderHandleHis();
|
|
|
- his.setOrgId(order.getOrgId());
|
|
|
- his.setStationId(order.getStationId());
|
|
|
- his.setOrderId(order.getId());
|
|
|
- his.setHouseId(order.getHouseId());
|
|
|
- his.setOrderType(order.getOrderType());
|
|
|
- if (OrderTypeEnum.ZHU_DONG_HU_JIAO.getValue().equals(order.getOrderType()) || OrderTypeEnum.HU_WAI_HU_JIAO.getValue().equals(order.getOrderType())){
|
|
|
- his.setLogType(LogTypeEnum.OLDER_EVENT.getValue());
|
|
|
- his.setLogObjectId(order.getOlderId());
|
|
|
- his.setLogObjectName(order.getOlderName());
|
|
|
- his.setLogResult(OrderTypeEnum.getCodeToName(order.getOrderType()));
|
|
|
- his.setRelationTypeDesc(RelationTypeEnum.OLDER.getName());
|
|
|
- }else{
|
|
|
- his.setLogType(LogTypeEnum.DEV_EVENT.getValue());
|
|
|
- his.setLogObjectId(order.getDevId());
|
|
|
- his.setLogObjectName(order.getDevName());
|
|
|
- his.setLogResult("发生"+OrderTypeEnum.getCodeToName(order.getOrderType()));
|
|
|
- his.setRelationTypeDesc(RelationTypeEnum.HOUSE.getName());
|
|
|
- }
|
|
|
- his.setCreateTime(order.getCreateTime());
|
|
|
+ public void saveOrder(CareEventOrder order){
|
|
|
+ String key = RedisKeyConstant.CREATE_ORDER + ":" + order.getDevId();
|
|
|
+ String requestId = UUID.randomUUID().toString();
|
|
|
+ boolean result = redisUtil.tryLock(key,requestId,10);
|
|
|
+ try {
|
|
|
+ if (result) {
|
|
|
+ this.baseMapper.insert(order);
|
|
|
+ CareEventOrderHandleHis his = new CareEventOrderHandleHis();
|
|
|
+ his.setOrgId(order.getOrgId());
|
|
|
+ his.setStationId(order.getStationId());
|
|
|
+ his.setOrderId(order.getId());
|
|
|
+ his.setHouseId(order.getHouseId());
|
|
|
+ his.setOrderType(order.getOrderType());
|
|
|
+ if (OrderTypeEnum.ZHU_DONG_HU_JIAO.getValue().equals(order.getOrderType()) || OrderTypeEnum.HU_WAI_HU_JIAO.getValue().equals(order.getOrderType())) {
|
|
|
+ his.setLogType(LogTypeEnum.OLDER_EVENT.getValue());
|
|
|
+ his.setLogObjectId(order.getOlderId());
|
|
|
+ his.setLogObjectName(order.getOlderName());
|
|
|
+ his.setLogResult(OrderTypeEnum.getCodeToName(order.getOrderType()));
|
|
|
+ his.setRelationTypeDesc(RelationTypeEnum.OLDER.getName());
|
|
|
+ } else {
|
|
|
+ his.setLogType(LogTypeEnum.DEV_EVENT.getValue());
|
|
|
+ his.setLogObjectId(order.getDevId());
|
|
|
+ his.setLogObjectName(order.getDevName());
|
|
|
+ his.setLogResult("发生" + OrderTypeEnum.getCodeToName(order.getOrderType()));
|
|
|
+ his.setRelationTypeDesc(RelationTypeEnum.HOUSE.getName());
|
|
|
+ }
|
|
|
+ his.setCreateTime(order.getCreateTime());
|
|
|
|
|
|
- addOlderToOrderOlder(order);
|
|
|
- List<CareEventOrderChamb> chambList = addChamberlainToOrder(order);
|
|
|
- List<CareEventOrderContactStatus> contacts = addContactToOrderContact(order);
|
|
|
- Object switchSms = redisUtil.get(RedisKeyConstant.SWITCH_SMS);
|
|
|
- if (switchSms != null){
|
|
|
- //给联系人发送短信
|
|
|
- CareHouse house = this.careHouseService.getById(order.getHouseId());
|
|
|
- if (CollUtil.isNotEmpty(contacts)){
|
|
|
+ addOlderToOrderOlder(order);
|
|
|
+ List<CareEventOrderChamb> chambList = addChamberlainToOrder(order);
|
|
|
+ List<CareEventOrderContactStatus> contacts = addContactToOrderContact(order);
|
|
|
+ Object switchSms = redisUtil.get(RedisKeyConstant.SWITCH_SMS);
|
|
|
+ if (switchSms != null) {
|
|
|
+ //给联系人发送短信
|
|
|
+ CareHouse house = this.careHouseService.getById(order.getHouseId());
|
|
|
+ if (CollUtil.isNotEmpty(contacts)) {
|
|
|
|
|
|
- contacts.forEach(item ->{
|
|
|
- boolean smsResult = smsSendService.sendSmsToLianxiren(order.getOrderType(),item.getContactPhone(),house.getName());
|
|
|
- if (smsResult){
|
|
|
- CareEventOrderHandleHis his2 = new CareEventOrderHandleHis();
|
|
|
- his2.setOrgId(item.getOrgId());
|
|
|
- his2.setStationId(item.getStationId());
|
|
|
- his2.setOrderId(item.getOrderId());
|
|
|
- his2.setLogType(LogTypeEnum.SMS.getValue());
|
|
|
- his2.setLogObjectId(item.getContactId());
|
|
|
- his2.setLogObjectName(item.getContactName());
|
|
|
- his2.setLogResult("短信通知");
|
|
|
- his2.setOpUserRole(UserRoleEnum.SEAT.getValue());
|
|
|
- his2.setCreateTime(DateUtil.date());
|
|
|
- his2.setRelationTypeDesc(item.getRelationTypeDesc());
|
|
|
- this.careEventOrderHandleHisService.save(his2);
|
|
|
+ contacts.forEach(item -> {
|
|
|
+ boolean smsResult = smsSendService.sendSmsToLianxiren(order.getOrderType(), item.getContactPhone(), house.getName());
|
|
|
+ if (smsResult) {
|
|
|
+ CareEventOrderHandleHis his2 = new CareEventOrderHandleHis();
|
|
|
+ his2.setOrgId(item.getOrgId());
|
|
|
+ his2.setStationId(item.getStationId());
|
|
|
+ his2.setOrderId(item.getOrderId());
|
|
|
+ his2.setLogType(LogTypeEnum.SMS.getValue());
|
|
|
+ his2.setLogObjectId(item.getContactId());
|
|
|
+ his2.setLogObjectName(item.getContactName());
|
|
|
+ his2.setLogResult("短信通知");
|
|
|
+ his2.setOpUserRole(UserRoleEnum.SEAT.getValue());
|
|
|
+ his2.setCreateTime(DateUtil.date());
|
|
|
+ his2.setRelationTypeDesc(item.getRelationTypeDesc());
|
|
|
+ this.careEventOrderHandleHisService.save(his2);
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
- });
|
|
|
- }
|
|
|
- //给管家发短信
|
|
|
- if (CollUtil.isNotEmpty(chambList)){
|
|
|
- chambList.forEach(item ->{
|
|
|
- boolean smsResult = smsSendService.sendSmsToLianxiren(order.getOrderType(),item.getPhone(),house.getName());
|
|
|
- if (smsResult){
|
|
|
- CareEventOrderHandleHis his2 = new CareEventOrderHandleHis();
|
|
|
- his2.setOrgId(item.getOrgId());
|
|
|
- his2.setStationId(item.getStationId());
|
|
|
- his2.setOrderId(item.getOrderId());
|
|
|
- his2.setLogType(LogTypeEnum.SMS.getValue());
|
|
|
- his2.setLogObjectId(item.getChambId());
|
|
|
- his2.setLogObjectName(item.getChambName());
|
|
|
- his2.setLogResult("短信通知");
|
|
|
- his2.setOpUserRole(UserRoleEnum.SEAT.getValue());
|
|
|
- his2.setCreateTime(DateUtil.date());
|
|
|
- his2.setRelationTypeDesc("管家");
|
|
|
- this.careEventOrderHandleHisService.save(his2);
|
|
|
+ //给管家发短信
|
|
|
+ if (CollUtil.isNotEmpty(chambList)) {
|
|
|
+ chambList.forEach(item -> {
|
|
|
+ boolean smsResult = smsSendService.sendSmsToLianxiren(order.getOrderType(), item.getPhone(), house.getName());
|
|
|
+ if (smsResult) {
|
|
|
+ CareEventOrderHandleHis his2 = new CareEventOrderHandleHis();
|
|
|
+ his2.setOrgId(item.getOrgId());
|
|
|
+ his2.setStationId(item.getStationId());
|
|
|
+ his2.setOrderId(item.getOrderId());
|
|
|
+ his2.setLogType(LogTypeEnum.SMS.getValue());
|
|
|
+ his2.setLogObjectId(item.getChambId());
|
|
|
+ his2.setLogObjectName(item.getChambName());
|
|
|
+ his2.setLogResult("短信通知");
|
|
|
+ his2.setOpUserRole(UserRoleEnum.SEAT.getValue());
|
|
|
+ his2.setCreateTime(DateUtil.date());
|
|
|
+ his2.setRelationTypeDesc("管家");
|
|
|
+ this.careEventOrderHandleHisService.save(his2);
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
- });
|
|
|
+ }
|
|
|
+ this.careEventOrderHandleHisService.save(his);
|
|
|
+ } else {
|
|
|
+ try {
|
|
|
+ Thread.sleep(10000);
|
|
|
+ saveOrder(order);
|
|
|
+ } catch (Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
+ } finally {
|
|
|
+ redisUtil.releaseLock(key,requestId);
|
|
|
}
|
|
|
- this.careEventOrderHandleHisService.save(his);
|
|
|
- return true;
|
|
|
}
|
|
|
|
|
|
|