| @@ -0,0 +1,155 @@ | |||
| package com.iformall.controller.market; | |||
| import com.github.pagehelper.PageInfo; | |||
| import com.iformall.annotation.ApiVersion; | |||
| import com.iformall.common.Result; | |||
| import com.iformall.common.ResultData; | |||
| import com.iformall.constant.SwaggerConstant; | |||
| import com.iformall.controller.base.BaseController; | |||
| import com.iformall.domain.po.WxVtwoActivityOrder; | |||
| import com.iformall.domain.po.base.BaseEntity.SortField; | |||
| import com.iformall.domain.po.base.TenantEntity; | |||
| import com.iformall.enums.EnumOfflineActivityRecordStatus; | |||
| import com.iformall.service.WxVtwoActivityOrderService; | |||
| import io.swagger.annotations.Api; | |||
| import io.swagger.annotations.ApiImplicitParam; | |||
| import io.swagger.annotations.ApiImplicitParams; | |||
| import io.swagger.annotations.ApiOperation; | |||
| import org.apache.commons.lang3.StringUtils; | |||
| import org.slf4j.Logger; | |||
| import org.slf4j.LoggerFactory; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.web.bind.annotation.*; | |||
| import javax.servlet.http.HttpServletRequest; | |||
| import javax.servlet.http.HttpServletResponse; | |||
| import java.util.Map; | |||
| /** | |||
| * @author alascor | |||
| * | |||
| */ | |||
| @RestController | |||
| @RequestMapping("/activityOrder") | |||
| @Api(description = "线下活动登记相关接口") | |||
| public class WxVtwoActivityOrderController extends BaseController { | |||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | |||
| @Autowired | |||
| private WxVtwoActivityOrderService wxVtwoActivityOrderService; | |||
| @ApiVersion(group = SwaggerConstant.V_A_2_0) | |||
| @ApiOperation("分页列表接口") | |||
| @GetMapping("list") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), | |||
| @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) | |||
| public ResultData list(@ModelAttribute WxVtwoActivityOrder activityOrder, Integer pageNum, Integer pageSize) { | |||
| if (null == activityOrder) activityOrder = new WxVtwoActivityOrder(); | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| activityOrder.updateTenantInfo(tenantInfo); | |||
| activityOrder.setSortColumns(SortField.CreateDate_DESC); | |||
| final PageInfo<WxVtwoActivityOrder> page = wxVtwoActivityOrderService.listAsPage(activityOrder, pageNum, pageSize); | |||
| return new ResultData(page); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_A_2_0) | |||
| @ApiOperation("新增修改接口") | |||
| @PostMapping("saveOrUpdate") | |||
| public ResultData saveOrUpdate(@RequestBody WxVtwoActivityOrder activityOrder) { | |||
| if(activityOrder.getId() == null){ | |||
| return new ResultData(Result.ERROR,"id不能为空"); | |||
| } | |||
| TenantEntity tenantEntity = getTenantInfo(); | |||
| activityOrder.updateTenantInfo(tenantEntity); | |||
| wxVtwoActivityOrderService.saveOrUpdate(activityOrder); | |||
| return new ResultData(); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_A_2_0) | |||
| @ApiOperation("获取待审批数量") | |||
| @GetMapping("waitAudiCount") | |||
| public ResultData waitAudiCount() { | |||
| Integer waitAudiCount = wxVtwoActivityOrderService.getWaitAudiCount(getTenantInfo()); | |||
| return new ResultData(waitAudiCount); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_A_2_0) | |||
| @ApiOperation("导出") | |||
| @GetMapping("/export") | |||
| public void export(@ModelAttribute WxVtwoActivityOrder activityOrder, HttpServletRequest request, HttpServletResponse response) { | |||
| if (null == activityOrder) activityOrder = new WxVtwoActivityOrder(); | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| activityOrder.updateTenantInfo(tenantInfo); | |||
| activityOrder.setSortColumns(SortField.CreateDate_DESC); | |||
| wxVtwoActivityOrderService.exportData(request,response,activityOrder); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_A_2_0) | |||
| @ApiOperation("审核通过") | |||
| @PostMapping("audiPass") | |||
| public ResultData audiPass(@RequestBody WxVtwoActivityOrder activityOrder) { | |||
| if(activityOrder.getId() == null){ | |||
| return new ResultData(Result.ERROR,"id 不能为空"); | |||
| } | |||
| TenantEntity tenantEntity = getTenantInfo(); | |||
| activityOrder.updateTenantInfo(tenantEntity); | |||
| activityOrder.setAuditStatus(EnumOfflineActivityRecordStatus.AUDI_SUCCESS.getCode()); | |||
| wxVtwoActivityOrderService.auditRecord(activityOrder,getUserId()); | |||
| return new ResultData(); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_A_2_0) | |||
| @ApiOperation("审核驳回") | |||
| @PostMapping("audtFail") | |||
| public ResultData audtFail(@RequestBody WxVtwoActivityOrder activityOrder) { | |||
| if(activityOrder.getId() == null){ | |||
| return new ResultData(Result.ERROR,"id 不能为空"); | |||
| } | |||
| if(StringUtils.isBlank(activityOrder.getAuditRemark())){ | |||
| return new ResultData(Result.ERROR,"驳回意见不能为空"); | |||
| } | |||
| TenantEntity tenantEntity = getTenantInfo(); | |||
| activityOrder.updateTenantInfo(tenantEntity); | |||
| activityOrder.setAuditStatus(EnumOfflineActivityRecordStatus.AUDT_FAIL.getCode()); | |||
| wxVtwoActivityOrderService.auditRecord(activityOrder,getUserId()); | |||
| return new ResultData(); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_A_2_0) | |||
| @ApiOperation("失效") | |||
| @PostMapping("invalid") | |||
| public ResultData invalid(@RequestBody WxVtwoActivityOrder activityOrder) { | |||
| if(activityOrder == null){ | |||
| return new ResultData(Result.ERROR,"id 不能为空"); | |||
| } | |||
| TenantEntity tenantEntity = getTenantInfo(); | |||
| activityOrder.updateTenantInfo(tenantEntity); | |||
| activityOrder.setAuditStatus(EnumOfflineActivityRecordStatus.INVALID.getCode()); | |||
| wxVtwoActivityOrderService.auditRecord(activityOrder,getUserId()); | |||
| return new ResultData(); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_A_2_0) | |||
| @ApiOperation("查询详情") | |||
| @GetMapping("getInfoById") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "id", value = "主键id", dataType = "Long", paramType = "query", required = true)}) | |||
| public ResultData getInfoById(Long id) { | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| WxVtwoActivityOrder activityOrder = wxVtwoActivityOrderService.getInfoById(id, tenantInfo.getTenantId()); | |||
| return new ResultData(activityOrder); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_A_2_0) | |||
| @ApiOperation("订单相关统计") | |||
| @GetMapping("statistics") | |||
| public ResultData statistics() { | |||
| Map<String,Object> statisticsMap = wxVtwoActivityOrderService.orderStatistics(getTenantInfo()); | |||
| return new ResultData(statisticsMap); | |||
| } | |||
| } | |||
| @@ -1,101 +1,101 @@ | |||
| package com.iformall.controller; | |||
| import com.github.pagehelper.PageInfo; | |||
| import com.iformall.common.Result; | |||
| import com.iformall.common.ResultData; | |||
| import com.iformall.domain.po.WxOfflineActivityRecord; | |||
| import com.iformall.domain.po.base.BaseEntity.SortField; | |||
| import com.iformall.domain.po.base.TenantEntity; | |||
| import com.iformall.enums.EnumOfflineActivityRecordStatus; | |||
| import com.iformall.exception.MallinkException; | |||
| import com.iformall.service.*; | |||
| import io.swagger.annotations.Api; | |||
| import io.swagger.annotations.ApiImplicitParam; | |||
| import io.swagger.annotations.ApiImplicitParams; | |||
| import io.swagger.annotations.ApiOperation; | |||
| import org.apache.commons.lang3.StringUtils; | |||
| import org.slf4j.Logger; | |||
| import org.slf4j.LoggerFactory; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.web.bind.annotation.*; | |||
| import java.util.Map; | |||
| /** | |||
| * @author alascor | |||
| * | |||
| */ | |||
| @RestController | |||
| @RequestMapping("/api/offlineRecord") | |||
| @Api(description = "线下活动登记相关接口") | |||
| public class WxOfflineActivityRecordController extends BaseController { | |||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | |||
| @Autowired | |||
| private WxOfflineActivityRecordService wxOfflineActivityRecordService; | |||
| @ApiOperation("分页列表接口") | |||
| @GetMapping("list") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), | |||
| @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) | |||
| public ResultData list(@ModelAttribute WxOfflineActivityRecord wxOfflineActivityRecord, Integer pageNum, Integer pageSize) { | |||
| if (null == wxOfflineActivityRecord) wxOfflineActivityRecord = new WxOfflineActivityRecord(); | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| wxOfflineActivityRecord.updateTenantInfo(tenantInfo); | |||
| wxOfflineActivityRecord.setSortColumns(SortField.CreateDate_DESC); | |||
| wxOfflineActivityRecord.setMerchantId(getLoginBUser().getMerchantId()); | |||
| final PageInfo<WxOfflineActivityRecord> page = wxOfflineActivityRecordService.listAsPage(wxOfflineActivityRecord, pageNum, pageSize); | |||
| return new ResultData(page); | |||
| } | |||
| @ApiOperation("新增修改接口") | |||
| @PostMapping("saveOrUpdate") | |||
| public ResultData saveOrUpdate(@RequestBody WxOfflineActivityRecord wxOfflineActivityRecord) { | |||
| if(StringUtils.isBlank(wxOfflineActivityRecord.getCusPhone())){ | |||
| return new ResultData(Result.ERROR,"客户手机号不能为空"); | |||
| } | |||
| if (null == wxOfflineActivityRecord.getOrderMoney() ) { | |||
| return new ResultData(Result.ERROR,"订单金额不能为空"); | |||
| } | |||
| TenantEntity tenantEntity = getTenantInfo(); | |||
| wxOfflineActivityRecord.updateTenantInfo(tenantEntity); | |||
| if(wxOfflineActivityRecord.getId() != null){ | |||
| WxOfflineActivityRecord record = wxOfflineActivityRecordService.getById(wxOfflineActivityRecord.getId(),wxOfflineActivityRecord.getTenantId()); | |||
| if(!EnumOfflineActivityRecordStatus.AUDT_FAIL.getCode().equals(record.getAuditStatus())){ | |||
| throw new MallinkException(Result.ERROR,"订单状态不允许修改"); | |||
| } | |||
| wxOfflineActivityRecord.setAuditRemark(""); | |||
| } | |||
| wxOfflineActivityRecord.setCreateBy(getMerchantBUserId()); | |||
| wxOfflineActivityRecord.setMerchantId(getLoginBUser().getMerchantId()); | |||
| wxOfflineActivityRecord.setAuditStatus(EnumOfflineActivityRecordStatus.AUDTING.getCode()); | |||
| wxOfflineActivityRecordService.saveOrUpdate(wxOfflineActivityRecord); | |||
| return new ResultData(); | |||
| } | |||
| @ApiOperation("查询当前信息详情") | |||
| @GetMapping("getInfoById") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "id", value = "主键id", dataType = "Long", paramType = "query", required = true)}) | |||
| public ResultData getInfoById(Long id) { | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| WxOfflineActivityRecord activity = wxOfflineActivityRecordService.getById(id, tenantInfo.getTenantId()); | |||
| return new ResultData(activity); | |||
| } | |||
| @ApiOperation("查询当前信息统计") | |||
| @GetMapping("statistics") | |||
| public ResultData statisticsCount(@ModelAttribute WxOfflineActivityRecord wxOfflineActivityRecord) { | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| wxOfflineActivityRecord.updateTenantInfo(tenantInfo); | |||
| wxOfflineActivityRecord.setMerchantId(getLoginBUser().getMerchantId()); | |||
| Map<String,Integer> statisticsMap = wxOfflineActivityRecordService.getStatistics(wxOfflineActivityRecord); | |||
| return new ResultData(statisticsMap); | |||
| } | |||
| } | |||
| //package com.iformall.controller; | |||
| // | |||
| //import com.github.pagehelper.PageInfo; | |||
| //import com.iformall.common.Result; | |||
| //import com.iformall.common.ResultData; | |||
| //import com.iformall.domain.po.WxOfflineActivityRecord; | |||
| //import com.iformall.domain.po.base.BaseEntity.SortField; | |||
| //import com.iformall.domain.po.base.TenantEntity; | |||
| //import com.iformall.enums.EnumOfflineActivityRecordStatus; | |||
| //import com.iformall.exception.MallinkException; | |||
| //import com.iformall.service.*; | |||
| //import io.swagger.annotations.Api; | |||
| //import io.swagger.annotations.ApiImplicitParam; | |||
| //import io.swagger.annotations.ApiImplicitParams; | |||
| //import io.swagger.annotations.ApiOperation; | |||
| //import org.apache.commons.lang3.StringUtils; | |||
| //import org.slf4j.Logger; | |||
| //import org.slf4j.LoggerFactory; | |||
| //import org.springframework.beans.factory.annotation.Autowired; | |||
| //import org.springframework.web.bind.annotation.*; | |||
| // | |||
| //import java.util.Map; | |||
| // | |||
| ///** | |||
| // * @author alascor | |||
| // * | |||
| // */ | |||
| //@RestController | |||
| //@RequestMapping("/api/offlineRecord") | |||
| //@Api(description = "线下活动登记相关接口") | |||
| //public class WxOfflineActivityRecordController extends BaseController { | |||
| // private final Logger logger = LoggerFactory.getLogger(this.getClass()); | |||
| // | |||
| // @Autowired | |||
| // private WxOfflineActivityRecordService wxOfflineActivityRecordService; | |||
| // | |||
| // | |||
| // @ApiOperation("分页列表接口") | |||
| // @GetMapping("list") | |||
| // @ApiImplicitParams({ | |||
| // @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), | |||
| // @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) | |||
| // public ResultData list(@ModelAttribute WxOfflineActivityRecord wxOfflineActivityRecord, Integer pageNum, Integer pageSize) { | |||
| // if (null == wxOfflineActivityRecord) wxOfflineActivityRecord = new WxOfflineActivityRecord(); | |||
| // TenantEntity tenantInfo = getTenantInfo(); | |||
| // wxOfflineActivityRecord.updateTenantInfo(tenantInfo); | |||
| // wxOfflineActivityRecord.setSortColumns(SortField.CreateDate_DESC); | |||
| // wxOfflineActivityRecord.setMerchantId(getLoginBUser().getMerchantId()); | |||
| // final PageInfo<WxOfflineActivityRecord> page = wxOfflineActivityRecordService.listAsPage(wxOfflineActivityRecord, pageNum, pageSize); | |||
| // return new ResultData(page); | |||
| // } | |||
| // | |||
| // @ApiOperation("新增修改接口") | |||
| // @PostMapping("saveOrUpdate") | |||
| // public ResultData saveOrUpdate(@RequestBody WxOfflineActivityRecord wxOfflineActivityRecord) { | |||
| // if(StringUtils.isBlank(wxOfflineActivityRecord.getCusPhone())){ | |||
| // return new ResultData(Result.ERROR,"客户手机号不能为空"); | |||
| // } | |||
| // if (null == wxOfflineActivityRecord.getOrderMoney() ) { | |||
| // return new ResultData(Result.ERROR,"订单金额不能为空"); | |||
| // } | |||
| // TenantEntity tenantEntity = getTenantInfo(); | |||
| // wxOfflineActivityRecord.updateTenantInfo(tenantEntity); | |||
| // | |||
| // if(wxOfflineActivityRecord.getId() != null){ | |||
| // WxOfflineActivityRecord record = wxOfflineActivityRecordService.getById(wxOfflineActivityRecord.getId(),wxOfflineActivityRecord.getTenantId()); | |||
| // if(!EnumOfflineActivityRecordStatus.AUDT_FAIL.getCode().equals(record.getAuditStatus())){ | |||
| // throw new MallinkException(Result.ERROR,"订单状态不允许修改"); | |||
| // } | |||
| // wxOfflineActivityRecord.setAuditRemark(""); | |||
| // } | |||
| // wxOfflineActivityRecord.setCreateBy(getMerchantBUserId()); | |||
| // wxOfflineActivityRecord.setMerchantId(getLoginBUser().getMerchantId()); | |||
| // wxOfflineActivityRecord.setAuditStatus(EnumOfflineActivityRecordStatus.AUDTING.getCode()); | |||
| // wxOfflineActivityRecordService.saveOrUpdate(wxOfflineActivityRecord); | |||
| // return new ResultData(); | |||
| // } | |||
| // | |||
| // @ApiOperation("查询当前信息详情") | |||
| // @GetMapping("getInfoById") | |||
| // @ApiImplicitParams({ | |||
| // @ApiImplicitParam(name = "id", value = "主键id", dataType = "Long", paramType = "query", required = true)}) | |||
| // public ResultData getInfoById(Long id) { | |||
| // TenantEntity tenantInfo = getTenantInfo(); | |||
| // WxOfflineActivityRecord activity = wxOfflineActivityRecordService.getById(id, tenantInfo.getTenantId()); | |||
| // return new ResultData(activity); | |||
| // } | |||
| // | |||
| // @ApiOperation("查询当前信息统计") | |||
| // @GetMapping("statistics") | |||
| // public ResultData statisticsCount(@ModelAttribute WxOfflineActivityRecord wxOfflineActivityRecord) { | |||
| // TenantEntity tenantInfo = getTenantInfo(); | |||
| // wxOfflineActivityRecord.updateTenantInfo(tenantInfo); | |||
| // wxOfflineActivityRecord.setMerchantId(getLoginBUser().getMerchantId()); | |||
| // Map<String,Integer> statisticsMap = wxOfflineActivityRecordService.getStatistics(wxOfflineActivityRecord); | |||
| // return new ResultData(statisticsMap); | |||
| // } | |||
| // | |||
| // | |||
| // | |||
| //} | |||
| @@ -0,0 +1,106 @@ | |||
| package com.iformall.controller; | |||
| import com.github.pagehelper.PageInfo; | |||
| import com.iformall.annotation.ApiVersion; | |||
| import com.iformall.common.Result; | |||
| import com.iformall.common.ResultData; | |||
| import com.iformall.constant.SwaggerConstant; | |||
| import com.iformall.domain.po.WxVtwoActivityOrder; | |||
| import com.iformall.domain.po.base.BaseEntity.SortField; | |||
| import com.iformall.domain.po.base.TenantEntity; | |||
| import com.iformall.enums.EnumOfflineActivityRecordStatus; | |||
| import com.iformall.exception.MallinkException; | |||
| import com.iformall.service.WxVtwoActivityOrderService; | |||
| import io.swagger.annotations.Api; | |||
| import io.swagger.annotations.ApiImplicitParam; | |||
| import io.swagger.annotations.ApiImplicitParams; | |||
| import io.swagger.annotations.ApiOperation; | |||
| import org.apache.commons.lang3.StringUtils; | |||
| import org.slf4j.Logger; | |||
| import org.slf4j.LoggerFactory; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.web.bind.annotation.*; | |||
| import java.util.Map; | |||
| /** | |||
| * @author alascor | |||
| * | |||
| */ | |||
| @RestController | |||
| @RequestMapping("/api/offlineRecord") | |||
| @Api(description = "线下活动订单相关接口") | |||
| public class WxVtwoActivityOrderController extends BaseController { | |||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | |||
| @Autowired | |||
| private WxVtwoActivityOrderService wxVtwoActivityOrderService; | |||
| @ApiVersion(group = SwaggerConstant.V_A_2_0) | |||
| @ApiOperation("分页列表接口") | |||
| @GetMapping("list") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), | |||
| @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) | |||
| public ResultData list(@ModelAttribute WxVtwoActivityOrder activityOrder, Integer pageNum, Integer pageSize) { | |||
| if (null == activityOrder) activityOrder = new WxVtwoActivityOrder(); | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| activityOrder.updateTenantInfo(tenantInfo); | |||
| activityOrder.setSortColumns(SortField.CreateDate_DESC); | |||
| activityOrder.setMerchantId(getLoginBUser().getMerchantId()); | |||
| final PageInfo<WxVtwoActivityOrder> page = wxVtwoActivityOrderService.listAsPage(activityOrder, pageNum, pageSize); | |||
| return new ResultData(page); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_A_2_0) | |||
| @ApiOperation("新增修改接口") | |||
| @PostMapping("saveOrUpdate") | |||
| public ResultData saveOrUpdate(@RequestBody WxVtwoActivityOrder activityOrder) { | |||
| if(StringUtils.isBlank(activityOrder.getCusPhone())){ | |||
| return new ResultData(Result.ERROR,"客户手机号不能为空"); | |||
| } | |||
| if (null == activityOrder.getOrderMoney() ) { | |||
| return new ResultData(Result.ERROR,"订单金额不能为空"); | |||
| } | |||
| TenantEntity tenantEntity = getTenantInfo(); | |||
| activityOrder.updateTenantInfo(tenantEntity); | |||
| if(activityOrder.getId() != null){ | |||
| WxVtwoActivityOrder record = wxVtwoActivityOrderService.getById(activityOrder.getId(),activityOrder.getTenantId()); | |||
| if(!EnumOfflineActivityRecordStatus.AUDT_FAIL.getCode().equals(record.getAuditStatus())){ | |||
| throw new MallinkException(Result.ERROR,"订单状态不允许修改"); | |||
| } | |||
| activityOrder.setAuditRemark(""); | |||
| } | |||
| activityOrder.setCreateBy(getMerchantBUserId()); | |||
| activityOrder.setMerchantId(getLoginBUser().getMerchantId()); | |||
| activityOrder.setAuditStatus(EnumOfflineActivityRecordStatus.AUDTING.getCode()); | |||
| wxVtwoActivityOrderService.saveOrUpdate(activityOrder); | |||
| return new ResultData(); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_A_2_0) | |||
| @ApiOperation("查询当前信息详情") | |||
| @GetMapping("getInfoById") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "id", value = "主键id", dataType = "Long", paramType = "query", required = true)}) | |||
| public ResultData getInfoById(Long id) { | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| WxVtwoActivityOrder activityOrder = wxVtwoActivityOrderService.getById(id, tenantInfo.getTenantId()); | |||
| return new ResultData(activityOrder); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_A_2_0) | |||
| @ApiOperation("查询当前信息统计") | |||
| @GetMapping("statistics") | |||
| public ResultData statisticsCount(@ModelAttribute WxVtwoActivityOrder activityOrder) { | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| activityOrder.updateTenantInfo(tenantInfo); | |||
| activityOrder.setMerchantId(getLoginBUser().getMerchantId()); | |||
| Map<String,Integer> statisticsMap = wxVtwoActivityOrderService.getStatistics(activityOrder); | |||
| return new ResultData(statisticsMap); | |||
| } | |||
| } | |||
| @@ -1,6 +1,8 @@ | |||
| package com.iformall.domain.po; | |||
| import cn.afterturn.easypoi.excel.annotation.Excel; | |||
| import com.alibaba.fastjson.JSON; | |||
| import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; | |||
| import com.baomidou.mybatisplus.annotation.IdType; | |||
| import com.baomidou.mybatisplus.annotation.TableField; | |||
| import com.baomidou.mybatisplus.annotation.TableId; | |||
| @@ -34,12 +36,14 @@ public class WxVtwoActivityOrder extends TenantEntity { | |||
| /** | |||
| * 会员卡号 | |||
| */ | |||
| @Excel(name = "Vip卡号", width = 20, orderNum = "17") | |||
| @TableField(value = "vip_num") | |||
| private String vipNum; | |||
| /** | |||
| * 客户姓名 | |||
| */ | |||
| @Excel(name = "客户姓名", width = 20, orderNum = "15") | |||
| @TableField(value = "cus_name") | |||
| private String cusName; | |||
| @@ -52,6 +56,7 @@ public class WxVtwoActivityOrder extends TenantEntity { | |||
| /** | |||
| * 客户电话 | |||
| */ | |||
| @Excel(name = "客户电话", width = 20, orderNum = "16") | |||
| @TableField(value = "cus_phone") | |||
| private String cusPhone; | |||
| @@ -64,6 +69,7 @@ public class WxVtwoActivityOrder extends TenantEntity { | |||
| /** | |||
| * 客户地址 | |||
| */ | |||
| @Excel(name = "订单地址", width = 20, orderNum = "4") | |||
| @TableField(value = "cus_address") | |||
| private String cusAddress; | |||
| @@ -76,6 +82,7 @@ public class WxVtwoActivityOrder extends TenantEntity { | |||
| /** | |||
| * | |||
| */ | |||
| @Excel(name = "所属军团", width = 20, orderNum = "18") | |||
| @TableField(value = "legion_name") | |||
| private String legionName; | |||
| @@ -88,6 +95,7 @@ public class WxVtwoActivityOrder extends TenantEntity { | |||
| /** | |||
| * | |||
| */ | |||
| @Excel(name = "所属联盟", width = 20, orderNum = "19") | |||
| @TableField(value = "union_name") | |||
| private String unionName; | |||
| @@ -100,14 +108,16 @@ public class WxVtwoActivityOrder extends TenantEntity { | |||
| /** | |||
| * 订单号 | |||
| */ | |||
| @Excel(name = "订单号", width = 20, orderNum = "1") | |||
| @TableField(value = "order_no") | |||
| private String orderNo; | |||
| /** | |||
| * 订单金额 | |||
| */ | |||
| @TableField(value = "order_amount") | |||
| private BigDecimal orderAmount; | |||
| @Excel(name = "订单金额(元)", width = 20, orderNum = "2") | |||
| @TableField(value = "order_money") | |||
| private BigDecimal orderMoney; | |||
| /** | |||
| * 商户编号 | |||
| @@ -115,10 +125,10 @@ public class WxVtwoActivityOrder extends TenantEntity { | |||
| @TableField(value = "merchant_id") | |||
| private Long merchantId; | |||
| // @Excel(name = "商户名称", width = 20, orderNum = "6") | |||
| @Excel(name = "商户名称", width = 20, orderNum = "5") | |||
| @TableField(exist = false) | |||
| private String merchantName; | |||
| // @Excel(name="商铺号",width = 20,orderNum = "7") | |||
| @Excel(name="商铺号",width = 20,orderNum = "6") | |||
| @TableField(exist = false) | |||
| private String shopNumber; | |||
| @@ -132,6 +142,7 @@ public class WxVtwoActivityOrder extends TenantEntity { | |||
| */ | |||
| @TableField(value = "business_id") | |||
| private Integer businessId; | |||
| @Excel(name="业态",width = 20,orderNum = "7") | |||
| @TableField(exist = false) | |||
| private String businessName; | |||
| @@ -140,28 +151,54 @@ public class WxVtwoActivityOrder extends TenantEntity { | |||
| */ | |||
| @TableField(value = "lottery_num") | |||
| private String lotteryNum; | |||
| @TableField(exist = false) | |||
| private List<String> lotteryNumList; | |||
| public List<String> getLotteryNumList() { | |||
| if(StringUtils.isNotBlank(lotteryNum)){ | |||
| try { | |||
| List<String> stringList = JSON.parseArray(lotteryNum, String.class); | |||
| stringList.removeIf(String::isEmpty); | |||
| lotteryNumList = stringList.isEmpty() ? null : stringList; | |||
| }catch(Exception e){} | |||
| } | |||
| return lotteryNumList; | |||
| } | |||
| @Excel(name = "抽奖券编码", width = 20, orderNum = "8") | |||
| @TableField(exist = false) | |||
| private String lotteryNumStr; | |||
| public String getLotteryNumStr() { | |||
| if(this.getLotteryNumList() != null && !lotteryNumList.isEmpty()){ | |||
| lotteryNumStr = String.join(",", lotteryNumList); | |||
| } | |||
| return lotteryNumStr; | |||
| } | |||
| /** | |||
| * 抽奖券数量 | |||
| */ | |||
| @Excel(name = "抽奖券数量", width = 20, orderNum = "9") | |||
| @TableField(value = "lottery_count") | |||
| private Integer lotteryCount; | |||
| /** | |||
| * 周年庆抽奖编码 | |||
| */ | |||
| @Excel(name = "周年庆抽奖编码", width = 20, orderNum = "10") | |||
| @TableField(value = "anniversary_lottery_num") | |||
| private String anniversaryLotteryNum; | |||
| /** | |||
| * 审批状态 | |||
| */ | |||
| @Excel(name = "订单状态", width = 20, orderNum = "3", replace = {"审核中_0", "已审批_1", "已驳回_2", "已退单_3", "已发奖_10"}) | |||
| @TableField(value = "audit_status") | |||
| private Integer auditStatus; | |||
| /** | |||
| * 审批意见 | |||
| */ | |||
| @Excel(name = "审核意见", width = 20, orderNum = "14") | |||
| @TableField(value = "audit_remark") | |||
| private String auditRemark; | |||
| @@ -170,16 +207,21 @@ public class WxVtwoActivityOrder extends TenantEntity { | |||
| */ | |||
| @TableField(value = "audit_by") | |||
| private Long auditBy; | |||
| @Excel(name = "审核人", width = 20, orderNum = "12") | |||
| @TableField(exist = false) | |||
| private String auditByName; | |||
| /** | |||
| * 审核时间 | |||
| */ | |||
| @Excel(name = "提交时间", format = "yyyy-MM-dd HH:mm:ss", width = 20, orderNum = "13") | |||
| @TableField(value = "audit_time") | |||
| private Date auditTime; | |||
| /** | |||
| * 积分变动值 | |||
| */ | |||
| @Excel(name = "积分变动值", width = 20, orderNum = "20") | |||
| @TableField(value = "increased_points") | |||
| private Integer increasedPoints; | |||
| @@ -188,13 +230,11 @@ public class WxVtwoActivityOrder extends TenantEntity { | |||
| */ | |||
| @TableField(value = "create_by") | |||
| private Long createBy; | |||
| @Excel(name = "审核人", width = 20, orderNum = "14") | |||
| @TableField(exist = false) | |||
| private String auditByName; | |||
| /** | |||
| * 创建时间 | |||
| */ | |||
| @Excel(name = "提交时间", format = "yyyy-MM-dd HH:mm:ss", width = 20, orderNum = "11") | |||
| @TableField(value = "create_date") | |||
| private Date createDate; | |||
| @@ -12,5 +12,5 @@ public class WxVtwoActivityOrderStatistics implements Serializable { | |||
| private Integer auditStatus; | |||
| private Integer count; | |||
| private BigDecimal sumAmount; | |||
| private BigDecimal sumMoney; | |||
| } | |||
| @@ -14,7 +14,7 @@ public class WxVtwoOrderBusinessStatistics implements Serializable { | |||
| private String businessName; | |||
| private Integer businessCount; | |||
| private BigDecimal sumAmount; | |||
| private BigDecimal sumMoney; | |||
| private Double moneyRatio; | |||
| @@ -14,6 +14,6 @@ public class WxVtwoOrderCountStatistics implements Serializable { | |||
| private Integer userCount; | |||
| private Integer orderCount; | |||
| private BigDecimal sumAmount; | |||
| private BigDecimal sumMoney; | |||
| private Integer merchantCount; | |||
| } | |||
| @@ -5,6 +5,7 @@ import com.iformall.domain.po.WxVtwoActivitySpecialTopic; | |||
| import com.baomidou.mybatisplus.core.mapper.BaseMapper; | |||
| import io.lettuce.core.dynamic.annotation.Param; | |||
| import java.util.Date; | |||
| import java.util.List; | |||
| /** | |||
| @@ -20,6 +21,8 @@ public interface WxVtwoActivitySpecialTopicMapper extends CommonMapper<WxVtwoAct | |||
| int selectCreditCount(WxVtwoActivitySpecialTopic specialTopic); | |||
| WxVtwoActivitySpecialTopic selectById(@Param("id") Long id, @Param("tenantId")String tenantId); | |||
| WxVtwoActivitySpecialTopic selectCreditOne(@Param("tenantId")String tenantId,@Param("creditOnOff") Integer id, @Param("orderDate") Date orderDate); | |||
| } | |||
| @@ -18,6 +18,8 @@ public interface WxVtwoSpecialTopicActivityMapper extends CommonMapper<WxVtwoSpe | |||
| void insertList(@Param("activityList") List<WxVtwoSpecialTopicActivity> activityList); | |||
| List<WxVtwoSpecialTopicActivity> findList(WxVtwoSpecialTopicActivity specialTopicActivity); | |||
| void updateByActivity(WxVtwoSpecialTopicActivity specialTopicActivity); | |||
| } | |||
| @@ -1,12 +1,10 @@ | |||
| package com.iformall.service; | |||
| import com.iformall.domain.po.WxLegionActivity; | |||
| import com.iformall.domain.po.WxLegionActivityOfflineConfig; | |||
| import com.iformall.domain.po.*; | |||
| import com.baomidou.mybatisplus.extension.service.IService; | |||
| import com.iformall.domain.po.WxLegionActivityOrder; | |||
| import com.iformall.domain.po.WxOfflineActivity; | |||
| import java.util.List; | |||
| import java.util.Map; | |||
| /** | |||
| * @author xiaohu | |||
| @@ -15,11 +13,13 @@ import java.util.List; | |||
| */ | |||
| public interface WxLegionActivityOfflineConfigService { | |||
| void handleOfflineConfig(WxLegionActivity wxLegionActivity); | |||
| List<WxOfflineActivity> getOfflineActivityList(WxLegionActivity wxLegionActivity); | |||
| // void handleOfflineConfig(WxLegionActivity wxLegionActivity); | |||
| // | |||
| // List<WxOfflineActivity> getOfflineActivityList(WxLegionActivity wxLegionActivity); | |||
| void syncOfflineActivityRecord(WxLegionActivityOrder legionActivityOrder); | |||
| void syncOfflineActivityRecord(List<WxLegionActivityOrder> wxLegionActivityOrders); | |||
| void syncOfflineActivityOrder(WxLegionActivityUser user, WxLegionActivityOrder legionActivityOrder, Map<Long, String> legionConfigMap); | |||
| } | |||
| @@ -1,7 +1,14 @@ | |||
| package com.iformall.service; | |||
| import com.github.pagehelper.PageInfo; | |||
| import com.iformall.domain.po.WxVtwoActivityOrder; | |||
| import com.baomidou.mybatisplus.extension.service.IService; | |||
| import com.iformall.domain.po.base.TenantEntity; | |||
| import javax.servlet.http.HttpServletRequest; | |||
| import javax.servlet.http.HttpServletResponse; | |||
| import java.util.List; | |||
| import java.util.Map; | |||
| /** | |||
| * @author xiaohu | |||
| @@ -10,4 +17,23 @@ import com.baomidou.mybatisplus.extension.service.IService; | |||
| */ | |||
| public interface WxVtwoActivityOrderService extends IService<WxVtwoActivityOrder> { | |||
| PageInfo<WxVtwoActivityOrder> listAsPage(WxVtwoActivityOrder record, Integer pageNum, Integer pageSize); | |||
| void handlerList(TenantEntity tenantEntity, List<WxVtwoActivityOrder> recordList); | |||
| WxVtwoActivityOrder getById(Long id, String tenantId); | |||
| WxVtwoActivityOrder getInfoById(Long id, String tenantId); | |||
| Map<String, Integer> getStatistics(WxVtwoActivityOrder record); | |||
| void auditRecord(WxVtwoActivityOrder record, Long userId); | |||
| void saveCreditHistory(WxVtwoActivityOrder record); | |||
| Map<String, Object> orderStatistics(TenantEntity tenantInfo); | |||
| void exportData(HttpServletRequest request, HttpServletResponse response, WxVtwoActivityOrder record); | |||
| Integer getWaitAudiCount(TenantEntity tenantInfo); | |||
| } | |||
| @@ -1,8 +1,12 @@ | |||
| package com.iformall.service; | |||
| import com.github.pagehelper.PageInfo; | |||
| import com.iformall.domain.po.WxVtwoActivityOrder; | |||
| import com.iformall.domain.po.WxVtwoActivitySpecialTopic; | |||
| import com.baomidou.mybatisplus.extension.service.IService; | |||
| import com.iformall.domain.po.base.TenantEntity; | |||
| import java.util.Date; | |||
| /** | |||
| * @author xiaohu | |||
| @@ -16,4 +20,6 @@ public interface WxVtwoActivitySpecialTopicService extends IService<WxVtwoActivi | |||
| int selectCreditCount(WxVtwoActivitySpecialTopic specialTopic); | |||
| WxVtwoActivitySpecialTopic getInfoById(Long id, String tenantId); | |||
| WxVtwoActivitySpecialTopic selectCreditOne(TenantEntity tenantEntity, Date createDate); | |||
| } | |||
| @@ -7,11 +7,8 @@ import com.iformall.enums.EnumOfflineActivityRecordStatus; | |||
| import com.iformall.mapper.WxLegionActivityOrderMapper; | |||
| import com.iformall.mapper.WxOfflineActivityMapper; | |||
| import com.iformall.mapper.WxOfflineActivityRecordMapper; | |||
| import com.iformall.service.WxLegionActivityOfflineConfigService; | |||
| import com.iformall.service.*; | |||
| import com.iformall.mapper.WxLegionActivityOfflineConfigMapper; | |||
| import com.iformall.service.WxMerchantService; | |||
| import com.iformall.service.WxOfflineActivityRecordService; | |||
| import com.iformall.service.WxOfflineActivityService; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Service; | |||
| import org.springframework.transaction.annotation.Transactional; | |||
| @@ -27,11 +24,11 @@ import java.util.stream.Collectors; | |||
| @Service | |||
| public class WxLegionActivityOfflineConfigServiceImpl implements WxLegionActivityOfflineConfigService{ | |||
| @Autowired | |||
| private WxLegionActivityOfflineConfigMapper wxLegionActivityOfflineConfigMapper; | |||
| @Autowired | |||
| private WxOfflineActivityMapper wxOfflineActivityMapper; | |||
| // @Autowired | |||
| // private WxLegionActivityOfflineConfigMapper wxLegionActivityOfflineConfigMapper; | |||
| // | |||
| // @Autowired | |||
| // private WxOfflineActivityMapper wxOfflineActivityMapper; | |||
| @Autowired | |||
| private WxOfflineActivityRecordMapper wxOfflineActivityRecordMapper; | |||
| @@ -40,41 +37,44 @@ public class WxLegionActivityOfflineConfigServiceImpl implements WxLegionActivit | |||
| private WxOfflineActivityRecordService wxOfflineActivityRecordService; | |||
| @Autowired | |||
| private WxMerchantService wxMerchantService; | |||
| @Override | |||
| public void handleOfflineConfig(WxLegionActivity wxLegionActivity) { | |||
| wxLegionActivityOfflineConfigMapper.deleteByLegionActivity(wxLegionActivity.getId(),wxLegionActivity.getTenantId()); | |||
| if(wxLegionActivity.getOfflineActivityList() == null || wxLegionActivity.getOfflineActivityList().isEmpty()){ | |||
| return; | |||
| } | |||
| final IdWorker idWorker = IdWorker.get(); | |||
| List<WxLegionActivityOfflineConfig> legionActivityOfflineConfigList = new ArrayList<>(); | |||
| for (WxOfflineActivity wxOfflineActivity : wxLegionActivity.getOfflineActivityList()) { | |||
| WxLegionActivityOfflineConfig wxLegionActivityOfflineConfig = new WxLegionActivityOfflineConfig(); | |||
| wxLegionActivityOfflineConfig.setId(idWorker.nextId()); | |||
| wxLegionActivityOfflineConfig.updateTenantInfo(wxLegionActivity); | |||
| wxLegionActivityOfflineConfig.setLegionActivityId(wxLegionActivity.getId()); | |||
| wxLegionActivityOfflineConfig.setOfflineActivityId(wxOfflineActivity.getId()); | |||
| legionActivityOfflineConfigList.add(wxLegionActivityOfflineConfig); | |||
| } | |||
| private WxVtwoActivityOrderService wxVtwoActivityOrderService; | |||
| wxLegionActivityOfflineConfigMapper.insertList(legionActivityOfflineConfigList); | |||
| } | |||
| @Override | |||
| public List<WxOfflineActivity> getOfflineActivityList(WxLegionActivity wxLegionActivity) { | |||
| List<Long> OfflineActivityIds = wxLegionActivityOfflineConfigMapper.getOfflineActivityIds(wxLegionActivity.getId(),wxLegionActivity.getTenantId()); | |||
| if(OfflineActivityIds == null || OfflineActivityIds.isEmpty()){ | |||
| return Collections.emptyList(); | |||
| } | |||
| WxOfflineActivity wxOfflineActivity = new WxOfflineActivity(); | |||
| wxOfflineActivity.updateTenantInfo(wxLegionActivity); | |||
| wxOfflineActivity.setIds(OfflineActivityIds); | |||
| @Autowired | |||
| private WxMerchantService wxMerchantService; | |||
| return wxOfflineActivityMapper.findList(wxOfflineActivity); | |||
| } | |||
| // @Override | |||
| // public void handleOfflineConfig(WxLegionActivity wxLegionActivity) { | |||
| // wxLegionActivityOfflineConfigMapper.deleteByLegionActivity(wxLegionActivity.getId(),wxLegionActivity.getTenantId()); | |||
| // if(wxLegionActivity.getOfflineActivityList() == null || wxLegionActivity.getOfflineActivityList().isEmpty()){ | |||
| // return; | |||
| // } | |||
| // final IdWorker idWorker = IdWorker.get(); | |||
| // List<WxLegionActivityOfflineConfig> legionActivityOfflineConfigList = new ArrayList<>(); | |||
| // for (WxOfflineActivity wxOfflineActivity : wxLegionActivity.getOfflineActivityList()) { | |||
| // WxLegionActivityOfflineConfig wxLegionActivityOfflineConfig = new WxLegionActivityOfflineConfig(); | |||
| // wxLegionActivityOfflineConfig.setId(idWorker.nextId()); | |||
| // wxLegionActivityOfflineConfig.updateTenantInfo(wxLegionActivity); | |||
| // wxLegionActivityOfflineConfig.setLegionActivityId(wxLegionActivity.getId()); | |||
| // wxLegionActivityOfflineConfig.setOfflineActivityId(wxOfflineActivity.getId()); | |||
| // legionActivityOfflineConfigList.add(wxLegionActivityOfflineConfig); | |||
| // } | |||
| // | |||
| // wxLegionActivityOfflineConfigMapper.insertList(legionActivityOfflineConfigList); | |||
| // } | |||
| // | |||
| // @Override | |||
| // public List<WxOfflineActivity> getOfflineActivityList(WxLegionActivity wxLegionActivity) { | |||
| // | |||
| // List<Long> OfflineActivityIds = wxLegionActivityOfflineConfigMapper.getOfflineActivityIds(wxLegionActivity.getId(),wxLegionActivity.getTenantId()); | |||
| // if(OfflineActivityIds == null || OfflineActivityIds.isEmpty()){ | |||
| // return Collections.emptyList(); | |||
| // } | |||
| // WxOfflineActivity wxOfflineActivity = new WxOfflineActivity(); | |||
| // wxOfflineActivity.updateTenantInfo(wxLegionActivity); | |||
| // wxOfflineActivity.setIds(OfflineActivityIds); | |||
| // | |||
| // return wxOfflineActivityMapper.findList(wxOfflineActivity); | |||
| // } | |||
| @Override | |||
| @Transactional(rollbackFor = Exception.class) | |||
| @@ -126,7 +126,6 @@ public class WxLegionActivityOfflineConfigServiceImpl implements WxLegionActivit | |||
| } | |||
| private WxOfflineActivityRecord createOfflineActivityRecord(WxLegionActivityOrder legionActivityOrder) { | |||
| WxOfflineActivityRecord activityRecord = new WxOfflineActivityRecord(); | |||
| activityRecord.updateTenantInfo(legionActivityOrder); | |||
| @@ -155,6 +154,48 @@ public class WxLegionActivityOfflineConfigServiceImpl implements WxLegionActivit | |||
| return activityRecord; | |||
| } | |||
| @Override | |||
| public void syncOfflineActivityOrder(WxLegionActivityUser user, WxLegionActivityOrder legionActivityOrder, Map<Long, String> legionConfigMap) { | |||
| WxVtwoActivityOrder order = new WxVtwoActivityOrder(); | |||
| order.updateTenantInfo(legionActivityOrder); | |||
| order.setFromUserId(user.getId()); | |||
| order.setVipNum(user.getVipNum()); | |||
| order.setCusName(legionActivityOrder.getCusName()); | |||
| order.setRealCusName(user.getName()); | |||
| order.setCusPhone(user.getPhone()); | |||
| order.setCusAddress(legionActivityOrder.getCusAddress()); | |||
| order.setLegionId(user.getLegionId()); | |||
| if(order.getLegionId() == null || order.getLegionId() == 0){ | |||
| order.setLegionName("无军团"); | |||
| }else{ | |||
| order.setLegionName(legionConfigMap.get(order.getLegionId())); | |||
| } | |||
| order.setUnionId(user.getUnionId()); | |||
| if(order.getUnionId() == null || order.getUnionId() == 0){ | |||
| order.setUnionName("无联盟"); | |||
| }else{ | |||
| order.setUnionName(legionConfigMap.get(order.getUnionId())); | |||
| } | |||
| order.setFromOrderId(legionActivityOrder.getId()); | |||
| order.setOrderNo(legionActivityOrder.getOrderNo()); | |||
| order.setOrderMoney(legionActivityOrder.getOrderMoney()); | |||
| order.setMerchantId(legionActivityOrder.getMerchantId()); | |||
| order.setLotteryNum(legionActivityOrder.getLotteryNum()); | |||
| order.setLotteryCount(legionActivityOrder.getLotteryCount()); | |||
| order.setAnniversaryLotteryNum(legionActivityOrder.getAnniversaryLotteryNum()); | |||
| order.setAuditStatus(EnumOfflineActivityRecordStatus.AUDI_SUCCESS.getCode()); | |||
| order.setAuditRemark(legionActivityOrder.getAuditRemark()); | |||
| order.setAuditBy(legionActivityOrder.getAuditBy()); | |||
| order.setAuditTime(legionActivityOrder.getAuditTime()); | |||
| order.setCreateBy(legionActivityOrder.getCreateBy()); | |||
| order.setCreateDate(legionActivityOrder.getCreateDate()); | |||
| order.setUpdateDate(legionActivityOrder.getUpdateDate()); | |||
| wxVtwoActivityOrderService.saveOrUpdate(order); | |||
| wxVtwoActivityOrderService.saveCreditHistory(order); | |||
| } | |||
| } | |||
| @@ -368,8 +368,15 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe | |||
| Integer upd = wxLegionActivityOrderMapper.updateAuditStatus(wxLegionActivityOrder); | |||
| if(upd == 1 && EnumLegionActivityOrderStatus.AUDI_SUCCESS.getCode().equals(wxLegionActivityOrder.getAuditStatus())){ | |||
| //同步订单 | |||
| WxLegionActivityOrder legionActivityOrder = wxLegionActivityOrderMapper.selectById(wxLegionActivityOrder.getId(), wxLegionActivityOrder.getTenantId()); | |||
| WxLegionActivityConfig legionConfigQ = new WxLegionActivityConfig(); | |||
| legionConfigQ.updateTenantInfo(legionActivityOrder); | |||
| legionConfigQ.setActivityId(legionActivityOrder.getActivityId()); | |||
| Map<Long, String> legionConfigMap = wxLegionActivityConfigService.getLegionConfigMap(legionConfigQ); | |||
| WxLegionActivityUser user = wxLegionActivityUserMapper.selectById(legionActivityOrder.getCusId(), legionActivityOrder.getTenantId()); | |||
| legionActivityOrder.setCusPhone(user.getPhone()); | |||
| legionActivityOrder.setCusVipNum(user.getVipNum()); | |||
| @@ -382,7 +389,7 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe | |||
| legionActivityOrder.setAuditTime(wxLegionActivityOrder.getAuditTime()); | |||
| legionActivityOrder.setUpdateDate(wxLegionActivityOrder.getUpdateDate()); | |||
| wxLegionActivityOfflineConfigService.syncOfflineActivityRecord(legionActivityOrder); | |||
| wxLegionActivityOfflineConfigService.syncOfflineActivityOrder(user,legionActivityOrder,legionConfigMap); | |||
| } | |||
| } | |||
| @@ -701,6 +708,11 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe | |||
| wxLegionActivityOrderUpd.setUpdateDate(now); | |||
| Integer upd = wxLegionActivityOrderMapper.updateAuditStatus(wxLegionActivityOrderUpd); | |||
| WxLegionActivityConfig legionConfigQ = new WxLegionActivityConfig(); | |||
| legionConfigQ.updateTenantInfo(syncOrders.get(0)); | |||
| legionConfigQ.setActivityId(syncOrders.get(0).getActivityId()); | |||
| Map<Long, String> legionConfigMap = wxLegionActivityConfigService.getLegionConfigMap(legionConfigQ); | |||
| List<Long> userIds = syncOrders.stream().map(WxLegionActivityOrder::getCusId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); | |||
| WxLegionActivityUser userQ = new WxLegionActivityUser(); | |||
| userQ.updateTenantInfo(tenantEntity); | |||
| @@ -714,8 +726,9 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe | |||
| legionActivityOrder.setAuditBy(userId); | |||
| legionActivityOrder.setAuditTime(now); | |||
| legionActivityOrder.setUpdateDate(now); | |||
| wxLegionActivityOfflineConfigService.syncOfflineActivityOrder(user,legionActivityOrder,legionConfigMap); | |||
| } | |||
| wxLegionActivityOfflineConfigService.syncOfflineActivityRecord(syncOrders); | |||
| } | |||
| @Override | |||
| @@ -48,11 +48,8 @@ public class WxLegionActivityServiceImpl implements WxLegionActivityService{ | |||
| @Autowired | |||
| private WxLegionActivityMerchantConfigService wxLegionActivityMerchantConfigService; | |||
| @Autowired | |||
| private WxLegionActivityOfflineConfigMapper wxLegionActivityOfflineConfigMapper; | |||
| @Autowired | |||
| private WxLegionActivityOfflineConfigService wxLegionActivityOfflineConfigService; | |||
| // @Autowired | |||
| // private WxLegionActivityOfflineConfigService wxLegionActivityOfflineConfigService; | |||
| @Autowired | |||
| private WxLegionActivityOrderService wxLegionActivityOrderService; | |||
| @@ -187,7 +184,7 @@ public class WxLegionActivityServiceImpl implements WxLegionActivityService{ | |||
| wxLegionActivityMapper.updateById(wxLegionActivity); | |||
| } | |||
| //处理线下活动配置 | |||
| wxLegionActivityOfflineConfigService.handleOfflineConfig(wxLegionActivity); | |||
| // wxLegionActivityOfflineConfigService.handleOfflineConfig(wxLegionActivity); | |||
| //处理军团配置 | |||
| wxLegionActivityConfigService.handleLegionConfig(wxLegionActivity); | |||
| @@ -205,7 +202,7 @@ public class WxLegionActivityServiceImpl implements WxLegionActivityService{ | |||
| return activity; | |||
| } | |||
| //获取活动发奖配置 | |||
| activity.setOfflineActivityList(wxLegionActivityOfflineConfigService.getOfflineActivityList(activity)); | |||
| // activity.setOfflineActivityList(wxLegionActivityOfflineConfigService.getOfflineActivityList(activity)); | |||
| //获取军团配置 | |||
| WxLegionActivityConfig legionConfigQ = new WxLegionActivityConfig(); | |||
| legionConfigQ.updateTenantInfo(activity); | |||
| @@ -1,10 +1,30 @@ | |||
| package com.iformall.service.impl; | |||
| import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; | |||
| import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | |||
| import com.iformall.domain.po.WxVtwoActivityOrder; | |||
| import com.iformall.service.WxVtwoActivityOrderService; | |||
| import com.iformall.mapper.WxVtwoActivityOrderMapper; | |||
| import com.github.pagehelper.PageHelper; | |||
| import com.github.pagehelper.PageInfo; | |||
| import com.iformall.common.IdWorker; | |||
| import com.iformall.domain.po.*; | |||
| import com.iformall.domain.po.base.TenantEntity; | |||
| import com.iformall.domain.vo.*; | |||
| import com.iformall.enums.*; | |||
| import com.iformall.mapper.*; | |||
| import com.iformall.service.*; | |||
| import com.iformall.utils.DateUtils; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Service; | |||
| import org.springframework.transaction.annotation.Propagation; | |||
| import org.springframework.transaction.annotation.Transactional; | |||
| import javax.servlet.http.HttpServletRequest; | |||
| import javax.servlet.http.HttpServletResponse; | |||
| import java.math.BigDecimal; | |||
| import java.math.RoundingMode; | |||
| import java.text.NumberFormat; | |||
| import java.util.*; | |||
| import java.util.function.Function; | |||
| import java.util.stream.Collectors; | |||
| /** | |||
| * @author xiaohu | |||
| @@ -15,6 +35,303 @@ import org.springframework.stereotype.Service; | |||
| public class WxVtwoActivityOrderServiceImpl extends ServiceImpl<WxVtwoActivityOrderMapper, WxVtwoActivityOrder> | |||
| implements WxVtwoActivityOrderService{ | |||
| @Autowired | |||
| private WxVtwoActivityOrderMapper wxVtwoActivityOrderMapper; | |||
| @Autowired | |||
| private WxVtwoActivitySpecialTopicService wxVtwoActivitySpecialTopicService; | |||
| @Autowired | |||
| private WxMerchantService wxMerchantService; | |||
| @Autowired | |||
| private WxShopService wxShopService; | |||
| @Autowired | |||
| private MallUserInfoService mallUserInfoService; | |||
| @Autowired | |||
| private WxBusinessService wxBusinessService; | |||
| @Autowired | |||
| private WxCUserBasicInfoService wxCUserBasicInfoService; | |||
| @Autowired | |||
| private WxCreditHistoryService wxCreditHistoryService; | |||
| @Autowired | |||
| private ExcelService excelService; | |||
| @Override | |||
| public PageInfo<WxVtwoActivityOrder> listAsPage(WxVtwoActivityOrder record, Integer pageNum, Integer pageSize) { | |||
| handlerQuery(record); | |||
| PageInfo<WxVtwoActivityOrder> recordPage = PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> wxVtwoActivityOrderMapper.findList(record)); | |||
| handlerList(record,recordPage.getList()); | |||
| return recordPage; | |||
| } | |||
| private void handlerQuery(WxVtwoActivityOrder record) { | |||
| //商户处理 | |||
| if (StringUtils.isNotBlank(record.getMerchantName())) { | |||
| WxMerchant merchant = new WxMerchant(); | |||
| merchant.updateTenantInfo(record); | |||
| merchant.setName(record.getMerchantName()); | |||
| List<Long> mids = wxMerchantService.findIdList(merchant); | |||
| if (null == mids || mids.size() <= 0 ) { | |||
| record.setId(-1L); | |||
| }else { | |||
| record.setMerchantIdList(mids); | |||
| } | |||
| } | |||
| } | |||
| @Override | |||
| public void handlerList(TenantEntity tenantEntity, List<WxVtwoActivityOrder> recordList) { | |||
| if (recordList == null || recordList.size() <= 0) { | |||
| return; | |||
| } | |||
| List<Long> merchantIds = recordList.stream().map(WxVtwoActivityOrder::getMerchantId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); | |||
| List<Long> userIds = recordList.stream().map(WxVtwoActivityOrder::getAuditBy).filter(Objects::nonNull).distinct().collect(Collectors.toList()); | |||
| Map<Long, String> idAndNamesMap = new HashMap<>(); | |||
| Map<Long,String> merchantShopNumberMap = new HashMap<>(); | |||
| if(!merchantIds.isEmpty()){ | |||
| WxMerchant merchantQ = new WxMerchant(); | |||
| merchantQ.updateTenantInfo(tenantEntity); | |||
| merchantQ.setIds(merchantIds); | |||
| idAndNamesMap = wxMerchantService.getIdAndNamesMap(merchantQ); | |||
| merchantShopNumberMap = wxShopService.getMerchantShopNumberMap(tenantEntity, merchantIds, EnumYesOrNo.NO.getCode()); | |||
| } | |||
| Map<Long, MallUserInfo> userMap = new HashMap<>(); | |||
| if(!userIds.isEmpty()){ | |||
| MallUserInfo userInfoQ = new MallUserInfo(); | |||
| userInfoQ.updateTenantInfo(tenantEntity); | |||
| userMap = mallUserInfoService.getUserMap(userInfoQ); | |||
| } | |||
| Map<Integer, WxBusiness> bussinessMap = wxBusinessService.findAllMap(tenantEntity); | |||
| for (WxVtwoActivityOrder record : recordList) { | |||
| if(record.getMerchantId() != null){ | |||
| record.setMerchantName(idAndNamesMap.get(record.getMerchantId())); | |||
| record.setShopNumber(merchantShopNumberMap.get(record.getMerchantId())); | |||
| } | |||
| if(record.getAuditBy() != null){ | |||
| record.setAuditByName(userMap.get(record.getAuditBy()).getName()); | |||
| } | |||
| if(record.getBusinessId() != null){ | |||
| record.setBusinessName(bussinessMap.get(record.getBusinessId()).getTitle()); | |||
| } | |||
| } | |||
| } | |||
| @Override | |||
| public boolean saveOrUpdate(WxVtwoActivityOrder activityOrder) { | |||
| if(activityOrder.getMerchantId() != null){ | |||
| WxMerchant merchant = wxMerchantService.selectById(activityOrder.getMerchantId()); | |||
| activityOrder.setBusinessId(merchant.getBusinessId()); | |||
| } | |||
| Date now = new Date(); | |||
| if(activityOrder.getId() == null){ | |||
| final IdWorker idWorker = IdWorker.get(); | |||
| activityOrder.setId(idWorker.nextId()); | |||
| if(activityOrder.getAuditStatus() == null){ | |||
| activityOrder.setAuditStatus(EnumOfflineActivityRecordStatus.AUDTING.getCode()); | |||
| } | |||
| activityOrder.setCreateDate(now); | |||
| activityOrder.setUpdateDate(now); | |||
| wxVtwoActivityOrderMapper.insert(activityOrder); | |||
| } | |||
| else{ | |||
| activityOrder.setUpdateDate(now); | |||
| wxVtwoActivityOrderMapper.updateById(activityOrder); | |||
| } | |||
| return true; | |||
| } | |||
| @Override | |||
| public WxVtwoActivityOrder getById(Long id, String tenantId) { | |||
| return wxVtwoActivityOrderMapper.selectById(id,tenantId); | |||
| } | |||
| @Override | |||
| public WxVtwoActivityOrder getInfoById(Long id, String tenantId) { | |||
| WxVtwoActivityOrder record = getById(id, tenantId); | |||
| if(record != null){ | |||
| WxMerchant merchant = wxMerchantService.selectById(record.getMerchantId()); | |||
| record.setMerchantName(merchant.getName()); | |||
| } | |||
| return record; | |||
| } | |||
| @Override | |||
| public Map<String, Integer> getStatistics(WxVtwoActivityOrder record) { | |||
| List<WxVtwoActivityOrderStatistics> auditStatusStatistics = wxVtwoActivityOrderMapper.auditStatusStatistics(record); | |||
| Map<String, Integer> result = new HashMap<>(); | |||
| Integer audting = 0, audi_success = 0, audt_fail = 0, invalid = 0; | |||
| for(WxVtwoActivityOrderStatistics statistics : auditStatusStatistics){ | |||
| if(EnumOfflineActivityRecordStatus.AUDTING.getCode().equals(statistics.getAuditStatus())){ | |||
| audting = statistics.getCount(); | |||
| } else if (EnumOfflineActivityRecordStatus.AUDI_SUCCESS.getCode().equals(statistics.getAuditStatus())) { | |||
| audi_success = statistics.getCount(); | |||
| } else if (EnumOfflineActivityRecordStatus.AUDT_FAIL.getCode().equals(statistics.getAuditStatus())) { | |||
| audt_fail = statistics.getCount(); | |||
| } else if (EnumOfflineActivityRecordStatus.INVALID.getCode().equals(statistics.getAuditStatus())) { | |||
| invalid = statistics.getCount(); | |||
| } | |||
| } | |||
| result.put("audting",audting); | |||
| result.put("audi_success",audi_success); | |||
| result.put("audt_fail",audt_fail); | |||
| result.put("invalid",invalid); | |||
| result.put("sum_count",audting+audi_success+audt_fail+invalid); | |||
| return result; | |||
| } | |||
| @Override | |||
| @Transactional(propagation = Propagation.REQUIRED, rollbackFor = {Exception.class}) | |||
| public void auditRecord(WxVtwoActivityOrder record, Long userId) { | |||
| Date now = new Date(); | |||
| record.setUpdateDate(now); | |||
| record.setAuditTime(now); | |||
| record.setAuditBy(userId); | |||
| wxVtwoActivityOrderMapper.updateAuditStatus(record); | |||
| WxVtwoActivityOrder activityOrder = wxVtwoActivityOrderMapper.selectById(record.getId(), record.getTenantId()); | |||
| activityOrder.setAuditBy(record.getAuditBy()); | |||
| activityOrder.setAuditStatus(record.getAuditStatus()); | |||
| activityOrder.setAuditBy(record.getAuditBy()); | |||
| saveCreditHistory(activityOrder); | |||
| } | |||
| @Override | |||
| public void saveCreditHistory(WxVtwoActivityOrder record){ | |||
| if(!EnumOfflineActivityRecordStatus.AUDI_SUCCESS.getCode().equals(record.getAuditStatus()) | |||
| && !EnumOfflineActivityRecordStatus.INVALID.getCode().equals(record.getAuditStatus())){ | |||
| return; | |||
| } | |||
| WxVtwoActivitySpecialTopic specialTopic = wxVtwoActivitySpecialTopicService.selectCreditOne(record,record.getCreateDate()); | |||
| if(specialTopic == null){ | |||
| return; | |||
| } | |||
| WxCreditHistory creditHistory = new WxCreditHistory(); | |||
| creditHistory.setTenantId(record.getFinalTenantId()); | |||
| creditHistory.setOperatorType(EnumUserType.MALLUSER.getCode()); | |||
| creditHistory.setOperatorId(record.getAuditBy()); | |||
| creditHistory.setCreateDate(record.getAuditTime()); | |||
| creditHistory.setCouponId(record.getId()); | |||
| creditHistory.setBusinessId(record.getBusinessId()); | |||
| creditHistory.setMerchantId(record.getMerchantId()); | |||
| WxCUserBasicInfo cuser = wxCUserBasicInfoService.findInfoByPhone(record, record.getCusPhone()); | |||
| if(cuser == null){ | |||
| return; | |||
| } | |||
| creditHistory.setCUserId(cuser.getId()); | |||
| creditHistory.setCreditType(EnumScoreType.POINT_CHANGE.getCode()); | |||
| Integer increasedPoints = record.getIncreasedPoints(); | |||
| if(increasedPoints == null){ | |||
| increasedPoints = 0; | |||
| } | |||
| if(EnumOfflineActivityRecordStatus.AUDI_SUCCESS.getCode().equals(record.getAuditStatus())){ | |||
| if(increasedPoints > 0){ | |||
| return; | |||
| } | |||
| //计算积分 | |||
| WxVtwoActivityCreditRule creditConfigObject = specialTopic.getCreditConfigObject(); | |||
| BigDecimal priceCondition = creditConfigObject.getStep(); | |||
| int baseScore = creditConfigObject.getScore(); | |||
| if (record.getOrderMoney().compareTo(priceCondition) > 0) { | |||
| increasedPoints = record.getOrderMoney().divide(priceCondition,0, RoundingMode.DOWN) | |||
| .multiply(BigDecimal.valueOf(baseScore)).intValue(); | |||
| } | |||
| if(increasedPoints == 0){ | |||
| return; | |||
| } | |||
| creditHistory.setCreditNum(increasedPoints); | |||
| }else if(EnumOfflineActivityRecordStatus.INVALID.getCode().equals(record.getAuditStatus())){ | |||
| if(increasedPoints == 0){ | |||
| return; | |||
| } | |||
| creditHistory.setCreditNum(-increasedPoints); | |||
| increasedPoints = 0; | |||
| } | |||
| if(creditHistory.getCreditNum() > 0){ | |||
| creditHistory.setChangePurpose("活动订单("+record.getOrderNo()+")新增积分"+creditHistory.getCreditNum()); | |||
| }else if(creditHistory.getCreditNum() < 0){ | |||
| creditHistory.setChangePurpose("活动订单("+record.getOrderNo()+")退单-积分扣减"+creditHistory.getCreditNum()); | |||
| } | |||
| creditHistory = wxCreditHistoryService.saveOrUpdate(creditHistory,record); | |||
| record.setIncreasedPoints(increasedPoints); | |||
| wxVtwoActivityOrderMapper.updateIncreasedPoints(record); | |||
| } | |||
| @Override | |||
| public Map<String, Object> orderStatistics(TenantEntity tenantInfo) { | |||
| //最近30天 | |||
| Date now = new Date(); | |||
| String monthStartdate = DateUtils.getTimeBefore(30, now); | |||
| String yesyeweekDate = DateUtils.getTimeBefore(8, now);//计算周同比时间 | |||
| String weekStartdate = DateUtils.getTimeBefore(7, now); | |||
| String yesyesDate = DateUtils.getTimeBefore(2, now);//计算日同比时间 | |||
| String yesterdayDate = DateUtils.getTimeBefore(1, now); | |||
| String today = DateUtils.getTimeBefore(0, now); | |||
| //最近30天数据 | |||
| WxVtwoActivityOrder recordQ = new WxVtwoActivityOrder(); | |||
| recordQ.updateTenantInfo(tenantInfo); | |||
| recordQ.setCreateDateBegin(DateUtils.stringToDate(monthStartdate)); | |||
| Integer monthCount = wxVtwoActivityOrderMapper.getCount(recordQ); | |||
| //一周前的昨天 | |||
| recordQ.setCreateDateBegin(DateUtils.stringToDate(yesyeweekDate)); | |||
| recordQ.setCreateDateEnd(DateUtils.stringToDate(weekStartdate)); | |||
| Integer yesWeekCount = wxVtwoActivityOrderMapper.getCount(recordQ); | |||
| //昨天的昨天 | |||
| recordQ.setCreateDateBegin(DateUtils.stringToDate(yesyesDate)); | |||
| recordQ.setCreateDateEnd(DateUtils.stringToDate(yesterdayDate)); | |||
| Integer yesYesCount = wxVtwoActivityOrderMapper.getCount(recordQ); | |||
| //昨天 | |||
| recordQ.setCreateDateBegin(DateUtils.stringToDate(yesterdayDate)); | |||
| recordQ.setCreateDateEnd(DateUtils.stringToDate(today)); | |||
| Integer yesCount = wxVtwoActivityOrderMapper.getCount(recordQ); | |||
| Map<String, Object> result = new HashMap<>(); | |||
| result.put("monthCount",monthCount); | |||
| NumberFormat nf = NumberFormat.getPercentInstance(); | |||
| nf.setMinimumFractionDigits(2); | |||
| String dayPercentage = "--"; | |||
| if (yesYesCount > 0) { | |||
| Integer count = yesCount - yesYesCount; | |||
| dayPercentage = nf.format(count.doubleValue() / new Double(yesYesCount).doubleValue()); | |||
| } | |||
| result.put("dayPercentage",dayPercentage); | |||
| String weekPercentage = "--"; | |||
| if (yesWeekCount > 0) { | |||
| Integer count = yesCount - yesWeekCount; | |||
| weekPercentage = nf.format(count.doubleValue() / new Double(yesWeekCount).doubleValue()); | |||
| } | |||
| result.put("weekPercentage",weekPercentage); | |||
| return result; | |||
| } | |||
| @Override | |||
| public void exportData(HttpServletRequest request, HttpServletResponse response, WxVtwoActivityOrder record) { | |||
| handlerQuery(record); | |||
| List<WxVtwoActivityOrder> list = wxVtwoActivityOrderMapper.findList(record); | |||
| handlerList(record,list); | |||
| excelService.exportExcel(list, null, "活动订单列表", WxOfflineActivityRecord.class, "活动订单列表.xlsx", response, false); | |||
| } | |||
| @Override | |||
| public Integer getWaitAudiCount(TenantEntity tenantInfo) { | |||
| WxVtwoActivityOrder record = new WxVtwoActivityOrder(); | |||
| record.updateTenantInfo(tenantInfo); | |||
| record.setAuditStatus(EnumOfflineActivityRecordStatus.AUDTING.getCode()); | |||
| return wxVtwoActivityOrderMapper.getCount(record); | |||
| } | |||
| } | |||
| @@ -7,6 +7,7 @@ import com.github.pagehelper.PageHelper; | |||
| import com.github.pagehelper.PageInfo; | |||
| import com.iformall.common.IdWorker; | |||
| import com.iformall.domain.po.*; | |||
| import com.iformall.domain.po.base.TenantEntity; | |||
| import com.iformall.domain.vo.WxVtwoActivityCreditRule; | |||
| import com.iformall.domain.vo.WxVtwoActivityOrderStatistics; | |||
| import com.iformall.domain.vo.WxVtwoActivityRule; | |||
| @@ -136,6 +137,16 @@ public class WxVtwoActivitySpecialTopicServiceImpl extends ServiceImpl<WxVtwoAct | |||
| return specialTopic; | |||
| } | |||
| @Override | |||
| public WxVtwoActivitySpecialTopic selectCreditOne(TenantEntity tenantEntity, Date orderDate) { | |||
| WxVtwoActivitySpecialTopic specialTopic = wxVtwoActivitySpecialTopicMapper.selectCreditOne(tenantEntity.getTenantId(),EnumYesOrNo.YES.getCode(),orderDate); | |||
| if (specialTopic == null) { | |||
| return null; | |||
| } | |||
| specialTopic.setCreditConfigObject(JSONObject.parseObject(specialTopic.getCreditConfig(), WxVtwoActivityCreditRule.class)); | |||
| return specialTopic; | |||
| } | |||
| } | |||
| @@ -7,12 +7,8 @@ import com.github.pagehelper.PageInfo; | |||
| import com.iformall.common.IdWorker; | |||
| import com.iformall.domain.po.*; | |||
| import com.iformall.domain.vo.WxVtwoActivityOrderStatistics; | |||
| import com.iformall.domain.vo.WxVtwoActivityRule; | |||
| import com.iformall.domain.vo.WxVtwoActivityRuleDetail; | |||
| import com.iformall.enums.EnumOfflineActivityMerchantType; | |||
| import com.iformall.enums.EnumOfflineActivityRecordStatus; | |||
| import com.iformall.enums.EnumOfflineActivityStatus; | |||
| import com.iformall.enums.EnumYesOrNo; | |||
| import com.iformall.enums.*; | |||
| import com.iformall.mapper.*; | |||
| import com.iformall.service.WxVtwoActivityAwardService; | |||
| import com.iformall.service.WxVtwoActivityMerchantService; | |||
| @@ -49,6 +45,9 @@ public class WxVtwoAmountGiftActivityServiceImpl extends ServiceImpl<WxVtwoAmoun | |||
| @Autowired | |||
| private WxVtwoActivityGrantSettlementMapper wxVtwoActivityGrantSettlementMapper; | |||
| @Autowired | |||
| private WxVtwoSpecialTopicActivityMapper wxVtwoSpecialTopicActivityMapper; | |||
| @Autowired | |||
| private WxVtwoActivityAwardService wxVtwoActivityAwardService; | |||
| @@ -154,6 +153,7 @@ public class WxVtwoAmountGiftActivityServiceImpl extends ServiceImpl<WxVtwoAmoun | |||
| } | |||
| wxVtwoActivityMerchantService.saveFromActivity(amountGiftActivity,amountGiftActivity.getId(),amountGiftActivity.getMerchantIdList()); | |||
| } | |||
| updateSpecialTopicActivity(amountGiftActivity); | |||
| return true; | |||
| } | |||
| @@ -166,6 +166,28 @@ public class WxVtwoAmountGiftActivityServiceImpl extends ServiceImpl<WxVtwoAmoun | |||
| } | |||
| } | |||
| private void updateSpecialTopicActivity(WxVtwoAmountGiftActivity amountGiftActivity){ | |||
| WxVtwoSpecialTopicActivity specialTopicActivity = new WxVtwoSpecialTopicActivity(); | |||
| specialTopicActivity.updateTenantInfo(amountGiftActivity); | |||
| specialTopicActivity.setActivityId(amountGiftActivity.getId()); | |||
| specialTopicActivity.setActivityType(EnumOfflineActivityType.GIFT.getCode()); | |||
| specialTopicActivity.setActivityName(amountGiftActivity.getName()); | |||
| specialTopicActivity.setActivityCreateDate(amountGiftActivity.getCreateDate()); | |||
| specialTopicActivity.setActivityStartTime(amountGiftActivity.getStartTime()); | |||
| specialTopicActivity.setActivityEndTime(amountGiftActivity.getEndTime()); | |||
| specialTopicActivity.setActivityStatus(amountGiftActivity.getStatus()); | |||
| specialTopicActivity.setUpdateDate(amountGiftActivity.getUpdateDate()); | |||
| wxVtwoSpecialTopicActivityMapper.updateByActivity(specialTopicActivity); | |||
| } | |||
| @Override | |||
| public boolean updateById(WxVtwoAmountGiftActivity amountGiftActivity) { | |||
| amountGiftActivity.setUpdateDate(new Date()); | |||
| wxVtwoAmountGiftActivityMapper.updateById(amountGiftActivity); | |||
| updateSpecialTopicActivity(amountGiftActivity); | |||
| return true; | |||
| } | |||
| @Override | |||
| public WxVtwoAmountGiftActivity getInfoById(Long id, String tenantId) { | |||
| WxVtwoAmountGiftActivity amountGiftActivity = wxVtwoAmountGiftActivityMapper.selectById(id, tenantId); | |||
| @@ -49,6 +49,9 @@ public class WxVtwoCashBackActivityServiceImpl extends ServiceImpl<WxVtwoCashBac | |||
| @Autowired | |||
| private WxVtwoActivityGrantSettlementMapper wxVtwoActivityGrantSettlementMapper; | |||
| @Autowired | |||
| private WxVtwoSpecialTopicActivityMapper wxVtwoSpecialTopicActivityMapper; | |||
| @Autowired | |||
| private WxVtwoCashBackAwardService wxVtwoCashBackAwardService; | |||
| @@ -155,6 +158,7 @@ public class WxVtwoCashBackActivityServiceImpl extends ServiceImpl<WxVtwoCashBac | |||
| } | |||
| wxVtwoActivityMerchantService.saveFromActivity(cashBackActivity,cashBackActivity.getId(),cashBackActivity.getMerchantIdList()); | |||
| } | |||
| updateSpecialTopicActivity(cashBackActivity); | |||
| return true; | |||
| } | |||
| @@ -164,6 +168,28 @@ public class WxVtwoCashBackActivityServiceImpl extends ServiceImpl<WxVtwoCashBac | |||
| } | |||
| } | |||
| private void updateSpecialTopicActivity(WxVtwoCashBackActivity cashBackActivity){ | |||
| WxVtwoSpecialTopicActivity specialTopicActivity = new WxVtwoSpecialTopicActivity(); | |||
| specialTopicActivity.updateTenantInfo(cashBackActivity); | |||
| specialTopicActivity.setActivityId(cashBackActivity.getId()); | |||
| specialTopicActivity.setActivityType(EnumOfflineActivityType.CASHBACK.getCode()); | |||
| specialTopicActivity.setActivityName(cashBackActivity.getName()); | |||
| specialTopicActivity.setActivityCreateDate(cashBackActivity.getCreateDate()); | |||
| specialTopicActivity.setActivityStartTime(cashBackActivity.getStartTime()); | |||
| specialTopicActivity.setActivityEndTime(cashBackActivity.getEndTime()); | |||
| specialTopicActivity.setActivityStatus(cashBackActivity.getStatus()); | |||
| specialTopicActivity.setUpdateDate(cashBackActivity.getUpdateDate()); | |||
| wxVtwoSpecialTopicActivityMapper.updateByActivity(specialTopicActivity); | |||
| } | |||
| @Override | |||
| public boolean updateById(WxVtwoCashBackActivity cashBackActivity) { | |||
| cashBackActivity.setUpdateDate(new Date()); | |||
| wxVtwoCashBackActivityMapper.updateById(cashBackActivity); | |||
| updateSpecialTopicActivity(cashBackActivity); | |||
| return true; | |||
| } | |||
| @Override | |||
| public WxVtwoCashBackActivity getInfoById(Long id, String tenantId) { | |||
| WxVtwoCashBackActivity cashBackActivity = wxVtwoCashBackActivityMapper.selectById(id, tenantId); | |||
| @@ -13,10 +13,7 @@ import com.iformall.domain.vo.OfflineActivityRecordStatistics; | |||
| import com.iformall.domain.vo.WxVtwoActivityOrderStatistics; | |||
| import com.iformall.domain.vo.WxVtwoActivityRule; | |||
| import com.iformall.domain.vo.WxVtwoActivityRuleDetail; | |||
| import com.iformall.enums.EnumOfflineActivityMerchantType; | |||
| import com.iformall.enums.EnumOfflineActivityRecordStatus; | |||
| import com.iformall.enums.EnumOfflineActivityStatus; | |||
| import com.iformall.enums.EnumYesOrNo; | |||
| import com.iformall.enums.*; | |||
| import com.iformall.mapper.*; | |||
| import com.iformall.service.WxVtwoActivityAwardService; | |||
| import com.iformall.service.WxVtwoActivityMerchantService; | |||
| @@ -53,6 +50,9 @@ public class WxVtwoPrizeDrawActivityServiceImpl extends ServiceImpl<WxVtwoPrizeD | |||
| @Autowired | |||
| private WxVtwoActivityGrantSettlementMapper wxVtwoActivityGrantSettlementMapper; | |||
| @Autowired | |||
| private WxVtwoSpecialTopicActivityMapper wxVtwoSpecialTopicActivityMapper; | |||
| @Autowired | |||
| private WxVtwoActivityAwardService wxVtwoActivityAwardService; | |||
| @@ -159,6 +159,7 @@ public class WxVtwoPrizeDrawActivityServiceImpl extends ServiceImpl<WxVtwoPrizeD | |||
| } | |||
| wxVtwoActivityMerchantService.saveFromActivity(prizeDrawActivity,prizeDrawActivity.getId(),prizeDrawActivity.getMerchantIdList()); | |||
| } | |||
| updateSpecialTopicActivity(prizeDrawActivity); | |||
| return true; | |||
| } | |||
| @@ -171,6 +172,28 @@ public class WxVtwoPrizeDrawActivityServiceImpl extends ServiceImpl<WxVtwoPrizeD | |||
| } | |||
| } | |||
| private void updateSpecialTopicActivity(WxVtwoPrizeDrawActivity prizeDrawActivity){ | |||
| WxVtwoSpecialTopicActivity specialTopicActivity = new WxVtwoSpecialTopicActivity(); | |||
| specialTopicActivity.updateTenantInfo(prizeDrawActivity); | |||
| specialTopicActivity.setActivityId(prizeDrawActivity.getId()); | |||
| specialTopicActivity.setActivityType(EnumOfflineActivityType.LOTTERY_DRAW.getCode()); | |||
| specialTopicActivity.setActivityName(prizeDrawActivity.getName()); | |||
| specialTopicActivity.setActivityCreateDate(prizeDrawActivity.getCreateDate()); | |||
| specialTopicActivity.setActivityStartTime(prizeDrawActivity.getStartTime()); | |||
| specialTopicActivity.setActivityEndTime(prizeDrawActivity.getEndTime()); | |||
| specialTopicActivity.setActivityStatus(prizeDrawActivity.getStatus()); | |||
| specialTopicActivity.setUpdateDate(prizeDrawActivity.getUpdateDate()); | |||
| wxVtwoSpecialTopicActivityMapper.updateByActivity(specialTopicActivity); | |||
| } | |||
| @Override | |||
| public boolean updateById(WxVtwoPrizeDrawActivity prizeDrawActivity) { | |||
| prizeDrawActivity.setUpdateDate(new Date()); | |||
| wxVtwoPrizeDrawActivityMapper.updateById(prizeDrawActivity); | |||
| updateSpecialTopicActivity(prizeDrawActivity); | |||
| return true; | |||
| } | |||
| @Override | |||
| public WxVtwoPrizeDrawActivity getInfoById(Long id, String tenantId) { | |||
| WxVtwoPrizeDrawActivity prizeDrawActivity = wxVtwoPrizeDrawActivityMapper.selectById(id, tenantId); | |||
| @@ -21,7 +21,7 @@ | |||
| <result property="unionName" column="union_name" jdbcType="VARCHAR"/> | |||
| <result property="fromOrderId" column="from_order_id" jdbcType="BIGINT"/> | |||
| <result property="orderNo" column="order_no" jdbcType="VARCHAR"/> | |||
| <result property="orderAmount" column="order_amount" jdbcType="DECIMAL"/> | |||
| <result property="orderMoney" column="order_money" jdbcType="DECIMAL"/> | |||
| <result property="merchantId" column="merchant_id" jdbcType="BIGINT"/> | |||
| <result property="businessId" column="business_id" jdbcType="INTEGER"/> | |||
| <result property="lotteryNum" column="lottery_num" jdbcType="VARCHAR"/> | |||
| @@ -43,7 +43,7 @@ | |||
| real_cus_name,cus_phone,cus_card, | |||
| cus_address,legion_id,legion_name, | |||
| union_id,union_name,from_order_id, | |||
| order_no,order_amount,merchant_id, | |||
| order_no,order_money,merchant_id, | |||
| business_id,lottery_num,lottery_count, | |||
| anniversary_lottery_num,audit_status,audit_remark, | |||
| audit_by,audit_time,increased_points, | |||
| @@ -136,7 +136,7 @@ | |||
| <select id="auditStatusStatistics" parameterType="com.iformall.domain.po.WxVtwoActivityOrder" resultType="com.iformall.domain.vo.WxVtwoActivityOrderStatistics"> | |||
| SELECT audit_status as 'auditStatus', | |||
| count(1) as 'count', | |||
| IFNULL(sum(order_amount),0) as 'sumAmount' | |||
| IFNULL(sum(order_money),0) as 'sumMoney' | |||
| FROM wx_vtwo_activity_order | |||
| <include refid="dynamicWhereConditions" /> | |||
| GROUP BY audit_status | |||
| @@ -188,7 +188,7 @@ | |||
| <select id="getCountStatistics" parameterType="com.iformall.domain.po.WxVtwoActivityOrder" resultType="com.iformall.domain.vo.WxVtwoOrderCountStatistics"> | |||
| select count(DISTINCT cus_phone) userCount, | |||
| count(1) orderCount, | |||
| IFNULL(sum(order_amount),0) sumAmount, | |||
| IFNULL(sum(order_money),0) sumMoney, | |||
| count(DISTINCT merchant_id) merchantCount | |||
| from wx_vtwo_activity_order | |||
| <include refid="dynamicWhereConditions" /> | |||
| @@ -197,7 +197,7 @@ | |||
| select DATE_FORMAT(create_date,'%Y-%m-%d') as xTime, | |||
| count(DISTINCT cus_phone) userCount, | |||
| count(1) orderCount, | |||
| IFNULL(sum(order_amount),0) sumAmount, | |||
| IFNULL(sum(order_money),0) sumMoney, | |||
| count(DISTINCT merchant_id) merchantCount | |||
| from wx_vtwo_activity_order | |||
| <include refid="dynamicWhereConditions" /> | |||
| @@ -206,7 +206,7 @@ | |||
| <select id="getBusinessStatistics" parameterType="com.iformall.domain.po.WxVtwoActivityOrder" resultType="com.iformall.domain.vo.WxVtwoOrderBusinessStatistics"> | |||
| select business_id businessId, | |||
| count(1) businessCount, | |||
| IFNULL(sum(order_amount),0) sumAmount | |||
| IFNULL(sum(order_money),0) sumMoney | |||
| from wx_vtwo_activity_order | |||
| <include refid="dynamicWhereConditions" /> | |||
| group by business_id | |||
| @@ -219,7 +219,7 @@ | |||
| real_cus_name,cus_phone,cus_card, | |||
| cus_address,legion_id,legion_name, | |||
| union_id,union_name,from_order_id, | |||
| order_no,order_amount,merchant_id, | |||
| order_no,order_money,merchant_id, | |||
| business_id,lottery_num,lottery_count, | |||
| anniversary_lottery_num,audit_status,audit_remark, | |||
| audit_by,audit_time,increased_points, | |||
| @@ -231,7 +231,7 @@ | |||
| #{item.realCusName,jdbcType=VARCHAR},#{item.cusPhone,jdbcType=VARCHAR},#{item.cusCard,jdbcType=VARCHAR}, | |||
| #{item.cusAddress,jdbcType=VARCHAR},#{item.legionId,jdbcType=BIGINT},#{item.legionName,jdbcType=VARCHAR}, | |||
| #{item.unionId,jdbcType=BIGINT},#{item.unionName,jdbcType=VARCHAR},#{item.fromOrderId,jdbcType=BIGINT}, | |||
| #{item.orderNo,jdbcType=VARCHAR},#{item.orderAmount,jdbcType=DECIMAL},#{item.merchantId,jdbcType=BIGINT}, | |||
| #{item.orderNo,jdbcType=VARCHAR},#{item.orderMoney,jdbcType=DECIMAL},#{item.merchantId,jdbcType=BIGINT}, | |||
| #{item.businessId,jdbcType=INTEGER},#{item.lotteryNum,jdbcType=VARCHAR},#{item.lotteryCount,jdbcType=INTEGER}, | |||
| #{item.anniversaryLotteryNum,jdbcType=VARCHAR},#{item.auditStatus,jdbcType=INTEGER},#{item.auditRemark,jdbcType=VARCHAR}, | |||
| #{item.auditBy,jdbcType=BIGINT},#{item.auditTime,jdbcType=TIMESTAMP},#{item.increasedPoints,jdbcType=INTEGER}, | |||
| @@ -100,7 +100,8 @@ | |||
| and ((`start_time` <= #{startTime} and `end_time` >= #{startTime}) | |||
| or (`start_time` <= #{endTime} and `end_time` >= #{endTime})) | |||
| </select> | |||
| <select id="selectCreditOne" parameterType="java.util.HashMap" resultType="com.iformall.domain.po.WxOfflineActivity"> | |||
| <select id="selectCreditOne" parameterType="java.util.HashMap" resultType="com.iformall.domain.po.WxVtwoActivitySpecialTopic"> | |||
| select <include refid="allColumns" /> from wx_vtwo_activity_special_topic | |||
| where `tenant_id` = #{tenantId} | |||
| and credit_on_off = #{creditOnOff} | |||
| @@ -71,4 +71,29 @@ | |||
| #{item.updateDate,jdbcType=TIMESTAMP}) | |||
| </foreach> | |||
| </insert> | |||
| <update id="updateByActivity" parameterType="com.iformall.domain.po.WxVtwoSpecialTopicActivity"> | |||
| update wx_vtwo_activity_award | |||
| set | |||
| <if test=" null != activityName and '' != activityName"> | |||
| `activity_name` = #{activityName}, | |||
| </if> | |||
| <if test=" null != activityStartTime"> | |||
| `activity_start_time` = #{activityStartTime}, | |||
| </if> | |||
| <if test=" null != activityEndTime"> | |||
| `activity_end_time` = #{activityEndTime}, | |||
| </if> | |||
| <if test=" null != activityStatus"> | |||
| `activity_status` = #{activityStatus}, | |||
| </if> | |||
| `update_date` = #{updateDate} | |||
| where `activity_id` = #{activityId} | |||
| <if test=" null != activityType "> | |||
| and `activity_type` = #{activityType} | |||
| </if> | |||
| <if test=" null != tenantId and '' != tenantId"> | |||
| and `tenant_id` = #{tenantId} | |||
| </if> | |||
| </update> | |||
| </mapper> | |||