商品同步修改

This commit is contained in:
Jack 2025-01-15 10:38:48 +08:00
parent 1c60f938b6
commit 540820281d
11 changed files with 401 additions and 15 deletions

View File

@ -57,6 +57,9 @@ public interface PayService {
@PostMapping(value = "/admin/pay/payController/editPayConsumeTrade")
boolean editPayConsumeTrade(@RequestBody Map params);
@PostMapping(value = "/admin/pay/payController/saveOrUpdatePayUserResource")
boolean saveOrUpdatePayUserResource(@RequestBody PayUserResource params);
@PostMapping(value = "/admin/pay/payController/points")
boolean points(@RequestParam(name = "user_id") Integer user_id,
@RequestParam(name = "points") BigDecimal points,

View File

@ -71,6 +71,12 @@ public class AccountUserBase implements Serializable {
@ApiModelProperty(value = "快速登录码")
private String user_quickcode;
@ApiModelProperty(value = "用户身份0-个人身份1-企业身份;")
private String user_type;
@ApiModelProperty(value = "公司id")
private String user_company_id;
@TableField(exist = false)
@ApiModelProperty(value = "用户权限集合")
private List<AdminRightsGroup> roles;

View File

@ -0,0 +1,50 @@
/*
* Copyright (c) 2025. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
* Morbi non lorem porttitor neque feugiat blandit. Ut vitae ipsum eget quam lacinia accumsan.
* Etiam sed turpis ac ipsum condimentum fringilla. Maecenas magna.
* Proin dapibus sapien vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget metus.
* Vestibulum commodo. Ut rhoncus gravida arcu.
*/
package com.suisung.mall.common.pojo.req;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel(description = "第三方会员同步请求参数")
public class SyncThirdMemberReq implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("会员手机号")
private String user_mobile;
@ApiModelProperty("会员昵称")
private String user_nickname;
@ApiModelProperty("会员真实姓名")
private String user_realname;
@ApiModelProperty("会员性别1-男2-女;")
private Integer user_gender;
@ApiModelProperty("会员生日 yyyy-MM-dd")
private String user_birthday;
@ApiModelProperty("会员等级v1...v9")
private String user_level;
@ApiModelProperty("会员卡号")
private String user_level_card;
@ApiModelProperty("会员积分值")
private BigDecimal user_points;
@ApiModelProperty("会员余额")
private BigDecimal user_money;
@ApiModelProperty("加入时间")
private Date join_time;
}

View File

@ -2,8 +2,12 @@ package com.suisung.mall.common.utils;
import lombok.extern.slf4j.Slf4j;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;
@Slf4j
public class DateTimeUtils {
@ -11,4 +15,18 @@ public class DateTimeUtils {
public static String formatDateTime(LocalDateTime localDateTime, String pattern) {
return localDateTime.format(DateTimeFormatter.ofPattern(pattern));
}
public static Date parseDate(String dateString, String pattern) {
SimpleDateFormat format = new SimpleDateFormat(pattern);
try {
Date date = format.parse(dateString);
return date;
} catch (ParseException e) {
log.error(e.getMessage());
Calendar calendar = Calendar.getInstance();
// 设置年注意月份从 0 开始 0 表示一月
calendar.set(2000, 0, 1, 15, 30, 0);
return calendar.getTime();
}
}
}

View File

@ -7,12 +7,10 @@ import org.slf4j.LoggerFactory;
import java.io.*;
import java.net.URLEncoder;
import java.security.MessageDigest;
import java.security.SecureRandom;
import java.text.MessageFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.Random;
import java.util.UUID;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -223,6 +221,23 @@ public final class StringUtils extends org.apache.commons.lang3.StringUtils {
}
}
/**
* 生成唯一码
* @param length
* @return
*/
public static String generateUniqueCode(int length) {
SecureRandom secureRandom = new SecureRandom();
// 计算所需的字节数根据 Base64 编码的特性3 个字节编码为 4 个字符
int numBytes = (int) Math.ceil((length * 3.0 / 4.0));
byte[] randomBytes = new byte[numBytes];
secureRandom.nextBytes(randomBytes);
String base64 = Base64.getUrlEncoder().withoutPadding().encodeToString(randomBytes);
// 截取所需长度的子串
return base64.substring(0, length);
}
/**
* 全地址去除省市区保留详细地址
*

View File

@ -151,7 +151,17 @@ public class PayController {
return false;
}
return flag;
}
@RequestMapping(value = "/saveOrUpdatePayUserResource", method = RequestMethod.POST)
public boolean saveOrUpdatePayUserResource(@RequestBody PayUserResource payUserResource) {
boolean flag;
try {
flag = payUserResourceService.saveOrUpdate(payUserResource);
} catch (Exception e) {
return false;
}
return flag;
}
@ApiOperation(value = "获取交易订单", notes = "获取交易订单")

View File

@ -8,6 +8,7 @@ import com.suisung.mall.common.pojo.dto.ProductRecommendDTO;
import com.suisung.mall.common.pojo.dto.ProductSearchDTO;
import com.suisung.mall.core.web.service.IBaseService;
import com.suisung.mall.shop.product.pojo.vo.ProductVo;
import org.springframework.data.util.Pair;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
@ -253,6 +254,7 @@ public interface ShopProductBaseService extends IBaseService<ShopProductBase> {
/**
* 获取一个商品基本信息
*
* @param product_id
* @param store_id
* @return
@ -261,6 +263,7 @@ public interface ShopProductBaseService extends IBaseService<ShopProductBase> {
/**
* 根据店铺Id和商品货号获取商品Id
*
* @param store_id
* @param product_number
* @return
@ -276,6 +279,8 @@ public interface ShopProductBaseService extends IBaseService<ShopProductBase> {
* @param storeId
* @return
*/
Boolean syncSxGoodsToShopProductBase(String storeId);
Boolean syncSxGoodsToShopProductBase(String storeId);
Pair<Boolean, String> saveProduct(ShopProductBase shopProductBase, ShopProductIndex shopProductIndex, ShopProductData shopProductData, ShopProductDetail shopProductDetail, ShopProductInfo shopProductInfo, List<ShopProductItem> shopProductItemList, List<ShopProductImage> shopProductImageList, ShopProductValidPeriod shopProductValidPeriod, List<ShopProductAssistIndex> shopProductAssistIndexList);
}

View File

@ -680,6 +680,7 @@ public class ShopProductBaseServiceImpl extends BaseServiceImpl<ShopProductBaseM
* @param shopProductAssistIndexList 辅助信息表
* @return
*/
@Override
public Pair<Boolean, String> saveProduct(ShopProductBase shopProductBase, ShopProductIndex shopProductIndex, ShopProductData shopProductData, ShopProductDetail shopProductDetail, ShopProductInfo shopProductInfo, List<ShopProductItem> shopProductItemList, List<ShopProductImage> shopProductImageList, ShopProductValidPeriod shopProductValidPeriod, List<ShopProductAssistIndex> shopProductAssistIndexList) {
Integer store_id = shopProductBase.getStore_id();
if (store_id == null) {

View File

@ -9,6 +9,7 @@
package com.suisung.mall.shop.sync.controller;
import cn.hutool.json.JSONArray;
import com.suisung.mall.common.pojo.req.SyncThirdMemberReq;
import com.suisung.mall.common.pojo.res.ThirdApiRes;
import com.suisung.mall.shop.sync.service.SyncThirdDataService;
import io.swagger.annotations.Api;
@ -19,6 +20,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@Api(tags = "第三方数据同步")
@RestController
@RequestMapping("/shop/sync/third")
@ -53,7 +56,7 @@ public class SyncThirdDataController {
@ApiOperation(value = "会员数据同步", notes = "会员数据同步")
@RequestMapping(value = "/member", method = RequestMethod.POST)
public ThirdApiRes syncMember(@RequestBody String reqBody) {
public ThirdApiRes syncMember(@RequestBody List<SyncThirdMemberReq> memberList) {
return null;
}

View File

@ -9,8 +9,11 @@
package com.suisung.mall.shop.sync.service;
import cn.hutool.json.JSONArray;
import com.suisung.mall.common.pojo.req.SyncThirdMemberReq;
import com.suisung.mall.common.pojo.res.ThirdApiRes;
import java.util.List;
public interface SyncThirdDataService {
/**
@ -28,4 +31,18 @@ public interface SyncThirdDataService {
* @return
*/
ThirdApiRes saveOrUpdateShopBaseProductBrandBatch(JSONArray brandListJSON);
/**
* 批量保存商品记录
* @param goodsListJSON
* @return
*/
ThirdApiRes saveOrUpdateGoodsBatch(JSONArray goodsListJSON);
/**
* 批量保存会员记录
* @param memberList
* @return
*/
ThirdApiRes saveOrUpdateMemberBatch(List<SyncThirdMemberReq> memberList);
}

View File

@ -8,29 +8,55 @@
package com.suisung.mall.shop.sync.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.suisung.mall.common.api.StateCode;
import com.suisung.mall.common.constant.CommonConstant;
import com.suisung.mall.common.exception.ApiException;
import com.suisung.mall.common.feignService.AccountService;
import com.suisung.mall.common.feignService.PayService;
import com.suisung.mall.common.modules.account.AccountUserBase;
import com.suisung.mall.common.modules.account.AccountUserInfo;
import com.suisung.mall.common.modules.base.ShopBaseProductBrand;
import com.suisung.mall.common.modules.base.ShopBaseProductCategory;
import com.suisung.mall.common.modules.base.ShopBaseProductType;
import com.suisung.mall.common.modules.pay.PayUserResource;
import com.suisung.mall.common.modules.product.*;
import com.suisung.mall.common.modules.store.ShopStoreBase;
import com.suisung.mall.common.pojo.req.SyncThirdMemberReq;
import com.suisung.mall.common.pojo.res.ThirdApiRes;
import com.suisung.mall.common.utils.DateTimeUtils;
import com.suisung.mall.common.utils.I18nUtil;
import com.suisung.mall.common.utils.StringUtils;
import com.suisung.mall.shop.base.service.ShopBaseProductBrandService;
import com.suisung.mall.shop.base.service.ShopBaseProductCategoryService;
import com.suisung.mall.shop.base.service.ShopBaseProductTypeService;
import com.suisung.mall.shop.product.service.ShopProductBaseService;
import com.suisung.mall.shop.product.service.impl.ShopProductBaseServiceImpl;
import com.suisung.mall.shop.store.service.ShopStoreBaseService;
import com.suisung.mall.shop.sync.service.SyncThirdDataService;
import io.swagger.models.auth.In;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.util.Pair;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.math.BigDecimal;
import java.util.*;
@Service
public class SyncThirdDataServiceImpl implements SyncThirdDataService {
private final Logger logger = LoggerFactory.getLogger(ShopProductBaseServiceImpl.class);
@Autowired
private ShopBaseProductBrandService productBrandService;
@ -40,6 +66,20 @@ public class SyncThirdDataServiceImpl implements SyncThirdDataService {
@Autowired
private ShopBaseProductTypeService productTypeService;
@Autowired
private AccountService accountService;
@Autowired
private PayService payService;
@Autowired
ShopProductBaseService shopProductBaseService;
@Autowired
ShopStoreBaseService shopStoreBaseService;
private int limitCnt = 300;
/**
* 批量保存商品的分类
*
@ -59,13 +99,15 @@ public class SyncThirdDataServiceImpl implements SyncThirdDataService {
return new ThirdApiRes().fail(1004, I18nUtil._("请求参数有误!"));
}
if (list != null && list.size() > 500) {
return new ThirdApiRes().fail(1004, I18nUtil._("单次同步记录最多500条!"));
if (list != null && list.size() > limitCnt) {
return new ThirdApiRes().fail(1004, I18nUtil._("单次同步记录最多"+limitCnt+"条!"));
}
String storeId = "3";
int count = 0;
for (int i = 0; i < list.size(); i++) {
list.get(i).setStore_id("3"); // app 记录传进来
list.get(i).setStore_id(storeId); // app 记录传进来
list.get(i).setData_source(2); // 思迅数据来源
list.get(i).setCategory_is_enable(1);
@ -141,13 +183,15 @@ public class SyncThirdDataServiceImpl implements SyncThirdDataService {
return new ThirdApiRes().fail(1004, I18nUtil._("请求参数有误!"));
}
if (goodBrandList != null && goodBrandList.size() > 500) {
return new ThirdApiRes().fail(1004, I18nUtil._("单次同步记录最多500条!"));
if (goodBrandList != null && goodBrandList.size() > limitCnt) {
return new ThirdApiRes().fail(1004, I18nUtil._("单次同步记录最多"+limitCnt+"条!"));
}
Integer storeId = 3;
int count = 0;
for (int i = 0; i < goodBrandList.size(); i++) {
goodBrandList.get(i).setStore_id(3); // app 记录传进来
goodBrandList.get(i).setStore_id(storeId); // app 记录传进来
// 处理大分类字段
JSONObject o = (JSONObject) brandListJSON.get(i);
if (o != null && StrUtil.isNotBlank(o.getStr("category"))) {
@ -165,4 +209,218 @@ public class SyncThirdDataServiceImpl implements SyncThirdDataService {
return new ThirdApiRes().success("成功同步" + count + "条记录!", resp);
}
/**
* 批量保存商品记录
*
* @param goodsListJSON
* @return
*/
@Override
public ThirdApiRes saveOrUpdateGoodsBatch(JSONArray goodsListJSON) {
// TODO 验签appid必要参数判断
if (ObjectUtil.isEmpty(goodsListJSON)) {
return new ThirdApiRes().fail(1003, I18nUtil._("缺少必要参数!"));
}
List<ShopBaseProductBrand> goodBrandList = JSONUtil.toList(goodsListJSON, ShopBaseProductBrand.class);
if (goodBrandList == null) {
return new ThirdApiRes().fail(1004, I18nUtil._("请求参数有误!"));
}
if (goodsListJSON.size() > limitCnt) {
return new ThirdApiRes().fail(1004, I18nUtil._("单次同步记录最多"+limitCnt+"条!"));
}
Integer storeId = 3;
int count = 0;
for (JSONObject jsonObj : goodsListJSON.jsonIter()) {
Date currentDate = new Date();
Integer categoryId = Convert.toInt(jsonObj.get("first_category_name"), 0);
Integer storeIdInt = Convert.toInt(storeId);
ShopStoreBase store_row = shopStoreBaseService.get(storeId);
if (store_row == null) {
throw new ApiException(I18nUtil._("无法获取店铺信息!"));
}
ShopProductBase shopProductBase = new ShopProductBase();
shopProductBase.setProduct_sale_time(Convert.toDate(DateUtil.current() + 600)); //10分钟
shopProductBase.setStore_id(storeIdInt);
shopProductBase.setProduct_number((String) jsonObj.get("first_category_name"));
shopProductBase.setProduct_name((String) jsonObj.get("first_category_name"));
shopProductBase.setStore_name(store_row.getStore_name());
shopProductBase.setProduct_tips("");
shopProductBase.setProduct_video("");
shopProductBase.setTransport_type_id(StateCode.DELIVERY_TYPE_SAME_CITY);
shopProductBase.setProduct_state_id(StateCode.PRODUCT_STATE_NORMAL);
shopProductBase.setProduct_inventory_lock(1002); //库存锁定(ENUM):1001-下单锁定;1002-支付锁定;
shopProductBase.setProduct_fx_enable(0); // 供应商是否允许批发市场分销
shopProductBase.setProduct_dist_enable(0); // 是否允许三级分销
shopProductBase.setProduct_from(1005);// 商品来源(ENUM):1000-发布;1001-天猫;1002-淘宝;1003-阿里巴巴;1004-京东;1005-思迅;
shopProductBase.setProduct_add_time(currentDate.getTime());
// ShopProductIndex
ShopProductIndex shopProductIndex = new ShopProductIndex();
shopProductIndex.setProduct_add_time(currentDate.getTime());
shopProductIndex.setProduct_sale_time(DateUtil.current() + 600); //10分钟
shopProductIndex.setStore_category_ids(""); // 店铺分类编号(DOT)
shopProductIndex.setProduct_tags("");// 商品标签(DOT)
shopProductIndex.setBrand_id(0);
shopProductIndex.setProduct_name(shopProductBase.getProduct_name()); // 产品名称:店铺平台先在对用表中检索后通过id检索,检索使用
shopProductIndex.setProduct_name_index(shopProductIndex.getProduct_name()); // 名称索引关键字(DOT)
shopProductIndex.setCategory_id(categoryId); // 商品分类
shopProductIndex.setProduct_fx_enable(0); // 供应商是否允许批发市场分销
shopProductIndex.setProduct_dist_enable(0); // 是否允许三级分销
shopProductIndex.setStore_id(storeIdInt);
shopProductIndex.setStore_type(store_row.getStore_type());
shopProductIndex.setKind_id(StateCode.PRODUCT_KIND_ENTITY);// 实体商品
shopProductIndex.setStore_is_open(store_row.getStore_is_open());
shopProductIndex.setStore_is_selfsupport(store_row.getStore_is_selfsupport());
shopProductIndex.setStore_longitude(store_row.getStore_longitude());
shopProductIndex.setStore_latitude(store_row.getStore_latitude());
shopProductIndex.setCard_type_id(0);
shopProductIndex.setVoucher_activity_id("");
shopProductIndex.setCoupon_type_id(0);// product_assist_data // 辅助属性值列(DOT)
shopProductIndex.setProduct_transport_id(String.valueOf(StateCode.DELIVERY_TYPE_SAME_CITY));
ShopBaseProductCategory category_row = productCategoryService.get(categoryId);
if (ObjectUtil.isNotEmpty(category_row)) {
Integer type_id = category_row.getType_id();
shopProductIndex.setType_id(type_id);
}
// shop_product_data
ShopProductData shopProductData = new ShopProductData();
// product_id // 产品id
shopProductData.setProduct_edit_time(currentDate);
// shop_product_detail
ShopProductDetail shopProductDetail = new ShopProductDetail();
shopProductDetail.setProduct_detail("");
shopProductDetail.setProduct_param("");
shopProductDetail.setProduct_service("");
shopProductDetail.setProduct_tags("");
// shop_product_info
ShopProductInfo shopProductInfo = new ShopProductInfo();
shopProductInfo.setProduct_number((String) jsonObj.get("first_category_name"));// SPU商家编码:货号
shopProductInfo.setProduct_assist("");
shopProductInfo.setProduct_spec("");
shopProductInfo.setProduct_buy_limit(0); // 不限购
//商品规格
shopProductInfo.setSpec_ids("");
List<ShopProductItem> shopProductItemList = new ArrayList<>();
ShopProductItem shopProductItem = new ShopProductItem();
shopProductItem.setStore_id(storeIdInt);
shopProductItem.setCategory_id(categoryId);
shopProductItem.setItem_unit_price((BigDecimal) jsonObj.get("first_category_name"));
shopProductItem.setItem_advice_price((BigDecimal) jsonObj.get("first_category_name"));
shopProductItem.setItem_market_price((BigDecimal) jsonObj.get("first_category_name"));
shopProductItem.setItem_unit_points((BigDecimal) jsonObj.get("first_category_name"));
shopProductItem.setItem_quantity((Integer) jsonObj.get("first_category_name")); // 库存
shopProductItem.setItem_quantity_frozen(0);
shopProductItem.setItem_number((String) jsonObj.get("first_category_name"));// SKU商家编码
shopProductItem.setItem_barcode((String) jsonObj.get("first_category_name")); // 条形码正常情况下就是货号
shopProductItem.setItem_is_default(1);
shopProductItem.setItem_enable(1);
shopProductItemList.add(shopProductItem);
// 保存数据
Pair<Boolean, String> pair = shopProductBaseService.saveProduct(shopProductBase, shopProductIndex, shopProductData, shopProductDetail, shopProductInfo, shopProductItemList, new ArrayList<ShopProductImage>(), new ShopProductValidPeriod(), new ArrayList<ShopProductAssistIndex>());
if (!pair.getFirst()) {
logger.error(pair.getSecond());
continue;
}
count += 1;
}
Map<String, Integer> resp = new HashMap<>();
resp.put("count", count);
return new ThirdApiRes().success("成功同步" + count + "条记录!", resp);
}
/**
* 批量保存会员记录
*
* @param memberList
* @return
*/
@Override
public ThirdApiRes saveOrUpdateMemberBatch(List<SyncThirdMemberReq> memberList) {
if (CollUtil.isEmpty(memberList)) {
return new ThirdApiRes().fail(1003, I18nUtil._("缺少必要参数!"));
}
String storeId = "3";
if (memberList.size() > limitCnt) {
return new ThirdApiRes().fail(1004, I18nUtil._("单次同步记录最多" + limitCnt + "条!"));
}
int count = 0;
for (SyncThirdMemberReq member : memberList) {
// account_user_base
AccountUserBase accountUserBase = new AccountUserBase();
accountUserBase.setUser_account(StringUtils.generateUniqueCode(8));
accountUserBase.setUser_nickname(member.getUser_nickname());
accountUserBase.setUser_state(2);// 状态(ENUM):0-锁定;1-未激活;2-已激活;
accountUserBase.setUser_is_admin(0);
accountUserBase.setStore_ids(storeId);
accountUserBase.setRights_group_id("0");// 普通用户
accountUserBase.setUser_type("0");
String user_key = IdUtil.simpleUUID();
String user_salt = IdUtil.simpleUUID();
String user_token = IdUtil.simpleUUID();
accountUserBase.setUser_salt(user_salt);
accountUserBase.setUser_token(user_token);
accountUserBase.setUser_key(user_key);
accountUserBase.setUser_password(SecureUtil.md5(user_salt + SecureUtil.md5(IdUtil.simpleUUID())));
Boolean success = accountService.saveOrUpdateUserBase(accountUserBase);
Integer userId = accountUserBase.getUser_id();
// account_user_info
AccountUserInfo accountUserInfo = new AccountUserInfo();
accountUserInfo.setUser_id(userId);// todo
accountUserInfo.setUser_type_id(0);
accountUserInfo.setUser_mobile(member.getUser_mobile());
accountUserInfo.setUser_level_card(member.getUser_level_card());
//user_level_id
accountUserInfo.setUser_level_id(1); // todo select id
accountUserInfo.setUser_gender(member.getUser_gender());
accountUserInfo.setUser_mobile(member.getUser_mobile());
accountUserInfo.setUser_intl(CommonConstant.IDD_ZH_CN);
accountUserInfo.setUser_birthday(DateTimeUtils.parseDate(member.getUser_birthday(), "yyyy-MM-dd"));
success = accountService.saveOrUpdateUserInfo(accountUserInfo);
if (member.getUser_money() != null || member.getUser_points() != null) {
// 用户支付资源积分余额
PayUserResource payUserResource = new PayUserResource();
payUserResource.setUser_id(userId);
payUserResource.setUser_money(member.getUser_money());
payUserResource.setUser_money_frozen(BigDecimal.ZERO);
payUserResource.setUser_points(member.getUser_points());
payUserResource.setUser_points_frozen(BigDecimal.ZERO);
success = payService.saveOrUpdatePayUserResource(payUserResource);
}
if(success) {count += 1;}
}
Map<String, Integer> resp = new HashMap<>();
resp.put("count", count);
return new ThirdApiRes().success("成功同步" + count + "条记录!", resp);
}
}