| @@ -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); | |||
| @@ -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; | |||
| @@ -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<WxCardPriceTemplate> { | |||
| @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<MerchantPoiTNew> datalist = handleImportFile(null,file,MerchantPoiTNew.class,poiImportFields,needFields,new AsyncTask.PoiNewExcelHandler()); | |||
| ExcelImportResult<MerchantPoiTNew> 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()); | |||
| } | |||
| @@ -439,5 +439,8 @@ public class WxMerchant extends TenantEntity { | |||
| private Integer noCarVendor; | |||
| @TableField(exist = false) | |||
| private List<Long> merchantIds; | |||
| @TableField(exist = false) | |||
| private String initLog; | |||
| } | |||
| @@ -548,10 +548,10 @@ public class TtMerchantPoiServiceImpl implements TtMerchantPoiService { | |||
| public void exportTemplate(HttpServletRequest request, HttpServletResponse response, boolean isNew) { | |||
| if (isNew) { | |||
| List<MerchantPoiTNew> list = new ArrayList<MerchantPoiTNew>(); | |||
| excelService.exportExcel(list, null, "POI匹配模板", MerchantPoiTNew.class, "POI匹配模板.xlsx", response, true); | |||
| excelService.exportExcel(list, null, "POI匹配模板", MerchantPoiTNew.class, "门店数据模板.xlsx", response, true); | |||
| }else { | |||
| List<MerchantPoiT> list = new ArrayList<MerchantPoiT>(); | |||
| excelService.exportExcel(list, null, "POI匹配模板", MerchantPoiT.class, "POI匹配模板.xlsx", response, true); | |||
| excelService.exportExcel(list, null, "POI匹配模板", MerchantPoiT.class, "门店数据模板.xlsx", response, true); | |||
| } | |||
| } | |||
| @@ -160,6 +160,10 @@ public class WxMerchantServiceImpl implements WxMerchantService { | |||
| @Autowired | |||
| private WxMallBuildingService wxMallBuildingService; | |||
| @Lazy | |||
| @Autowired | |||
| private WxMerchantBUserService wxMerchantBUserService; | |||
| @Autowired | |||
| @Qualifier("objectCommonRedisTemplate") | |||
| RedisTemplate<String, Object> 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<WxMerchantBUser> users = new ArrayList<WxMerchantBUser>(); | |||
| 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<WxMerchantBUser> users = new ArrayList<WxMerchantBUser>(); | |||
| 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; | |||
| } | |||