package com.jsowell.adapay.service; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.google.common.collect.Maps; import com.huifu.adapay.model.Member; import com.jsowell.adapay.dto.AdapayMemberInfoDTO; import com.jsowell.adapay.vo.AdapayMemberInfoVO; import com.jsowell.common.util.StringUtils; import com.jsowell.common.util.id.IdUtils; import com.jsowell.pile.domain.AdapayMemberInfo; import com.jsowell.pile.service.AdapayMemberInfoService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.Map; @Slf4j @Service public class AdapayMemberService { @Value("${adapay.appId}") private String ADAPAY_APP_ID; @Autowired private AdapayMemberInfoService adapayMemberInfoService; /** * 创建汇付会员 */ public Map executeCreateMember(String app_id) throws Exception { log.info("=======execute CreateMember begin======="); Map memberParams = Maps.newHashMap(); memberParams.put("member_id", "AM" + IdUtils.getMemberId()); memberParams.put("app_id", app_id); memberParams.put("location", "上海市徐汇区宜山路"); memberParams.put("email", "123@163.com"); memberParams.put("gender", "MALE"); // memberParams.put("tel_no", "13153333333"); // memberParams.put("nickname", "nick_name"); log.info("创建用户,请求参数:" + JSON.toJSONString(memberParams)); Map member = Member.create(memberParams); log.info("创建用户,返回参数:" + JSON.toJSONString(member)); log.info("=======execute CreateMember end======="); // 创建成功保存到数据库 JSONObject jsonObject = JSON.parseObject(String.valueOf(member)); ObjectMapper mapper = new ObjectMapper(); mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE); AdapayMemberInfo adapayMemberInfo = mapper.readValue(jsonObject.toJSONString(), AdapayMemberInfo.class); adapayMemberInfoService.insert(adapayMemberInfo); return member; } /** * 查询 member * * @param member_id 待查询的member_id * @return 创建的member 对象 * @throws Exception 异常 */ public Map executeQueryMember(String member_id, String app_id) throws Exception { log.info("=======execute queryMember begin======="); Map memberParams = Maps.newHashMap(); memberParams.put("member_id", member_id); memberParams.put("app_id", app_id); log.info("查询用户,请求参数:" + JSON.toJSONString(memberParams)); Map member = Member.query(memberParams); log.info("查询用户,返回参数:" + JSON.toJSONString(member)); log.info("=======execute queryMember end======="); return member; } /** * 更新 member * * @param member_id 待更新的member_id * @return 更新的member 对象 * @throws Exception 异常 */ public Map executeUpdateMember(String member_id, String app_id) throws Exception { log.info("=======execute update Member begin======="); Map memberParams = Maps.newHashMap(); memberParams.put("member_id", member_id); memberParams.put("app_id", app_id); memberParams.put("location", "上海市徐汇区宜山路1"); memberParams.put("email", "1234@163.com"); memberParams.put("gender", "MALE"); memberParams.put("tel_no", "13153333333"); memberParams.put("nickname", "nick_name2"); log.info("更新用户,请求参数:" + JSON.toJSONString(memberParams)); Map member = Member.update(memberParams); log.info("更新用户,返回参数:" + JSON.toJSONString(member)); log.info("=======execute update Member end======="); return member; } /** * 查询 member list * * @param app_id app_id * @return 查询的member list * @throws Exception 异常 */ public Map executeListMember(String app_id) throws Exception { System.out.println("=======execute list Member begin======="); Map memberParams = new HashMap(2); memberParams.put("page_index", "1"); memberParams.put("app_id", app_id); memberParams.put("page_size", "20"); memberParams.put("created_gte", String.valueOf(System.currentTimeMillis() - 5 * 60 * 1000)); memberParams.put("created_lte", String.valueOf(System.currentTimeMillis())); System.out.println("查询用户列表,请求参数:" + JSON.toJSONString(memberParams)); Map member = Member.queryList(memberParams); System.out.println("查询用户列表,返回参数:" + JSON.toJSONString(member)); System.out.println("=======execute list Member end======="); return member; } public void createMember(AdapayMemberInfoDTO dto) throws Exception { log.info("=======execute CreateMember begin======="); Map memberParams = Maps.newHashMap(); memberParams.put("member_id", "AM" + IdUtils.getMemberId()); memberParams.put("app_id", ADAPAY_APP_ID); memberParams.put("location", dto.getLocation()); memberParams.put("email", dto.getEmail()); memberParams.put("gender", dto.getGender()); memberParams.put("nickname", dto.getNickname()); log.info("创建用户,请求参数:" + JSON.toJSONString(memberParams)); Map member = Member.create(memberParams); log.info("创建用户,返回参数:" + JSON.toJSONString(member)); log.info("=======execute CreateMember end======="); // 创建成功保存到数据库 if (member != null && StringUtils.equals((String)member.get("status"), "succeeded")) { JSONObject jsonObject = JSON.parseObject(String.valueOf(member)); ObjectMapper mapper = new ObjectMapper(); mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE); AdapayMemberInfo adapayMemberInfo = mapper.readValue(jsonObject.toJSONString(), AdapayMemberInfo.class); adapayMemberInfo.setMerchantId(dto.getMerchantId()); adapayMemberInfoService.insert(adapayMemberInfo); } } public AdapayMemberInfoVO selectAdapayMember(String merchantId) { AdapayMemberInfo adapayMemberInfo = adapayMemberInfoService.selectByMerchantId(merchantId); if (adapayMemberInfo == null) { return null; } AdapayMemberInfoVO resultVO = new AdapayMemberInfoVO(); BeanUtils.copyProperties(adapayMemberInfo, resultVO); return resultVO; } }