diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/TtMerchantPoiController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/TtMerchantPoiController.java index 0f0efebda..cb29bbb78 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/TtMerchantPoiController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/TtMerchantPoiController.java @@ -278,12 +278,12 @@ public class TtMerchantPoiController extends DouyinBaseController { //得到当前用户ID final MallUserInfo user = getUser(); String userId = "" + user.getId(); - String importKey = Constant.importPoiPrev + userId; - File lFile = handlerImportFile(mFile,importKey,"poi"); + //String importKey = Constant.importPoiPrev + userId; + File lFile = handlerImportFile(mFile,null,"poi"); if (isSaas) { - asyncTask.importExcelPoiDataForNew(lFile, user, importKey,request,response); + asyncTask.importExcelPoiDataForNew(lFile, user, null,request,response); }else { - asyncTask.importExcelPoiData(lFile, user, importKey,request,response); + asyncTask.importExcelPoiData(lFile, user, null,request,response); } } catch (Exception e) { logger.error("allTreeList error.",e); diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/car/WxCarController.java b/mallinkAdmin/src/main/java/com/iformall/controller/car/WxCarController.java index 8094204f1..c6452995e 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/car/WxCarController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/car/WxCarController.java @@ -18,6 +18,7 @@ import com.iformall.mapper.WxCouponMapper; import com.iformall.service.*; import com.iformall.service.park.impl.etcp.ETCPUtil; import com.iformall.service.park.impl.tjd.TJDUtil; +import com.iformall.utils.Constant; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -191,6 +192,9 @@ public class WxCarController extends BaseController { } WxMerchant wxMerchant = wxMerchantService.getById(merchantId); String carParams = wxMerchant.getCarParams(); + if (StringUtils.isBlank(carParams)) { + return null; + } JSONObject objParams1 = JSON.parseObject(carParams); businessId = objParams1.getString("businessId"); return businessId; diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/mem/AsyncTask.java b/mallinkAdmin/src/main/java/com/iformall/controller/mem/AsyncTask.java index a4a65884a..858ad607d 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/mem/AsyncTask.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/mem/AsyncTask.java @@ -52,6 +52,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -112,11 +114,28 @@ public class AsyncTask { if (value == null) { value = ""; } + //管理员手机号校验手机号格式 + if ("管理员手机号".equals(name)) { + String _v = (String)value; + if (StringUtils.isNotBlank(_v) && (!isMobile(_v))) { + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"管理员手机号必须是移动号码"); + } + } return super.importHandler(obj, name, value); } } + private static boolean isMobile(String str) { + Pattern p = null; + Matcher m = null; + boolean b = false; + p = Pattern.compile("^[1][3,4,5,7,8][0-9]{9}$"); // 验证手机号 + m = p.matcher(str); + b = m.matches(); + return b; + } + private class CardPriceExcelHandler extends ExcelDataHandlerDefaultImpl { @Override public Object importHandler(WxCardPriceTemplate obj, String name, Object value) { @@ -290,7 +309,7 @@ public class AsyncTask { return datalist; } - @Async + //@Async public void importExcelPoiData(File file, MallUserInfo user, String importKey,HttpServletRequest request, HttpServletResponse response) { String[] importFields = new String[]{"服务商POI_ID", "POI名称", "省份", "城市", "地址", "经度", "纬度", "高德ID(非必填)", "已匹配POI_ID", "已匹配POI名称", "已匹配POI省份", "已匹配POI城市", "已匹配POI地址", "未匹配原因", "其他信息","POI导入结果"}; @@ -310,11 +329,15 @@ public class AsyncTask { logger.error("session :"+ue.getMessage()); } }); - stringRedisTemplate.expire(importKey,10, TimeUnit.SECONDS); + if (StringUtils.isNotBlank(importKey)) { + stringRedisTemplate.expire(importKey,10, TimeUnit.SECONDS); + } exportExcel(request, response, successList,MerchantPoiT.class, "POI导入-结果.xlsx"); } catch (Exception e) { logger.error("导入模板失败:"+e.getMessage(),e); - stringRedisTemplate.expire(importKey,10, TimeUnit.SECONDS); + if (StringUtils.isNotBlank(importKey)) { + stringRedisTemplate.expire(importKey,10, TimeUnit.SECONDS); + } } } } @@ -455,7 +478,7 @@ public class AsyncTask { public void importExcelPoiDataForNew(File file, MallUserInfo user, String importKey,HttpServletRequest request, HttpServletResponse response) { // 需要验证 String[] needFields = new String[]{"门店ID","富茂系统商户ID","富茂系统省份", "富茂系统城市", "富茂系统地址","富茂系统经度", "富茂系统纬度"}; - ExcelImportResult datalist = handleImportFile(null,file,MerchantPoiTNew.class,poiImportFields,needFields,new AsyncTask.PoiNewExcelHandler()); + ExcelImportResult datalist = handleImportFile(importKey,file,MerchantPoiTNew.class,poiImportFields,needFields,new AsyncTask.PoiNewExcelHandler()); if (null == datalist) { return ; } @@ -470,11 +493,15 @@ public class AsyncTask { logger.error("session :"+ue.getMessage(),ue); } }); - stringRedisTemplate.expire(importKey,10, TimeUnit.SECONDS); + if (StringUtils.isNotBlank(importKey)) { + stringRedisTemplate.expire(importKey,10, TimeUnit.SECONDS); + } exportExcel(request, response, successList,MerchantPoiTNew.class, "POI导入-结果.xlsx"); } catch (Exception e) { logger.error("导入模板失败:"+e.getMessage(),e); - stringRedisTemplate.expire(importKey,10, TimeUnit.SECONDS); + if (StringUtils.isNotBlank(importKey)) { + stringRedisTemplate.expire(importKey,10, TimeUnit.SECONDS); + } } } } @@ -539,7 +566,7 @@ public class AsyncTask { WxMerchant merchant = wxMerchantService.initMerchantByPoi(user,poiBase.getPoiName(), poiBase.getPoiId(),poiBase.getPhone()); poiBase.setMerchantId(String.valueOf(merchant.getId())); poiBase.setMerchantName(merchant.getName()); - poiBase.setInitMerchantRemark("初始化商户成功."); + poiBase.setInitMerchantRemark("初始化商户成功."+StringUtils.trimToEmpty(merchant.getInitLog())); }catch(Exception e) { poiBase.setInitMerchantRemark("初始化商户失败."+e.getMessage()); } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java index 8bb963e7f..bdbaf9e95 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java @@ -439,5 +439,8 @@ public class WxMerchant extends TenantEntity { private Integer noCarVendor; @TableField(exist = false) private List merchantIds; + + @TableField(exist = false) + private String initLog; } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/TtMerchantPoiServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/TtMerchantPoiServiceImpl.java index d01fb06dd..4ef4b9224 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/TtMerchantPoiServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/TtMerchantPoiServiceImpl.java @@ -548,10 +548,10 @@ public class TtMerchantPoiServiceImpl implements TtMerchantPoiService { public void exportTemplate(HttpServletRequest request, HttpServletResponse response, boolean isNew) { if (isNew) { List list = new ArrayList(); - excelService.exportExcel(list, null, "POI匹配模板", MerchantPoiTNew.class, "POI匹配模板.xlsx", response, true); + excelService.exportExcel(list, null, "POI匹配模板", MerchantPoiTNew.class, "门店数据模板.xlsx", response, true); }else { List list = new ArrayList(); - excelService.exportExcel(list, null, "POI匹配模板", MerchantPoiT.class, "POI匹配模板.xlsx", response, true); + excelService.exportExcel(list, null, "POI匹配模板", MerchantPoiT.class, "门店数据模板.xlsx", response, true); } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java index fcc609bb2..9439e6aba 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java @@ -160,6 +160,10 @@ public class WxMerchantServiceImpl implements WxMerchantService { @Autowired private WxMallBuildingService wxMallBuildingService; + @Lazy + @Autowired + private WxMerchantBUserService wxMerchantBUserService; + @Autowired @Qualifier("objectCommonRedisTemplate") RedisTemplate redisTemplate; @@ -2204,8 +2208,9 @@ public class WxMerchantServiceImpl implements WxMerchantService { shop.setBuilding(buildingId); shop.setFloor(floorId); shop.setOperationArea("0"); - shop.setBusinessId(0); + shop.setBusinessId(Constant.default_business); shop.setRentUnit(2); + shop.setImgUrl("https://formall.oss-accelerate.aliyuncs.com/789/7428a764-fc00-46e4-b7b7-8b4a794e1c39.jpg"); Result result = wxShopService.saveOrUpdate(shop); if (null == result) { return null; @@ -2270,15 +2275,20 @@ public class WxMerchantServiceImpl implements WxMerchantService { } //加管理员 if (StringUtils.isNotBlank(phone)) { - List users = new ArrayList(); - WxMerchantBUser buser = new WxMerchantBUser(); - buser.setName("管理员"); - buser.setPhone(phone); - buser.setUserPwd("123456Abc"); - buser.setIsAdmin(merchant.getIsAdmin()); - users.add(buser); - merchant.setUsers(users); - this.updateMerchantAdmin(merchant) ; + boolean hasPhone = wxMerchantBUserService.hasPhone(user, phone); + if (hasPhone) { + merchant.setInitLog("手机号已存在,跳过创建管理员账号"); + }else { + List users = new ArrayList(); + WxMerchantBUser buser = new WxMerchantBUser(); + buser.setName("管理员"); + buser.setPhone(phone); + buser.setUserPwd("123456Abc"); + buser.setIsAdmin(EnumYesOrNo.YES.getCode()); + users.add(buser); + merchant.setUsers(users); + this.updateMerchantAdmin(merchant) ; + } } return merchant; }