|
|
@@ -10,17 +10,26 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.ydtech.core.page.HttpResult;
|
|
|
import com.ydtech.modules.partner.dao.PartnerLiftingRecordMapper;
|
|
|
+import com.ydtech.modules.partner.dao.PartnerRecordApperMapper;
|
|
|
import com.ydtech.modules.partner.dao.PartnerUserMapper;
|
|
|
import com.ydtech.modules.partner.model.PartnerLiftingRecord;
|
|
|
+import com.ydtech.modules.partner.model.PartnerPurchaseRecord;
|
|
|
+import com.ydtech.modules.partner.model.PartnerRecordApper;
|
|
|
import com.ydtech.modules.partner.model.PartnerUser;
|
|
|
import com.ydtech.modules.partner.model.param.LiftingRecordAudit;
|
|
|
import com.ydtech.modules.partner.model.param.PartnerLiftingRecordParam;
|
|
|
+import com.ydtech.modules.partner.model.param.PartnerRuleEntity;
|
|
|
import com.ydtech.modules.partner.service.PartnerLiftingRecordService;
|
|
|
+import com.ydtech.modules.partner.service.PartnerRuleService;
|
|
|
+import com.ydtech.modules.partner.service.PartnerUserService;
|
|
|
+import com.ydtech.modules.partner.service.PurchaseRecordService;
|
|
|
+import com.ydtech.modules.partner.utils.ConditionUtils;
|
|
|
import org.apache.commons.lang3.ObjectUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;;
|
|
|
import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
@Service
|
|
|
@@ -30,6 +39,16 @@ public class PartnerLiftingRecordServiceImpl extends ServiceImpl<PartnerLiftingR
|
|
|
@Autowired
|
|
|
private PartnerUserMapper partnerUserMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private PartnerRuleService ruleService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private PartnerRecordApperMapper recordApperMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private PurchaseRecordService purchaseRecordService;
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
public Map<String,Object> queryPage(PartnerLiftingRecordParam recordParam) {
|
|
|
QueryWrapper<PartnerLiftingRecord> queryWrapper = new QueryWrapper<>();
|
|
|
@@ -113,7 +132,53 @@ public class PartnerLiftingRecordServiceImpl extends ServiceImpl<PartnerLiftingR
|
|
|
|
|
|
@Override
|
|
|
public HttpResult saveLiftingRecord(PartnerLiftingRecord entity) {
|
|
|
+ entity.setConditions(ConditionUtils.upgradeConditions(entity.getOriginalLevel()));
|
|
|
+ entity.setRules(ConditionUtils.assessmentRules(entity.getOriginalLevel()));
|
|
|
int insert = baseMapper.insert(entity);
|
|
|
return insert > 0 ? HttpResult.ok("升级成功") : HttpResult.error("升级失败");
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public HttpResult unlockLevel(String grade) {
|
|
|
+ if (StringUtils.isEmpty(grade)){
|
|
|
+ return HttpResult.error("等级不能为空");
|
|
|
+ }
|
|
|
+ PartnerRuleEntity ruleEntity = ruleService.selectByGrade(grade);
|
|
|
+ if (ruleEntity == null) {
|
|
|
+ return HttpResult.error("配置项不存在");
|
|
|
+ }
|
|
|
+ if (ruleEntity.isFallTick()){
|
|
|
+ return HttpResult.ok(ruleEntity.getFallAmount());
|
|
|
+ }else {
|
|
|
+ return HttpResult.error("当前等级不支持购买保级");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public HttpResult confirmUnlocking(PartnerRecordApper recordApper) {
|
|
|
+
|
|
|
+ int insert = recordApperMapper.insert(recordApper);
|
|
|
+ if (insert > 0){
|
|
|
+ PartnerLiftingRecord liftingRecord = baseMapper.selectById(recordApper.getRecordId());
|
|
|
+ PartnerPurchaseRecord record = getPurchaseRecord(recordApper, liftingRecord);
|
|
|
+ purchaseRecordService.save( record);
|
|
|
+ //更新用户锁定状态
|
|
|
+ partnerUserMapper.updateIdentityStatus(liftingRecord.getUserId(),liftingRecord.getOriginalLevel(),0);
|
|
|
+ }
|
|
|
+ return HttpResult.ok("解锁成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ private static PartnerPurchaseRecord getPurchaseRecord(PartnerRecordApper recordApper, PartnerLiftingRecord liftingRecord) {
|
|
|
+ PartnerPurchaseRecord record = new PartnerPurchaseRecord();
|
|
|
+ record.setName(liftingRecord.getName());
|
|
|
+ record.setMobile(liftingRecord.getMobile());
|
|
|
+ record.setUserId(liftingRecord.getUserId());
|
|
|
+ record.setDeptId(liftingRecord.getDeptId());
|
|
|
+ record.setDeptName(liftingRecord.getDeptName());
|
|
|
+ record.setGrade(liftingRecord.getOriginalLevel());
|
|
|
+ record.setGradeAfter(liftingRecord.getAfterChange());
|
|
|
+ record.setLockCommission(recordApper.getPaymentAmount());
|
|
|
+ record.setPurchasingTime(new Date());
|
|
|
+ return record;
|
|
|
+ }
|
|
|
}
|