| @@ -1,5 +1,6 @@ | |||
| package com.iformall.controller.market; | |||
| import com.alibaba.fastjson.JSONObject; | |||
| import com.github.pagehelper.PageInfo; | |||
| import com.iformall.annotation.ApiVersion; | |||
| import com.iformall.common.Result; | |||
| @@ -58,12 +59,47 @@ public class WxOfflineActivityController extends BaseController { | |||
| return new ResultData(page); | |||
| } | |||
| @ApiOperation("判断积分按钮状态") | |||
| @PostMapping("handleCreditStatus") | |||
| public ResultData handleCreditStatus(@RequestBody WxOfflineActivity wxOfflineActivity) { | |||
| TenantEntity tenantEntity = getTenantInfo(); | |||
| wxOfflineActivity.updateTenantInfo(tenantEntity); | |||
| if(wxOfflineActivity.getStartTime() == null || wxOfflineActivity.getEndTime() == null){ | |||
| return new ResultData(Result.ERROR,"活动时间为空"); | |||
| } | |||
| if(wxOfflineActivityService.getCountWidthCredit(wxOfflineActivity) > 0){ | |||
| return new ResultData(false); | |||
| } | |||
| return new ResultData(true); | |||
| } | |||
| @ApiOperation("新增修改接口") | |||
| @PostMapping("saveOrUpdate") | |||
| public ResultData saveOrUpdate(@RequestBody WxOfflineActivity wxOfflineActivity) { | |||
| TenantEntity tenantEntity = getTenantInfo(); | |||
| wxOfflineActivity.updateTenantInfo(tenantEntity); | |||
| if(wxOfflineActivity.getStartTime() == null || wxOfflineActivity.getEndTime() == null){ | |||
| return new ResultData(Result.ERROR,"活动时间为空"); | |||
| } | |||
| if(wxOfflineActivity.getCreditOnOff() == null){ | |||
| wxOfflineActivity.setCreditOnOff(EnumYesOrNo.NO.getCode()); | |||
| } | |||
| if(EnumYesOrNo.YES.getCode().equals(wxOfflineActivity.getCreditOnOff())){ | |||
| if(wxOfflineActivity.getCreditObject() == null){ | |||
| return new ResultData(Result.ERROR,"积分配置错误"); | |||
| } | |||
| JSONObject creditObject = wxOfflineActivity.getCreditObject(); | |||
| if(creditObject.getDouble(WxScoreRules.STEP).compareTo((double) 0) <= 0 | |||
| || creditObject.getInteger(WxScoreRules.SCORE) <= 0){ | |||
| return new ResultData(Result.ERROR,"积分配置不能为0"); | |||
| } | |||
| if(wxOfflineActivityService.getCountWidthCredit(wxOfflineActivity) > 0){ | |||
| return new ResultData(Result.ERROR,"活动时间内存在积分开启的活动"); | |||
| } | |||
| }else{ | |||
| wxOfflineActivity.setCreditConfig("{}"); | |||
| } | |||
| if(wxOfflineActivity.getActivityItemList() == null || wxOfflineActivity.getActivityItemList().isEmpty()){ | |||
| return new ResultData(Result.ERROR,"活动项不能为空"); | |||
| } | |||
| @@ -84,10 +84,25 @@ public class WxOfflineActivityRecordController extends BaseController { | |||
| wxOfflineActivityRecord.setSortColumns(SortField.CreateDate_DESC); | |||
| wxOfflineActivityRecordService.exportData(request,response,wxOfflineActivityRecord); | |||
| } | |||
| @ApiOperation("获取该用户该商户的订单数量") | |||
| @PostMapping("getCountRecord") | |||
| public ResultData getCountRecord(@RequestBody WxOfflineActivityRecord wxOfflineActivityRecord) { | |||
| if (null == wxOfflineActivityRecord) wxOfflineActivityRecord = new WxOfflineActivityRecord(); | |||
| if(wxOfflineActivityRecord.getId() == null){ | |||
| return new ResultData(Result.ERROR,"id 不能为空"); | |||
| } | |||
| if(wxOfflineActivityRecord.getActivityId() == null){ | |||
| return new ResultData(Result.ERROR,"活动id 不能为空"); | |||
| } | |||
| return new ResultData(wxOfflineActivityRecordService.getUserRecordCount(wxOfflineActivityRecord.getId(),wxOfflineActivityRecord.getActivityId(),getTenantInfo())); | |||
| } | |||
| @ApiOperation("审核通过") | |||
| @PostMapping("audiPass") | |||
| public ResultData audiPass(@RequestBody WxOfflineActivityRecord wxOfflineActivityRecord) { | |||
| if(wxOfflineActivityRecord == null){ | |||
| return new ResultData(Result.ERROR,"id 不能为空"); | |||
| } | |||
| @@ -0,0 +1,7 @@ | |||
| ALTER TABLE `mallink`.`wx_offline_activity` | |||
| ADD COLUMN `credit_on_off` smallint(1) NOT NULL DEFAULT 0 COMMENT '积分开关' AFTER `end_time`, | |||
| ADD COLUMN `credit_config` json NULL COMMENT '积分配置' AFTER `credit_on_off`; | |||
| ALTER TABLE `mallink`.`wx_offline_activity_record` | |||
| ADD COLUMN `increased_points` int(11) NOT NULL DEFAULT 0 COMMENT '积分变动值' AFTER `audit_time`; | |||
| @@ -1,5 +1,6 @@ | |||
| package com.iformall.domain.po; | |||
| import com.alibaba.fastjson.JSONObject; | |||
| import com.baomidou.mybatisplus.annotation.TableField; | |||
| import com.baomidou.mybatisplus.annotation.TableId; | |||
| import com.baomidou.mybatisplus.annotation.TableName; | |||
| @@ -9,10 +10,13 @@ import java.util.Date; | |||
| import java.util.List; | |||
| import com.iformall.domain.po.base.TenantEntity; | |||
| import com.iformall.enums.EnumYesOrNo; | |||
| import lombok.Data; | |||
| import lombok.EqualsAndHashCode; | |||
| import lombok.ToString; | |||
| import static java.lang.Double.*; | |||
| /** | |||
| * 线下活动 | |||
| * @TableName wx_offline_activity | |||
| @@ -46,6 +50,34 @@ public class WxOfflineActivity extends TenantEntity { | |||
| @TableField(value = "end_time") | |||
| private Date endTime; | |||
| /** | |||
| * 积分状态(0:关 1:开) | |||
| */ | |||
| @TableField(value = "credit_on_off") | |||
| private Integer creditOnOff; | |||
| /** | |||
| * 积分配置 | |||
| * { | |||
| * "step":, | |||
| * "score": | |||
| * } | |||
| */ | |||
| @TableField(value = "credit_config") | |||
| private String creditConfig; | |||
| public JSONObject getCreditObject(){ | |||
| if(EnumYesOrNo.YES.getCode().equals(creditOnOff)){ | |||
| try{ | |||
| JSONObject jsonObject = JSONObject.parseObject(creditConfig); | |||
| jsonObject.getDouble(WxScoreRules.STEP); | |||
| jsonObject.getInteger(WxScoreRules.SCORE); | |||
| return jsonObject; | |||
| } catch (Exception e) {} | |||
| } | |||
| return null; | |||
| } | |||
| /** | |||
| * 状态(0:未上架 1:已上架) | |||
| */ | |||
| @@ -81,6 +113,9 @@ public class WxOfflineActivity extends TenantEntity { | |||
| @TableField(exist = false) | |||
| private Date end; | |||
| @TableField(exist = false) | |||
| private Date orderDate; | |||
| /** | |||
| * 是否过期 | |||
| */ | |||
| @@ -136,4 +171,6 @@ public class WxOfflineActivity extends TenantEntity { | |||
| */ | |||
| @TableField(exist = false) | |||
| private BigDecimal merchantSettlmentPrice; | |||
| } | |||
| @@ -208,6 +208,9 @@ public class WxOfflineActivityRecord extends TenantEntity { | |||
| @TableField(value = "audit_time") | |||
| private Date auditTime; | |||
| @TableField(value = "increasedPoints") | |||
| private Integer increasedPoints; | |||
| @TableField(exist = false) | |||
| private Date auditTimeBegin; | |||
| @TableField(exist = false) | |||
| @@ -21,6 +21,10 @@ public interface WxOfflineActivityMapper extends CommonMapper<WxOfflineActivity, | |||
| void updateStatus(WxOfflineActivity wxOfflineActivity); | |||
| List<Long> findIds(WxOfflineActivity wxOfflineActivity); | |||
| int getCountWidthCredit(WxOfflineActivity wxOfflineActivity); | |||
| WxOfflineActivity selectCreditActivityOne(WxOfflineActivity wxOfflineActivity); | |||
| } | |||
| @@ -33,6 +33,8 @@ public interface WxOfflineActivityRecordMapper extends CommonMapper<WxOfflineAct | |||
| List<WxOfflineActivityRecord> findGrantList(@Param("grantId")Long grantId, @Param("tenantId")String tenantId); | |||
| void insertList(@Param("recordList")List<WxOfflineActivityRecord> activityRecordList); | |||
| void updateIncreasedPoints(WxOfflineActivityRecord record); | |||
| } | |||
| @@ -31,10 +31,13 @@ public interface WxOfflineActivityRecordService { | |||
| void auditRecord(WxOfflineActivityRecord wxOfflineActivityRecord, Long userId); | |||
| void saveCreditHistory(WxOfflineActivityRecord record); | |||
| Map<String, Object> orderStatistics(TenantEntity tenantInfo); | |||
| void exportData(HttpServletRequest request, HttpServletResponse response, WxOfflineActivityRecord wxOfflineActivityRecord); | |||
| Integer getWaitAudiCount(TenantEntity tenantInfo); | |||
| Integer getUserRecordCount(Long id, Long activityId, TenantEntity tenantInfo); | |||
| } | |||
| @@ -2,6 +2,10 @@ package com.iformall.service; | |||
| import com.github.pagehelper.PageInfo; | |||
| import com.iformall.domain.po.WxOfflineActivity; | |||
| import com.iformall.domain.po.WxOfflineActivityRecord; | |||
| import com.iformall.domain.po.base.TenantEntity; | |||
| import java.util.Date; | |||
| /** | |||
| * @author xiaohu | |||
| @@ -25,4 +29,8 @@ public interface WxOfflineActivityService{ | |||
| void updateStatus(WxOfflineActivity wxOfflineActivity); | |||
| WxOfflineActivity getInfoById(Long id, String tenantId); | |||
| int getCountWidthCredit(WxOfflineActivity wxOfflineActivity); | |||
| WxOfflineActivity selectCreditActivityOne(TenantEntity tenantEntity, Date orderDate); | |||
| } | |||
| @@ -610,7 +610,9 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { | |||
| // if (total > Integer.MAX_VALUE) { | |||
| // throw new MallinkException(ErrorCode.OUT_OF_CREDIT); | |||
| // } | |||
| if (total < 0 && creditChangeNumOrigin < 0 && !Objects.equals(record.getCreditType(),EnumScoreType.REFUND_CONSUMPTION.getCode())) { | |||
| if (total < 0 && creditChangeNumOrigin < 0 | |||
| && !Objects.equals(record.getCreditType(),EnumScoreType.REFUND_CONSUMPTION.getCode()) | |||
| && !Objects.equals(record.getCreditType(),EnumScoreType.POINT_CHANGE.getCode())) { | |||
| throw new MallinkException(ErrorCode.CREDIT_NOT_ENOUGH); | |||
| } | |||
| //如果为导入的会员 则直接覆盖总积分和操作积分明细 | |||
| @@ -14,6 +14,7 @@ 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; | |||
| import java.util.*; | |||
| import java.util.stream.Collectors; | |||
| @@ -35,6 +36,9 @@ public class WxLegionActivityOfflineConfigServiceImpl implements WxLegionActivit | |||
| @Autowired | |||
| private WxOfflineActivityRecordMapper wxOfflineActivityRecordMapper; | |||
| @Autowired | |||
| private WxOfflineActivityRecordService wxOfflineActivityRecordService; | |||
| @Autowired | |||
| private WxMerchantService wxMerchantService; | |||
| @@ -73,6 +77,7 @@ public class WxLegionActivityOfflineConfigServiceImpl implements WxLegionActivit | |||
| } | |||
| @Override | |||
| @Transactional(rollbackFor = Exception.class) | |||
| public void syncOfflineActivityRecord(WxLegionActivityOrder legionActivityOrder) { | |||
| IdWorker idWorker = IdWorker.get(); | |||
| @@ -86,9 +91,12 @@ public class WxLegionActivityOfflineConfigServiceImpl implements WxLegionActivit | |||
| } | |||
| wxOfflineActivityRecordMapper.insert(activityRecord); | |||
| wxOfflineActivityRecordService.saveCreditHistory(activityRecord); | |||
| } | |||
| @Override | |||
| @Transactional(rollbackFor = Exception.class) | |||
| public void syncOfflineActivityRecord(List<WxLegionActivityOrder> wxLegionActivityOrders) { | |||
| if(wxLegionActivityOrders == null || wxLegionActivityOrders.isEmpty()){ | |||
| return; | |||
| @@ -111,6 +119,11 @@ public class WxLegionActivityOfflineConfigServiceImpl implements WxLegionActivit | |||
| activityRecordList.add(activityRecord); | |||
| } | |||
| wxOfflineActivityRecordMapper.insertList(activityRecordList); | |||
| for (WxOfflineActivityRecord activityRecord : activityRecordList) { | |||
| wxOfflineActivityRecordService.saveCreditHistory(activityRecord); | |||
| } | |||
| } | |||
| @@ -1,5 +1,6 @@ | |||
| package com.iformall.service.impl; | |||
| import com.alibaba.fastjson.JSONObject; | |||
| import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; | |||
| import com.github.pagehelper.PageHelper; | |||
| import com.github.pagehelper.PageInfo; | |||
| @@ -9,23 +10,28 @@ import com.iformall.domain.po.*; | |||
| import com.iformall.domain.po.base.TenantEntity; | |||
| import com.iformall.domain.vo.OfflineActivityRecordStatistics; | |||
| import com.iformall.enums.EnumOfflineActivityRecordStatus; | |||
| import com.iformall.enums.EnumScoreType; | |||
| import com.iformall.enums.EnumUserType; | |||
| import com.iformall.enums.EnumYesOrNo; | |||
| import com.iformall.exception.MallinkException; | |||
| import com.iformall.mapper.WxMerchantMapper; | |||
| import com.iformall.mapper.WxOfflineActivityGrantAwardMapper; | |||
| import com.iformall.mapper.WxOfflineActivityRecordGrantMapper; | |||
| import com.iformall.mapper.*; | |||
| import com.iformall.service.*; | |||
| import com.iformall.mapper.WxOfflineActivityRecordMapper; | |||
| 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.stream.Collectors; | |||
| import static jdk.nashorn.internal.runtime.regexp.joni.Config.log; | |||
| /** | |||
| * @author xiaohu | |||
| * @description 针对表【wx_offline_activity_record(线下活动参与登记)】的数据库操作Service实现 | |||
| @@ -43,6 +49,15 @@ public class WxOfflineActivityRecordServiceImpl implements WxOfflineActivityReco | |||
| @Autowired | |||
| WxOfflineActivityRecordGrantMapper wxOfflineActivityRecordGrantMapper; | |||
| @Autowired | |||
| private WxOfflineActivityMapper wxOfflineActivityMapper; | |||
| @Autowired | |||
| WxOfflineActivityService wxOfflineActivityService; | |||
| @Autowired | |||
| WxCUserBasicInfoService wxCUserBasicInfoService; | |||
| @Autowired | |||
| WxMerchantMapper wxMerchantMapper; | |||
| @Autowired | |||
| @@ -51,10 +66,13 @@ public class WxOfflineActivityRecordServiceImpl implements WxOfflineActivityReco | |||
| WxShopService wxShopService; | |||
| @Autowired | |||
| MallUserInfoService mallUserInfoService; | |||
| @Autowired | |||
| WxCreditHistoryService wxCreditHistoryService; | |||
| @Autowired | |||
| ExcelService excelService; | |||
| @Override | |||
| public PageInfo<WxOfflineActivityRecord> listAsPage(WxOfflineActivityRecord record, Integer pageNum, Integer pageSize) { | |||
| handlerQuery(record); | |||
| @@ -220,12 +238,82 @@ public class WxOfflineActivityRecordServiceImpl implements WxOfflineActivityReco | |||
| } | |||
| @Override | |||
| @Transactional(propagation = Propagation.REQUIRED, rollbackFor = {Exception.class}) | |||
| public void auditRecord(WxOfflineActivityRecord record, Long userId) { | |||
| Date now = new Date(); | |||
| record.setUpdateDate(now); | |||
| record.setAuditTime(now); | |||
| record.setAuditBy(userId); | |||
| wxOfflineActivityRecordMapper.updateAuditStatus(record); | |||
| WxOfflineActivityRecord activityRecord = wxOfflineActivityRecordMapper.selectById(record.getId(), record.getTenantId()); | |||
| activityRecord.setAuditBy(record.getAuditBy()); | |||
| activityRecord.setAuditStatus(record.getAuditStatus()); | |||
| activityRecord.setAuditBy(record.getAuditBy()); | |||
| saveCreditHistory(activityRecord); | |||
| } | |||
| @Override | |||
| public void saveCreditHistory(WxOfflineActivityRecord record){ | |||
| if(!EnumOfflineActivityRecordStatus.AUDI_SUCCESS.getCode().equals(record.getAuditStatus()) | |||
| && !EnumOfflineActivityRecordStatus.INVALID.getCode().equals(record.getAuditStatus())){ | |||
| return; | |||
| } | |||
| WxOfflineActivity activity = wxOfflineActivityService.selectCreditActivityOne(record,record.getCreateDate()); | |||
| if(activity == 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()); | |||
| if(EnumOfflineActivityRecordStatus.AUDI_SUCCESS.getCode().equals(record.getAuditStatus())){ | |||
| if(record.getIncreasedPoints() > 0){ | |||
| return; | |||
| } | |||
| //计算积分 | |||
| JSONObject creditObject = activity.getCreditObject(); | |||
| Double priceCondition = creditObject.getDouble(WxScoreRules.STEP); | |||
| int baseScore = creditObject.getInteger(WxScoreRules.SCORE); | |||
| Integer increasedPoints = 0; | |||
| if (record.getOrderMoney().compareTo(BigDecimal.valueOf(priceCondition)) > 0) { | |||
| increasedPoints = record.getOrderMoney().divide(BigDecimal.valueOf(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(record.getIncreasedPoints() == 0){ | |||
| return; | |||
| } | |||
| creditHistory.setCreditNum(record.getIncreasedPoints()); | |||
| } | |||
| 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(creditHistory.getCreditNum()); | |||
| wxOfflineActivityRecordMapper.updateIncreasedPoints(record); | |||
| } | |||
| @Override | |||
| @@ -292,6 +380,19 @@ public class WxOfflineActivityRecordServiceImpl implements WxOfflineActivityReco | |||
| record.setAuditStatus(EnumOfflineActivityRecordStatus.AUDTING.getCode()); | |||
| return wxOfflineActivityRecordMapper.getCount(record); | |||
| } | |||
| @Override | |||
| public Integer getUserRecordCount(Long id, Long activityId, TenantEntity tenantInfo) { | |||
| WxOfflineActivityRecord activityRecord = wxOfflineActivityRecordMapper.selectById(id, tenantInfo.getTenantId()); | |||
| WxOfflineActivity wxOfflineActivity = wxOfflineActivityMapper.selectById(activityId, tenantInfo.getTenantId()); | |||
| WxOfflineActivityRecord record = new WxOfflineActivityRecord(); | |||
| record.updateTenantInfo(tenantInfo); | |||
| record.setCusPhone(activityRecord.getCusPhone()); | |||
| record.setCreateDateBegin(wxOfflineActivity.getStartTime()); | |||
| record.setCreateDateEnd(wxOfflineActivity.getEndTime()); | |||
| record.setAuditStatus(EnumOfflineActivityRecordStatus.AUDI_SUCCESS.getCode()); | |||
| return wxOfflineActivityRecordMapper.getCount(record); | |||
| } | |||
| } | |||
| @@ -4,6 +4,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.OfflineActivityRecordStatistics; | |||
| import com.iformall.enums.EnumOfflineActivityMerchantType; | |||
| import com.iformall.enums.EnumOfflineActivityRecordStatus; | |||
| @@ -160,6 +161,21 @@ public class WxOfflineActivityServiceImpl implements WxOfflineActivityService{ | |||
| } | |||
| return wxOfflineActivity; | |||
| } | |||
| @Override | |||
| public int getCountWidthCredit(WxOfflineActivity wxOfflineActivity) { | |||
| wxOfflineActivity.setCreditOnOff(EnumYesOrNo.YES.getCode()); | |||
| return wxOfflineActivityMapper.getCountWidthCredit(wxOfflineActivity); | |||
| } | |||
| @Override | |||
| public WxOfflineActivity selectCreditActivityOne(TenantEntity tenantEntity, Date orderDate) { | |||
| WxOfflineActivity wxOfflineActivity = new WxOfflineActivity(); | |||
| wxOfflineActivity.updateTenantInfo(tenantEntity); | |||
| wxOfflineActivity.setOrderDate(orderDate); | |||
| wxOfflineActivity.setCreditOnOff(EnumYesOrNo.YES.getCode()); | |||
| return wxOfflineActivityMapper.selectCreditActivityOne(wxOfflineActivity); | |||
| } | |||
| } | |||
| @@ -11,6 +11,8 @@ | |||
| <result property="name" column="name" jdbcType="VARCHAR"/> | |||
| <result property="startTime" column="start_time" jdbcType="TIMESTAMP"/> | |||
| <result property="endTime" column="end_time" jdbcType="TIMESTAMP"/> | |||
| <result property="creditOnOff" column="credit_on_off" jdbcType="SMALLINT"/> | |||
| <result property="creditConfig" column="credit_config" jdbcType="VARCHAR"/> | |||
| <result property="status" column="status" jdbcType="SMALLINT"/> | |||
| <result property="createDate" column="create_date" jdbcType="TIMESTAMP"/> | |||
| <result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/> | |||
| @@ -20,6 +22,7 @@ | |||
| <sql id="allColumns"> | |||
| id,tenant_id,parent_tenant_id, | |||
| `name`,start_time,end_time, | |||
| credit_on_off,credit_config, | |||
| status,create_date,update_date, | |||
| all_merchant | |||
| </sql> | |||
| @@ -104,4 +107,33 @@ | |||
| </if> | |||
| </update> | |||
| <select id="getCountWidthCredit" parameterType="com.iformall.domain.po.WxOfflineActivity" resultType="integer"> | |||
| select count(1) from wx_offline_activity | |||
| where credit_on_off = #{creditOnOff} | |||
| <if test=" null != tenantId and '' != tenantId"> | |||
| and `tenant_id` = #{tenantId} | |||
| </if> | |||
| <if test=" null != parentTenantId and '' != parentTenantId"> | |||
| and `parent_tenant_id` = #{parentTenantId} | |||
| </if> | |||
| <if test=" null != id"> | |||
| and `id` != #{id} | |||
| </if> | |||
| and ((`start_time` <= #{startTime} and `end_time` >= #{startTime}) | |||
| or (`start_time` <= #{endTime} and `end_time` >= #{endTime})) | |||
| </select> | |||
| <select id="selectCreditActivityOne" parameterType="com.iformall.domain.po.WxOfflineActivity" resultType="com.iformall.domain.po.WxOfflineActivity"> | |||
| select <include refid="allColumns" /> from wx_offline_activity | |||
| where credit_on_off = #{creditOnOff} | |||
| <if test=" null != tenantId and '' != tenantId"> | |||
| and `tenant_id` = #{tenantId} | |||
| </if> | |||
| <if test=" null != parentTenantId and '' != parentTenantId"> | |||
| and `parent_tenant_id` = #{parentTenantId} | |||
| </if> | |||
| and `start_time` <= #{orderDate} | |||
| and `end_time` >= #{orderDate} | |||
| limit 1 | |||
| </select> | |||
| </mapper> | |||
| @@ -28,6 +28,7 @@ | |||
| <result property="auditStatus" column="audit_status" jdbcType="INTEGER"/> | |||
| <result property="auditBy" column="audit_by" jdbcType="BIGINT"/> | |||
| <result property="auditTime" column="audit_time" jdbcType="TIMESTAMP"/> | |||
| <result property="increasedPoints" column="increased_points" jdbcType="INTEGER" /> | |||
| </resultMap> | |||
| <sql id="allColumns"> | |||
| @@ -37,7 +38,7 @@ | |||
| cus_card,lottery_num,lottery_count, | |||
| anniversary_lottery_num,create_by,merchant_id,business_id, | |||
| create_date,update_date,audit_remark, | |||
| audit_status,audit_by,audit_time | |||
| audit_status,audit_by,audit_time,increased_points | |||
| </sql> | |||
| <sql id="dynamicWhereConditions"> | |||
| @@ -268,4 +269,16 @@ | |||
| </foreach> | |||
| </insert> | |||
| <update id="updateIncreasedPoints"> | |||
| update wx_offline_activity_record | |||
| set increased_points = #{increased_points} | |||
| where id = #{id} | |||
| <if test=" null != tenantId and '' != tenantId"> | |||
| and `tenant_id` = #{tenantId} | |||
| </if> | |||
| <if test=" null != parentTenantId and '' != parentTenantId"> | |||
| and `parent_tenant_id` = #{parentTenantId} | |||
| </if> | |||
| </update> | |||
| </mapper> | |||