| @@ -1,10 +1,15 @@ | |||
| package com.iformall.controller; | |||
| import com.alibaba.fastjson.JSONArray; | |||
| import com.iformall.common.ResultData; | |||
| import com.iformall.domain.po.*; | |||
| import com.iformall.enums.*; | |||
| import com.iformall.mapper.WxMsgMapper; | |||
| import com.iformall.mq.MqBaseProducer; | |||
| import com.iformall.service.MsgSendService; | |||
| import com.iformall.service.WxMsgRecordService; | |||
| import com.iformall.service.impl.SendCallBackSmsServiceImpl; | |||
| import com.iformall.utils.DateUtils; | |||
| import com.iformall.utils.JsonUtil; | |||
| import io.swagger.annotations.Api; | |||
| import org.slf4j.Logger; | |||
| @@ -24,6 +29,36 @@ public class WxMsgRecordController extends BaseController { | |||
| private WxMsgRecordService wxMsgRecordService; | |||
| @Autowired | |||
| private MqBaseProducer mqBaseProducer; | |||
| @Autowired | |||
| private WxMsgMapper wxMsgMapper; | |||
| @Autowired | |||
| private SendCallBackSmsServiceImpl msgSendService; | |||
| // @GetMapping(value = "/test") | |||
| // public ResultData test() throws Exception{ | |||
| // String systemTime = DateUtils.getSystemTime("yyyy-MM-dd HH:00:00"); | |||
| // WxMsg wxMsg = new WxMsg(); | |||
| // wxMsg.setIsright(0); | |||
| // wxMsg.setSendtime(systemTime); | |||
| // wxMsg.setId(270060355273621504l); | |||
| // List<WxMsg> list = wxMsgMapper.findList(wxMsg); | |||
| // logger.info("将要发送的短信列表:" + JSONArray.toJSONString(list)); | |||
| // for (WxMsg msg : list) { | |||
| // //sendmsg(msg); | |||
| // msg.setMsgType(EnumMsgRecordType.SMS_CALLBACK.getCode()); | |||
| // msg.setReceiver(msg.getPhones()); | |||
| // mqBaseProducer.sendMessage(msg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(),null); | |||
| // } | |||
| // | |||
| // String s = "{\"tenantId\":\"456\",\"uuid\":\"0a410e4e-c0ef-461e-bea8-7bd222e7c7b7\",\"delayTimeLevel\":0,\"id\":270060355273621504,\"modelId\":220401934081720320,\"msg\":\"狂欢双十一:更多礼品等你来领取\",\"sendtime\":\"2019-03-25 16:00:00\",\"createtime\":\"2019-03-25 15:30:16\",\"expectSendNumber\":1,\"phones\":\"18601973448\",\"signature\":\"富茂科技\",\"isright\":0,\"name\":\"狂欢双十一\",\"excelpath\":\"\",\"label\":\"\",\"status\":0,\"way\":1}"; | |||
| // WxMsg wxMsg = (WxMsg) JsonUtil.readValue(s,WxMsg.class); | |||
| // wxMsg.setMsgType(EnumMsgRecordType.SMS_CALLBACK.getCode()); | |||
| // wxMsg.setReceiver("18601973448"); | |||
| // wxMsg.setTenantId("456"); | |||
| // msgSendService.send(wxMsg); | |||
| // return new ResultData(); | |||
| // } | |||
| /** | |||
| * 重新发送失败的消息 | |||
| @@ -39,16 +74,28 @@ public class WxMsgRecordController extends BaseController { | |||
| for (WxMsgRecord wxMsgRecord:recordList) { | |||
| if(EnumMsgRecordType.SMS.getCode().equals(wxMsgRecord.getMsgType())){ | |||
| //短信 | |||
| mqBaseProducer.sendMessage((WxMsgRecord) JsonUtil.readValue(wxMsgRecord.getMsgJson(),WxMsgRecord.class), EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); | |||
| mqBaseProducer.sendMessage(wxMsgRecord, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); | |||
| }else if(EnumMsgRecordType.SMS_CALLBACK.getCode().equals(wxMsgRecord.getMsgType())){ | |||
| //业务短信 | |||
| mqBaseProducer.sendMessage((WxMsg) JsonUtil.readValue(wxMsgRecord.getMsgJson(),WxMsg.class), EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); | |||
| WxMsg wxMsg = (WxMsg) JsonUtil.readValue(wxMsgRecord.getMsgJson(),WxMsg.class); | |||
| wxMsg.setMsgType(wxMsgRecord.getMsgType()); | |||
| wxMsg.setReceiver(wxMsgRecord.getReceiver()); | |||
| wxMsg.setTenantId(wxMsgRecord.getTenantId()); | |||
| mqBaseProducer.sendMessage(wxMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); | |||
| }else if(EnumMsgRecordType.EMAIL.getCode().equals(wxMsgRecord.getMsgType())){ | |||
| //邮件 | |||
| mqBaseProducer.sendMessage((MailMsg) JsonUtil.readValue(wxMsgRecord.getMsgJson(),MailMsg.class), EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); | |||
| MailMsg wxMsg = (MailMsg) JsonUtil.readValue(wxMsgRecord.getMsgJson(),MailMsg.class); | |||
| wxMsg.setMsgType(wxMsgRecord.getMsgType()); | |||
| wxMsg.setReceiver(wxMsgRecord.getReceiver()); | |||
| wxMsg.setTenantId(wxMsgRecord.getTenantId()); | |||
| mqBaseProducer.sendMessage(wxMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); | |||
| }else if(EnumMsgRecordType.SMART_APP.getCode().equals(wxMsgRecord.getMsgType())){ | |||
| //微信小程序 | |||
| mqBaseProducer.sendMessage((SmartAppMsg) JsonUtil.readValue(wxMsgRecord.getMsgJson(),SmartAppMsg.class), EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); | |||
| SmartAppMsg wxMsg = (SmartAppMsg) JsonUtil.readValue(wxMsgRecord.getMsgJson(),SmartAppMsg.class); | |||
| wxMsg.setMsgType(wxMsgRecord.getMsgType()); | |||
| wxMsg.setReceiver(wxMsgRecord.getReceiver()); | |||
| wxMsg.setTenantId(wxMsgRecord.getTenantId()); | |||
| mqBaseProducer.sendMessage(wxMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); | |||
| } | |||
| } | |||
| return new ResultData(); | |||
| @@ -66,6 +66,9 @@ public class TenantInfoImpl implements TenantInfo { | |||
| if ("wx_user_channel".equals(tableName)) { | |||
| return true; | |||
| } | |||
| if ("wx_msg_record".equals(tableName)) { | |||
| return true; | |||
| } | |||
| return false; | |||
| } | |||
| @@ -10,9 +10,9 @@ import com.iformall.common.ErrorCode; | |||
| import com.iformall.domain.po.WxAppinfo; | |||
| import com.iformall.domain.po.WxMerchantBUser; | |||
| import com.iformall.exception.MallinkException; | |||
| import com.iformall.interceptor.AuthorizationInterceptor; | |||
| import com.iformall.service.WxAppinfoService; | |||
| import com.iformall.service.WxMerchantBUserService; | |||
| import com.iformall.utils.Constant; | |||
| import com.iformall.utils.IPUtil; | |||
| import com.iformall.utils.MaUtil; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| @@ -56,7 +56,7 @@ public class BaseController { | |||
| public Long getUserId() { | |||
| HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); | |||
| Long bUserId = (Long) request.getAttribute(AuthorizationInterceptor.LOGIN_USER_KEY); | |||
| Long bUserId = (Long) request.getAttribute(Constant.LOGIN_USER_KEY); | |||
| return bUserId; | |||
| } | |||
| @@ -70,7 +70,7 @@ public class BaseController { | |||
| public String getTenantId() { | |||
| HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); | |||
| String tenantId = (String) request.getAttribute(AuthorizationInterceptor.TENANT_ID); | |||
| String tenantId = (String) request.getAttribute(Constant.TENANT_ID); | |||
| return tenantId; | |||
| } | |||
| @@ -15,6 +15,7 @@ import com.iformall.service.MallRolePermissionService; | |||
| import com.iformall.service.MallUserInfoService; | |||
| import com.iformall.service.MallUserRoleService; | |||
| import com.iformall.service.WxAppinfoService; | |||
| import com.iformall.utils.Constant; | |||
| import io.swagger.annotations.Api; | |||
| import io.swagger.annotations.ApiOperation; | |||
| import me.chanjar.weixin.common.error.WxErrorException; | |||
| @@ -135,7 +136,7 @@ public class WxInfoController extends BaseController { | |||
| } else { | |||
| // 检查token是否已过期, 小时就重新获取 | |||
| Date curDate = new Date(); | |||
| if(curDate.getTime() > wxAppinfo.getLastTokenTime().getTime() + 3600000) { | |||
| if(curDate.getTime() > wxAppinfo.getLastTokenTime().getTime() + Constant.C_EXPIRE) { | |||
| try { | |||
| String accessToken = wxMaService.getAccessToken(true); | |||
| wxAppinfo.setAccessToken(accessToken); | |||
| @@ -5,13 +5,10 @@ import com.iformall.annotation.AuthIgnore; | |||
| import com.iformall.common.ErrorCode; | |||
| import com.iformall.common.ResultData; | |||
| import com.iformall.domain.po.*; | |||
| import com.iformall.domain.vo.WxCUserVo; | |||
| import com.iformall.domain.vo.WxLevelMerchantCVo; | |||
| import com.iformall.enums.EnumLevelConfigDiscountStatus; | |||
| import com.iformall.enums.EnumMerchantBUserStatus; | |||
| import com.iformall.enums.EnumMerchantStatus; | |||
| import com.iformall.interceptor.AuthorizationInterceptor; | |||
| import com.iformall.service.*; | |||
| import com.iformall.utils.Constant; | |||
| import com.iformall.utils.HashUtil; | |||
| import com.iformall.utils.IPUtil; | |||
| import io.swagger.annotations.Api; | |||
| @@ -174,8 +171,8 @@ public class WxMerchantBUserController extends BaseController { | |||
| token = user1.getToken(); | |||
| resultMap.put("token", token); | |||
| resultMap.put("bUserId",user1.getId()); | |||
| request.setAttribute(AuthorizationInterceptor.LOGIN_USER_KEY, user1.getId()); | |||
| request.setAttribute(AuthorizationInterceptor.TENANT_ID, user1.getTenantId()); | |||
| request.setAttribute(Constant.LOGIN_USER_KEY, user1.getId()); | |||
| request.setAttribute(Constant.TENANT_ID, user1.getTenantId()); | |||
| try { | |||
| wxMerchantBUserService.saveOrUpdate(user1); | |||
| } catch (Exception e) { | |||
| @@ -6,6 +6,7 @@ import com.iformall.common.ErrorCode; | |||
| import com.iformall.domain.po.WxMerchantBUser; | |||
| import com.iformall.exception.MallinkException; | |||
| import com.iformall.service.WxMerchantBUserService; | |||
| import com.iformall.utils.Constant; | |||
| import org.apache.commons.lang3.StringUtils; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Component; | |||
| @@ -26,9 +27,6 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { | |||
| @Autowired | |||
| private WxMerchantBUserService wxMerchantBUserService; | |||
| public static final String LOGIN_USER_KEY = "LOGIN_USER_KEY"; | |||
| public static final String TENANT_ID = "TENANT_ID"; | |||
| @Override | |||
| public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { | |||
| AuthIgnore annotation; | |||
| @@ -63,8 +61,8 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { | |||
| } | |||
| //设置userId到request里,后续根据userId,获取用户信息 | |||
| request.setAttribute(LOGIN_USER_KEY, wxMerchantBUser.getId()); | |||
| request.setAttribute(TENANT_ID, wxMerchantBUser.getTenantId()); | |||
| request.setAttribute(Constant.LOGIN_USER_KEY, wxMerchantBUser.getId()); | |||
| request.setAttribute(Constant.TENANT_ID, wxMerchantBUser.getTenantId()); | |||
| return true; | |||
| } | |||
| @@ -3,8 +3,8 @@ package com.iformall.resolver; | |||
| import com.iformall.annotation.LoginUser; | |||
| import com.iformall.domain.po.WxCUser; | |||
| import com.iformall.domain.po.WxMerchantBUser; | |||
| import com.iformall.interceptor.AuthorizationInterceptor; | |||
| import com.iformall.service.WxMerchantBUserService; | |||
| import com.iformall.utils.Constant; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.core.MethodParameter; | |||
| import org.springframework.stereotype.Component; | |||
| @@ -34,7 +34,7 @@ public class LoginUserHandlerMethodArgumentResolver implements HandlerMethodArgu | |||
| public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer container, | |||
| NativeWebRequest request, WebDataBinderFactory factory) throws Exception { | |||
| //获取用户ID | |||
| Object object = request.getAttribute(AuthorizationInterceptor.LOGIN_USER_KEY, RequestAttributes.SCOPE_REQUEST); | |||
| Object object = request.getAttribute(Constant.LOGIN_USER_KEY, RequestAttributes.SCOPE_REQUEST); | |||
| if(object == null){ | |||
| return null; | |||
| } | |||
| @@ -1,7 +1,7 @@ | |||
| package com.iformall.tenant; | |||
| import com.iformall.interceptor.AuthorizationInterceptor; | |||
| import com.iformall.plugin.TenantInfo; | |||
| import com.iformall.utils.Constant; | |||
| import org.apache.ibatis.mapping.MappedStatement; | |||
| import org.slf4j.Logger; | |||
| import org.slf4j.LoggerFactory; | |||
| @@ -18,7 +18,7 @@ public class TenantInfoImpl implements TenantInfo { | |||
| String tenantId = null; | |||
| try { | |||
| HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); | |||
| tenantId = (String) request.getAttribute(AuthorizationInterceptor.TENANT_ID); | |||
| tenantId = (String) request.getAttribute(Constant.TENANT_ID); | |||
| return tenantId; | |||
| } catch (Exception e) { | |||
| logger.error("getTenantId: " + e.getMessage()); | |||
| @@ -6,10 +6,10 @@ import com.iformall.domain.po.WxAppinfo; | |||
| import com.iformall.domain.po.WxCUser; | |||
| import com.iformall.domain.po.WxCUserBasicInfo; | |||
| import com.iformall.exception.MallinkException; | |||
| import com.iformall.interceptor.AuthorizationInterceptor; | |||
| import com.iformall.service.WxAppinfoService; | |||
| import com.iformall.service.WxCUserBasicInfoService; | |||
| import com.iformall.service.WxCUserService; | |||
| import com.iformall.utils.Constant; | |||
| import com.iformall.utils.IPUtil; | |||
| import com.iformall.utils.MaUtil; | |||
| import org.apache.commons.lang3.StringUtils; | |||
| @@ -60,12 +60,21 @@ public class BaseController { | |||
| }); | |||
| } | |||
| public String getTenantId() { | |||
| HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); | |||
| String tenantId = (String) request.getAttribute(Constant.TENANT_ID); | |||
| return tenantId; | |||
| } | |||
| public Long getUserId() { | |||
| HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); | |||
| Long cUserId = (Long) request.getAttribute(AuthorizationInterceptor.LOGIN_USER_KEY); | |||
| Long cUserId = (Long) request.getAttribute(Constant.LOGIN_USER_KEY); | |||
| return cUserId; | |||
| } | |||
| /** | |||
| * 请尽量多用getTenantId, getUserId | |||
| */ | |||
| public WxCUser getUser() { | |||
| Long cUserId = getUserId(); | |||
| WxCUser user = wxCUserService.getById(cUserId); | |||
| @@ -74,12 +83,6 @@ public class BaseController { | |||
| return user; | |||
| } | |||
| public String getTenantId() { | |||
| HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); | |||
| String tenantId = (String) request.getAttribute(AuthorizationInterceptor.TENANT_ID); | |||
| return tenantId; | |||
| } | |||
| public WxAppinfo getAppInfo(String appId) { | |||
| return wxAppinfoService.getByAppId(appId); | |||
| } | |||
| @@ -36,7 +36,6 @@ public class WxBusinessController extends BaseController { | |||
| @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) | |||
| public ResultData list(WxBusiness wxBusiness, Integer pageNum, Integer pageSize) { | |||
| if (null == wxBusiness) wxBusiness = new WxBusiness(); | |||
| WxCUser user = getUser(); | |||
| final PageInfo<WxBusiness> page = wxBusinessService.listAsPage(wxBusiness, pageNum, pageSize); | |||
| return new ResultData(page); | |||
| } | |||
| @@ -59,9 +59,9 @@ public class WxCarController extends BaseController { | |||
| @Autowired | |||
| WxCarCmdLogService wxCarCmdLogService; | |||
| private WxPark getCurrentPark(WxCUser user) { | |||
| private WxPark getCurrentPark(String tenantId) { | |||
| WxPark parkQ = new WxPark(); | |||
| parkQ.setTenantId(user.getTenantId()); | |||
| parkQ.setTenantId(tenantId); | |||
| WxPark wxPark = wxParkService.getByObj(parkQ); | |||
| // 1, get mall's park | |||
| // future use redis to optimize | |||
| @@ -71,9 +71,8 @@ public class WxCarController extends BaseController { | |||
| @ApiOperation(value = "获取车场支持的厂家",notes="返回\n{\"vendor\":integer}") | |||
| @GetMapping("/getVendor") | |||
| public ResultData getVendor() { | |||
| WxCUser user = getUser(); | |||
| // 1, get mall's park | |||
| WxPark park = getCurrentPark(user); | |||
| WxPark park = getCurrentPark(getTenantId()); | |||
| Map map = new HashMap(); | |||
| map.put("vendor", park.getVendorType()); | |||
| return new ResultData(map); | |||
| @@ -89,7 +88,7 @@ public class WxCarController extends BaseController { | |||
| public ResultData init(@RequestBody Map<String, String > paramMap) { | |||
| WxCUser user = getUser(); | |||
| // 1, get mall's park | |||
| WxPark park = getCurrentPark(user); | |||
| WxPark park = getCurrentPark(getTenantId()); | |||
| // 2. get vendor params | |||
| if (park.getVendorType() == EnumCarVendor.CAR_ETCP.getCode()) { | |||
| String phone = paramMap.get("phone"); | |||
| @@ -231,9 +230,8 @@ public class WxCarController extends BaseController { | |||
| "}\n") | |||
| @PostMapping("/bindCar") | |||
| public ResultData bindCar(@RequestBody Map<String, String > paramMap) { | |||
| WxCUser user = getUser(); | |||
| // 1, get mall's park | |||
| WxPark park = getCurrentPark(user); | |||
| WxPark park = getCurrentPark(getTenantId()); | |||
| // 2. get vendor params | |||
| if (park.getVendorType() == EnumCarVendor.CAR_ETCP.getCode()) { | |||
| String etcpToken = paramMap.get("etcpToken"); | |||
| @@ -259,8 +257,8 @@ public class WxCarController extends BaseController { | |||
| // 插入车牌 | |||
| Date curr = new Date(); | |||
| WxCUserCar userCar = new WxCUserCar(); | |||
| userCar.setCUserId(user.getId()); | |||
| userCar.setTenantId(user.getTenantId()); | |||
| userCar.setCUserId(getUserId()); | |||
| userCar.setTenantId(getTenantId()); | |||
| userCar.setCarNumber(carNumber); | |||
| userCar.setVendorType(EnumCarVendor.CAR_ETCP.getCode()); | |||
| userCar.setCreateDate(curr); | |||
| @@ -269,7 +267,7 @@ public class WxCarController extends BaseController { | |||
| wxScoreRulesService.addScore(EnumScoreType.BIND_CAR,userCar); | |||
| JSONObject dataObj = retObj.getJSONObject("data"); | |||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_CAR,user); | |||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_CAR,getUserId()); | |||
| return new ResultData(dataObj); | |||
| } else { | |||
| String message = retObj.getString("message"); | |||
| @@ -311,8 +309,8 @@ public class WxCarController extends BaseController { | |||
| Date curr = new Date(); | |||
| WxCUserCar userCar = new WxCUserCar(); | |||
| userCar.setId(newCarId); | |||
| userCar.setCUserId(user.getId()); | |||
| userCar.setTenantId(user.getTenantId()); | |||
| userCar.setCUserId(getUserId()); | |||
| userCar.setTenantId(getTenantId()); | |||
| userCar.setCarNumber(carNumber); | |||
| userCar.setVendorType(EnumCarVendor.CAR_TJD.getCode()); | |||
| JSONObject jo = new JSONObject(); | |||
| @@ -328,7 +326,7 @@ public class WxCarController extends BaseController { | |||
| return new ResultData(ErrorCode.DB_FAIL.getCode(), "TJD保存车牌失败, e:" + e.getMessage()); | |||
| } | |||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_CAR,user); | |||
| wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_CAR,getUserId()); | |||
| return new ResultData(retObj); | |||
| } else { | |||
| return new ResultData(ErrorCode.TJD_BIND_FAIL.getCode(), "绑车牌失败", retObj); | |||
| @@ -357,9 +355,8 @@ public class WxCarController extends BaseController { | |||
| "}\n") | |||
| @PostMapping("/unbindCar") | |||
| public ResultData unbindCar(@RequestBody Map<String, String > paramMap) { | |||
| WxCUser user = getUser(); | |||
| // 1, get mall's park | |||
| WxPark park = getCurrentPark(user); | |||
| WxPark park = getCurrentPark(getTenantId()); | |||
| if (park.getVendorType() == EnumCarVendor.CAR_ETCP.getCode()) { | |||
| String etcpToken = paramMap.get("etcpToken"); | |||
| if (StringUtils.isBlank(etcpToken)) { | |||
| @@ -383,8 +380,8 @@ public class WxCarController extends BaseController { | |||
| if (retObj.getIntValue("code") == 0) { | |||
| try { | |||
| WxCUserCar userCar = new WxCUserCar(); | |||
| userCar.setCUserId(user.getId()); | |||
| userCar.setTenantId(user.getTenantId()); | |||
| userCar.setCUserId(getUserId()); | |||
| userCar.setTenantId(getTenantId()); | |||
| userCar.setCarNumber(carNumber); | |||
| wxCUserCarService.deleteByObj(userCar); | |||
| } catch (Exception e) { | |||
| @@ -406,8 +403,8 @@ public class WxCarController extends BaseController { | |||
| } | |||
| WxCUserCar queryOne = new WxCUserCar(); | |||
| queryOne.setCarNumber(carNumber); | |||
| queryOne.setTenantId(user.getTenantId()); | |||
| queryOne.setCUserId(user.getId()); | |||
| queryOne.setTenantId(getTenantId()); | |||
| queryOne.setCUserId(getUserId()); | |||
| WxCUserCar userCar = wxCUserCarService.getOne(queryOne); | |||
| if (userCar != null) { | |||
| String params = userCar.getVendorParams(); | |||
| @@ -481,9 +478,8 @@ public class WxCarController extends BaseController { | |||
| " }") | |||
| @PostMapping("/getCarStopFee") | |||
| public ResultData getCarStopFee(@RequestBody Map<String, String > paramMap) { | |||
| WxCUser user = getUser(); | |||
| // 1, get mall's park | |||
| WxPark park = getCurrentPark(user); | |||
| WxPark park = getCurrentPark(getTenantId()); | |||
| if (park.getVendorType() == EnumCarVendor.CAR_ETCP.getCode()) { | |||
| String etcpToken = paramMap.get("etcpToken"); | |||
| String carNumber = paramMap.get("carNumber"); | |||
| @@ -564,9 +560,8 @@ public class WxCarController extends BaseController { | |||
| " }") | |||
| @PostMapping("/deductionFee") | |||
| public ResultData deductionFee(@RequestBody Map<String, String > paramMap) { | |||
| WxCUser user = getUser(); | |||
| /// 1, get mall's park | |||
| WxPark park = getCurrentPark(user); | |||
| WxPark park = getCurrentPark(getTenantId()); | |||
| if (park.getVendorType() == EnumCarVendor.CAR_TJD.getCode()) { | |||
| String tradeId = paramMap.get("tradeId"); | |||
| String deductionAmount = paramMap.get("deductionAmount"); | |||
| @@ -617,9 +612,8 @@ public class WxCarController extends BaseController { | |||
| @ApiOperation(value = "优免券领取", notes="ETCP:={\"etcpToken\":\"string\",\"carNumber\":\"string\",\"couponOrderId\"=\"String\"},输出\n{}") | |||
| @PostMapping("/getCoupon") | |||
| public ResultData getCoupon(@RequestBody Map<String, String > paramMap) { | |||
| WxCUser user = getUser(); | |||
| /// 1, get mall's park | |||
| WxPark park = getCurrentPark(user); | |||
| WxPark park = getCurrentPark(getTenantId()); | |||
| if (park.getVendorType() == EnumCarVendor.CAR_ETCP.getCode()) { | |||
| String etcpToken = paramMap.get("etcpToken"); | |||
| String carNumber = paramMap.get("carNumber"); | |||
| @@ -644,8 +638,8 @@ public class WxCarController extends BaseController { | |||
| WxCouponOrderCarCVo userCar = null; | |||
| WxCouponOrder userCarQ = new WxCouponOrder(); | |||
| userCarQ.setTenantId(user.getTenantId()); | |||
| userCarQ.setcUserId(user.getId()); | |||
| userCarQ.setTenantId(getTenantId()); | |||
| userCarQ.setcUserId(getUserId()); | |||
| userCarQ.setId(couponOrderId); | |||
| userCarQ.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()); | |||
| List<WxCouponOrderCarCVo> list = wxCouponOrderService.carListCUserVo(userCarQ); | |||
| @@ -681,7 +675,7 @@ public class WxCarController extends BaseController { | |||
| // 券状态设为已使用 | |||
| WxCouponOrder couponOrder = new WxCouponOrder(); | |||
| couponOrder.setId(userCar.getId()); | |||
| couponOrder.setTenantId(user.getTenantId()); | |||
| couponOrder.setTenantId(getTenantId()); | |||
| couponOrder.setUpdateDate(new Date()); | |||
| couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); | |||
| try { | |||
| @@ -710,9 +704,8 @@ public class WxCarController extends BaseController { | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | |||
| } | |||
| if (wxCouponOrder == null) wxCouponOrder = new WxCouponOrderCarCVo(); | |||
| WxCUser user = getUser(); | |||
| wxCouponOrder.setTenantId(user.getTenantId()); | |||
| wxCouponOrder.setcUserId(user.getId()); | |||
| wxCouponOrder.setTenantId(getTenantId()); | |||
| wxCouponOrder.setcUserId(getUserId()); | |||
| if (wxCouponOrder.getCouponOrderStatus() == null) | |||
| wxCouponOrder.setSortColumns(WxCouponOrder.Field.CreateDate_DESC); | |||
| else if (wxCouponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()) | |||
| @@ -725,9 +718,8 @@ public class WxCarController extends BaseController { | |||
| @ApiOperation(value = "停车场状态") | |||
| @GetMapping("/getParkStatus") | |||
| public ResultData getParkStatus() { | |||
| WxCUser user = getUser(); | |||
| /// 1, get mall's park | |||
| WxPark park = getCurrentPark(user); | |||
| WxPark park = getCurrentPark(getTenantId()); | |||
| if (park.getVendorType() == EnumCarVendor.CAR_ETCP.getCode()) { | |||
| String params = park.getVendorParams(); | |||
| if(params == null) { | |||
| @@ -90,8 +90,6 @@ public class WxCardPayController extends BaseController { | |||
| Integer payment = totalFee.multiply(new BigDecimal(100)).intValue(); | |||
| WxCUser user = getUser(); | |||
| WxCardInfo cardInfo = wxCardInfoService.getById(cardId); | |||
| if(cardInfo == null) { | |||
| logger.error("卡不存在: " + cardIdStr); | |||
| @@ -105,7 +103,7 @@ public class WxCardPayController extends BaseController { | |||
| //查看所有者与扫码者是否为一致 | |||
| WxCouponOrder couponOrder = wxCouponOrderService.getById(cardId); | |||
| if (!couponOrder.getOwnerId().equals(user.getId())) { | |||
| if (!couponOrder.getOwnerId().equals(getUserId())) { | |||
| logger.error("卡已被领取: " + cardIdStr); | |||
| return new ResultData(ErrorCode.CARD_TRANSFERED); | |||
| } | |||
| @@ -124,7 +122,7 @@ public class WxCardPayController extends BaseController { | |||
| WxOrder order = null; | |||
| try { | |||
| order = wxOrderService.saveCardPayOrder(merchant, user, totalFeeStr, payment); | |||
| order = wxOrderService.saveCardPayOrder(merchant, getUserId(), totalFeeStr, payment); | |||
| } catch (MallinkException e) { | |||
| logger.error("saveCardPayOrder 1" + e.getMessage()); | |||
| return new ResultData(e.getErrorCode(), e.getMessage()); | |||
| @@ -136,14 +134,14 @@ public class WxCardPayController extends BaseController { | |||
| WxCardSpend record = new WxCardSpend(); | |||
| record.setTenantId(merchant.getTenantId()); | |||
| record.setCardId(cardId); | |||
| record.setOwnerId(user.getId()); | |||
| record.setOwnerId(getUserId()); | |||
| record.setMerchantId(merchantId); | |||
| record.setOrderId(order.getId()); | |||
| record.setIp(ipStr); | |||
| record.setDeductionAmount(payment); | |||
| try { | |||
| return wxCardSpendService.createCardSpend(record, order, couponMerchant, user); | |||
| return wxCardSpendService.createCardSpend(record, order, couponMerchant); | |||
| } catch (MallinkException e) { | |||
| logger.error("card spend error, req 2: " + record.toString() + ", e:" + e.getMessage()); | |||
| return new ResultData(e.getErrorCode(), e.getMessage()); | |||
| @@ -162,9 +160,8 @@ public class WxCardPayController extends BaseController { | |||
| String ipStr = getIpAddr(); | |||
| logger.info("saveCardPayOrder: " + ipStr + " :" + wxCardSpend.toString()); | |||
| if (wxCardSpend == null) wxCardSpend = new WxCardSpendVo(); | |||
| WxCUser user = getUser(); | |||
| wxCardSpend.setTenantId(user.getTenantId()); | |||
| wxCardSpend.setOwnerId(user.getId()); | |||
| wxCardSpend.setTenantId(getTenantId()); | |||
| wxCardSpend.setOwnerId(getUserId()); | |||
| final PageInfo<WxCardSpendVo> page = wxCardSpendService.listAsPage(wxCardSpend, pageNum, pageSize); | |||
| return new ResultData(page); | |||
| } | |||
| @@ -175,9 +172,8 @@ public class WxCardPayController extends BaseController { | |||
| String ipStr = getIpAddr(); | |||
| logger.info("sumCardSpendList: " + ipStr + " :" + wxCardSpend.toString()); | |||
| if (wxCardSpend == null) wxCardSpend = new WxCardSpendVo(); | |||
| WxCUser user = getUser(); | |||
| wxCardSpend.setTenantId(user.getTenantId()); | |||
| wxCardSpend.setOwnerId(user.getId()); | |||
| wxCardSpend.setTenantId(getTenantId()); | |||
| wxCardSpend.setOwnerId(getUserId()); | |||
| final List<Map<String, Object>> mapList = wxCardSpendService.sumCardSpendForOwner(wxCardSpend); | |||
| return new ResultData(mapList); | |||
| } | |||
| @@ -49,7 +49,7 @@ public class WxCouponOrderController extends BaseController { | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | |||
| } | |||
| if (wxCouponOrder == null) wxCouponOrder = new WxCouponOrderCVo(); | |||
| wxCouponOrder.setcUserId(getUser().getId()); | |||
| wxCouponOrder.setcUserId(getUserId()); | |||
| if (wxCouponOrder.getCouponOrderStatus() == null) | |||
| wxCouponOrder.setSortColumns(WxCouponOrder.Field.CreateDate_DESC); | |||
| else if (wxCouponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()) | |||
| @@ -139,9 +139,8 @@ public class WxCouponOrderController extends BaseController { | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | |||
| } | |||
| if (cardCVo == null) cardCVo = new WxCardCVo(); | |||
| WxCUser user = getUser(); | |||
| cardCVo.setTenantId(user.getTenantId()); | |||
| cardCVo.setOwnerId(user.getId()); | |||
| cardCVo.setTenantId(getTenantId()); | |||
| cardCVo.setOwnerId(getUserId()); | |||
| if(StringUtils.isNotBlank(cardCVo.getStatusStr())) { | |||
| String [] statusAttr = cardCVo.getStatusStr().split(","); | |||
| List<Integer> tmpList = new ArrayList<Integer>(); | |||
| @@ -222,6 +221,10 @@ public class WxCouponOrderController extends BaseController { | |||
| if (cUserId == null) { | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "cUserId不能为空"); | |||
| } | |||
| // update_date判断 | |||
| if(wxCouponOrder.getUpdateDate() == null) { | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "updateDate不能为空"); | |||
| } | |||
| //当前领取人 | |||
| wxCouponOrder.setOwnerId(getUserId()); | |||
| return wxCouponOrderService.queryCardStatus(wxCouponOrder); | |||
| @@ -84,8 +84,7 @@ public class WxMallController extends BaseController { | |||
| @ApiOperation("商场信息") | |||
| @GetMapping("/mallInfo") | |||
| public ResultData getMallInfo() { | |||
| WxCUser user = getUser(); | |||
| WxMall mall = wxMallService.getByTenantId(user.getTenantId()); | |||
| WxMall mall = wxMallService.getByTenantId(getTenantId()); | |||
| if (mall == null) { | |||
| return new ResultData(ErrorCode.MALL_INFO_NOT_FOUND); | |||
| } | |||
| @@ -95,11 +94,10 @@ public class WxMallController extends BaseController { | |||
| @ApiOperation("成长值相关信息") | |||
| @GetMapping("/scoreLevelInfo") | |||
| public ResultData getScoreLevelInfo() { | |||
| WxCUser user = getUser(); | |||
| Map map = new HashMap(); | |||
| WxScoreRules scoreRules = wxScoreRulesService.getScoreRules(user.getTenantId()); | |||
| WxScoreRules scoreRules = wxScoreRulesService.getScoreRules(getTenantId()); | |||
| map.put("score", scoreRules); | |||
| List<WxLevelConfig> levelConfigList = wxLevelConfigService.getByTenantId(user.getTenantId()); | |||
| List<WxLevelConfig> levelConfigList = wxLevelConfigService.getByTenantId(getTenantId()); | |||
| boolean disscountEnable = false; | |||
| for(WxLevelConfig levelConfig: levelConfigList) { | |||
| if (levelConfig.getDiscountEnable() > 0 ) { | |||
| @@ -69,12 +69,10 @@ public class WxOrderController extends BaseController { | |||
| couponId = wxCouponChannel.getCouponId(); | |||
| } | |||
| WxCUser user = getUser(); | |||
| WxOrder order = null; | |||
| try { | |||
| order = wxOrderService.saveFreeCouponOrder(user.getId(), couponChannelId, couponId); | |||
| order = wxOrderService.saveFreeCouponOrder(getUserId(), couponChannelId, couponId); | |||
| return new ResultData(order); | |||
| } catch (MallinkException e) { | |||
| logger.error(e.getMessage()); | |||
| @@ -188,7 +186,6 @@ public class WxOrderController extends BaseController { | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "orderId不能为空"); | |||
| } | |||
| Long orderId = 0L; | |||
| WxCUser user = getUser(); | |||
| try { | |||
| orderId = Long.valueOf(orderIdStr); | |||
| } catch (NumberFormatException e) { | |||
| @@ -218,7 +215,6 @@ public class WxOrderController extends BaseController { | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "退款订单ID不能为空"); | |||
| } | |||
| Long orderId = 0L; | |||
| WxCUser user = getUser(); | |||
| try { | |||
| orderId = Long.valueOf(orderIdStr); | |||
| } catch (NumberFormatException e) { | |||
| @@ -246,7 +242,7 @@ public class WxOrderController extends BaseController { | |||
| public ResultData list(@ModelAttribute WxOrder wxOrder, Integer pageNum, Integer pageSize) { | |||
| // c端用户应该只能看到自己的订单 | |||
| if (wxOrder == null) wxOrder = new WxOrder(); | |||
| wxOrder.setcUserId(getUser().getId()); | |||
| wxOrder.setcUserId(getUserId()); | |||
| wxOrder.setSortColumns(WxOrder.Field.UpdateDate_DESC); | |||
| final PageInfo<WxOrderCouponVo> page = wxOrderService.listCUserVoAsPage(wxOrder, pageNum, pageSize); | |||
| @@ -283,7 +279,7 @@ public class WxOrderController extends BaseController { | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "订单ID转换异常"); | |||
| } | |||
| wxOrder.setId(id); | |||
| wxOrder.setcUserId(getUser().getId()); | |||
| wxOrder.setcUserId(getUserId()); | |||
| WxOrderCouponVo wxOrderCVo = wxOrderService.detailCUserVo(wxOrder); | |||
| if (wxOrderCVo == null) | |||
| return new ResultData(ErrorCode.ORDER_IS_NOT_FIND); | |||
| @@ -339,8 +335,7 @@ public class WxOrderController extends BaseController { | |||
| public ResultData pressOrderList(@ModelAttribute WxOrder wxOrder, Integer pageNum, Integer pageSize) { | |||
| // c端用户应该只能看到自己的订单 | |||
| if (wxOrder == null) wxOrder = new WxOrder(); | |||
| WxCUser user = getUser(); | |||
| wxOrder.setcUserId(user.getId()); | |||
| wxOrder.setcUserId(getUserId()); | |||
| wxOrder.setSortColumns(WxOrder.Field.CreateDate_DESC); | |||
| final PageInfo<WxOrderCouponPressVo> page = wxOrderService.listPressVoAsPage(wxOrder, pageNum, pageSize); | |||
| return new ResultData(page); | |||
| @@ -27,9 +27,8 @@ public class WxParkController extends BaseController { | |||
| @ApiOperation("查找用户车场信息") | |||
| @GetMapping("/info") | |||
| public ResultData findById() { | |||
| WxCUser user = getUser(); | |||
| WxPark parkQ = new WxPark(); | |||
| parkQ.setTenantId(user.getTenantId()); | |||
| parkQ.setTenantId(getTenantId()); | |||
| WxPark park = wxParkService.getByObj(parkQ); | |||
| if (park == null) { | |||
| logger.error("车场未取到"); | |||
| @@ -62,7 +62,6 @@ public class WxPressOrderController extends BaseController { | |||
| logger.error("orderId convert error, " + orderIdStr + ", e:" + e.getMessage()); | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_CAST_ERROR.getCode(), "orderId: " + orderIdStr + ", e:" + e.getMessage()); | |||
| } | |||
| WxCUser user = getUser(); | |||
| WxOrder order = wxOrderService.getById(orderId); | |||
| if(order == null) { | |||
| logger.error("订单不存在:" + orderId); | |||
| @@ -100,7 +99,7 @@ public class WxPressOrderController extends BaseController { | |||
| } | |||
| try { | |||
| wxOrderPressService.pressCouponJoin(order, coupon, user); | |||
| wxOrderPressService.pressCouponJoin(order, coupon, getUserId()); | |||
| } catch (MallinkException e) { | |||
| logger.error(e.getMessage()); | |||
| return new ResultData(e.getErrorCode(), e.getMessage()); | |||
| @@ -124,17 +123,16 @@ public class WxPressOrderController extends BaseController { | |||
| logger.error("orderId convert error, " + orderId + ", e:" + e.getMessage()); | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_CAST_ERROR.getCode(), "orderId: " + orderId + ", e:" + e.getMessage()); | |||
| } | |||
| WxCUser user = getUser(); | |||
| WxOrder order = wxOrderService.getById(orderIdL); | |||
| if(order == null) { | |||
| logger.error("订单不存在:" + orderId); | |||
| return new ResultData(ErrorCode.ORDER_IS_NOT_FIND); | |||
| } | |||
| if(order.getcUserId().equals(user.getId())) { | |||
| if(order.getcUserId().equals(getUserId())) { | |||
| ret.put("status", EnumOrderPressStatus.FIRST.getCode()); | |||
| return new ResultData(ret); | |||
| } | |||
| int status = wxOrderPressService.pressCouponStatus(order, user); | |||
| int status = wxOrderPressService.pressCouponStatus(order, getUserId()); | |||
| ret.put("status", status); | |||
| return new ResultData(ret); | |||
| } | |||
| @@ -28,10 +28,9 @@ public class WxScoreHistoryController extends BaseController { | |||
| @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), | |||
| @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) | |||
| public ResultData list(Integer pageNum, Integer pageSize) { | |||
| WxCUser user = getUser(); | |||
| WxScoreHistory wxScoreHistory = new WxScoreHistory(); | |||
| wxScoreHistory.setTenantId(user.getTenantId()); | |||
| wxScoreHistory.setCUserId(user.getId()); | |||
| wxScoreHistory.setTenantId(getTenantId()); | |||
| wxScoreHistory.setCUserId(getUserId()); | |||
| wxScoreHistory.setSortColumns(WxScoreHistory.Field.CreateDate_DESC); | |||
| final PageInfo<WxScoreHistory> page = wxScoreHistoryService.listAsPage(wxScoreHistory, pageNum, pageSize); | |||
| return new ResultData(page); | |||
| @@ -17,14 +17,13 @@ import com.iformall.domain.vo.WxLevelMerchantCVo; | |||
| import com.iformall.enums.EnumAssignTagsTrigger; | |||
| import com.iformall.enums.EnumLevelConfigDiscountStatus; | |||
| import com.iformall.enums.EnumScoreType; | |||
| import com.iformall.interceptor.AuthorizationInterceptor; | |||
| import com.iformall.service.*; | |||
| import com.iformall.utils.Constant; | |||
| import com.iformall.utils.IPUtil; | |||
| import io.swagger.annotations.Api; | |||
| import io.swagger.annotations.ApiOperation; | |||
| import me.chanjar.weixin.common.error.WxErrorException; | |||
| import org.apache.commons.lang3.StringUtils; | |||
| import org.apache.http.util.EntityUtils; | |||
| import org.slf4j.Logger; | |||
| import org.slf4j.LoggerFactory; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| @@ -116,7 +115,7 @@ public class WxUserGrantController extends BaseController { | |||
| } else { | |||
| // 检查token是否已过期, 1小时就重新获取 | |||
| Date curDate = new Date(); | |||
| if(curDate.getTime() > wxAppinfo.getLastTokenTime().getTime() + 3600000) { | |||
| if(curDate.getTime() > wxAppinfo.getLastTokenTime().getTime() + Constant.C_EXPIRE) { | |||
| updateAppAccessToken(wxAppinfo, wxMaService); | |||
| wxMaService = getWeappServiceByAppInfo(wxAppinfo); | |||
| } | |||
| @@ -152,8 +151,8 @@ public class WxUserGrantController extends BaseController { | |||
| token = user1.createToken(new Date()); | |||
| resultMap.put("token", token); | |||
| request.setAttribute(AuthorizationInterceptor.LOGIN_USER_KEY, user1.getId()); | |||
| request.setAttribute(AuthorizationInterceptor.TENANT_ID, user1.getTenantId()); | |||
| request.setAttribute(Constant.LOGIN_USER_KEY, user1.getId()); | |||
| request.setAttribute(Constant.TENANT_ID, user1.getTenantId()); | |||
| user1.setRegisterIp(ipaddress); | |||
| user1.setSessionKey(session_key); | |||
| @@ -202,8 +201,8 @@ public class WxUserGrantController extends BaseController { | |||
| wxCUserService.saveOrUpdate(user); | |||
| resultMap.put("token", token); | |||
| request.setAttribute(AuthorizationInterceptor.LOGIN_USER_KEY, user.getId()); | |||
| request.setAttribute(AuthorizationInterceptor.TENANT_ID, user.getTenantId()); | |||
| request.setAttribute(Constant.LOGIN_USER_KEY, user.getId()); | |||
| request.setAttribute(Constant.TENANT_ID, user.getTenantId()); | |||
| // 成长值 | |||
| try { | |||
| wxCUserService.scoreCalculate(user, true); | |||
| @@ -370,14 +369,13 @@ public class WxUserGrantController extends BaseController { | |||
| public ResultData checkUserStatus() { | |||
| Map resultMap = new HashMap(); | |||
| WxCUser user = getUser(); | |||
| if (!StringUtils.isBlank(user.getNickName())) { | |||
| if (StringUtils.isNotBlank(user.getNickName())) { | |||
| resultMap.put("nickName", user.getNickName()); | |||
| } | |||
| if (StringUtils.isBlank(user.getNickName())) { | |||
| } else { | |||
| logger.warn("用户昵称未授权,跳转到用户授权页!"); | |||
| return new ResultData(ErrorCode.NICK_NAME_NOT_FOUND.getCode(), "用户昵称未授权,请跳转到用户昵称授权页!", resultMap); | |||
| } | |||
| return new ResultData(Result.SUCCESS, "是老用户,已完成所有授权", resultMap); | |||
| return new ResultData(Result.SUCCESS, "是老用户,已完成用户昵称授权", resultMap); | |||
| } | |||
| /** | |||
| @@ -389,18 +387,19 @@ public class WxUserGrantController extends BaseController { | |||
| public ResultData checkPhoneStatus() { | |||
| Map resultMap = new HashMap(); | |||
| WxCUser user = getUser(); | |||
| if (!StringUtils.isBlank(user.getPhone())) { | |||
| if (StringUtils.isNotBlank(user.getPhone())) { | |||
| resultMap.put("phone", user.getPhone()); | |||
| } else { | |||
| if (StringUtils.isBlank(user.getPhone())) { | |||
| logger.warn("用户手机号未授权,跳转到授权手机号页!"); | |||
| return new ResultData(ErrorCode.PHONE_NOT_FOUND.getCode(), "用户手机号未授权,请跳转到授权手机号页!", resultMap); | |||
| } | |||
| if (user.getPhone().contains("*")) { | |||
| logger.warn("用户手机号已加密,跳转到手工输入手机号页!"); | |||
| return new ResultData(ErrorCode.PHONE_IS_ENCRYPTED.getCode(), "用户手机号已加密,手工输入手机号页!", resultMap); | |||
| } | |||
| } | |||
| if (StringUtils.isBlank(user.getPhone())) { | |||
| logger.warn("用户手机号未授权,跳转到授权手机号页!"); | |||
| return new ResultData(ErrorCode.PHONE_NOT_FOUND.getCode(), "用户手机号未授权,请跳转到授权手机号页!", resultMap); | |||
| } | |||
| if (user.getPhone().contains("*")) { | |||
| logger.warn("用户手机号已加密,跳转到手工输入手机号页!"); | |||
| return new ResultData(ErrorCode.PHONE_IS_ENCRYPTED.getCode(), "用户手机号已加密,手工输入手机号页!", resultMap); | |||
| } | |||
| return new ResultData(Result.SUCCESS, "是老用户,已完成所有授权", resultMap); | |||
| return new ResultData(Result.SUCCESS, "是老用户,已完成手机号授权", resultMap); | |||
| } | |||
| @ApiOperation("获取当前用户信息") | |||
| @@ -457,10 +456,9 @@ public class WxUserGrantController extends BaseController { | |||
| @ApiOperation("获取当前用户车牌列表") | |||
| @GetMapping("/carList") | |||
| public ResultData getCarList() { | |||
| WxCUser user = getUser(); | |||
| WxCUserCar userCar = new WxCUserCar(); | |||
| userCar.setTenantId(user.getTenantId()); | |||
| userCar.setCUserId(user.getId()); | |||
| userCar.setTenantId(getTenantId()); | |||
| userCar.setCUserId(getUserId()); | |||
| List<WxCUserCar> list = wxCUserCarService.getList(userCar); | |||
| return new ResultData(Result.SUCCESS,"获取查询成功", list); | |||
| } | |||
| @@ -541,7 +539,7 @@ public class WxUserGrantController extends BaseController { | |||
| public ResultData updateUserInfo(@RequestBody WxCUserBasicInfo wxCUserBasicInfo) { | |||
| if (wxCUserBasicInfo == null) | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | |||
| if (wxCUserBasicInfoService.getById(getUser().getId()) == null) | |||
| if (wxCUserBasicInfoService.getById(getUserId()) == null) | |||
| return new ResultData(ErrorCode.USER_IS_NOT_MEMBER); | |||
| if (wxCUserBasicInfo.getName() != null || | |||
| @@ -553,7 +551,7 @@ public class WxUserGrantController extends BaseController { | |||
| record.setBirthdate(wxCUserBasicInfo.getBirthdate()); | |||
| record.setSex(wxCUserBasicInfo.getSex() ); | |||
| record.setAddress(wxCUserBasicInfo.getAddress()); | |||
| record.setId(getUser().getId()); | |||
| record.setId(getUserId()); | |||
| record.setUpdateDate(new Date()); | |||
| wxCUserBasicInfoService.update(record); | |||
| wxScoreRulesService.addScore(EnumScoreType.COMPLETE_INFO, record); | |||
| @@ -6,6 +6,7 @@ import com.iformall.common.ErrorCode; | |||
| import com.iformall.domain.po.WxCUser; | |||
| import com.iformall.exception.MallinkException; | |||
| import com.iformall.service.WxCUserService; | |||
| import com.iformall.utils.Constant; | |||
| import org.apache.commons.lang3.StringUtils; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Component; | |||
| @@ -26,9 +27,6 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { | |||
| @Autowired | |||
| private WxCUserService wxCUserService; | |||
| public static final String LOGIN_USER_KEY = "LOGIN_USER_KEY"; | |||
| public static final String TENANT_ID = "TENANT_ID"; | |||
| @Override | |||
| public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { | |||
| AuthIgnore annotation; | |||
| @@ -62,8 +60,8 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { | |||
| } | |||
| //设置userId到request里,后续根据userId,获取用户信息 | |||
| request.setAttribute(LOGIN_USER_KEY, wxCUser.getId()); | |||
| request.setAttribute(TENANT_ID, wxCUser.getTenantId()); | |||
| request.setAttribute(Constant.LOGIN_USER_KEY, wxCUser.getId()); | |||
| request.setAttribute(Constant.TENANT_ID, wxCUser.getTenantId()); | |||
| return true; | |||
| } | |||
| @@ -2,8 +2,8 @@ package com.iformall.resolver; | |||
| import com.iformall.annotation.LoginUser; | |||
| import com.iformall.domain.po.WxCUser; | |||
| import com.iformall.interceptor.AuthorizationInterceptor; | |||
| import com.iformall.service.WxCUserService; | |||
| import com.iformall.utils.Constant; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.core.MethodParameter; | |||
| import org.springframework.stereotype.Component; | |||
| @@ -33,7 +33,7 @@ public class LoginUserHandlerMethodArgumentResolver implements HandlerMethodArgu | |||
| public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer container, | |||
| NativeWebRequest request, WebDataBinderFactory factory) throws Exception { | |||
| //获取用户ID | |||
| Object object = request.getAttribute(AuthorizationInterceptor.LOGIN_USER_KEY, RequestAttributes.SCOPE_REQUEST); | |||
| Object object = request.getAttribute(Constant.LOGIN_USER_KEY, RequestAttributes.SCOPE_REQUEST); | |||
| if(object == null){ | |||
| return null; | |||
| } | |||
| @@ -1,7 +1,7 @@ | |||
| package com.iformall.tenant; | |||
| import com.iformall.interceptor.AuthorizationInterceptor; | |||
| import com.iformall.plugin.TenantInfo; | |||
| import com.iformall.utils.Constant; | |||
| import org.apache.ibatis.mapping.MappedStatement; | |||
| import org.slf4j.Logger; | |||
| import org.slf4j.LoggerFactory; | |||
| @@ -18,7 +18,7 @@ public class TenantInfoImpl implements TenantInfo { | |||
| String tenantId = null; | |||
| try { | |||
| HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); | |||
| tenantId = (String) request.getAttribute(AuthorizationInterceptor.TENANT_ID); | |||
| tenantId = (String) request.getAttribute(Constant.TENANT_ID); | |||
| return tenantId; | |||
| } catch (Exception e) { | |||
| logger.error(e.getMessage()); | |||
| @@ -29,8 +29,8 @@ public class MqBaseConsumer { | |||
| private SendEmailServiceImpl sendEmailService; | |||
| @Autowired | |||
| private SendSmartAppMsgServiceImpl sendSmartAppMsgService; | |||
| @Autowired | |||
| private MqBaseProducer mqBaseProducer; | |||
| // @Autowired | |||
| // private MqBaseProducer mqBaseProducer; | |||
| public void doMessage(String message) { | |||
| log.info("received message: {}", message); | |||
| @@ -43,13 +43,14 @@ public class MsgSendingSchedule { | |||
| logger.info("sendmsg定时任务启动"); | |||
| String systemTime = DateUtils.getSystemTime("yyyy-MM-dd HH:00:00"); | |||
| WxMsg wxMsg = new WxMsg(); | |||
| wxMsg.setMsgType(EnumMsgRecordType.SMS_CALLBACK.getCode()); | |||
| wxMsg.setIsright(0); | |||
| wxMsg.setSendtime(systemTime); | |||
| List<WxMsg> list = wxMsgMapper.findList(wxMsg); | |||
| logger.info("将要发送的短信列表:" + JSONArray.toJSONString(list)); | |||
| for (WxMsg msg : list) { | |||
| //sendmsg(msg); | |||
| wxMsg.setMsgType(EnumMsgRecordType.SMS_CALLBACK.getCode()); | |||
| wxMsg.setReceiver(msg.getPhones()); | |||
| mqBaseProducer.sendMessage(msg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(),null); | |||
| } | |||
| logger.info("sendmsg定时任务结束"); | |||
| @@ -9,11 +9,17 @@ import java.io.Serializable; | |||
| */ | |||
| public class BaseMsg implements Serializable { | |||
| private static final long serialVersionUID = 923764283764823L; | |||
| //租户id | |||
| private String tenantId; | |||
| //唯一标识 | |||
| @Transient | |||
| private String uuid; | |||
| //接收人,手机号邮件地址等 | |||
| @Transient | |||
| private String receiver; | |||
| //消息类型 1短信 2回调短信 3邮件 4微信小程序模板 5微信公众号模板 6系统通知 | |||
| @Transient | |||
| private Integer msgType; | |||
| @@ -26,10 +32,27 @@ public class BaseMsg implements Serializable { | |||
| @Transient | |||
| private String statusMessage; | |||
| //延迟消息1s,5s,10s,30s,1m,2m,3m,4m,5m,6m,7m,8m,9m,10m,20m,30m,1h,2h | |||
| //rocketMQ延迟消息1s,5s,10s,30s,1m,2m,3m,4m,5m,6m,7m,8m,9m,10m,20m,30m,1h,2h | |||
| @Transient | |||
| private Integer delayTimeLevel = 0; | |||
| public String getTenantId() { | |||
| return tenantId; | |||
| } | |||
| public void setTenantId(String tenantId) { | |||
| this.tenantId = tenantId; | |||
| } | |||
| public String getReceiver() { | |||
| return receiver; | |||
| } | |||
| public void setReceiver(String receiver) { | |||
| this.receiver = receiver; | |||
| } | |||
| public Integer getDelayTimeLevel() { | |||
| return delayTimeLevel; | |||
| } | |||
| @@ -10,8 +10,6 @@ public class MailMsg extends BaseMsg { | |||
| private static final long serialVersionUID = 923764283760321L; | |||
| // 模板id | |||
| private Integer modelId; | |||
| private String tenantId; | |||
| private String[] to; | |||
| private String from; | |||
| private String msg; | |||
| @@ -29,14 +27,6 @@ public class MailMsg extends BaseMsg { | |||
| //动态替换内容 | |||
| private Map<String,String> dynamicContentMap; | |||
| public String getTenantId() { | |||
| return tenantId; | |||
| } | |||
| public void setTenantId(String tenantId) { | |||
| this.tenantId = tenantId; | |||
| } | |||
| public Map<String, String> getDynamicContentMap() { | |||
| return dynamicContentMap; | |||
| } | |||
| @@ -13,7 +13,6 @@ public class SmartAppMsg extends BaseMsg { | |||
| //小程序的appId | |||
| private String appId; | |||
| private String tenantId; | |||
| private String to; | |||
| private String from; | |||
| private Integer templateType; | |||
| @@ -45,14 +44,6 @@ public class SmartAppMsg extends BaseMsg { | |||
| this.gotopage = gotopage; | |||
| } | |||
| public String getTenantId() { | |||
| return tenantId; | |||
| } | |||
| public void setTenantId(String tenantId) { | |||
| this.tenantId = tenantId; | |||
| } | |||
| public String getTo() { | |||
| return to; | |||
| } | |||
| @@ -1,7 +1,7 @@ | |||
| package com.iformall.domain.po; | |||
| import com.fasterxml.jackson.annotation.JsonIgnoreProperties; | |||
| import com.iformall.utils.BaseConstant; | |||
| import com.iformall.utils.Constant; | |||
| import javax.persistence.*; | |||
| import java.util.*; | |||
| @@ -469,7 +469,7 @@ public class WxCUser implements Serializable { | |||
| //生成一个token | |||
| this.token = UUID.randomUUID().toString(); | |||
| //过期时间 | |||
| this.expireTime = new Date(currentDate.getTime() + BaseConstant.EXPIRE * 1000); | |||
| this.expireTime = new Date(currentDate.getTime() + Constant.EXPIRE * 1000); | |||
| } | |||
| return this.token; | |||
| } | |||
| @@ -1,6 +1,6 @@ | |||
| package com.iformall.domain.po; | |||
| import com.iformall.utils.BaseConstant; | |||
| import com.iformall.utils.Constant; | |||
| import javax.persistence.Id; | |||
| import javax.persistence.Table; | |||
| @@ -240,7 +240,7 @@ public class WxMerchantBUser implements Serializable { | |||
| //生成一个token | |||
| String token = UUID.randomUUID().toString(); | |||
| //过期时间 | |||
| Date expireTime = new Date(currentDate.getTime() + BaseConstant.EXPIRE * 1000); | |||
| Date expireTime = new Date(currentDate.getTime() + Constant.EXPIRE * 1000); | |||
| setToken(token); | |||
| setExpireTime(expireTime); | |||
| } | |||
| @@ -27,8 +27,6 @@ public class WxMsgRecord extends BaseMsg { | |||
| private Long senderUserId; | |||
| //发送人姓名 | |||
| private String senderUserName; | |||
| //接收人,手机号邮件地址等 | |||
| private String receiver; | |||
| //接收人用户id | |||
| private Long receiverUserId; | |||
| //接收人姓名 | |||
| @@ -43,9 +41,31 @@ public class WxMsgRecord extends BaseMsg { | |||
| private Date createtime; | |||
| private Date updatetime; | |||
| private Integer msgStatus; | |||
| private String statusMessage; | |||
| //动态替换内容 | |||
| private Map<String,String> dynamicContentMap; | |||
| @Override | |||
| public Integer getMsgStatus() { | |||
| return msgStatus; | |||
| } | |||
| @Override | |||
| public void setMsgStatus(Integer msgStatus) { | |||
| this.msgStatus = msgStatus; | |||
| } | |||
| @Override | |||
| public String getStatusMessage() { | |||
| return statusMessage; | |||
| } | |||
| @Override | |||
| public void setStatusMessage(String statusMessage) { | |||
| this.statusMessage = statusMessage; | |||
| } | |||
| public String getMsgJson() { | |||
| return msgJson; | |||
| @@ -105,14 +125,6 @@ public class WxMsgRecord extends BaseMsg { | |||
| this.senderUserName = senderUserName; | |||
| } | |||
| public String getReceiver() { | |||
| return receiver; | |||
| } | |||
| public void setReceiver(String receiver) { | |||
| this.receiver = receiver; | |||
| } | |||
| public Long getReceiverUserId() { | |||
| return receiverUserId; | |||
| } | |||
| @@ -22,10 +22,9 @@ public interface WxCardSpendService { | |||
| * | |||
| * @param record | |||
| * @param order | |||
| * @param user | |||
| * @return | |||
| */ | |||
| ResultData createCardSpend(WxCardSpend record, WxOrder order, WxCouponMerchant couponMerchant, WxCUser user); | |||
| ResultData createCardSpend(WxCardSpend record, WxOrder order, WxCouponMerchant couponMerchant); | |||
| /** | |||
| * 根据实体查询分页列表 | |||
| @@ -45,16 +45,16 @@ public interface WxOrderPressService { | |||
| * 加入砍价 | |||
| * @param order | |||
| * @param coupon | |||
| * @param user | |||
| * @param cUserId | |||
| */ | |||
| void pressCouponJoin(WxOrder order, WxCoupon coupon, WxCUser user); | |||
| void pressCouponJoin(WxOrder order, WxCoupon coupon, Long cUserId); | |||
| /** | |||
| * 检查用户砍价状态 | |||
| * @param order | |||
| * @param user | |||
| * @param cUserId | |||
| */ | |||
| int pressCouponStatus(WxOrder order, WxCUser user); | |||
| int pressCouponStatus(WxOrder order, Long cUserId); | |||
| @@ -53,12 +53,12 @@ public interface WxOrderService { | |||
| /** | |||
| * 商户码-储值卡支付 | |||
| * @param merchant | |||
| * @param cUser | |||
| * @param cUserId | |||
| * @param totalFeeStr | |||
| * @param payment | |||
| * @return 订单id | |||
| */ | |||
| WxOrder saveCardPayOrder(WxMerchant merchant, WxCUser cUser, String totalFeeStr, Integer payment); | |||
| WxOrder saveCardPayOrder(WxMerchant merchant, Long cUserId, String totalFeeStr, Integer payment); | |||
| /** | |||
| * 免费券订单接口 | |||
| @@ -5,6 +5,7 @@ import com.iformall.common.ErrorCode; | |||
| import com.iformall.common.IdWorker; | |||
| import com.iformall.domain.po.*; | |||
| import com.iformall.enums.EnumMsgSendStatus; | |||
| import com.iformall.enums.EnumMsgStatus; | |||
| import com.iformall.enums.EnumVerifyCode; | |||
| import com.iformall.exception.MallinkException; | |||
| import com.iformall.mapper.*; | |||
| @@ -13,6 +14,8 @@ import com.iformall.service.WxMsgService; | |||
| import com.iformall.service.WxMsgValidationcodeService; | |||
| import com.iformall.utils.DateUtils; | |||
| import com.iformall.utils.WiwideUtil; | |||
| import org.slf4j.Logger; | |||
| import org.slf4j.LoggerFactory; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Service; | |||
| import java.util.List; | |||
| @@ -23,6 +26,7 @@ import java.util.List; | |||
| */ | |||
| @Service | |||
| public class SendCallBackSmsServiceImpl implements MsgSendService { | |||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | |||
| @Autowired | |||
| private WxMsgConfigMapper wxMsgConfigMapper; | |||
| @Autowired | |||
| @@ -39,11 +43,12 @@ public class SendCallBackSmsServiceImpl implements MsgSendService { | |||
| private WxMsgService wxMsgService; | |||
| @Override | |||
| public void send(BaseMsg baseMsg) { | |||
| public void send(BaseMsg baseMsg) throws Exception{ | |||
| WxMsg record = (WxMsg)baseMsg; | |||
| WxMsgConfig wxMsgConfig = record.getWxMsgConfig(); | |||
| if(wxMsgConfig == null){ | |||
| wxMsgConfig = new WxMsgConfig(); | |||
| wxMsgConfig.setTenantId(record.getTenantId()); | |||
| List<WxMsgConfig> wxMsgConfigs = wxMsgConfigMapper.findList(wxMsgConfig); | |||
| if (wxMsgConfigs.size() == 0) { | |||
| @@ -85,33 +90,28 @@ public class SendCallBackSmsServiceImpl implements MsgSendService { | |||
| record.setSendstatus(EnumMsgSendStatus.MSG_SEND_FAIL.getCode()); | |||
| } | |||
| final IdWorker idWorker = IdWorker.get(); | |||
| long id = idWorker.nextId(); | |||
| WxMsg wxMsg = new WxMsg(); | |||
| wxMsg.setTenantId(record.getTenantId()); | |||
| wxMsg.setModelId(record.getModelId()); | |||
| wxMsg.setMsg(record.getMsg()); | |||
| wxMsg.setExpectSendNumber(record.getExpectSendNumber()); | |||
| wxMsg.setPhones(record.getPhones()); | |||
| wxMsg.setSignature(record.getSignature()); | |||
| wxMsg.setIsright(record.getIsright()); | |||
| wxMsg.setName(record.getName()); | |||
| wxMsg.setSendstatus(record.getSendstatus()); | |||
| wxMsg.setLabel(record.getLabel()); | |||
| wxMsg.setStatus(record.getStatus()); | |||
| wxMsg.setWay(record.getWay()); | |||
| wxMsg.setId(id); | |||
| String systemTime = DateUtils.getSystemTime("yyyy-MM-dd HH:mm:ss"); | |||
| wxMsg.setSendtime(systemTime); | |||
| wxMsg.setCreatetime(DateUtils.stringToDate(systemTime, "yyyy-MM-dd HH:mm:ss")); | |||
| //精准投放 | |||
| if (couponInject != null) { | |||
| wxMsg.setCouponInjectId(couponInject.getId()); | |||
| if(record.getId() == null){ | |||
| final IdWorker idWorker = IdWorker.get(); | |||
| long id = idWorker.nextId(); | |||
| record.setId(id); | |||
| String systemTime = DateUtils.getSystemTime("yyyy-MM-dd HH:mm:ss"); | |||
| record.setSendtime(systemTime); | |||
| record.setCreatetime(DateUtils.stringToDate(systemTime, "yyyy-MM-dd HH:mm:ss")); | |||
| //精准投放 | |||
| if (couponInject != null) { | |||
| record.setCouponInjectId(couponInject.getId()); | |||
| } | |||
| wxMsgMapper.insertSelective(record); | |||
| } | |||
| wxMsgMapper.insertSelective(wxMsg); | |||
| if (ret.equals(EnumMsgSendStatus.MSG_SEND_SUCCESS.getCode().toString())) { | |||
| wxMsgService.addMsgCallback(wxMsg, batchNo); | |||
| wxMsgService.addMsgCallback(record, batchNo); | |||
| //wx_msg改为已发送 | |||
| record.setStatus(EnumMsgStatus.MSG_STATUS_SENDED.getCode()); | |||
| wxMsgMapper.updateByPrimaryKeySelective(record); | |||
| } else { | |||
| logger.error("发送:{},运营商返回失败:{}",phone,result); | |||
| wxMsgMapper.updateByPrimaryKeySelective(record); | |||
| throw new MallinkException(1001,"运营商返回失败:"+result); | |||
| } | |||
| } | |||
| @@ -38,7 +38,7 @@ public class SendSmsServiceImpl implements MsgSendService { | |||
| private WxMsgValidationcodeService wxMsgValidationcodeService; | |||
| @Override | |||
| public void send(BaseMsg baseMsg) { | |||
| public void send(BaseMsg baseMsg) throws Exception{ | |||
| WxMsgRecord record = (WxMsgRecord)baseMsg; | |||
| WxMsgValidationcode wxMsgValidationcode = new WxMsgValidationcode(); | |||
| wxMsgValidationcode.setPhone(record.getReceiver()); | |||
| @@ -543,8 +543,8 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { | |||
| } | |||
| break; | |||
| case ASSIGN_TAGS_TRIGGER_CAR:{ | |||
| WxCUser param = (WxCUser) obj; | |||
| WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectByPrimaryKey(param.getId()); | |||
| Long param = (Long) obj; | |||
| WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectByPrimaryKey(param); | |||
| if (user != null) { | |||
| //车 | |||
| resList = assignTypeId11(user); | |||
| @@ -87,7 +87,7 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { | |||
| @Override | |||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | |||
| public ResultData createCardSpend(WxCardSpend record, WxOrder order, WxCouponMerchant couponMerchant, WxCUser user) { | |||
| public ResultData createCardSpend(WxCardSpend record, WxOrder order, WxCouponMerchant couponMerchant) { | |||
| Date curDate = new Date(); | |||
| final IdWorker idWorker = IdWorker.get(); | |||
| // 1. get card info | |||
| @@ -111,11 +111,11 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { | |||
| // 3. get pay account | |||
| WxPayAccount payAccount = null; | |||
| WxPayAccount payAccountQ = new WxPayAccount(); | |||
| payAccountQ.setTenantId(user.getTenantId()); | |||
| payAccountQ.setTenantId(record.getTenantId()); | |||
| try { | |||
| payAccount = payAccountMapper.selectOne(payAccountQ); | |||
| } catch (Exception e) { | |||
| logger.error("获取payAccount error: " + user.getTenantId()); | |||
| logger.error("获取payAccount error: " + record.getTenantId()); | |||
| return new ResultData(ErrorCode.DB_FAIL.getCode(), "获取payAccount失败"); | |||
| } | |||
| @@ -610,6 +610,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||
| smartAppMsg.setTemplateType(EnumTemplateType.VERIFY_FAIL.getCode()); | |||
| smartAppMsg.setGotopage("pages/index/index"); | |||
| smartAppMsg.setTo(user.getOpenId()); | |||
| smartAppMsg.setReceiver(user.getOpenId()); | |||
| smartAppMsg.setFrom(payOrder.getPrepayId()); | |||
| smartAppMsg.setTemplateDataList(Lists.newArrayList( | |||
| new WxMaTemplateData("keyword1", coupon.getTitle(), "#173177"), | |||
| @@ -2,13 +2,13 @@ package com.iformall.service.impl; | |||
| import com.iformall.common.IdWorker; | |||
| import com.iformall.domain.po.*; | |||
| import com.iformall.enums.EnumMsgRecordStatus; | |||
| import com.iformall.mapper.*; | |||
| import com.iformall.service.WxMsgRecordService; | |||
| import com.iformall.utils.JsonUtil; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Service; | |||
| import java.util.List; | |||
| import java.util.UUID; | |||
| /** | |||
| * @author luozukai | |||
| @@ -20,18 +20,33 @@ public class WxMsgRecordServiceImpl implements WxMsgRecordService { | |||
| private WxMsgRecordMapper wxMsgRecordMapper; | |||
| @Override | |||
| public void save(BaseMsg data) { | |||
| WxMsgRecord msgRecord = new WxMsgRecord(); | |||
| public void save(BaseMsg data){ | |||
| final IdWorker idWorker = IdWorker.get(); | |||
| WxMsgRecord msgRecord = new WxMsgRecord(); | |||
| msgRecord.setId(idWorker.nextId()); | |||
| msgRecord.setUuid(data.getUuid()); | |||
| msgRecord.setMsgJson(JsonUtil.obj2Json(data)); | |||
| msgRecord.setMsgStatus(EnumMsgRecordStatus.DEFAULT.getCode()); | |||
| if(data instanceof WxMsgRecord){ | |||
| msgRecord = (WxMsgRecord)data; | |||
| }else if(data instanceof WxMsg){ | |||
| WxMsg wxMsg = (WxMsg)data; | |||
| msgRecord.setTenantId(wxMsg.getTenantId()); | |||
| msgRecord.setMsgType(wxMsg.getMsgType()); | |||
| msgRecord.setReceiver(wxMsg.getPhones()); | |||
| }else if(data instanceof MailMsg){ | |||
| MailMsg wxMsg = (MailMsg)data; | |||
| msgRecord.setTenantId(wxMsg.getTenantId()); | |||
| msgRecord.setMsgType(wxMsg.getMsgType()); | |||
| msgRecord.setReceiver(JsonUtil.obj2Json(wxMsg.getTo())); | |||
| }else if(data instanceof SmartAppMsg){ | |||
| SmartAppMsg wxMsg = (SmartAppMsg)data; | |||
| msgRecord.setTenantId(wxMsg.getTenantId()); | |||
| msgRecord.setMsgType(wxMsg.getMsgType()); | |||
| msgRecord.setReceiver(wxMsg.getTo()); | |||
| } | |||
| msgRecord.setMsgType(data.getMsgType()); | |||
| msgRecord.setUuid(data.getUuid()); | |||
| msgRecord.setMsgJson(JsonUtil.obj2Json(data)); | |||
| msgRecord.setId(idWorker.nextId()); | |||
| wxMsgRecordMapper.save(msgRecord); | |||
| } | |||
| @@ -110,6 +110,7 @@ public class WxMsgServiceImpl implements WxMsgService { | |||
| wxMsg.setWxMsgConfig(wxMsgConfig); | |||
| wxMsg.setCouponInject(null); | |||
| wxMsg.setMsgType(EnumMsgRecordType.SMS_CALLBACK.getCode()); | |||
| wxMsg.setReceiver(wxMsg.getPhones()); | |||
| mqBaseProducer.sendMessage(wxMsg, EnumMsgMqTopic.DEFAULT.getCode(),EnumMsgMqTag.DEFAULT.getCode(),null); | |||
| } | |||
| return new ResultData(Result.SUCCESS, "短信已发送"); | |||
| @@ -139,6 +140,7 @@ public class WxMsgServiceImpl implements WxMsgService { | |||
| //sendmsg(wxMsg, wxMsgConfig, null); | |||
| wxMsg.setWxMsgConfig(wxMsgConfig); | |||
| wxMsg.setMsgType(EnumMsgRecordType.SMS_CALLBACK.getCode()); | |||
| wxMsg.setReceiver(wxMsg.getPhones()); | |||
| mqBaseProducer.sendMessage(wxMsg, EnumMsgMqTopic.DEFAULT.getCode(),EnumMsgMqTag.DEFAULT.getCode(),EnumMsgMqKey.DEFAULT.getCode()); | |||
| } | |||
| return new ResultData(Result.SUCCESS, "短信已发送"); | |||
| @@ -181,6 +183,7 @@ public class WxMsgServiceImpl implements WxMsgService { | |||
| wxMsg.setWxMsgConfig(wxMsgConfig); | |||
| wxMsg.setCouponInject(couponInject); | |||
| wxMsg.setMsgType(EnumMsgRecordType.SMS_CALLBACK.getCode()); | |||
| wxMsg.setReceiver(wxMsg.getPhones()); | |||
| mqBaseProducer.sendMessage(wxMsg, EnumMsgMqTopic.DEFAULT.getCode(),EnumMsgMqTag.DEFAULT.getCode(),EnumMsgMqKey.DEFAULT.getCode()); | |||
| } else { | |||
| List<String> phoneList = Arrays.asList(split).subList(i * 1000, (i + 1) * 1000); | |||
| @@ -191,6 +194,7 @@ public class WxMsgServiceImpl implements WxMsgService { | |||
| wxMsg.setWxMsgConfig(wxMsgConfig); | |||
| wxMsg.setCouponInject(couponInject); | |||
| wxMsg.setMsgType(EnumMsgRecordType.SMS_CALLBACK.getCode()); | |||
| wxMsg.setReceiver(wxMsg.getPhones()); | |||
| mqBaseProducer.sendMessage(wxMsg, EnumMsgMqTopic.DEFAULT.getCode(),EnumMsgMqTag.DEFAULT.getCode(),EnumMsgMqKey.DEFAULT.getCode()); | |||
| } | |||
| } | |||
| @@ -62,17 +62,17 @@ public class WxOrderPressServiceImpl implements WxOrderPressService { | |||
| @Override | |||
| public void pressCouponJoin(WxOrder order, WxCoupon coupon, WxCUser user) { | |||
| public void pressCouponJoin(WxOrder order, WxCoupon coupon, Long cUserId) { | |||
| final IdWorker idWorker = IdWorker.get(); | |||
| Date curDate = new Date(); | |||
| // 检查此人是否已参与砍价 | |||
| WxOrderPress orderPressQ = new WxOrderPress(); | |||
| orderPressQ.setTenantId(order.getTenantId()); | |||
| orderPressQ.setOrderId(order.getId()); | |||
| orderPressQ.setUserId(user.getId()); | |||
| orderPressQ.setUserId(cUserId); | |||
| int count = wxOrderPressMapper.selectCount(orderPressQ); | |||
| if(count >= 1) { | |||
| logger.error("用户已参与砍价: " + user.getId()); | |||
| logger.error("用户已参与砍价: " + cUserId); | |||
| throw new MallinkException(ErrorCode.COUPON_PRESS_IS_EXIST); | |||
| } | |||
| @@ -83,7 +83,7 @@ public class WxOrderPressServiceImpl implements WxOrderPressService { | |||
| orderPress.setId(idWorker.nextId()); | |||
| orderPress.setTenantId(order.getTenantId()); | |||
| orderPress.setOrderId(order.getId()); | |||
| orderPress.setUserId(user.getId()); | |||
| orderPress.setUserId(cUserId); | |||
| orderPress.setCreateDate(curDate); | |||
| orderPress.setFirst(EnumOrderPressType.NORMAL.getCode()); | |||
| orderPress.setPressValue(PressUtils.stateLessPressValue(total, left_total, coupon.getPressLimitNum(), order.getPressCurrentNum())); | |||
| @@ -119,15 +119,15 @@ public class WxOrderPressServiceImpl implements WxOrderPressService { | |||
| } | |||
| @Override | |||
| public int pressCouponStatus(WxOrder order, WxCUser user) { | |||
| public int pressCouponStatus(WxOrder order, Long cUserId) { | |||
| // 检查此人是否已参与砍价 | |||
| WxOrderPress orderPressQ = new WxOrderPress(); | |||
| orderPressQ.setTenantId(order.getTenantId()); | |||
| orderPressQ.setOrderId(order.getId()); | |||
| orderPressQ.setUserId(user.getId()); | |||
| orderPressQ.setUserId(cUserId); | |||
| int count = wxOrderPressMapper.selectCount(orderPressQ); | |||
| if(count >= 1) { | |||
| logger.info("用户已参与砍价: " + user.getId()); | |||
| logger.info("用户已参与砍价: " + cUserId); | |||
| return EnumOrderPressStatus.HAD_JOIN.getCode(); | |||
| } | |||
| return EnumOrderPressStatus.NOT_JOIN.getCode(); | |||
| @@ -550,7 +550,7 @@ public class WxOrderServiceImpl implements WxOrderService { | |||
| @Override | |||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | |||
| public WxOrder saveCardPayOrder(WxMerchant merchant, WxCUser cUser, String totalFeeStr, Integer payment) { | |||
| public WxOrder saveCardPayOrder(WxMerchant merchant, Long cUserId, String totalFeeStr, Integer payment) { | |||
| Date curr = new Date(); | |||
| final IdWorker idWorker = IdWorker.get(); | |||
| @@ -566,7 +566,7 @@ public class WxOrderServiceImpl implements WxOrderService { | |||
| record.setOrderNumber(orderNumber); | |||
| record.setType(EnumOrderType.PREPAIDCARD.getCode()); | |||
| record.setProductId(merchant.getId()); | |||
| record.setcUserId(cUser.getId()); | |||
| record.setcUserId(cUserId); | |||
| record.setPaymentType(EnumPayType.PAY_PAYMENT.getCode()); | |||
| record.setPayment(payment); | |||
| record.setOrderStatus(EnumOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode()); | |||
| @@ -1,7 +0,0 @@ | |||
| package com.iformall.utils; | |||
| public class BaseConstant { | |||
| //24小时后过期 | |||
| public final static int EXPIRE = 3600 * 24; | |||
| } | |||
| @@ -2,6 +2,16 @@ package com.iformall.utils; | |||
| public class Constant { | |||
| // 1小时过期, | |||
| public final static int C_EXPIRE = 3600000; | |||
| // TOKEN过期时间, 24小时后过期 | |||
| public final static int EXPIRE = 3600 * 24; | |||
| // C端token | |||
| public static final String LOGIN_USER_KEY = "LOGIN_USER_KEY"; | |||
| public static final String TENANT_ID = "TENANT_ID"; | |||
| public static final String fileDirectory = "./uploads/"; | |||
| public static final String importMemPrev = "importmem/"; | |||
| public static final String adminPage = "http://admin.malls.iformall.com"; | |||
| @@ -9,12 +9,12 @@ | |||
| <result column="msg" property="msg" /> | |||
| <result column="send_time" property="sendTime" /> | |||
| <result column="model_id" property="modelId" /> | |||
| <result column="sender" property="from" /> | |||
| <result column="sender_user_id" property="fromUserId" /> | |||
| <result column="sender_user_name" property="fromUserName" /> | |||
| <result column="receiver" property="to" /> | |||
| <result column="receiver_user_id" property="toUserId" /> | |||
| <result column="receiver_user_name" property="toUserName" /> | |||
| <result column="sender" property="sender" /> | |||
| <result column="sender_user_id" property="senderUserId" /> | |||
| <result column="sender_user_name" property="senderUserName" /> | |||
| <result column="receiver" property="receiver" /> | |||
| <result column="receiver_user_id" property="receiverUserId" /> | |||
| <result column="receiver_user_name" property="receiverUserName" /> | |||
| <result column="msg_status" property="msgStatus" /> | |||
| <result column="status_message" property="statusMessage" /> | |||
| <result column="createtime" property="createtime" /> | |||
| @@ -38,9 +38,6 @@ | |||
| <if test=" null != id "> | |||
| and `id` = #{id} | |||
| </if> | |||
| <if test=" null != tenantId "> | |||
| and `tenant_id` = #{tenantId} | |||
| </if> | |||
| <if test=" null != receiverUserId "> | |||
| and `receiver_user_id` = #{receiverUserId} | |||
| </if> | |||
| @@ -67,17 +64,17 @@ | |||
| </update> | |||
| <select id="findList" parameterType="com.iformall.domain.po.WxMsgRecord" resultMap="BaseResultMap"> | |||
| select <include refid="allColumns" /> from wx_msg_model | |||
| select <include refid="allColumns" /> from wx_msg_record | |||
| <include refid="dynamicWhereConditions" /> | |||
| </select> | |||
| <insert id="save" parameterType="com.iformall.domain.po.WxMsgRecord" > | |||
| INSERT INTO wx_msg_record( id,`uuid`, `msg_type`, | |||
| INSERT INTO wx_msg_record( id,tenant_id,`uuid`, `msg_type`, | |||
| `domain`, `msg`, `send_time`, `model_id`, `model_type`, | |||
| `signature`, `sender`, `sender_user_id`, `sender_user_name`, | |||
| `receiver`, `receiver_user_id`, `receiver_user_name`, | |||
| `msg_status`, `status_message`, `msg_json`) | |||
| VALUES(#{id},#{uuid},#{msgType}, | |||
| VALUES(#{id},#{tenantId},#{uuid},#{msgType}, | |||
| #{domain},#{msg},#{sendTime},#{modelId},#{modelType},#{signature},#{sender}, | |||
| #{senderUserId},#{senderUserName},#{receiver},#{receiverUserId},#{receiverUserName}, | |||
| #{msgStatus},#{statusMessage},#{msgJson}); | |||