| | |
| | | download: true |
| | | }) |
| | | } |
| | | |
| | | export function updateIntegral (data) { |
| | | return request.post('/business/integral/updateIntegral', data) |
| | | } |
| | |
| | | export function updateShop (data) { |
| | | return request.post('/business/member/updateShop', data) |
| | | } |
| | | export function updateIntegral (data) { |
| | | return request.post('/business/member/updateIntegral', data) |
| | | } |
| | | |
| | | export function updateById (data) { |
| | | return request.post('/business/member/updateById', data) |
| | | } |
| | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { allList as shopList } from '@/api/business/shop' |
| | | export default { |
| | | name: 'OperaChangeShopWindow', |
| | | extends: BaseOpera, |
| | |
| | | form: { |
| | | memberId: null, |
| | | remark: null, |
| | | userType:null, |
| | | num: null, |
| | | type: 0 |
| | | }, |
| | |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | api: '/business/member', |
| | | api: '/business/integral', |
| | | 'field.id': 'id' |
| | | }) |
| | | }, |
| | |
| | | }) |
| | | }) |
| | | }, |
| | | open (title, target) { |
| | | open (title, target,userType) { |
| | | this.title = title |
| | | this.visible = true |
| | | this.info = target |
| | | this.form.type = 0 |
| | | this.form.userType = 0 |
| | | this.form.memberId = target.id |
| | | this.form.num = null |
| | | this.form.remark = null |
| | |
| | | </el-table-column> |
| | | <el-table-column prop="num" label="数量" fixed align="center" min-width="100px"> </el-table-column> |
| | | <el-table-column prop="strObjType" label="消费类型" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="content" label="消费内容" align="center" min-width="150px" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="orderCode" label="关联订单" align="center" min-width="150px"></el-table-column> |
| | | <el-table-column prop="remark" label="备注" align="center" min-width="200px"></el-table-column> |
| | | <el-table-column prop="createDate" label="变动时间" align="center" min-width="200px"></el-table-column> |
| | |
| | | this.info =res || this.info |
| | | }) |
| | | }, |
| | | loadInfo(){ |
| | | this.handlePageChange() |
| | | this.$emit('success') |
| | | }, |
| | | showChangeRecord () { |
| | | if (this.info) { |
| | | this.$refs.OperaChangeShopRecordWindow.open('客户经销商变更记录', this.info) |
| | |
| | | }, |
| | | changeIntegral () { |
| | | if (this.info) { |
| | | this.$refs.OperaChangeIntegralWindow.open('客户积分调整', this.info) |
| | | this.$refs.OperaChangeIntegralWindow.open('客户积分调整', this.info, 0) |
| | | } |
| | | }, |
| | | open (title, goods) { |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="num" align="center" label="数量" min-width="100px"></el-table-column> |
| | | <!-- |
| | | <el-table-column prop="totalNum" align="center" label="当前余额" min-width="100px"></el-table-column> |
| | | --> |
| | | <el-table-column prop="strObjType" align="center" label="消费类型" min-width="100px"></el-table-column> |
| | | <el-table-column prop="orderCode" align="center" label="交易单号" min-width="100px"></el-table-column> |
| | | <el-table-column prop="content" align="center" label="收支说明" min-width="100px"></el-table-column> |
| | |
| | | this.searchForm.endDate = '' |
| | | this.$refs.searchForm.resetFields() |
| | | this.search() |
| | | }, |
| | | }, |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | integralService.deleteByIdInBatch(idList); |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | @ApiOperation("调整积分") |
| | | @PostMapping("/updateIntegral") |
| | | @RequiresPermissions("business:member:update") |
| | | public ApiResponse updateIntegral(@RequestBody Integral param) { |
| | | integralService.updateIntegral(param); |
| | | return ApiResponse.success(null); |
| | | } |
| | | @ApiOperation("根据ID修改") |
| | | @PostMapping("/updateById") |
| | | @RequiresPermissions("business:integral:update") |
| | |
| | | memberService.updateShop(member); |
| | | return ApiResponse.success(null); |
| | | } |
| | | @ApiOperation("调整积分") |
| | | @PostMapping("/updateIntegral") |
| | | @RequiresPermissions("business:member:update") |
| | | public ApiResponse updateIntegral(@RequestBody Integral param) { |
| | | memberService.updateIntegral(param); |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | @ApiOperation("分页查询") |
| | | @PostMapping("/page") |
| | |
| | | SHOP_YEAR_SETTLEMENT(18,"积分过期","积分过期,消耗${param}积分",0,0), |
| | | |
| | | |
| | | ORDER_DONE_AMOUNT(16,"订单结算金额","订单结算金额",0,1), |
| | | WITHDRAW_APPLY(17,"提现","提现",0,1), |
| | | WITHDRAW_APPLY_BACK(19,"提现取消","余额提现取消退回",0,1), |
| | | ORDER_DONE_AMOUNT_BACK(20,"订单结算退回","订单结算退回退回",0,1), |
| | | ORDER_DONE_AMOUNT(16,"订单结算","${param}订单结算成功,获得¥${param1}元",0,1),//${param}订单编号,${param1}金额 |
| | | WITHDRAW_APPLY(17,"余额提现","余额提现已提交,消耗¥${param}元",0,1), |
| | | WITHDRAW_APPLY_BACK(19,"提现退回","余额提现失败,获得¥${param}元",0,1), |
| | | ORDER_DONE_AMOUNT_BACK(20,"订单结算退回","${param}订单结算退回,消耗¥${param1}元",0,1),//${param}订单编号,${param1}金额 |
| | | |
| | | |
| | | SHOP_ORDER(21,"消费返积分","会员${param}交易成功,获得${param1}积分",0,0), |
| | | SHOP_ORDER(21,"消费返积分","会员${param}交易成功,获得${param1}积分",0,0),//${param}昵称-手机号 |
| | | SHOP_ORDER_CANCEL(22,"退单扣除","交易退款退回,消耗100积分",0,0), |
| | | SHOP_SYSTEM_RECHARGE(23,"积分发放","平台奖励,获得${param}积分",0,0), |
| | | SHOP_SYSTEM_DEDUCT(24,"积分扣除","平台扣减,消耗${param}积分",0,0), |
| | |
| | | * @return |
| | | */ |
| | | IntegralDataResponse getIntegralData(IntegralRecordDTO model); |
| | | |
| | | void updateIntegral(Integral param); |
| | | } |
| | | |
| | |
| | | |
| | | void updateShop(Member member); |
| | | |
| | | void updateIntegral(Integral param); |
| | | } |
| | |
| | | |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.dao.business.model.Integral; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.business.model.Shop; |
| | | import com.doumee.dao.web.dto.MemberDTO; |
| | |
| | | |
| | | |
| | | String setGoodsPrice(Shop shop); |
| | | |
| | | } |
| | |
| | | return PageData.from(result); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public void updateIntegral(Integral param) { |
| | | if(param.getMemberId()==null || param.getType()==null |
| | | || param.getType()<0 |
| | | || param.getType()>2 |
| | | || Constants.formatBigdecimal(param.getNum()).compareTo(new BigDecimal(0))<=0){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | |
| | | Date date = new Date(); |
| | | Integral integral = new Integral(); |
| | | Constants.IntegralObjType integralObjType =null; |
| | | if(Constants.equalsInteger(param.getUserType(), Constants.ZERO)){ |
| | | MPJLambdaWrapper<Member> queryWrapper =new MPJLambdaWrapper<>(); |
| | | queryWrapper.selectAll(Member.class); |
| | | queryWrapper.selectAs(Shop::getName,Member::getShopName); |
| | | queryWrapper.leftJoin(Shop.class, Shop::getId,Member::getBindShopId); |
| | | queryWrapper.eq(Member::getId,param.getMemberId()); |
| | | Member model = memberMapper.selectJoinOne(Member.class,queryWrapper); |
| | | if(model == null ||Constants.equalsObject(model.getIsdeleted(),Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"客户信息查询无效!"); |
| | | } |
| | | |
| | | BigDecimal num = param.getNum(); |
| | | if(param.getType() == 1 &&Constants.formatBigdecimal(model.getIntegral()).compareTo(param.getNum())<0){ |
| | | //如果是减少,判断用户余额是否满足 |
| | | num = num.multiply(new BigDecimal(-1));//减少 |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"用户账户余额不足!"); |
| | | } |
| | | //账户余额 |
| | | memberMapper.update(null,new UpdateWrapper<Member>().lambda() |
| | | .eq(Member::getId,model.getId()) |
| | | .set(Member::getEditDate,date) |
| | | .set(Member::getEditor,user.getId()) |
| | | .setSql(param.getType() == 0,"total_integral = ifnull(total_integral,0)+" + num)//累计增加 |
| | | .setSql(param.getType() == 0,"integral = ifnull(integral,0)+" + param.getNum()) |
| | | .setSql(param.getType() == 1,"integral = ifnull(integral,0)-" + param.getNum())); |
| | | |
| | | integralObjType = param.getType()==0?Constants.IntegralObjType.SYSTEM_RECHARGE:Constants.IntegralObjType.SYSTEM_DEDUCT; |
| | | integral.setTotalNum(param.getType() == 0? Constants.formatBigdecimal(model.getIntegral()).add(integral.getNum()):Constants.formatBigdecimal(model.getIntegral()).subtract(integral.getNum())); |
| | | }else{ |
| | | Shop model = shopMapper.selectById(param.getMemberId()); |
| | | if(model == null ||Constants.equalsObject(model.getIsdeleted(),Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"经销商信息查询无效!"); |
| | | } |
| | | BigDecimal num = param.getNum(); |
| | | if(param.getType() == 1 &&Constants.formatBigdecimal(model.getIntegral()).compareTo(param.getNum())<0){ |
| | | //如果是减少,判断用户余额是否满足 |
| | | num = num.multiply(new BigDecimal(-1));//减少 |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"经销商账户积分余额不足!"); |
| | | } |
| | | //账户余额 |
| | | shopMapper.update(null,new UpdateWrapper<Shop>().lambda() |
| | | .eq(Shop::getId,model.getId()) |
| | | .set(Shop::getEditDate,date) |
| | | .set(Shop::getEditor,user.getId()) |
| | | .setSql(param.getType() == 0,"total_integral = ifnull(total_integral,0)+" + num)//累计增加 |
| | | .setSql(param.getType() == 0,"integral = ifnull(integral,0)+" + param.getNum()) |
| | | .setSql(param.getType() == 1,"integral = ifnull(integral,0)-" + param.getNum())); |
| | | |
| | | integralObjType = param.getType()==0?Constants.IntegralObjType.SHOP_SYSTEM_RECHARGE:Constants.IntegralObjType.SHOP_SYSTEM_DEDUCT; |
| | | integral.setTotalNum(param.getType() == 0? Constants.formatBigdecimal(model.getIntegral()).add(integral.getNum()):Constants.formatBigdecimal(model.getIntegral()).subtract(integral.getNum())); |
| | | } |
| | | integral.setCreateDate(new Date()); |
| | | integral.setCreator(user.getId()); |
| | | integral.setIsdeleted(Constants.ZERO); |
| | | integral.setNum(param.getNum()); |
| | | integral.setTitle(integralObjType.getName()); |
| | | integral.setContent(integralObjType.getNoteinfo().replace("${param}",integral.getNum().toString())); |
| | | integral.setMemberId(param.getMemberId()); |
| | | integral.setObjId(param.getMemberId()); |
| | | integral.setObjType(integralObjType.getKey()); |
| | | integral.setType(param.getType()); |
| | | integral.setRemark(param.getRemark()); |
| | | integral.setOrderCode(null); |
| | | integral.setUserType(Constants.ZERO); |
| | | integralMapper.insert(integral); |
| | | } |
| | | @Override |
| | | public IntegralDataResponse getIntegralData(IntegralRecordDTO model){ |
| | | IntegralDataResponse integralDataResponse = new IntegralDataResponse(); |
| | |
| | | JSONObject.toJSONString(member) , |
| | | model.getShopName(), shop.getName()); |
| | | } |
| | | @Override |
| | | @Transactional |
| | | public void updateIntegral(Integral param) { |
| | | if(param.getMemberId()==null || param.getType()==null |
| | | || param.getType()<0 |
| | | || param.getType()>2 |
| | | || Constants.formatBigdecimal(param.getNum()).compareTo(new BigDecimal(0))<=0){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | |
| | | MPJLambdaWrapper<Member> queryWrapper =new MPJLambdaWrapper<>(); |
| | | queryWrapper.selectAll(Member.class); |
| | | queryWrapper.selectAs(Shop::getName,Member::getShopName); |
| | | queryWrapper.leftJoin(Shop.class, Shop::getId,Member::getBindShopId); |
| | | queryWrapper.eq(Member::getId,param.getMemberId()); |
| | | Member model = memberMapper.selectJoinOne(Member.class,queryWrapper); |
| | | if(model == null ||Constants.equalsObject(model.getIsdeleted(),Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"客户信息查询无效!"); |
| | | } |
| | | |
| | | BigDecimal num = param.getNum(); |
| | | if(param.getType() == 1 &&Constants.formatBigdecimal(model.getIntegral()).compareTo(param.getNum())<0){ |
| | | //如果是减少,判断用户余额是否满足 |
| | | num = num.multiply(new BigDecimal(-1));//减少 |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"用户账户余额不足!"); |
| | | } |
| | | |
| | | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | |
| | | Date date = new Date(); |
| | | //账户余额 |
| | | memberMapper.update(null,new UpdateWrapper<Member>().lambda() |
| | | .eq(Member::getId,model.getId()) |
| | | .set(Member::getEditDate,date) |
| | | .set(Member::getEditor,user.getId()) |
| | | .setSql(param.getType() == 0,"total_integral = ifnull(total_integral,0)+" + num)//累计增加 |
| | | .setSql(param.getType() == 0,"integral = ifnull(integral,0)+" + param.getNum()) |
| | | .setSql(param.getType() == 1,"integral = ifnull(integral,0)-" + param.getNum())); |
| | | |
| | | Constants.IntegralObjType integralObjType = param.getType()==0?Constants.IntegralObjType.SYSTEM_RECHARGE:Constants.IntegralObjType.SYSTEM_DEDUCT; |
| | | |
| | | Integral integral = new Integral(); |
| | | integral.setMemberId(model.getId()); |
| | | integral.setCreateDate(new Date()); |
| | | integral.setCreator(user.getId()); |
| | | integral.setIsdeleted(Constants.ZERO); |
| | | integral.setTitle(integralObjType.getName()); |
| | | integral.setContent(integralObjType.getNoteinfo()); |
| | | integral.setObjId(model.getId()); |
| | | integral.setObjType(integralObjType.getKey()); |
| | | integral.setType(param.getType()); |
| | | integral.setRemark(param.getRemark()); |
| | | integral.setNum(param.getNum()); |
| | | integral.setTotalNum(param.getType() == 0? Constants.formatBigdecimal(model.getIntegral()).add(integral.getNum()):Constants.formatBigdecimal(model.getIntegral()).subtract(integral.getNum())); |
| | | integral.setOrderCode(null); |
| | | integral.setUserType(Constants.ZERO); |
| | | integralMapper.insert(integral); |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void updateByIdInBatch(List<Member> members) { |
| | |
| | | return shop; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public Shop findOne(Shop shop) { |
| | | QueryWrapper<Shop> wrapper = new QueryWrapper<>(shop); |