diff --git a/mallinkPublicApi/src/main/java/com/iformall/controller/UserBasicInfoController.java b/mallinkPublicApi/src/main/java/com/iformall/controller/UserBasicInfoController.java index 5857a929e..5fe2ec319 100644 --- a/mallinkPublicApi/src/main/java/com/iformall/controller/UserBasicInfoController.java +++ b/mallinkPublicApi/src/main/java/com/iformall/controller/UserBasicInfoController.java @@ -10,6 +10,7 @@ import com.iformall.domain.po.base.TenantEntity; import com.iformall.service.WxCUserBasicInfoService; import com.iformall.service.WxCUserService; import com.iformall.service.WxLevelConfigService; +import com.iformall.service.openapi.OpenUserBasicInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; @@ -40,6 +41,9 @@ public class UserBasicInfoController extends BaseController { @Autowired private WxLevelConfigService wxLevelConfigService; + @Autowired + private OpenUserBasicInfoService openUserBasicInfoService; + /** * * @param @@ -133,7 +137,7 @@ public class UserBasicInfoController extends BaseController { } catch (NumberFormatException e) { return new ResultData(ErrorCode.SYS_PARAMETER_ERROR,"changePoints为整数"); } - wxCUserBasicInfoService.updatePointsByPhone(getTenantInfo(), Integer.parseInt(changePoints), phone); + openUserBasicInfoService.pointChange(getTenantInfo(), Integer.valueOf(changePoints), phone); return new ResultData(); } diff --git a/mallinkService/src/main/java/com/iformall/service/openapi/OpenUserBasicInfoService.java b/mallinkService/src/main/java/com/iformall/service/openapi/OpenUserBasicInfoService.java new file mode 100644 index 000000000..09df7839f --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/openapi/OpenUserBasicInfoService.java @@ -0,0 +1,18 @@ +package com.iformall.service.openapi; + +import com.iformall.domain.po.base.TenantEntity; + +/** + * 开放接口服务 + * @author xmzhao71 + * @date 2023-09-07 + */ +public interface OpenUserBasicInfoService { + /** + * 积分变更 + * @param tenantEntity + * @param changePoints + * @param phone + */ + void pointChange(TenantEntity tenantEntity, Integer changePoints, String phone); +} \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/service/openapi/impl/OpenUserBasicInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/openapi/impl/OpenUserBasicInfoServiceImpl.java new file mode 100644 index 000000000..ee572d71b --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/openapi/impl/OpenUserBasicInfoServiceImpl.java @@ -0,0 +1,57 @@ +package com.iformall.service.openapi.impl; + +import com.iformall.domain.po.WxCUserBasicInfo; +import com.iformall.domain.po.WxCreditHistory; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.enums.EnumScoreType; +import com.iformall.enums.EnumUserType; +import com.iformall.mapper.WxCreditHistoryMapper; +import com.iformall.service.WxCUserBasicInfoService; +import com.iformall.service.WxCreditHistoryService; +import com.iformall.service.openapi.OpenUserBasicInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; + +/** + * 会员相关开放接口service + * @author xmzhao71 + * @date 2023-09-07 + */ +@Service +public class OpenUserBasicInfoServiceImpl implements OpenUserBasicInfoService { + + @Autowired + private WxCreditHistoryMapper wxCreditHistoryMapper; + @Autowired + private WxCUserBasicInfoService wxCUserBasicInfoService; + + @Transactional(rollbackFor = Exception.class) + @Override + public void pointChange(TenantEntity tenantEntity, Integer changePoints, String phone) { + wxCUserBasicInfoService.updatePointsByPhone(tenantEntity, changePoints, phone); + WxCUserBasicInfo userBasicInfo = wxCUserBasicInfoService.findInfoByPhone(tenantEntity, phone); + WxCreditHistory wxCreditHistory = buildWxCreditHistory(userBasicInfo, changePoints); + wxCreditHistoryMapper.insert(wxCreditHistory); + } + + private WxCreditHistory buildWxCreditHistory(WxCUserBasicInfo userBasicInfo, Integer changePoints) { + WxCreditHistory creditHistory = new WxCreditHistory(); + creditHistory.setTenantId(userBasicInfo.getFinalTenantId()); + creditHistory.setCreateDate(new Date()); + creditHistory.setCUserId(userBasicInfo.getId()); + creditHistory.setOperatorId(Long.valueOf(userBasicInfo.getPhone())); + creditHistory.setOperatorType(EnumUserType.THIRD_CIRCLE.getCode()); + creditHistory.setCreditAmount(userBasicInfo.getCredit()); + creditHistory.setCreditNum(changePoints); + creditHistory.setCreditType(EnumScoreType.POINT_CHANGE.getCode()); + if(creditHistory.getCreditNum() > 0){ + creditHistory.setChangePurpose("积分新增"); + }else if(creditHistory.getCreditNum() < 0){ + creditHistory.setChangePurpose("积分扣减"); + } + return creditHistory; + } +} \ No newline at end of file