| @@ -10,6 +10,7 @@ import com.iformall.domain.po.WxCashBackActivity; | |||
| import com.iformall.domain.po.WxCashBackActivityRecord; | |||
| import com.iformall.domain.po.WxCashOut; | |||
| import com.iformall.domain.po.WxCoupon; | |||
| import com.iformall.domain.po.WxMerchant; | |||
| import com.iformall.domain.po.base.BaseEntity.SortField; | |||
| import com.iformall.domain.po.base.TenantEntity; | |||
| import com.iformall.enums.EnumCashBackActivityRecordStatus; | |||
| @@ -180,12 +181,49 @@ public class WxCashBackActivityController extends BaseController { | |||
| wxCashBackActivityService.exportData(result,"现金返现记录",WxCashBackActivityRecord.class, request, response); | |||
| } | |||
| @ApiOperation("查询当前提现信息") | |||
| @GetMapping("recordInfo") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "id", value = "主键id", dataType = "Long", paramType = "query", required = true)}) | |||
| public ResultData recordInfo(Long id) { | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| WxCashBackActivityRecord activity = wxCashBackActivityService.getActivityRecordById(id, tenantInfo.getTenantId()); | |||
| if (null != activity) { | |||
| if (null != activity.getActivityId()) { | |||
| WxCashBackActivity a = wxCashBackActivityService.getActivityById(activity.getActivityId(), tenantInfo.getTenantId()); | |||
| if (null != a) { | |||
| activity.setActivityName(a.getName()); | |||
| } | |||
| } | |||
| if (null != activity.getMerchantId()) { | |||
| WxMerchant m = new WxMerchant(); | |||
| m.updateTenantInfo(activity); | |||
| m.setId(activity.getMerchantId()); | |||
| WxMerchant _m = wxMerchantService.findListOne(m); | |||
| if (null != _m) { | |||
| activity.setMerchantName(_m.getName()); | |||
| } | |||
| } | |||
| } | |||
| return new ResultData(activity); | |||
| } | |||
| @ApiOperation("新增修改接口") | |||
| @PostMapping("recordAudit") | |||
| public ResultData recordAudit(@RequestBody WxCashBackActivityRecord wxCashBackActivityRecord) { | |||
| TenantEntity tenantEntity = getTenantInfo(); | |||
| wxCashBackActivityRecord.updateTenantInfo(tenantEntity); | |||
| wxCashBackActivityService.updateActivityStatus(wxCashBackActivity); | |||
| wxCashBackActivityService.auditRecord(wxCashBackActivityRecord); | |||
| return new ResultData(); | |||
| } | |||
| @ApiOperation("新增修改接口") | |||
| @PostMapping("calRecordMoney") | |||
| public ResultData calRecordMoney(@RequestBody WxCashBackActivityRecord wxCashBackActivityRecord) { | |||
| TenantEntity tenantEntity = getTenantInfo(); | |||
| wxCashBackActivityRecord.updateTenantInfo(tenantEntity); | |||
| wxCashBackActivityService.auditRecord(wxCashBackActivityRecord); | |||
| return new ResultData(wxCashBackActivityRecord); | |||
| } | |||
| } | |||
| @@ -43,6 +43,9 @@ public interface WxCashBackActivityService { | |||
| WxCashBackActivity getActivityById(Long id,String tenantId); | |||
| WxCashBackActivityItem getActivityItemById(Long id,String tenantId); | |||
| WxCashBackActivityRecord getActivityRecordById(Long id,String tenantId); | |||
| /** | |||
| *更新状态 | |||
| @@ -57,5 +60,9 @@ public interface WxCashBackActivityService { | |||
| void exportData(List objectList,String sheetName,Class objectCalss,HttpServletRequest request, HttpServletResponse response); | |||
| void auditRecord(WxCashBackActivityRecord record); | |||
| void calcuteMoney(WxCashBackActivityRecord record); | |||
| } | |||
| @@ -11,6 +11,7 @@ import com.iformall.domain.po.WxCashBackActivityRecord; | |||
| import com.iformall.domain.po.WxMerchant; | |||
| import com.iformall.domain.po.base.TenantEntity; | |||
| import com.iformall.domain.vo.WxCUserBasicInfoVo; | |||
| import com.iformall.enums.EnumCashBackActivityItemRule; | |||
| import com.iformall.enums.EnumCashBackActivityRecordStatus; | |||
| import com.iformall.mapper.WxCashBackActivityItemMapper; | |||
| import com.iformall.mapper.WxCashBackActivityMapper; | |||
| @@ -24,6 +25,7 @@ import org.slf4j.LoggerFactory; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Service; | |||
| import java.math.BigDecimal; | |||
| import java.util.*; | |||
| import javax.servlet.http.HttpServletRequest; | |||
| @@ -158,6 +160,11 @@ public class WxCashBackActivityServiceImpl implements WxCashBackActivityService | |||
| public WxCashBackActivityItem getActivityItemById(Long id,String tenantId) { | |||
| return wxCashBackActivityItemMapper.selectById(id,tenantId); | |||
| } | |||
| @Override | |||
| public WxCashBackActivityRecord getActivityRecordById(Long id,String tenantId) { | |||
| return wxCashBackActivityRecordMapper.selectById(id,tenantId); | |||
| } | |||
| @Override | |||
| public void updateActivityStatus(WxCashBackActivity record) { | |||
| @@ -254,4 +261,27 @@ public class WxCashBackActivityServiceImpl implements WxCashBackActivityService | |||
| excelService.exportExcel(objectList, null, sheetName, objectCalss, sheetName+".xlsx", response, false); | |||
| } | |||
| @Override | |||
| public void auditRecord(WxCashBackActivityRecord record) { | |||
| wxCashBackActivityRecordMapper.updateStatus(record); | |||
| } | |||
| @Override | |||
| public void calcuteMoney(WxCashBackActivityRecord record) { | |||
| WxCashBackActivityItem item = wxCashBackActivityItemMapper.selectById(record.getItemId(), record.getTenantId()); | |||
| EnumCashBackActivityItemRule moneyRule = EnumCashBackActivityItemRule.getEnum(item.getMoneyRule()); | |||
| record.setCashRate(item.getTotalBackRate()); | |||
| record.setCashMoney(record.getOrderMoney().multiply(item.getTotalBackRate()).setScale(2,BigDecimal.ROUND_HALF_UP)); | |||
| if (moneyRule == EnumCashBackActivityItemRule.MALL_ONLY) { | |||
| record.setMallCashMoney(record.getCashMoney()); | |||
| record.setMerchantCashMoney(new BigDecimal(0)); | |||
| }else if(moneyRule == EnumCashBackActivityItemRule.MERCHANT_ONLY) { | |||
| record.setMallCashMoney(new BigDecimal(0)); | |||
| record.setMerchantCashMoney(record.getCashMoney()); | |||
| }else if (moneyRule == EnumCashBackActivityItemRule.SHARE) { | |||
| record.setMallCashMoney(record.getCashMoney().multiply(item.getMallBackRate()).setScale(2,BigDecimal.ROUND_HALF_UP)); | |||
| record.setMerchantCashMoney(record.getCashMoney().multiply(item.getMerchantBackRate()).setScale(2,BigDecimal.ROUND_HALF_UP)); | |||
| } | |||
| } | |||
| } | |||