zq-erp/src/main/java/com/matrix/system/score/dao/ScoreUseRecordDao.java
@@ -1,11 +1,12 @@ package com.matrix.system.score.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import java.util.List; import java.util.Map; import com.matrix.core.pojo.PaginationVO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.matrix.system.score.entity.ScoreUseRecord; import com.matrix.system.shopXcx.api.dto.ScoreFlowDto; import com.matrix.system.shopXcx.vo.SalesOrderVo; import org.apache.ibatis.annotations.Param; /** * @description 积分记录表 @@ -14,4 +15,11 @@ */ public interface ScoreUseRecordDao extends BaseMapper<ScoreUseRecord> { /** * 查询收支记录 * @param page * @param scoreFlowDto * @return */ IPage<ScoreUseRecord> selectFlowList(Page<SalesOrderVo> page, @Param("record")ScoreFlowDto scoreFlowDto); } zq-erp/src/main/java/com/matrix/system/score/entity/ScoreVipDetail.java
@@ -42,7 +42,7 @@ /** * erp用户Id */ private String vipId; private Long vipId; /** zq-erp/src/main/java/com/matrix/system/score/service/ScoreVipDetailService.java
@@ -5,7 +5,12 @@ import com.matrix.biz.dao.BizUserDao; import com.matrix.core.constance.MatrixConstance; import com.matrix.core.exception.GlobleException; import com.matrix.core.tools.DateUtil; import com.matrix.system.common.bean.BusParameterSettings; import com.matrix.system.common.dao.BusParameterSettingsDao; import com.matrix.system.common.dao.SysUsersDao; import com.matrix.system.hive.dao.SysVipInfoDao; import com.matrix.system.score.constant.ScoreSettingConstant; import com.matrix.system.score.dao.ScoreUseRecordDao; import com.matrix.system.score.dao.ScoreVipDetailDao; import com.matrix.system.score.entity.ScoreUseRecord; @@ -14,6 +19,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Calendar; import java.util.Date; import java.util.List; /** @@ -35,6 +42,12 @@ @Autowired SysVipInfoDao vipInfoDao; @Autowired SysUsersDao sysUsersDao; @Autowired BusParameterSettingsDao busParameterSettingsDao; /** * 扣除用户积分 @@ -89,7 +102,7 @@ scoreUseRecord.setCompanyId(companyId); scoreUseRecord.setScoreVipDetailId(scoreVipDetail.getId()); scoreUseRecord.setBusinessId(businessId); scoreUseRecord.setRecNum(currentDedution); scoreUseRecord.setRecNum(-currentDedution); scoreUseRecord.setRecType(type); scoreUseRecord.setOpenId(openId); scoreUseRecord.setVipId(vipId); @@ -102,6 +115,80 @@ if(score>0){ throw new GlobleException("积分不足"); } } /** * 新增用户积分 * @param openId * @param vipId * @param oprationUserId * @param score * @param businessId * @param type */ @Transactional(rollbackFor = Exception.class) public void addScore(String openId, Long vipId, Long oprationUserId, Integer score, Long businessId, int type) { Long companyId=null; if(openId!=null){ companyId= bizUserDao.findByOpenId(openId).getCompanyId(); }else if(vipId!=null){ companyId= vipInfoDao.selectById(vipId).getCompanyId(); }else{ throw new IllegalArgumentException("vipId,openId必须有一个"); } if(score<0){ throw new IllegalArgumentException("score必须有为大于零的数"); } String createBy=MatrixConstance.SYSTEM_USER; if(oprationUserId!=null){ createBy=sysUsersDao.selectById(oprationUserId).getSuName(); } //计算过期时间 BusParameterSettings yxqSetting = busParameterSettingsDao.selectCompanyParamByCode(ScoreSettingConstant.VALID_PERIOD_POINTS, companyId); Calendar cal=Calendar.getInstance(); int year = cal.get(Calendar.YEAR); int sxYear=year+(Integer.parseInt(yxqSetting.getParamValue())-1); Date sxys=DateUtil.stringToDate(year+"-12-31 23:59",DateUtil.DATE_FORMAT_MM ); ScoreVipDetail scoreVipDetail=new ScoreVipDetail(); scoreVipDetail.setCreateBy(createBy); scoreVipDetail.setUpdateBy(createBy); scoreVipDetail.setCreateTime(DateTime.now()); scoreVipDetail.setUpdateTime(DateTime.now()); scoreVipDetail.setState(ScoreVipDetail.SCORE_STATUS_YX); scoreVipDetail.setRemainScore(score); scoreVipDetail.setUsedScore(0); scoreVipDetail.setValiditeTime(sxys); scoreVipDetail.setOpenId(openId); scoreVipDetail.setVipId(vipId); scoreVipDetail.setGainTime(DateTime.now()); scoreVipDetail.setAllScore(score); scoreVipDetail.setType(type); scoreVipDetail.setCompanyId(companyId); scoreVipDetailDao.insert(scoreVipDetail); //新增添加记录 ScoreUseRecord scoreUseRecord = new ScoreUseRecord(); scoreUseRecord.setPreScore(score); scoreUseRecord.setCreateBy(createBy); scoreUseRecord.setUpdateBy(createBy); scoreUseRecord.setCreateTime(DateTime.now()); scoreUseRecord.setUpdateTime(DateTime.now()); scoreUseRecord.setNowScore(score); scoreUseRecord.setCompanyId(companyId); scoreUseRecord.setScoreVipDetailId(scoreVipDetail.getId()); scoreUseRecord.setBusinessId(businessId); scoreUseRecord.setRecNum(score); scoreUseRecord.setRecType(type); scoreUseRecord.setOpenId(openId); scoreUseRecord.setVipId(vipId); scoreUseRecordDao.insert(scoreUseRecord); } } zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopScoreAction.java
@@ -1,19 +1,54 @@ package com.matrix.system.shopXcx.api.action; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.CrossOrigin; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.matrix.biz.bean.BizUser; import com.matrix.component.redis.RedisUserLoginUtils; import com.matrix.core.pojo.AjaxResult; import com.matrix.system.score.dao.ScoreUseRecordDao; import com.matrix.system.score.entity.ScoreUseRecord; import com.matrix.system.shopXcx.api.dto.ScoreFlowDto; import com.matrix.system.shopXcx.vo.SalesOrderVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @description 用户积分控制器 * @author jyy * @date 2019-08-09 15:10 * @date 2021-03-22 15:10 */ @Controller @RequestMapping(value="/wxapi/shopScoreRecord") @CrossOrigin(origins = "*", maxAge = 3600) @Api(tags = "用户积分接口类") @RestController @RequestMapping(value = "/wxapi/score") public class WxShopScoreAction { @Autowired RedisUserLoginUtils redisUserLoginUtils; @Autowired ScoreUseRecordDao scoreUseRecordDao; @ApiOperation(value = "获取积分流水", notes = "") @PostMapping(value = "/getOrderList") @ApiResponses({ @ApiResponse(code = 200, message = "ok", response = ScoreUseRecord.class) }) AjaxResult getInvitationuserList(@RequestBody @Validated ScoreFlowDto scoreFlowDto) { BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class); Page<SalesOrderVo> page=new Page<>(scoreFlowDto.getPageNum(),scoreFlowDto.getPageSize()); scoreFlowDto.setUserId(loginUser.getOpenId()); IPage<ScoreUseRecord> shopScoreRecord = scoreUseRecordDao.selectFlowList(page, scoreFlowDto); AjaxResult result=AjaxResult.buildSuccessInstance(shopScoreRecord.getRecords()); return result; } } zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/ScoreFlowDto.java
New file @@ -0,0 +1,26 @@ package com.matrix.system.shopXcx.api.dto; import com.matrix.core.pojo.BasePageQueryDto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotNull; @Data @ApiModel(value = "ScoreFlowDto", description = "积分流水查询参数接收类") public class ScoreFlowDto extends BasePageQueryDto { @NotNull(message = "查询月份不能为空") @ApiModelProperty(value = "查询月份",example = "2021-03") private String queryTime; @ApiModelProperty(value = "收支类型 不传全部,1,收入,2支出", example = "1") private Integer revenueType; @ApiModelProperty(hidden = true) private String userId; } zq-erp/src/main/java/com/matrix/system/shopXcx/api/tools/WxShopOrderUtil.java
@@ -46,8 +46,6 @@ private WxShopMemberDayService wxShopMemberDayService; @Autowired private BizUserService bizUserService; @Autowired private ShopScoreRecordDao shopScoreRecordDao; private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日"); zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopScoreRecord.java
File was deleted zq-erp/src/main/java/com/matrix/system/shopXcx/dao/ShopScoreRecordDao.java
File was deleted zq-erp/src/main/resources/mybatis/mapper/score/ScoreUseRecordDao.xml
@@ -3,41 +3,18 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.matrix.system.score.dao.ScoreUseRecordDao"> <!-- 定义ScoreUseRecord 的复杂关联map --> <resultMap type="com.matrix.system.score.entity.ScoreUseRecord" id="ScoreUseRecordMap"> <id property="id" column="id" /> <result property="createBy" column="create_by" /> <result property="createTime" column="create_time" /> <result property="updateBy" column="update_by" /> <result property="updateTime" column="update_time" /> <result property="recType" column="rec_type" /> <result property="recNum" column="rec_num" /> <result property="businessId" column="business_id" /> <result property="scoreVipDetailId" column="score_vip_detail_id" /> <result property="preScore" column="pre_score" /> <result property="nowScore" column="now_score" /> <result property="userId" column="user_id" /> <result property="remarks" column="remarks" /> <result property="companyId" column="company_id" /> </resultMap> <!-- 定义ScoreUseRecord 的简单map ,本map不添加其他的关联属性 --> <resultMap type="com.matrix.system.score.entity.ScoreUseRecord" id="ScoreUseRecordSimpleMap"> <id property="id" column="id" /> <result property="createBy" column="create_by" /> <result property="createTime" column="create_time" /> <result property="updateBy" column="update_by" /> <result property="updateTime" column="update_time" /> <result property="recType" column="rec_type" /> <result property="recNum" column="rec_num" /> <result property="businessId" column="business_id" /> <result property="scoreVipDetailId" column="score_vip_detail_id" /> <result property="preScore" column="pre_score" /> <result property="nowScore" column="now_score" /> <result property="userId" column="user_id" /> <result property="remarks" column="remarks" /> <result property="companyId" column="company_id" /> </resultMap> <select id="selectFlowList" resultType="com.matrix.system.score.entity.ScoreUseRecord"> select * from score_use_record where open_id=#{record.userId} and DATE_FORMAT(create_time,'%Y-%m')=#{record.queryTime} <if test="record.revenueType==1"> and rec_num>0 </if> <if test="record.revenueType==2"> <![CDATA[ and rec_num<0 ]]> </if> order by create_time desc </select> </mapper> zq-erp/src/test/java/com/matrix/JyyTests.java
@@ -32,7 +32,7 @@ @Test public void scoreVipDetailService() throws InterruptedException { scoreVipDetailService.deductionScore("oJkRK4yelehsY4S7I6Ee1ydWtQMI",null,15,1L,1); scoreVipDetailService.addScore("oJkRK4yelehsY4S7I6Ee1ydWtQMI",null,null,15,1L,1); } /**